<?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>210518</bug_id>
          
          <creation_ts>2020-04-14 15:09:25 -0700</creation_ts>
          <short_desc>[macOS] Update ScreenTime as playback state changes</short_desc>
          <delta_ts>2021-03-30 22:52:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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=223731</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jonlee</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641567</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-14 15:09:25 -0700</bug_when>
    <thetext>Update ScreenTime as playback state changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641568</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-14 15:10:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/61181092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641617</commentid>
    <comment_count>2</comment_count>
      <attachid>396481</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-14 17:29:58 -0700</bug_when>
    <thetext>Created attachment 396481
WIP patch for the bots to check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641672</commentid>
    <comment_count>3</comment_count>
      <attachid>396497</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-14 21:44:25 -0700</bug_when>
    <thetext>Created attachment 396497
updated WIP patch for the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641775</commentid>
    <comment_count>4</comment_count>
      <attachid>396528</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-15 07:04:52 -0700</bug_when>
    <thetext>Created attachment 396528
updated WIP patch for the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641811</commentid>
    <comment_count>5</comment_count>
      <attachid>396540</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-15 08:36:35 -0700</bug_when>
    <thetext>Created attachment 396540
updated WIP patch for the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641829</commentid>
    <comment_count>6</comment_count>
      <attachid>396540</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-15 09:31:57 -0700</bug_when>
    <thetext>Comment on attachment 396540
updated WIP patch for the bots

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2020-04-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;

...

&gt; Source/WebCore/ChangeLog:60
&gt; +2020-04-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;

Looks like you got a double changelong here.

&gt; Source/WebKit/ChangeLog:52
&gt; +2020-04-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;

Here too.

&gt; Source/WebCore/html/MediaElementSession.cpp:123
&gt; +#if PLATFORM(MACCATALYST) || PLATFORM(MAC)

Could you add a ENABLE(MEDIA_USAGE) pragma and use it in platform-independent code instead? That way other ports could adopt without having to touch all these call sites.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1739
&gt; +    void addMediaUsageManagerSession(WebCore::MediaSessionIdentifier, const String&amp; /* bundleIdentifier */, const URL&amp; /* pageURL */);

Is there a reason these parameter names are commented out?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642034</commentid>
    <comment_count>7</comment_count>
      <attachid>396586</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-15 16:23:59 -0700</bug_when>
    <thetext>Created attachment 396586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642039</commentid>
    <comment_count>8</comment_count>
      <attachid>396540</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-15 16:28:45 -0700</bug_when>
    <thetext>Comment on attachment 396540
updated WIP patch for the bots

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

&gt;&gt; Source/WebCore/ChangeLog:60
&gt;&gt; +2020-04-14  Eric Carlson  &lt;eric.carlson@apple.com&gt;
&gt; 
&gt; Looks like you got a double changelong here.

Fixed.

&gt;&gt; Source/WebCore/html/MediaElementSession.cpp:123
&gt;&gt; +#if PLATFORM(MACCATALYST) || PLATFORM(MAC)
&gt; 
&gt; Could you add a ENABLE(MEDIA_USAGE) pragma and use it in platform-independent code instead? That way other ports could adopt without having to touch all these call sites.

Good suggestion, changed.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:1739
&gt;&gt; +    void addMediaUsageManagerSession(WebCore::MediaSessionIdentifier, const String&amp; /* bundleIdentifier */, const URL&amp; /* pageURL */);
&gt; 
&gt; Is there a reason these parameter names are commented out?

Left over from an earlier version with more parameters. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642047</commentid>
    <comment_count>9</comment_count>
      <attachid>396586</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-15 17:12:24 -0700</bug_when>
    <thetext>Comment on attachment 396586
Patch

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

&gt; Source/WebKit/UIProcess/Media/cocoa/MediaUsageManagerCocoa.h:42
&gt; +    void reset() final;

Nit. Looks like these functions can be private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642066</commentid>
    <comment_count>10</comment_count>
      <attachid>396586</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2020-04-15 17:29:17 -0700</bug_when>
    <thetext>Comment on attachment 396586
Patch

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

&gt; Source/WebCore/html/MediaElementSession.cpp:1021
&gt; +    auto* fullscreenElement = m_element.document().fullscreenManager().currentFullscreenElement();

document.fullscreenManager()...

&gt; Source/WebCore/html/MediaElementSession.cpp:1036
&gt; +        m_element.document().isMediaDocument() &amp;&amp; (m_element.document().frame() &amp;&amp; m_element.document().frame()-&gt;isMainFrame()),

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642069</commentid>
    <comment_count>11</comment_count>
      <attachid>396586</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-15 17:40:36 -0700</bug_when>
    <thetext>Comment on attachment 396586
Patch

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

R=me with just a couple of nits.

&gt; Source/WebCore/testing/Internals.idl:120
&gt; +[
&gt; +    ExportMacro=WEBCORE_TESTSUPPORT_EXPORT,
&gt; +    Conditional=VIDEO,
&gt; +    JSGenerateToJSObject,
&gt; +] dictionary MediaUsageState {

It&apos;s unfortunate you can&apos;t just re-use MediaUsageInfo here, and not re-declare the existing struct, but I guess that the URL -&gt; DOMString for mediaURL makes that untenable.

&gt; Source/WebKit/UIProcess/Media/cocoa/MediaUsageManagerCocoa.h:63
&gt; +        WebCore::MediaSessionIdentifier m_identifier;
&gt; +        String m_bundleIdentifier;
&gt; +        URL m_pageURL;
&gt; +        Optional&lt;WebCore::MediaUsageInfo&gt; m_mediaUsageInfo;
&gt; +        RetainPtr&lt;USVideoUsage&gt; m_usageTracker;

Since structs have public members, there&apos;s no no need to prefix these with `m_`.

&gt; Source/WebKit/UIProcess/Media/cocoa/MediaUsageManagerCocoa.mm:198
&gt; +        WTFLogAlways(&quot;MediaUsageManagerCocoa::updateMediaUsage caught exception!&quot;);

Do you want to include the exception.description here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642136</commentid>
    <comment_count>12</comment_count>
      <attachid>396616</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-15 21:33:33 -0700</bug_when>
    <thetext>Created attachment 396616
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642232</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-16 06:36:12 -0700</bug_when>
    <thetext>Committed r260182: &lt;https://trac.webkit.org/changeset/260182&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642339</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-16 11:04:15 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642340</commentid>
    <comment_count>15</comment_count>
      <attachid>396672</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-16 11:04:17 -0700</bug_when>
    <thetext>Created attachment 396672
Follow-up Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642347</commentid>
    <comment_count>16</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-16 11:11:30 -0700</bug_when>
    <thetext>Committed r260201: &lt;https://trac.webkit.org/changeset/260201&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396481</attachid>
            <date>2020-04-14 17:29:58 -0700</date>
            <delta_ts>2020-04-14 21:44:24 -0700</delta_ts>
            <desc>WIP patch for the bots to check</desc>
            <filename>bug-210518-20200414172958.patch</filename>
            <type>text/plain</type>
            <size>98742</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg2NjczZmVmMTM3Mjdk
ZGUxZTViYWI5NGMxMGMwMGVjYmJmYWY2OC4uNDhmOGZmNWZiYzdiZTYxZmUzYTUyNTZiZTM1OWQ1
NDRiMGNlNTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDIwLTA0LTE0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBk
YXRlIFNjcmVlblRpbWUgYXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS82MTE4MTA5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIFBhc3MgbWVkaWEgZWxlbWVudCBzdGF0ZSB0byBTY3JlZW5UaW1l
IGZyYW1ld29yayB3aGVuIGl0IGNoYW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhRWxlbWVudFNlc3Npb246Ok1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6fk1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdlZCk6
CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6YWRkVmlkZW9V
c2FnZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojp1cGRhdGVWaWRl
b1VzYWdlRm9yU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlbW92
ZVZpZGVvVXNhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
UGxhdGZvcm1NZWRpYVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6
dXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9J
Zk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVw
ZGF0ZU5vd1BsYXlpbmdJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9j
b2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVn
aW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGlj
c0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpz
ZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmlj
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lv
bldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1Vz
YWdlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVy
YXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRv
ciE9IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9Vc2FnZUluZm86OmRlY29kZSk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2
aWRlb1VzYWdlU3RhdGUgY29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAg
PHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9S
b3V0aW5nQXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCAzYTNlMjZlMDIyMTE2
OWYxMWEyZThkYjY2ODZlNjU2ZTMxN2MxYjM0Li4yOTY4ZjhjZGM2OTg4MTYyMDUwMDljMDg5NTQ0
OTM0ZGU4OTBjMzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0w
NC0xNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBb
bWFjT1NdIFVwZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmg6IEFkZGVkLgorICAgICAg
ICAqIHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsubW06IEFkZGVkLgorCiAyMDIwLTA0
LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50
ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2ZDNhMTJk
Y2QzMDliOTQ4YWQ4YzcxMTdhMGMxZTUwYTliMDFhYTQuLmIxYWM2ZTVkZjk5YjhmZjQ3YzY3ODky
ZmYyYjVmYTc3ZjRiYmUzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjAtMDQtMTQg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09T
XSBVcGRhdGUgU2NyZWVuVGltZSBhcyBwbGF5YmFjayBzdGF0ZSBjaGFuZ2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA1MTgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzYxMTgxMDkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp2aWRlb1VzYWdlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6YWRkVmlkZW9Vc2FnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnVwZGF0ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpyZW1vdmVWaWRlb1VzYWdlU2Vzc2lvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL01lZGlhL1ZpZGVvVXNhZ2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlZpZGVvVXNhZ2VNYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpyZXNldCk6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5hZ2VyOjphZGRNZWRpYVNlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlcjo6cmVtb3ZlTWVkaWFTZXNzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXI6OnVwZGF0ZVZpZGVvVXNhZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9WaWRlb1VzYWdlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvVmlkZW9Vc2FnZU1hbmFnZXJDb2NvYS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYTo6U2Vzc2lvblZpZGVv
VXNhZ2U6OlNlc3Npb25WaWRlb1VzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29j
b2EvVmlkZW9Vc2FnZU1hbmFnZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmNh
blVwZGF0ZVZpZGVvVXNhZ2UpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYTo6flZpZGVv
VXNhZ2VNYW5hZ2VyQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlckNv
Y29hOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6OmFk
ZE1lZGlhU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6
OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5hZ2Vy
Q29jb2E6OnVwZGF0ZVZpZGVvVXNhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZFZpZGVvVXNhZ2VTZXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVtb3ZlVmlkZW9Vc2FnZVNlc3Np
b24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjphZGRWaWRlb1VzYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVtb3ZlVmlkZW9Vc2FnZVNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjAtMDQtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1OTg5OCk6IFRhYnMgb2Nj
YXNpb25hbGx5IGdvIGJsYW5rIGFuZCBnZXQgc3R1Y2sgdGhhdCB3YXkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMGUyYWIyYzA4
MTFiZWYyZjcyNTU0MjdlZWQ4NjRiMzJiNDE2MzhiLi5mZmU4ZGVmZDYxYWU2NWUzYTM0YzA2MzNi
ZDk0YzU5OTAxYzc1Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMSw2ICsyMSw4IEBACiAvKiBFbmQgUEJYQWdncmVnYXRl
VGFyZ2V0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKwkJ
MDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjQyNDNGQTVC
RTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oICovOyB9OworCQkwNzYxMURCNzI0
M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjUyNDNGQTVCRjAwRDgwNzA0
IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSAqLzsgfTsKIAkJMDc3RTg3QjEyMjZBNDYwMjAw
QTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91
bmRhdGlvblNvZnRMaW5rLm1tICovOyB9OwogCQkwNzdFODdCMjIyNkE0NjAzMDBBMkFGRjAgLyog
QVZGb3VuZGF0aW9uU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA3N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0
TGluay5oICovOyB9OwogCQkwQzAwQ0ZENDFGNjhDRTQ2MDBBQUMyNkQgLyogTWVkaWFUaW1lQVZG
b3VuZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwQzAwQ0ZEMjFGNjhDRTQ2MDBBQUMyNkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87
IH07CkBAIC0xOTAsNiArMTkyLDggQEAKIC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMDc2MTFE
QjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBVc2FnZVRyYWNraW5nU29mdExpbmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJh
Y2tpbmdTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQVZGb3VuZGF0aW9uU29mdExpbmsu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3N0U4N0IwMjI2QTQ2MDIwMEEyQUZG
MCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBVkZvdW5kYXRpb25Tb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwQzAwQ0ZEMTFGNjhDRTQ2MDBBQUMyNkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjUsNiArNjI5LDggQEAKIAkJ
CQlDREFDQjM1RjIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExpbmsuaCAqLywK
IAkJCQlBMUY2M0M5RDIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tpdFNvZnRMaW5rLmggKi8sCiAJ
CQkJQTFGNjNDOUUyMUE0REJGNzAwNkZCNDNCIC8qIFBhc3NLaXRTb2Z0TGluay5tbSAqLywKKwkJ
CQkwNzYxMURCNDI0M0ZBNUJFMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggKi8s
CisJCQkJMDc2MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5t
bSAqLywKIAkJCSk7CiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtODQ1LDYgKzg1MSw3IEBACiAJCQkJMkUxMzQyQ0MyMTVBQTEwQTAwNzE5OUQyIC8qIFVJ
S2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDNUFGOTIyMUY0M0E0QzcwMDJFQUMw
MiAvKiBVSUtpdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNDcxRjNCRUI0OTAwREJD
MzE3IC8qIFVSTEZvcm1hdHRpbmdTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjExREI2MjQz
RkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBDMkRBMTU5MUYzQkVCNDkwMERCQzMxNyAvKiBXZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCUExMDgyNkY5MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwpAQCAtOTY0LDYgKzk3MSw3IEBACiAJCQkJQTNBQjZFNTcx
RjNEMUREQjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTNBQjZFNjUxRjNEMjE3RjAwOUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyRTEzNDJDRDIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRT
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3NjExREI3MjQzRkE1QkYwMEQ4MDcwNCAv
KiBVc2FnZVRyYWNraW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTA4MjZGQTFG
NTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE3ZWVlZTVmZmEzZWY5YWY3NTg1MGEzYjlhM2JjOWI2NDZlYzEyZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5o
CkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUo
QVBQX1NTTykKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NPRlRfTElOS19GUkFN
RVdPUktfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcpOworCitTT0ZUX0xJTktfQ0xBU1Nf
Rk9SX0hFQURFUihQQUwsIFVTVmlkZW9Vc2FnZSk7CisjZGVmaW5lIF9BWFNJc29sYXRlZFRyZWVN
b2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSBQQUw6OmNhbkxvYWRfbGliQWNjZXNzaWJpbGl0eV9fQVhT
SXNvbGF0ZWRUcmVlTW9kZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURF
UihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01h
bmFnZXIsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250
cm9sc01hbmFnZXIgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlDYW5T
aG93Q29udHJvbHNNYW5hZ2VyKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd05vd1BsYXlp
bmdDb250cm9scywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hv
d05vd1BsYXlpbmdDb250cm9scyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1N1
c3BlbmRlZCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5k
ZWQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc1N1c3BlbmRlZCgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCwgTlNTdHJpbmcgKikKKyNk
ZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFjdGl2ZURvY3VtZW50IFBBTDo6Z2V0X1VzYWdl
VHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFjdGl2ZURvY3VtZW50KCkKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlJc0Z1bGxzY3JlZW4gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlJc0Z1bGxzY3JlZW4oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkIFBBTDo6Z2V0X1VzYWdlVHJh
Y2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlz
TWVkaWFEb2N1bWVudEluTWFpbkZyYW1lLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5n
X1VTVmlkZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lKCkKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5SXNBdWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRh
S2V5SXNBdWRpbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzQXVk
aW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRy
YWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUsIE5T
U3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2Vy
R2VzdHVyZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxl
bWVudFdpdGhVc2VyR2VzdHVyZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRB
dWRpb0JlZm9yZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRh
S2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNFbGVt
ZW50UmVjdE1vc3RseUluTWFpbkZyYW1lLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgUEFMOjpnZXRfVXNhZ2VUcmFj
a2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUoKQor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlOb0F1ZGlvLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVv
TWV0YWRhdGFLZXlOb0F1ZGlvIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRh
S2V5Tm9BdWRpbygpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVybWl0dGVkLCBOU1N0
cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVybWl0dGVkKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQsIE5TU3RyaW5n
ICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVk
IFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlhUGxheWJh
Y2tTdXNwZW5kZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RP
d25lckVsZW1lbnQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzTWVk
aWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlk
ZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUs
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxs
b3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVv
TWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0Fu
ZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRh
ZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90
UGVybWl0dGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQoKQor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWlu
c1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUsIE5TU3RyaW5nICopCisjZGVm
aW5lIFVTVmlkZW9NZXRhZGF0YUtleUhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRh
aW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSBQQUw6OmdldF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0Nv
bnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSgpCitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdl
LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWly
ZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VT
VmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRl
Q2hhbmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNh
Z2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2UsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0
YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIFBBTDo6
Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVv
QW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUsIE5TU3RyaW5n
ICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlk
ZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xv
d1Bvd2VyTW9kZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1aXJlZCwg
TlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5Tm9Vc2VyR2VzdHVyZVJlcXVp
cmVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9Vc2VyR2VzdHVy
ZVJlcXVpcmVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQbGF5YmFja0FuZElzTm90
UGxheWluZywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQ
bGF5YmFja0FuZElzTm90UGxheWluZyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRh
ZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcoKQorU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3RyaW5nICopCisjZGVmaW5lIFVT
VmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZyBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZygp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4sIE5TU3RyaW5nICopCisj
ZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4gUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuKCkKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5SXNWaWRlbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFk
YXRhS2V5SXNWaWRlbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlz
VmlkZW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2Fn
ZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlciwgTlNTdHJpbmcgKikKKyNkZWZp
bmUgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlSZW5kZXJlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW8sIE5T
U3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW8gUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvKCkKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRh
S2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1Zp
ZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQgUEFMOjpnZXRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoKQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VU
cmFja2luZ1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9Vc2FnZVRy
YWNraW5nU29mdExpbmsubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGZlYTYxMWM4NDc1YzI4NGQyZTE0NDczYWU5
NWE4ZGVlYTE1MmU3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgor
CitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IFVzYWdlVHJhY2tpbmcsIFBBTF9FWFBPUlQpOworCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9Vc2FnZSwg
UEFMX0VYUE9SVCk7CisKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd0Nv
bnRyb2xzTWFuYWdlciwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5Q2FuU2hvd05vd1BsYXlpbmdDb250cm9scywgTlNTdHJpbmcqLCBQQUxf
RVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQsIE5T
U3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlz
SW5BY3RpdmVEb2N1bWVudCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkLCBOU1N0cmluZyosIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJ
bk1haW5GcmFtZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5SXNBdWRpbywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLCBOU1N0cmlu
ZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFz
UGxheWVkQXVkaW9CZWZvcmUsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcs
IFVTVmlkZW9NZXRhZGF0YUtleUlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSwgTlNTdHJp
bmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRp
bywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRh
S2V5UGxheWJhY2tQZXJtaXR0ZWQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLCBOU1N0cmlu
ZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlh
RG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRv
QXV0b3BsYXlJbmxpbmUsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVT
VmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWlu
c1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUsIE5TU3RyaW5nKiwgUEFMX0VY
UE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJl
c1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2Vz
dHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JW
aWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQsIE5TU3RyaW5nKiwg
UEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxh
eWJhY2tBbmRJc05vdFBsYXlpbmcsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZywgTlNTdHJp
bmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5T3V0c2lk
ZU9mRnVsbHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5SXNWaWRlbywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW8sIE5TU3RyaW5nKiwgUEFM
X0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWNlNThiNWFiOGM2
OWI3ZjIyZDgyZGE2NGQyNDZhMzE3OTFmMWQyLi5kOWNjMDY1MzFmOWU2MjIzNDhkYmFmNmIwOWIy
OWJmOGI4ZWI3YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzIsNiArMTMyLDcgQEAKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAw
Qjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRU
cmFjay5oICovOyB9OwogCQkwNzU0QTVFQTIxNUVBM0I4MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRp
YVNvdXJjZUZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFj
dG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTA3NTdCMTNFMjE0QUU3OTkwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBE
IC8qIFZpZGVvUHJlc2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIFZpZGVvVXNhZ2VJbmZvLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYxMURCODI0
M0ZCNzVDMDBEODA3MDQgLyogVmlkZW9Vc2FnZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyog
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwNzYzOEE5QTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4
MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkw
NzY5NzA4NjE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAy
Q0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi87IH07CkBAIC01NTcwLDYgKzU1NzEsNyBAQAogCQkw
NzU0QTVFODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rv
cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1NEE1RUIyMTVFQURGMzAwMkQz
QTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVv
UHJlc2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAv
KiBWaWRlb1VzYWdlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRl
b1VzYWdlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0
ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25N
YW5hZ2VySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVk
aWFTZXNzaW9uTWFuYWdlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2
OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNTQwNiw2ICsyNTQwOCw3IEBACiAJCQkJMEY1QTU3Q0EyMjlCMThB
RTAwMjVFREE5IC8qIFZlbG9jaXR5RGF0YS5jcHAgKi8sCiAJCQkJMEYxQTBDMzYyMjlBNDgxODAw
RDM3QURCIC8qIFZlbG9jaXR5RGF0YS5oICovLAogCQkJCUJFRjI5RUVBMTcxNUREMDkwMEM0QjRD
OSAvKiBWaWRlb1RyYWNrUHJpdmF0ZS5oICovLAorCQkJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcw
NCAvKiBWaWRlb1VzYWdlSW5mby5oICovLAogCQkJCTE0MTFEQ0IwMTY0QzM5QTgwMEQ0OUJDMSAv
KiBXaWR0aENhY2hlLmggKi8sCiAJCQkJOTM5QjAyRUMwRUEyREJDNDAwQzU0NTcwIC8qIFdpZHRo
SXRlcmF0b3IuY3BwICovLAogCQkJCTkzOUIwMkVEMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0
ZXJhdG9yLmggKi8sCkBAIC0zMzI5NCw2ICszMzI5Nyw3IEBACiAJCQkJQ0QzMzZGNjgxN0ZBMEFD
NjAwREREQ0QwIC8qIFZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0Q4QjVBNDMxODBEMTQ5QTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzBFODFEMTFCRjI3NjU2MDAxRkRBNDgg
LyogVmlkZW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2
MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIFZpZGVvVXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRUY0MThDRjExNzk2NzhDMDA5RDExMkMgLyogVmlld3BvcnRBcmd1bWVudHMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTI2RjlBODM5MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9ydENvbmZp
Z3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNDA3RkMxMUU4RDlDMTcwMEUwNDhEMyAv
KiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDEwMWQxN2NjOTgyNjJiNWE4YWM1YmQ0YzNj
ZmJlNjMwYTk5N2ZhOTYuLmVlM2M0OTJmMGZkZDQ5MWMyOTllYThkZjg5MWM3MTM3OGRhMGU2MmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU5LDcgKzQ1
OSw2IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX2xvZ2dlcigmZG9jdW1lbnQu
bG9nZ2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQog
I2VuZGlmCi0gICAgLCBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXIoTWVkaWFTZXNzaW9uSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKSkKIHsKICAgICBhbGxNZWRpYUVsZW1lbnRzKCkuYWRkKHRoaXMpOwog
CkBAIC03NTA1LDcgKzc1MDQsNyBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNz
aW9uVGl0bGUoKSBjb25zdAogCiBNZWRpYVNlc3Npb25JZGVudGlmaWVyIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIoKSBjb25zdAogewotICAgIHJldHVybiBt
X21lZGlhU2Vzc2lvbklkZW50aWZpZXI7CisgICAgcmV0dXJuIG1fbWVkaWFTZXNzaW9uLT5tZWRp
YVNlc3Npb25JZGVudGlmaWVyKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkUmVj
ZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250
cm9sQ29tbWFuZFR5cGUgY29tbWFuZCwgY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90
ZUNvbW1hbmRBcmd1bWVudCogYXJndW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCmluZGV4IDFhNzI5ZjQwOTFhY2RmY2Y3NjVjMGJmNTY5MTY2MjVjMjVhMjNmZGQuLjU5
YTc2MDdlMzcxZDJhMGYyODg0MzljOTU4MDhiZTk1ZDAzYjFlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMTk3LDcgKzExOTcsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1f
cGxheWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVtb3ZlZEJlaGF2
aW9yUmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKLSAgICBNZWRp
YVNlc3Npb25JZGVudGlmaWVyIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcjsKIH07CiAKIFN0cmlu
ZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50OjpBdXRvcGxheUV2
ZW50UGxheWJhY2tTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlh
RWxlbWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcAppbmRleCBjNmM5YTllZTFiNzFmMWNhYjE0ZDE4YzAwOTViZDlmZmVhZDQ1ZTQwLi41
MjJlZjg3ZWY2ODc2ZTM5YjFiNWU2NWZkMDk5MTVmZmI1NDBlNWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTb3VyY2VCdWZmZXIuaCIKKyNpbmNsdWRlICJWaWRlb1VzYWdlSW5mby5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBA
IC0xMTksNiArMTIwLDE4IEBAIE1lZGlhRWxlbWVudFNlc3Npb246Ok1lZGlhRWxlbWVudFNlc3Np
b24oSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKICAgICAsIG1fbG9nSWRlbnRpZmllcihlbGVt
ZW50LmxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgogeworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KSB8fCBQTEFURk9STShNQUMpCisgICAgaWYgKGF1dG8gcGFnZSA9IG1fZWxlbWVudC5kb2N1bWVu
dCgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRkVmlkZW9Vc2Fn
ZVNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpLCBtX2VsZW1lbnQuc291cmNlQXBwbGlj
YXRpb25JZGVudGlmaWVyKCksIG1fZWxlbWVudC5kb2N1bWVudCgpLnVybCgpKTsKKyNlbmRpZgor
fQorCitNZWRpYUVsZW1lbnRTZXNzaW9uOjp+TWVkaWFFbGVtZW50U2Vzc2lvbigpCit7CisjaWYg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBwYWdl
ID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5yZW1vdmVWaWRlb1VzYWdlU2Vzc2lvbihtZWRpYVNlc3Npb25JZGVudGlmaWVyKCkp
OworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6cmVnaXN0ZXJXaXRoRG9j
dW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtOTk4LDYgKzEwMTEsNjIgQEAgT3B0aW9uYWw8
Tm93UGxheWluZ0luZm8+IE1lZGlhRWxlbWVudFNlc3Npb246Om5vd1BsYXlpbmdJbmZvKCkgY29u
c3QKICAgICByZXR1cm4gTm93UGxheWluZ0luZm8geyBtX2VsZW1lbnQubWVkaWFTZXNzaW9uVGl0
bGUoKSwgbV9lbGVtZW50LnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpLCBkdXJhdGlvbiwg
Y3VycmVudFRpbWUsIHN1cHBvcnRzU2Vla2luZywgbV9lbGVtZW50Lm1lZGlhU2Vzc2lvblVuaXF1
ZUlkZW50aWZpZXIoKSwgaXNQbGF5aW5nLCBhbGxvd3NOb3dQbGF5aW5nQ29udHJvbHNWaXNpYmls
aXR5IH07CiB9CiAKK3ZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlm
Q2hhbmdlZCgpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykK
KyAgICBhdXRvJiBkb2N1bWVudCA9IG1fZWxlbWVudC5kb2N1bWVudCgpOworICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvKiBmdWxsc2NyZWVuRWxlbWVudCA9IG1fZWxlbWVudC5kb2N1bWVudCgpLmZ1bGxz
Y3JlZW5NYW5hZ2VyKCkuY3VycmVudEZ1bGxzY3JlZW5FbGVtZW50KCk7CisgICAgYm9vbCBpc0F1
ZGlvID0gY2xpZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09IE1lZGlhVHlwZTo6QXVkaW87Cisg
ICAgYm9vbCBpc1ZpZGVvID0gY2xpZW50KCkucHJlc2VudGF0aW9uVHlwZSgpID09IE1lZGlhVHlw
ZTo6QXVkaW87CisgICAgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUgPSBkb2N1bWVudC5wcm9j
ZXNzaW5nVXNlckdlc3R1cmVGb3JNZWRpYSgpOworICAgIGJvb2wgaXNQbGF5aW5nID0gbV9lbGVt
ZW50LmlzUGxheWluZygpOworCisgICAgVmlkZW9Vc2FnZUluZm8gdXNhZ2UgPSAgeworICAgICAg
ICBtX2VsZW1lbnQuY3VycmVudFNyYygpLAorICAgICAgICBzdGF0ZSgpID09IFBsYXRmb3JtTWVk
aWFTZXNzaW9uOjpQbGF5aW5nLAorICAgICAgICBjYW5TaG93Q29udHJvbHNNYW5hZ2VyKFBsYXli
YWNrQ29udHJvbHNQdXJwb3NlOjpDb250cm9sc01hbmFnZXIpLAorICAgICAgICAhcGFnZS0+aXNW
aXNpYmxlQW5kQWN0aXZlKCksCisgICAgICAgIG1fZWxlbWVudC5pc1N1c3BlbmRlZCgpLAorICAg
ICAgICBtX2VsZW1lbnQuaW5BY3RpdmVEb2N1bWVudCgpLAorICAgICAgICBtX2VsZW1lbnQuaXNG
dWxsc2NyZWVuKCksCisgICAgICAgIG1fZWxlbWVudC5tdXRlZCgpLAorICAgICAgICBtX2VsZW1l
bnQuZG9jdW1lbnQoKS5pc01lZGlhRG9jdW1lbnQoKSAmJiAobV9lbGVtZW50LmRvY3VtZW50KCku
ZnJhbWUoKSAmJiBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5pc01haW5GcmFtZSgpKSwK
KyAgICAgICAgaXNWaWRlbywKKyAgICAgICAgaXNBdWRpbywKKyAgICAgICAgbV9lbGVtZW50Lmhh
c1ZpZGVvKCksCisgICAgICAgIG1fZWxlbWVudC5oYXNBdWRpbygpLAorICAgICAgICBtX2VsZW1l
bnQucmVuZGVyZXIoKSwKKyAgICAgICAgaXNBdWRpbyAmJiBoYXNCZWhhdmlvclJlc3RyaWN0aW9u
KFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgJiYgIXByb2Nlc3Np
bmdVc2VyR2VzdHVyZSwKKyAgICAgICAgaXNBdWRpbyAmJiBpc1BsYXlpbmcsIC8vIHVzZXJIYXNQ
bGF5ZWRBdWRpb0JlZm9yZQorICAgICAgICBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUo
bV9lbGVtZW50KSwKKyAgICAgICAgIXBsYXliYWNrUGVybWl0dGVkKCksCisgICAgICAgIHBhZ2Ut
Pm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCgpLAorICAgICAgICBkb2N1bWVudC5pc01lZGlhRG9j
dW1lbnQoKSAmJiAhZG9jdW1lbnQub3duZXJFbGVtZW50KCksCisgICAgICAgIHBhZ2VFeHBsaWNp
dGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUobV9lbGVtZW50KSwKKyAgICAgICAgcmVx
dWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpICYmICFmdWxsc2NyZWVuUGVybWl0dGVk
KCksCisgICAgICAgIGRvY3VtZW50Lmhhc0hhZFVzZXJJbnRlcmFjdGlvbigpICYmIGRvY3VtZW50
LnF1aXJrcygpLnNob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKSwKKyAgICAg
ICAgaXNWaWRlbyAmJiBoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZUZv
clZpZGVvUmF0ZUNoYW5nZSkgJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZSwKKyAgICAgICAgbV9l
bGVtZW50Lmhhc0F1ZGlvKCkgJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUgJiYgIW1f
ZWxlbWVudC5tdXRlZCgpICYmIG1fZWxlbWVudC52b2x1bWUoKSwKKyAgICAgICAgaXNWaWRlbyAm
JiBoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9M
b3dQb3dlck1vZGUpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgICFoYXNCZWhh
dmlvclJlc3RyaWN0aW9uKFJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdl
cikgfHwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLAorICAgICAgICBoYXNCZWhhdmlvclJlc3RyaWN0
aW9uKFJlcXVpcmVQbGF5YmFja1RvQ29udHJvbENvbnRyb2xzTWFuYWdlcikgJiYgIWlzUGxheWlu
ZywKKyAgICAgICAgbV9lbGVtZW50Lmhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZygpLAorICAg
ICAgICBmdWxsc2NyZWVuRWxlbWVudCAmJiAhbV9lbGVtZW50LmlzRGVzY2VuZGFudE9mKCpmdWxs
c2NyZWVuRWxlbWVudCksCisgICAgICAgIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudChNZWRp
YVNlc3Npb25NYWluQ29udGVudFB1cnBvc2U6Ok1lZGlhQ29udHJvbHMpLAorICAgIH07CisKKyAg
ICBpZiAobV92aWRlb1VzYWdlSW5mbyAmJiAqbV92aWRlb1VzYWdlSW5mbyA9PSB1c2FnZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV92aWRlb1VzYWdlSW5mbyA9IFdURk1vdmUodXNhZ2UpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnVwZGF0ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKG1l
ZGlhU2Vzc2lvbklkZW50aWZpZXIoKSwgKm1fdmlkZW9Vc2FnZUluZm8pOworI2VuZGlmCit9CisK
IFN0cmluZyBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhjb25zdCBNZWRpYVBsYXliYWNrRGVu
aWFsUmVhc29uIGVudW1lcmF0aW9uVmFsdWUpCiB7CiAgICAgc3RhdGljIGNvbnN0IE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdmFsdWVzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01lZGlhRWxlbWVudFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVt
ZW50U2Vzc2lvbi5oCmluZGV4IDFjZDJjOGEwZGM3YWVlZGQ3MWU3ODY2ODdjODNlZmQwN2RiOTdk
MWMuLmJhMzdjMmQxODVlY2UyNDM0ZjZiZjQ5M2E3Yzc3OWVmMjY4YTY1ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKICNpbmNsdWRlICJTdWNjZXNzT3IuaCIKICNp
bmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIlZpZGVvVXNhZ2VJbmZvLmgiCiAjaW5jbHVkZSA8
d3RmL1R5cGVDYXN0cy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw3ICs1OCw3IEBA
IGNsYXNzIE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNl
c3Npb24KICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBNZWRpYUVsZW1lbnRTZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5N
ZWRpYUVsZW1lbnRTZXNzaW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhRWxlbWVu
dFNlc3Npb24oKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsK
ICAgICB2b2lkIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKQEAgLTE1OSw2ICsx
NjAsOSBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWlu
Z0luZm8oKSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgdXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdl
ZCgpIGZpbmFsOworICAgIE9wdGlvbmFsPFZpZGVvVXNhZ2VJbmZvPiB2aWRlb1VzYWdlSW5mbygp
IGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Vc2FnZUluZm87IH0KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFFbGVtZW50U2Vzc2lvbiI7IH0KQEAgLTE4OCw2ICsx
OTIsOCBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBC
ZWhhdmlvclJlc3RyaWN0aW9ucyBtX3Jlc3RyaWN0aW9uczsKIAorICAgIE9wdGlvbmFsPFZpZGVv
VXNhZ2VJbmZvPiBtX3ZpZGVvVXNhZ2VJbmZvOworCiAgICAgYm9vbCBtX2VsZW1lbnRJc0hpZGRl
blVudGlsVmlzaWJsZUluVmlld3BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbGVtZW50SXNI
aWRkZW5CZWNhdXNlSXRXYXNSZW1vdmVkRnJvbURPTSB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDNlOTg1YTg5MDA4MDk0OWNjNTdmMmE4NTdkZDZkZjVkYjli
YjQ4MTguLmU1NjM3NDM0YzE4OGRmNzljMWEyZjk1OGU0NDAzMGQzYjBjZmRiZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNjgsNiArNjgsMTEgQEAgY2xhc3MgV0FLUmVzcG9u
ZGVyOwogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFU
Rk9STShNQUMpCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlZpZGVvVXNhZ2VJbmZvLmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU1Jlc3BvbmRlcjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzU2LDYgKzM2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkVmlkZW9Vc2FnZVNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiAvKiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbihNZWRpYVNlc3Np
b25JZGVudGlmaWVyLCBjb25zdCBWaWRlb1VzYWdlSW5mbyYpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVWaWRlb1VzYWdlU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyKSB7IH0KKyNl
bmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxs
c2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNl
c3Npb24uY3BwCmluZGV4IDE4NTNhMTIxY2FiMjI3NjBmMTFmMjI5MzBkZjg5MjRjNzg4NTc0ZDYu
LjhlN2Y4YzEyYmU5NWVlZmFhNzcwNDM2MDAzMjEwNmE1YmU5ODk5OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAK
QEAgLTExNiw2ICsxMTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+
IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYQogUGxhdGZvcm1NZWRp
YVNlc3Npb246OlBsYXRmb3JtTWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
ciYgbWFuYWdlciwgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQmIGNsaWVudCkKICAgICA6IG1f
bWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKKyAg
ICAsIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcihNZWRpYVNlc3Npb25JZGVudGlmaWVyOjpnZW5l
cmF0ZSgpKQogICAgICwgbV9zdGF0ZShJZGxlKQogICAgICwgbV9zdGF0ZVRvUmVzdG9yZShJZGxl
KQogICAgICwgbV9ub3RpZnlpbmdDbGllbnQoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaAppbmRleCA5MzA4NWIwZDQy
N2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhLi5hN2FhYjg0NjVmNTcwNjhhMTlhNjFmM2Nm
ZGYxMGViZDQyOWM2ZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVkaWFTZXNz
aW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0xvZ2dl
ckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtMTg4LDYgKzE4OSw5
IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgdmlydHVhbCBPcHRpb25hbDxOb3dQbGF5aW5nSW5m
bz4gbm93UGxheWluZ0luZm8oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVmlkZW9V
c2FnZUlmQ2hhbmdlZCgpIHsgfQorCisgICAgTWVkaWFTZXNzaW9uSWRlbnRpZmllciBtZWRpYVNl
c3Npb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNlc3Npb25JZGVudGlmaWVy
OyB9CiAKIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXImLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCYpOwpAQCAtMjAwLDYg
KzIwNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcj4gbV9tYW5hZ2VyOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50JiBtX2NsaWVu
dDsKKyAgICBNZWRpYVNlc3Npb25JZGVudGlmaWVyIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcjsK
ICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFN0YXRlIG1fc3RhdGVUb1Jlc3RvcmU7CiAgICAgSW50
ZXJydXB0aW9uVHlwZSBtX2ludGVycnVwdGlvblR5cGUgeyBOb0ludGVycnVwdGlvbiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggMTM3NTc1MDU1N2NmMzA3ODBhMTlkYzlmMTFlMDc1
OWI0MThhY2Q2Zi4uYWJjZWI2NDJjMzVjYmJhYzIzNDI0ZDA0M2NjOTRiODM5NmJlYmRlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdl
cjo6Y3JlYXRlCiB2b2lkIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxh
eWluZ0luZm9JZk5lY2Vzc2FyeSgpCiB7CiAgICAgaWYgKGF1dG8gZXhpc3RpbmdNYW5hZ2VyID0g
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VySWZFeGlzdHMoKSkKLSAg
ICAgICAgZXhpc3RpbmdNYW5hZ2VyLT5zY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7Cisg
ICAgICAgIGV4aXN0aW5nTWFuYWdlci0+c2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKFdURjo6
bnVsbG9wdCk7CiB9CiAKIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5kZXggMzk1YjNjYTYwZDgy
ZmYyYjE4OTQxZTY5NmMwMzUzZjE4ZWM5YzMyMC4uYzcyOGQ4NmUzZjIwOWMyMmJhNGViMWViZGQy
MTRiYTlhMTUzZWU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAgLTU5LDcgKzU5LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyKCkgPSBk
ZWZhdWx0OwogCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8o
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKE9wdGlv
bmFsPFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+PikgeyB9CiAgICAgYm9vbCBoYXMoUGxh
dGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSkgY29uc3Q7CiAgICAgaW50IGNvdW50KFBsYXRm
b3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUpIGNvbnN0OwogICAgIGJvb2wgYWN0aXZlQXVkaW9T
ZXNzaW9uUmVxdWlyZWQoKSBjb25zdDsKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwogICAgIHZpcnR1YWwgdm9pZCBzZXNz
aW9uU3RhdGVDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik7Ci0gICAgdmlydHVhbCB2b2lk
IHNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24m
KSB7IH07CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxh
dGZvcm1NZWRpYVNlc3Npb24mKSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudENoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EuaAppbmRleCA1ZDZiMTNhOGEwOTgxZDNhZGY1ODgxYjM4MDQ1ZWNlMjRiOGRjY2JiLi4z
ZTY3MDc0MjI0MzBjYzA3ZGU1NGI2NjY4NWU5ZjQwOTBkNDBjNjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EuaApAQCAtNjAsOCArNjAsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNsZWFyTm93UGxheWluZ0luZm8oKTsKICAgICBzdGF0aWMgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXROb3dQbGF5aW5nSW5mbyhib29sIHNldEFzTm93UGxheWluZ0FwcGxp
Y2F0aW9uLCBjb25zdCBOb3dQbGF5aW5nSW5mbyYpOwogCisgICAgc3RhdGljIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdXBkYXRlVmlkZW9Vc2FnZShQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpOworCiBwcm90
ZWN0ZWQ6Ci0gICAgdm9pZCBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkgZmluYWw7Cisg
ICAgdm9pZCBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbj4+KSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZU5vd1BsYXlpbmdJbmZv
KCk7CiAKICAgICB2b2lkIHJlbW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5h
bDsKQEAgLTcwLDcgKzcyLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBzZXNzaW9uV2lsbEJl
Z2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlkZTsKICAgICB2b2lkIHNl
c3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mLCBEZWxheUNhbGxpbmdV
cGRhdGVOb3dQbGF5aW5nKSBvdmVycmlkZTsKLSAgICB2b2lkIHNlc3Npb25EaWRFbmRSZW1vdGVT
Y3J1YmJpbmcoY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKKyAgICB2b2lkIHNl
c3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsK
ICAgICB2b2lkIGNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Np
b24mKSBmaW5hbDsKICAgICB2b2lkIHNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCkgZmlu
YWw7CiAKQEAgLTEwNSw3ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2xhc3RVcGRh
dGVkTm93UGxheWluZ0VsYXBzZWRUaW1lIHsgTkFOIH07CiAgICAgTWVkaWFTZXNzaW9uSWRlbnRp
ZmllciBtX2xhc3RVcGRhdGVkTm93UGxheWluZ0luZm9VbmlxdWVJZGVudGlmaWVyOwogCi0gICAg
R2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV9ub3dQbGF5aW5nVXBkYXRlVGFza1F1ZXVlOworICAg
IEdlbmVyaWNUYXNrUXVldWU8VGltZXI+IG1fdGFza1F1ZXVlOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZUNvbW1hbmRMaXN0ZW5lcj4gbV9yZW1vdGVDb21tYW5kTGlzdGVuZXI7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFBBTDo6U3lzdGVtU2xlZXBMaXN0ZW5lcj4gbV9zeXN0ZW1TbGVlcExp
c3RlbmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCmluZGV4IDBmYjc5ZWJiOTJlYTRj
YTZhNWJhMDQwNGM1YTZhMmZkOWU2YjRiYmYuLjZlZDJiODAxYjQwNGVlZWI4MWRhOTZhODVjMzhh
MjBkODhhZjlhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJOb3dQbGF5aW5nSW5mby5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVk
aWFTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAi
VmlkZW9Vc2FnZUluZm8uaCIKICNpbmNsdWRlIDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgog
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCkBAIC0xMzQsMTAgKzEzNSwyMCBAQCB2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6cHJlcGFyZVRvU2VuZFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KCkKICAgICBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZOZWNlc3Nhcnko
KTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlTm93
UGxheWluZ0luZm8oKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBk
YXRlU2Vzc2lvblN0YXR1cyhPcHRpb25hbDxXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uPj4g
c2Vzc2lvbikKIHsKLSAgICBpZiAoIW1fbm93UGxheWluZ1VwZGF0ZVRhc2tRdWV1ZS5oYXNQZW5k
aW5nVGFza3MoKSkKLSAgICAgICAgbV9ub3dQbGF5aW5nVXBkYXRlVGFza1F1ZXVlLmVucXVldWVU
YXNrKHN0ZDo6YmluZCgmTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVOb3dQbGF5aW5n
SW5mbywgdGhpcykpOworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCAmc2Vzc2lv
bl0gKCkgbXV0YWJsZSB7CisgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAg
IGlmIChzZXNzaW9uLmhhc1ZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmIChzZXNzaW9uLnZhbHVl
KCkpCisgICAgICAgICAgICAgICAgc2Vzc2lvbi52YWx1ZSgpLT51cGRhdGVWaWRlb1VzYWdlSWZD
aGFuZ2VkKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBmb3JF
YWNoU2Vzc2lvbihbXSAoYXV0byYgc2Vzc2lvbikgeworICAgICAgICAgICAgc2Vzc2lvbi51cGRh
dGVWaWRlb1VzYWdlSWZDaGFuZ2VkKCk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiBib29s
IE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRm
b3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQpAQCAtMTQ1LDEzICsxNTYsMTMgQEAgYm9vbCBNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYgc2UKICAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vz
c2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgc2NoZWR1bGVVcGRhdGVT
ZXNzaW9uU3RhdHVzKHsgbWFrZVdlYWtQdHIoJnNlc3Npb24pIH0pOwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbkRpZEVuZFJlbW90
ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpCit2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKIHsKLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7
CisgICAgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKHsgbWFrZVdlYWtQdHIoJnNlc3Npb24p
IH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6YWRkU2Vzc2lvbihQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKQEAgLTE3NCw3ICsxODUsNyBAQCB2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYTo6cmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYg
c2Vzc2lvbikKICAgICAgICAgbV9hdWRpb0hhcmR3YXJlTGlzdGVuZXIgPSBudWxscHRyOwogICAg
IH0KIAotICAgIHNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVw
ZGF0ZVNlc3Npb25TdGF0dXMoeyBtYWtlV2Vha1B0cigmc2Vzc2lvbikgfSk7CiB9CiAKIHZvaWQg
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYgc2Vzc2lvbikKQEAgLTE4OCwyMyArMTk5LDMwIEBAIHZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjpzZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vz
c2lvbikKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVuZFBsYXli
YWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uLCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQ
bGF5aW5nIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpCiB7CiAgICAgUGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKHNlc3Npb24sIGRlbGF5Q2Fs
bGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwotICAgIGlmIChkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5
aW5nID09IERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmc6Ok5vKSB7CisKKyAgICBtX3Rhc2tR
dWV1ZS5lbnF1ZXVlVGFzayhbJnNlc3Npb25dIHsKKyAgICAgICAgc2Vzc2lvbi51cGRhdGVWaWRl
b1VzYWdlSWZDaGFuZ2VkKCk7CisgICAgfSk7CisKKyAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRl
Tm93UGxheWluZyA9PSBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nOjpObykKICAgICAgICAg
dXBkYXRlTm93UGxheWluZ0luZm8oKTsKLSAgICAgICAgcmV0dXJuOworICAgIGVsc2UgeworICAg
ICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpc10geworICAgICAgICAgICAgdXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKKyAgICAgICAgfSk7CiAgICAgfQotICAgIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNs
aWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24p
CiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBzZXNzaW9uLmxvZ0lkZW50aWZpZXIo
KSk7Ci0gICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBk
YXRlU2Vzc2lvblN0YXR1cyh7IG1ha2VXZWFrUHRyKCZzZXNzaW9uKSB9KTsKIH0KIAogdm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKCkK
IHsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25DYW5Qcm9kdWNlQXVk
aW9DaGFuZ2VkKCk7Ci0gICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNj
aGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyhXVEY6Om51bGxvcHQpOwogfQogCiB2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYTo6Y2xlYXJOb3dQbGF5aW5nSW5mbygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCmluZGV4IDQ1YmQ1NGI0YzFiZWY5YThkMDY1YThhNWU1NzE0OTE2Yjk1YzY5NjYuLmUx
ZWM3ODY2ZjM5NzkwNDljYjgwMTM1ZWJlMmU3ZjhhODMyZDI0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tCkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVz
ZXRSZXN0cmljdGlvbnMoKQogCiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKIAotICAg
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6cmVzZXRSZXN0cmljdGlvbnMoKTsKKyAgICBN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJlc2V0UmVzdHJpY3Rpb25zKCk7CiAKICAgICBpZiAo
cmFtU2l6ZSgpIDwgc3lzdGVtTWVtb3J5UmVxdWlyZWRGb3JWaWRlb0luQmFja2dyb3VuZFRhYnMp
IHsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAicmVzdHJpY3RpbmcgdmlkZW8g
aW4gYmFja2dyb3VuZCB0YWJzIGJlY2F1c2Ugc3lzdGVtIG1lbW9yeSA9ICIsIHJhbVNpemUoKSk7
CkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRl
UHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkKIAogYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9T
OjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24p
CiB7Ci0gICAgaWYgKCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVn
aW5QbGF5YmFjayhzZXNzaW9uKSkKKyAgICBpZiAoIU1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6
c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1V
TEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1VzYWdlSW5m
by5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9Vc2FnZUluZm8uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZjAzMWZhYjhkN2VlYjExMGM2ZGQyYTNlOGY4MWExZDdmZmRkYzI1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9Vc2Fn
ZUluZm8uaApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPHd0Zi9VUkwuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgVmlkZW9Vc2FnZUluZm8geworICAgIFVSTCBtZWRpYVVSTDsKKyAgICBib29sIGlz
UGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5TaG93Q29udHJvbHNNYW5hZ2VyIHsgZmFs
c2UgfTsKKyAgICBib29sIGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMgeyBmYWxzZSB9OworICAg
IGJvb2wgaXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkFjdGl2ZURvY3VtZW50
IHsgZmFsc2UgfTsKKyAgICBib29sIGlzRnVsbHNjcmVlbiB7IGZhbHNlIH07CisgICAgYm9vbCBp
c011dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzVmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgaXNBdWRpbyB7
IGZhbHNlIH07CisgICAgYm9vbCBoYXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9vbCBoYXNBdWRp
byB7IGZhbHNlIH07CisgICAgYm9vbCBoYXNSZW5kZXJlciB7IGZhbHNlIH07CisgICAgYm9vbCBh
dWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUgeyBmYWxzZSB9OworICAgIGJvb2wgdXNlckhhc1Bs
YXllZEF1ZGlvQmVmb3JlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJ
bk1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBwbGF5YmFja1Blcm1pdHRlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBwYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQgeyBmYWxzZSB9OworICAgIGJv
b2wgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSB7IGZhbHNlIH07
CisgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVl
bk5vdFBlcm1pdHRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb25B
bmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUgeyBm
YWxzZSB9OworICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1Jh
dGVDaGFuZ2UgeyBmYWxzZSB9OworICAgIGJvb2wgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2UgeyBmYWxzZSB9OworICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVp
cmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlIHsgZmFsc2UgfTsKKyAgICBi
b29sIG5vVXNlckdlc3R1cmVSZXF1aXJlZCB7IGZhbHNlIH07CisgICAgYm9vbCByZXF1aXJlc1Bs
YXliYWNrQW5kSXNOb3RQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIGhhc0V2ZXJOb3RpZmll
ZEFib3V0UGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBvdXRzaWRlT2ZGdWxsc2NyZWVuIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCB7IGZhbHNlIH07
CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgVmlkZW9Vc2FnZUluZm8mIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1lZGlhVVJMID09IG90aGVyLm1lZGlhVVJMCisgICAg
ICAgICAgICAmJiBpc1BsYXlpbmcgPT0gb3RoZXIuaXNQbGF5aW5nCisgICAgICAgICAgICAmJiBj
YW5TaG93Q29udHJvbHNNYW5hZ2VyID09IG90aGVyLmNhblNob3dDb250cm9sc01hbmFnZXIKKyAg
ICAgICAgICAgICYmIGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMgPT0gb3RoZXIuY2FuU2hvd05v
d1BsYXlpbmdDb250cm9scworICAgICAgICAgICAgJiYgaXNTdXNwZW5kZWQgPT0gb3RoZXIuaXNT
dXNwZW5kZWQKKyAgICAgICAgICAgICYmIGlzSW5BY3RpdmVEb2N1bWVudCA9PSBvdGhlci5pc0lu
QWN0aXZlRG9jdW1lbnQKKyAgICAgICAgICAgICYmIGlzRnVsbHNjcmVlbiA9PSBvdGhlci5pc0Z1
bGxzY3JlZW4KKyAgICAgICAgICAgICYmIGlzTXV0ZWQgPT0gb3RoZXIuaXNNdXRlZAorICAgICAg
ICAgICAgJiYgaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUgPT0gb3RoZXIuaXNNZWRpYURvY3Vt
ZW50SW5NYWluRnJhbWUKKyAgICAgICAgICAgICYmIGlzVmlkZW8gPT0gb3RoZXIuaXNWaWRlbwor
ICAgICAgICAgICAgJiYgaXNBdWRpbyA9PSBvdGhlci5pc0F1ZGlvCisgICAgICAgICAgICAmJiBo
YXNBdWRpbyA9PSBvdGhlci5oYXNBdWRpbworICAgICAgICAgICAgJiYgaGFzVmlkZW8gPT0gb3Ro
ZXIuaGFzVmlkZW8KKyAgICAgICAgICAgICYmIGhhc1JlbmRlcmVyID09IG90aGVyLmhhc1JlbmRl
cmVyCisgICAgICAgICAgICAmJiBhdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUgPT0gb3RoZXIu
YXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlCisgICAgICAgICAgICAmJiB1c2VySGFzUGxheWVk
QXVkaW9CZWZvcmUgPT0gb3RoZXIudXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlCisgICAgICAgICAg
ICAmJiBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgPT0gb3RoZXIuaXNFbGVtZW50UmVj
dE1vc3RseUluTWFpbkZyYW1lCisgICAgICAgICAgICAmJiBwbGF5YmFja1Blcm1pdHRlZCA9PSBv
dGhlci5wbGF5YmFja1Blcm1pdHRlZAorICAgICAgICAgICAgJiYgcGFnZU1lZGlhUGxheWJhY2tT
dXNwZW5kZWQgPT0gb3RoZXIucGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQKKyAgICAgICAgICAg
ICYmIGlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCA9PSBvdGhlci5pc01lZGlhRG9j
dW1lbnRBbmROb3RPd25lckVsZW1lbnQKKyAgICAgICAgICAgICYmIHBhZ2VFeHBsaWNpdGx5QWxs
b3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgPT0gb3RoZXIucGFnZUV4cGxpY2l0bHlBbGxvd3NF
bGVtZW50VG9BdXRvcGxheUlubGluZQorICAgICAgICAgICAgJiYgcmVxdWlyZXNGdWxsc2NyZWVu
Rm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQgPT0gb3RoZXIucmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQKKyAg
ICAgICAgICAgICYmIGhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxk
QXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSA9PSBvdGhlci5oYXNIYWRVc2VySW50ZXJh
Y3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1
cmUKKyAgICAgICAgICAgICYmIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9S
YXRlQ2hhbmdlID09IG90aGVyLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9S
YXRlQ2hhbmdlCisgICAgICAgICAgICAmJiBpc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
ckF1ZGlvUmF0ZUNoYW5nZSA9PSBvdGhlci5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
ckF1ZGlvUmF0ZUNoYW5nZQorICAgICAgICAgICAgJiYgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlID09IG90aGVyLmlzVmlkZW9BbmRSZXF1aXJl
c1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZQorICAgICAgICAgICAgJiYgbm9V
c2VyR2VzdHVyZVJlcXVpcmVkID09IG90aGVyLm5vVXNlckdlc3R1cmVSZXF1aXJlZAorICAgICAg
ICAgICAgJiYgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyA9PSBvdGhlci5yZXF1aXJl
c1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nCisgICAgICAgICAgICAmJiBoYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmcgPT0gb3RoZXIuaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nCisgICAgICAg
ICAgICAmJiBvdXRzaWRlT2ZGdWxsc2NyZWVuID09IG90aGVyLm91dHNpZGVPZkZ1bGxzY3JlZW4K
KyAgICAgICAgICAgICYmIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCA9PSBvdGhlci5pc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQ7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IFZpZGVvVXNhZ2VJbmZvIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICEo
KnRoaXMgPT0gb3RoZXIpOworICAgIH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgT3B0aW9uYWw8VmlkZW9Vc2FnZUluZm8+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBpbmxpbmUgdm9pZCBWaWRlb1VzYWdlSW5mbzo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtZWRpYVVSTDsKKyAg
ICBlbmNvZGVyIDw8IGlzUGxheWluZzsKKyAgICBlbmNvZGVyIDw8IGNhblNob3dDb250cm9sc01h
bmFnZXI7CisgICAgZW5jb2RlciA8PCBjYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzOworICAgIGVu
Y29kZXIgPDwgaXNTdXNwZW5kZWQ7CisgICAgZW5jb2RlciA8PCBpc0luQWN0aXZlRG9jdW1lbnQ7
CisgICAgZW5jb2RlciA8PCBpc0Z1bGxzY3JlZW47CisgICAgZW5jb2RlciA8PCBpc011dGVkOwor
ICAgIGVuY29kZXIgPDwgaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWU7CisgICAgZW5jb2RlciA8
PCBpc1ZpZGVvOworICAgIGVuY29kZXIgPDwgaXNBdWRpbzsKKyAgICBlbmNvZGVyIDw8IGhhc1Zp
ZGVvOworICAgIGVuY29kZXIgPDwgaGFzQXVkaW87CisgICAgZW5jb2RlciA8PCBoYXNSZW5kZXJl
cjsKKyAgICBlbmNvZGVyIDw8IGF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZTsKKyAgICBlbmNv
ZGVyIDw8IHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTsKKyAgICBlbmNvZGVyIDw8IGlzRWxlbWVu
dFJlY3RNb3N0bHlJbk1haW5GcmFtZTsKKyAgICBlbmNvZGVyIDw8IHBsYXliYWNrUGVybWl0dGVk
OworICAgIGVuY29kZXIgPDwgcGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQ7CisgICAgZW5jb2Rl
ciA8PCBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQ7CisgICAgZW5jb2RlciA8PCBw
YWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lOworICAgIGVuY29kZXIg
PDwgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJt
aXR0ZWQ7CisgICAgZW5jb2RlciA8PCBoYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250
YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmU7CisgICAgZW5jb2RlciA8
PCBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZTsKKyAgICBl
bmNvZGVyIDw8IGlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdl
OworICAgIGVuY29kZXIgPDwgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1
ZVRvTG93UG93ZXJNb2RlOworICAgIGVuY29kZXIgPDwgbm9Vc2VyR2VzdHVyZVJlcXVpcmVkOwor
ICAgIGVuY29kZXIgPDwgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZzsKKyAgICBlbmNv
ZGVyIDw8IGhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZzsKKyAgICBlbmNvZGVyIDw8IG91dHNp
ZGVPZkZ1bGxzY3JlZW47CisgICAgZW5jb2RlciA8PCBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRl
bnQ7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+IGlubGluZSBPcHRpb25hbDxWaWRlb1Vz
YWdlSW5mbz4gVmlkZW9Vc2FnZUluZm86OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IFZpZGVvVXNhZ2VJbmZvIGluZm87CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubWVk
aWFVUkwpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLmlzUGxheWluZykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGluZm8uY2FuU2hvd0NvbnRyb2xzTWFuYWdlcikpCisgICAgICAgIHJldHVybiB7IH07
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uY2FuU2hvd05vd1BsYXlpbmdDb250cm9s
cykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8u
aXNTdXNwZW5kZWQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmlzSW5BY3RpdmVEb2N1bWVudCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNGdWxsc2NyZWVuKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc011dGVkKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc01lZGlhRG9jdW1l
bnRJbk1haW5GcmFtZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGluZm8uaXNWaWRlbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGluZm8uaXNBdWRpbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzVmlkZW8pKQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmhhc0F1ZGlvKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNSZW5kZXJlcikpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uYXVkaW9FbGVt
ZW50V2l0aFVzZXJHZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUpKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzRWxlbWVudFJlY3RNb3N0
bHlJbk1haW5GcmFtZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGluZm8ucGxheWJhY2tQZXJtaXR0ZWQpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc01l
ZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQpKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRv
QXV0b3BsYXlJbmxpbmUpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2Ny
ZWVuTm90UGVybWl0dGVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaW5mby5oYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3Vs
ZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUpKQorICAgICAgICByZXR1cm4geyB9Owor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yVmlkZW9SYXRlQ2hhbmdlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaW5mby5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlv
UmF0ZUNoYW5nZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGluZm8uaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93
ZXJNb2RlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5ub1VzZXJHZXN0dXJlUmVxdWlyZWQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmhh
c0V2ZXJOb3RpZmllZEFib3V0UGxheWluZykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ub3V0c2lkZU9mRnVsbHNjcmVlbikpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNMYXJnZUVub3VnaEZv
ck1haW5Db250ZW50KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBpbmZvOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggZTc4MWYzNzRmMjk1MDllNTU1OTM5OWM4MThmNTFkMzdjZGM5OTlhYi4uNmMwZTg0
NDQyMjNkMTE3Njk5NDg1YjE0MzZmODYxYmYyZjA4Yjk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNDIyMyw2ICs0MjIzLDUyIEBAIEludGVybmFsczo6TWVkaWFTZXNz
aW9uU3RhdGUgSW50ZXJuYWxzOjptZWRpYVNlc3Npb25TdGF0ZShIVE1MTWVkaWFFbGVtZW50JiBl
bGVtCiB9CiAjZW5kaWYKIAorRXhjZXB0aW9uT3I8SW50ZXJuYWxzOjpWaWRlb1VzYWdlU3RhdGU+
IEludGVybmFsczo6dmlkZW9Vc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0Cit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBh
dXRvIGluZm8gPSBlbGVtZW50Lm1lZGlhU2Vzc2lvbigpLnZpZGVvVXNhZ2VJbmZvKCk7CisgICAg
aWYgKCFpbmZvKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3Ig
fTsKKworICAgIHJldHVybiB7IHsgaW5mby52YWx1ZSgpLm1lZGlhVVJMLnN0cmluZygpLAorICAg
ICAgICBpbmZvLnZhbHVlKCkuaXNQbGF5aW5nLAorICAgICAgICBpbmZvLnZhbHVlKCkuY2FuU2hv
d0NvbnRyb2xzTWFuYWdlciwKKyAgICAgICAgaW5mby52YWx1ZSgpLmNhblNob3dOb3dQbGF5aW5n
Q29udHJvbHMsCisgICAgICAgIGluZm8udmFsdWUoKS5pc1N1c3BlbmRlZCwKKyAgICAgICAgaW5m
by52YWx1ZSgpLmlzSW5BY3RpdmVEb2N1bWVudCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzRnVs
bHNjcmVlbiwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTXV0ZWQsCisgICAgICAgIGluZm8udmFs
dWUoKS5pc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlz
VmlkZW8sCisgICAgICAgIGluZm8udmFsdWUoKS5pc0F1ZGlvLAorICAgICAgICBpbmZvLnZhbHVl
KCkuaGFzVmlkZW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNBdWRpbywKKyAgICAgICAgaW5m
by52YWx1ZSgpLmhhc1JlbmRlcmVyLAorICAgICAgICBpbmZvLnZhbHVlKCkuYXVkaW9FbGVtZW50
V2l0aFVzZXJHZXN0dXJlLAorICAgICAgICBpbmZvLnZhbHVlKCkudXNlckhhc1BsYXllZEF1ZGlv
QmVmb3JlLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZy
YW1lLAorICAgICAgICBpbmZvLnZhbHVlKCkucGxheWJhY2tQZXJtaXR0ZWQsCisgICAgICAgIGlu
Zm8udmFsdWUoKS5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwKKyAgICAgICAgaW5mby52YWx1
ZSgpLmlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCwKKyAgICAgICAgaW5mby52YWx1
ZSgpLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUsCisgICAgICAg
IGluZm8udmFsdWUoKS5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNj
cmVlbk5vdFBlcm1pdHRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc0hhZFVzZXJJbnRlcmFj
dGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVy
ZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
VmlkZW9SYXRlQ2hhbmdlLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNBdWRpb0FuZFJlcXVpcmVz
VXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UsCisgICAgICAgIGluZm8udmFsdWUoKS5pc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUsCisgICAg
ICAgIGluZm8udmFsdWUoKS5ub1VzZXJHZXN0dXJlUmVxdWlyZWQsCisgICAgICAgIGluZm8udmFs
dWUoKS5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nLAorICAgICAgICBpbmZvLnZhbHVl
KCkuaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nLAorICAgICAgICBpbmZvLnZhbHVlKCkub3V0
c2lkZU9mRnVsbHNjcmVlbiwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTGFyZ2VFbm91Z2hGb3JN
YWluQ29udGVudCwKKyAgICB9IH07CisKKyNlbHNlCisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciB9OworI2VuZGlmCit9CisKKwogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggZWRlYWJhY2FlN2MxYjUzOWZjMDM1MmYzNzk1ZDhjMWNjN2FmNmUxMC4uYWI0NDAx
ZGM4MTE4ZDRiNzVkMGUwOWEzY2ExZDgzMzFkODYyNTQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oIgogI2luY2x1ZGUgIlNsZWVwRGlzYWJsZXIuaCIKICNpbmNsdWRlICJUZXh0SW5kaWNhdG9y
LmgiCisjaW5jbHVkZSAiVmlkZW9Vc2FnZUluZm8uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9GbG9hdDMyQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtODE0LDYg
KzgxNSw0MSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBFeGNlcHRpb25PcjxOb3dQbGF5aW5nU3Rh
dGU+IG5vd1BsYXlpbmdTdGF0ZSgpIGNvbnN0OwogCisgICAgc3RydWN0IFZpZGVvVXNhZ2VTdGF0
ZSB7CisgICAgICAgIFN0cmluZyBtZWRpYVVSTDsKKyAgICAgICAgYm9vbCBpc1BsYXlpbmc7Cisg
ICAgICAgIGJvb2wgY2FuU2hvd0NvbnRyb2xzTWFuYWdlcjsKKyAgICAgICAgYm9vbCBjYW5TaG93
Tm93UGxheWluZ0NvbnRyb2xzOworICAgICAgICBib29sIGlzU3VzcGVuZGVkOworICAgICAgICBi
b29sIGlzSW5BY3RpdmVEb2N1bWVudDsKKyAgICAgICAgYm9vbCBpc0Z1bGxzY3JlZW47CisgICAg
ICAgIGJvb2wgaXNNdXRlZDsKKyAgICAgICAgYm9vbCBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFt
ZTsKKyAgICAgICAgYm9vbCBpc1ZpZGVvOworICAgICAgICBib29sIGlzQXVkaW87CisgICAgICAg
IGJvb2wgaGFzVmlkZW87CisgICAgICAgIGJvb2wgaGFzQXVkaW87CisgICAgICAgIGJvb2wgaGFz
UmVuZGVyZXI7CisgICAgICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOworICAg
ICAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTsKKyAgICAgICAgYm9vbCBpc0VsZW1l
bnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7CisgICAgICAgIGJvb2wgcGxheWJhY2tQZXJtaXR0ZWQ7
CisgICAgICAgIGJvb2wgcGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQ7CisgICAgICAgIGJvb2wg
aXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50OworICAgICAgICBib29sIHBhZ2VFeHBs
aWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmU7CisgICAgICAgIGJvb2wgcmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ7Cisg
ICAgICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRB
dXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlOworICAgICAgICBib29sIGlzVmlkZW9BbmRS
ZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlOworICAgICAgICBib29sIGlzQXVk
aW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlOworICAgICAgICBib29s
IGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsK
KyAgICAgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWlyZWQ7CisgICAgICAgIGJvb2wgcmVxdWly
ZXNQbGF5YmFja0FuZElzTm90UGxheWluZzsKKyAgICAgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmc7CisgICAgICAgIGJvb2wgb3V0c2lkZU9mRnVsbHNjcmVlbjsKKyAgICAgICAg
Ym9vbCBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQ7CisgICAgfTsKKyAgICBFeGNlcHRpb25P
cjxWaWRlb1VzYWdlU3RhdGU+IHZpZGVvVXNhZ2VTdGF0ZShIVE1MTWVkaWFFbGVtZW50JikgY29u
c3Q7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdXNpbmcgUGxheWJhY2tDb250cm9sc1B1cnBv
c2UgPSBNZWRpYUVsZW1lbnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZTsKICAgICBS
ZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDMxOTUyZTk2NWY3ZTE4YzRmNWI1NzUzYWZiNTI4NDc3
NGIyNmQzZS4uZmI2ZTk2MzFkZTMwZDhkMmZkZjZjY2MyMGQ2ZmRkOTk0NzRjNTNhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTEzLDYgKzExMyw0NCBAQCBlbnVtIENv
bXBvc2l0aW5nUG9saWN5IHsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdW5pcXVlSWRlbnRpZmll
cjsKIH07CiAKK1sKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwK
KyAgICBDb25kaXRpb25hbD1WSURFTywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGlj
dGlvbmFyeSBWaWRlb1VzYWdlU3RhdGUgeworICAgIERPTVN0cmluZyBtZWRpYVVSTDsKKyAgICBi
b29sZWFuIGlzUGxheWluZzsKKyAgICBib29sZWFuIGNhblNob3dDb250cm9sc01hbmFnZXI7Cisg
ICAgYm9vbGVhbiBjYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzOworICAgIGJvb2xlYW4gaXNTdXNw
ZW5kZWQ7CisgICAgYm9vbGVhbiBpc0luQWN0aXZlRG9jdW1lbnQ7CisgICAgYm9vbGVhbiBpc0Z1
bGxzY3JlZW47CisgICAgYm9vbGVhbiBpc011dGVkOworICAgIGJvb2xlYW4gaXNNZWRpYURvY3Vt
ZW50SW5NYWluRnJhbWU7CisgICAgYm9vbGVhbiBpc1ZpZGVvOworICAgIGJvb2xlYW4gaXNBdWRp
bzsKKyAgICBib29sZWFuIGhhc1ZpZGVvOworICAgIGJvb2xlYW4gaGFzQXVkaW87CisgICAgYm9v
bGVhbiBoYXNSZW5kZXJlcjsKKyAgICBib29sZWFuIGF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVy
ZTsKKyAgICBib29sZWFuIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTsKKyAgICBib29sZWFuIGlz
RWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZTsKKyAgICBib29sZWFuIHBsYXliYWNrUGVybWl0
dGVkOworICAgIGJvb2xlYW4gcGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQ7CisgICAgYm9vbGVh
biBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQ7CisgICAgYm9vbGVhbiBwYWdlRXhw
bGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lOworICAgIGJvb2xlYW4gcmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ7Cisg
ICAgYm9vbGVhbiBoYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1
dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmU7CisgICAgYm9vbGVhbiBpc1ZpZGVvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZTsKKyAgICBib29sZWFuIGlzQXVkaW9B
bmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlOworICAgIGJvb2xlYW4gaXNW
aWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOworICAg
IGJvb2xlYW4gbm9Vc2VyR2VzdHVyZVJlcXVpcmVkOworICAgIGJvb2xlYW4gcmVxdWlyZXNQbGF5
YmFja0FuZElzTm90UGxheWluZzsKKyAgICBib29sZWFuIGhhc0V2ZXJOb3RpZmllZEFib3V0UGxh
eWluZzsKKyAgICBib29sZWFuIG91dHNpZGVPZkZ1bGxzY3JlZW47CisgICAgYm9vbGVhbiBpc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQ7Cit9OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQsCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCkBAIC03OTUs
NiArODMzLDggQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW0NvbmRpdGlvbmFsPVZJ
REVPXSBIVE1MTWVkaWFFbGVtZW50IGJlc3RNZWRpYUVsZW1lbnRGb3JTaG93aW5nUGxheWJhY2tD
b250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZSk7CiAgICAgW0Nv
bmRpdGlvbmFsPVZJREVPXSBNZWRpYVNlc3Npb25TdGF0ZSBtZWRpYVNlc3Npb25TdGF0ZShIVE1M
TWVkaWFFbGVtZW50IGVsZW1lbnQpOwogCisgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBNYXlUaHJv
d0V4Y2VwdGlvbl0gVmlkZW9Vc2FnZVN0YXRlIHZpZGVvVXNhZ2VTdGF0ZShIVE1MTWVkaWFFbGVt
ZW50IGVsZW1lbnQpOworCiAgICAgRE9NU3RyaW5nIG9uZ29pbmdMb2Fkc0Rlc2NyaXB0aW9ucygp
OwogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29s
ZWFuIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggN2M5YzU0MTVlNzQwOThkODVjY2I1YTAzNmU1YmIxYjJmMGFkOTgxYS4uNjg1NjQzMDYxYmNk
ZDk3ZjMxN2M1M2RhODNhNmMxZTQ1ODg0ZDQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC0yMTIsNiArMjEyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90
X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpNZWRpYVNl
c3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkMzg0Y2U1NjVjNzg0YzE0ZTkxYWZkODk2MDdjNzUz
NDhhYmI3NWNkLi5mZDU2MjcyZWRkYTk4NDc5ZTU0OTdiODk4MzE2YTUzNjI4OGIxYThiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKQEAgLTQ0Miw2ICs0NDIsNyBAQCBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBhZ2VJ
bnNwZWN0b3JDb250cm9sbGVyLmNwcAogVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5zcGVj
dG9yQnJvd3NlckFnZW50LmNwcAogCiBVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91dGlu
Z0FyYml0cmF0b3JQcm94eS5jcHAKK1VJUHJvY2Vzcy9NZWRpYS9WaWRlb1VzYWdlTWFuYWdlci5j
cHAKIAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRp
b24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjkzMjNmYjkzOTYwOThhOThkZjk2ZjZi
ZDYyZDAxNjJkNmRmOGNjOC4uMDkyNDZjMDU0OWVlNWQyMWY0ZDExNmE4ZjhiYzJlNWE4NDgzNDg5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTA0LDYgKzUwNCw4IEBAIFVJUHJvY2Vzcy9t
YWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2luZG93
Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQogCitV
SVByb2Nlc3MvTWVkaWEvY29jb2EvVmlkZW9Vc2FnZU1hbmFnZXJDb2NvYS5tbQorCiBVSVByb2Nl
c3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJv
eHkuY3BwCiAKIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0K
aW5kZXggMzk0YmY5MTkzOTc4N2E3NmJmMTczZTMxOWRjMjJiYjYyMjMyOTdiMC4uYTFmODMwZTZi
YWNjOWQzMmMxM2JhYjYxMzc2YjljMzRhMDZhMzY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTUwLDYgKzUwLDEwIEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorI2luY2x1ZGUgIlZp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2EuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zNjAsNCArMzY0LDI5IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UoKQogI2VuZGlmCiB9CiAKKyNp
ZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorVmlkZW9Vc2FnZU1hbmFn
ZXImIFdlYlBhZ2VQcm94eTo6dmlkZW9Vc2FnZU1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRl
b1VzYWdlTWFuYWdlcikKKyAgICAgICAgbV92aWRlb1VzYWdlTWFuYWdlciA9IFZpZGVvVXNhZ2VN
YW5hZ2VyOjpjcmVhdGUoKTsKKworICAgIHJldHVybiAqbV92aWRlb1VzYWdlTWFuYWdlcjsKK30K
Kwordm9pZCBXZWJQYWdlUHJveHk6OmFkZFZpZGVvVXNhZ2VTZXNzaW9uKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlm
aWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCit7CisgICAgdmlkZW9Vc2FnZU1hbmFnZXIoKS5hZGRN
ZWRpYVNlc3Npb24oaWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7Cit9CisK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbihXZWJDb3JlOjpN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlZpZGVvVXNh
Z2VJbmZvJiBpbmZvKQoreworICAgIHZpZGVvVXNhZ2VNYW5hZ2VyKCkudXBkYXRlVmlkZW9Vc2Fn
ZShpZGVudGlmaWVyLCBpbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZVZpZGVv
VXNhZ2VTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICB2aWRlb1VzYWdlTWFuYWdlcigpLnJlbW92ZU1lZGlhU2Vzc2lvbihpZGVudGlmaWVy
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1ZpZGVvVXNhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL1ZpZGVvVXNhZ2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
OTA1MjZiYWQ1N2ZjYTI3ZWIyNjZmNTM0ODI0NmQ3ZWE1Mjg1MmU1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvVmlkZW9Vc2FnZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IlZpZGVvVXNhZ2VNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAm
JiAhUExBVEZPUk0oTUFDKQorc3RkOjp1bmlxdWVfcHRyPFZpZGVvVXNhZ2VNYW5hZ2VyPiBWaWRl
b1VzYWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxWaWRlb1Vz
YWdlTWFuYWdlcj4oKTsKK30KKyNlbmRpZgorCit2b2lkIFZpZGVvVXNhZ2VNYW5hZ2VyOjogcmVz
ZXQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVmlkZW9Vc2FnZU1hbmFn
ZXI6OmFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJM
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVmlkZW9Vc2FnZU1hbmFnZXI6
OnJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBWaWRlb1VzYWdlTWFu
YWdlcjo6dXBkYXRlVmlkZW9Vc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvJiB2aWRlb1VzYWdlSW5mbykK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvVmlkZW9Vc2FnZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1ZpZGVvVXNhZ2VNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2Y5Yzk3NjdkNmIyZWQyM2U1MDIyNzI1ZWI3Y2VhMWRlNmE0OTZiMgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL1ZpZGVvVXNhZ2VN
YW5hZ2VyLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8V2ViQ29yZS9WaWRlb1VzYWdlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb1VzYWdlTWFuYWdlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisKKyAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPFZpZGVvVXNhZ2VNYW5hZ2VyPiBjcmVhdGUoKTsKKworICAgIHZpcnR1YWwgflZp
ZGVvVXNhZ2VNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7
CisgICAgdmlydHVhbCB2b2lkIGFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlkZW50aWZpZXIgKi8sIGNvbnN0IFVS
TCYgLyogcGFnZVVSTCAqLyk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZU1lZGlhU2Vzc2lvbihX
ZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
VmlkZW9Vc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpWaWRlb1VzYWdlSW5mbyYpOworCitwcm90ZWN0ZWQ6CisgICAgVmlkZW9Vc2FnZU1hbmFnZXIo
KSA9IGRlZmF1bHQ7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9NZWRpYS9jb2NvYS9WaWRlb1VzYWdlTWFuYWdlckNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYS9jb2NvYS9WaWRlb1VzYWdlTWFuYWdlckNvY29hLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGU0ZWIyZTU1MDRkNWMxMmZiY2NlMzhlZWMyMzgwMjg5NDJiNTBiNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL1ZpZGVvVXNhZ2VNYW5hZ2Vy
Q29jb2EuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorCisjaW5jbHVkZSAiVmlk
ZW9Vc2FnZU1hbmFnZXIuaCIKKworT0JKQ19DTEFTUyBVU1ZpZGVvVXNhZ2U7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb1VzYWdlTWFuYWdlckNvY29hIDogcHVibGljIFZpZGVv
VXNhZ2VNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBWaWRlb1VzYWdlTWFuYWdlckNvY29hKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflZpZGVv
VXNhZ2VNYW5hZ2VyQ29jb2EoKTsKKworICAgIHZvaWQgcmVzZXQoKSBmaW5hbDsKKyAgICB2b2lk
IGFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmLCBjb25zdCBVUkwmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZVZpZGVvVXNhZ2UoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VmlkZW9Vc2FnZUlu
Zm8mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNl
c3Npb25JZGVudGlmaWVyKSBmaW5hbDsKKworcHJpdmF0ZToKKworICAgIHN0cnVjdCBTZXNzaW9u
VmlkZW9Vc2FnZSB7CisgICAgICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKwor
ICAgICAgICBTZXNzaW9uVmlkZW9Vc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBw
YWdlVVJMKQorICAgICAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAg
ICAgICwgbV9idW5kbGVJZGVudGlmaWVyKGJ1bmRsZUlkZW50aWZpZXIpCisgICAgICAgICAgICAs
IG1fcGFnZVVSTChwYWdlVVJMKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBXZWJD
b3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICAgICAgU3RyaW5n
IG1fYnVuZGxlSWRlbnRpZmllcjsKKyAgICAgICAgVVJMIG1fcGFnZVVSTDsKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6VmlkZW9Vc2FnZUluZm8+IG1fdmlkZW9Vc2FnZUluZm87CisgICAgICAg
IFJldGFpblB0cjxVU1ZpZGVvVXNhZ2U+IG1fdXNhZ2VUcmFja2VyOworICAgIH07CisKKyAgICBI
YXNoTWFwPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxT
ZXNzaW9uVmlkZW9Vc2FnZT4+IG1fbWVkaWFTZXNzaW9uczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL1ZpZGVv
VXNhZ2VNYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9WaWRlb1VzYWdlTWFuYWdlckNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NjUzNmVlZDQ2MTUyNzRk
ODNkMDkwZTJmMDNkMDJkMDYwNGY3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9WaWRlb1VzYWdlTWFuYWdlckNvY29hLm1tCkBAIC0wLDAg
KzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaWRl
b1VzYWdlTWFuYWdlckNvY29hLmgiCisKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExB
VEZPUk0oTUFDKQorI2ltcG9ydCA8cGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oPgor
CitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitAaW50ZXJmYWNlIFVTVmlkZW9Vc2FnZSA6IE5T
T2JqZWN0CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCdW5kbGVJZGVudGlmaWVyOihOU1N0cmlu
ZyAqKWJ1bmRsZUlkZW50aWZpZXIgVVJMOihOU1VSTCAqKXVybCBtZWRpYVVSTDooTlNVUkwgKilt
ZWRpYVVSTCBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworLSAodm9pZClzdG9wOworLSAodm9p
ZClyZXN0YXJ0OworLSAodm9pZCl1cGRhdGVWaWRlb01ldGFkYXRhOihOU0RpY3Rpb25hcnk8TlNT
dHJpbmcgKiwgaWQ+ICopdmlkZW9NZXRhZGF0YTsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExf
RU5ECisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgYm9vbCBjYW5VcGRhdGVWaWRlb1Vz
YWdlKCkKK3sKKyAgICByZXR1cm4gKFBBTDo6aXNVc2FnZVRyYWNraW5nRnJhbWV3b3JrQXZhaWxh
YmxlKCkgJiYgUEFMOjpnZXRVU1ZpZGVvVXNhZ2VDbGFzcygpKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFZpZGVvVXNhZ2VNYW5hZ2VyPiBWaWRlb1VzYWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxWaWRlb1VzYWdlTWFuYWdlckNvY29hPigpOworfQorCitWaWRl
b1VzYWdlTWFuYWdlckNvY29hOjp+VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYSgpCit7CisgICAgcmVz
ZXQoKTsKK30KKwordm9pZCBWaWRlb1VzYWdlTWFuYWdlckNvY29hOjpyZXNldCgpCit7CisgICAg
Zm9yIChhdXRvJiBzZXNzaW9uIDogbV9tZWRpYVNlc3Npb25zLnZhbHVlcygpKSB7CisgICAgICAg
IGlmIChzZXNzaW9uLT5tX3VzYWdlVHJhY2tlcikgeworICAgICAgICAgICAgW3Nlc3Npb24tPm1f
dXNhZ2VUcmFja2VyIHN0b3BdOworICAgICAgICAgICAgc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIg
PSBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIG1fbWVkaWFTZXNzaW9ucy5jbGVhcigp
OworfQorCit2b2lkIFZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6OmFkZE1lZGlhU2Vzc2lvbihXZWJD
b3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVu
ZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQoreworICAgIGF1dG8gYWRkUmVzdWx0
ID0gbV9tZWRpYVNlc3Npb25zLmVuc3VyZShpZGVudGlmaWVyLCBbJl0geworICAgICAgICByZXR1
cm4gbWFrZVVuaXF1ZTxWaWRlb1VzYWdlTWFuYWdlckNvY29hOjpTZXNzaW9uVmlkZW9Vc2FnZT4o
aWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7CisgICAgfSk7CisgICAgQVNT
RVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKK30KKwordm9pZCBWaWRlb1VzYWdlTWFuYWdlckNv
Y29hOjpyZW1vdmVNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX21lZGlhU2Vzc2lvbnMuY29udGFpbnMoaWRlbnRp
ZmllcikpOworCisgICAgbV9tZWRpYVNlc3Npb25zLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwor
dm9pZCBWaWRlb1VzYWdlTWFuYWdlckNvY29hOjp1cGRhdGVWaWRlb1VzYWdlKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VmlkZW9Vc2Fn
ZUluZm8mIHZpZGVvVXNhZ2VJbmZvKQoreworICAgIEFTU0VSVChtX21lZGlhU2Vzc2lvbnMuY29u
dGFpbnMoaWRlbnRpZmllcikpOworICAgIGF1dG8gc2Vzc2lvbiA9IG1fbWVkaWFTZXNzaW9ucy5n
ZXQoaWRlbnRpZmllcik7CisgICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIWNhblVwZGF0ZVZpZGVvVXNhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8pIHsKKyAgICAgICAgaWYgKHNlc3Npb24tPm1fdmlk
ZW9Vc2FnZUluZm8gPT0gdmlkZW9Vc2FnZUluZm8pCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaWYgKHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyICYmIHNlc3Npb24tPm1fdmlkZW9Vc2Fn
ZUluZm8tPm1lZGlhVVJMICE9IHZpZGVvVXNhZ2VJbmZvLm1lZGlhVVJMKSB7CisgICAgICAgICAg
ICBbc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgc3RvcF07CisgICAgICAgICAgICBzZXNzaW9uLT5t
X3VzYWdlVHJhY2tlciA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXNl
c3Npb24tPm1fdXNhZ2VUcmFja2VyKSB7CisgICAgICAgIGlmICghdmlkZW9Vc2FnZUluZm8uaXNQ
bGF5aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHNlc3Npb24tPm1fdXNhZ2VU
cmFja2VyID0gYWRvcHROUyhbUEFMOjphbGxvY1VTVmlkZW9Vc2FnZUluc3RhbmNlKCkgaW5pdFdp
dGhCdW5kbGVJZGVudGlmaWVyOnNlc3Npb24tPm1fYnVuZGxlSWRlbnRpZmllciBVUkw6KE5TVVJM
ICopc2Vzc2lvbi0+bV9wYWdlVVJMIG1lZGlhVVJMOihOU1VSTCAqKXZpZGVvVXNhZ2VJbmZvLm1l
ZGlhVVJMXSk7CisgICAgICAgIEFTU0VSVChzZXNzaW9uLT5tX3VzYWdlVHJhY2tlcik7CisgICAg
fQorCisgICAgaWYgKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8gJiYgc2Vzc2lvbi0+bV92aWRl
b1VzYWdlSW5mby0+aXNQbGF5aW5nICE9IHZpZGVvVXNhZ2VJbmZvLmlzUGxheWluZykgeworICAg
ICAgICBpZiAodmlkZW9Vc2FnZUluZm8uaXNQbGF5aW5nKQorICAgICAgICAgICAgW3Nlc3Npb24t
Pm1fdXNhZ2VUcmFja2VyIHJlc3RhcnRdOworICAgICAgICBlbHNlCisgICAgICAgICAgICBbc2Vz
c2lvbi0+bV91c2FnZVRyYWNrZXIgc3RvcF07CisgICAgfQorICAgIHNlc3Npb24tPm1fdmlkZW9V
c2FnZUluZm8gPSB2aWRlb1VzYWdlSW5mbzsKKworICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAq
LCBpZD4gKm1ldGFkYXRhID0gQHsKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd0Nv
bnRyb2xzTWFuYWdlcjogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5jYW5TaG93Q29udHJv
bHNNYW5hZ2VyKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd05vd1BsYXlpbmdD
b250cm9sczogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5jYW5TaG93Tm93UGxheWluZ0Nv
bnRyb2xzKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQ6IEAoc2Vzc2lv
bi0+bV92aWRlb1VzYWdlSW5mby0+aXNTdXNwZW5kZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRh
dGFLZXlJc0luQWN0aXZlRG9jdW1lbnQ6IEAoc2Vzc2lvbi0+bV92aWRlb1VzYWdlSW5mby0+aXNJ
bkFjdGl2ZURvY3VtZW50KSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVu
OiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmlzRnVsbHNjcmVlbiksCisgICAgICAgIFVT
VmlkZW9NZXRhZGF0YUtleUlzTXV0ZWQ6IEAoc2Vzc2lvbi0+bV92aWRlb1VzYWdlSW5mby0+aXNN
dXRlZCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEluTWFpbkZy
YW1lOiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmlzTWVkaWFEb2N1bWVudEluTWFpbkZy
YW1lKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlbzogQChzZXNzaW9uLT5tX3Zp
ZGVvVXNhZ2VJbmZvLT5pc1ZpZGVvKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRp
bzogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5pc0F1ZGlvKSwKKyAgICAgICAgVVNWaWRl
b01ldGFkYXRhS2V5Tm9WaWRlbzogQCghc2Vzc2lvbi0+bV92aWRlb1VzYWdlSW5mby0+aGFzVmlk
ZW8pLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlOb0F1ZGlvOiBAKCFzZXNzaW9uLT5tX3Zp
ZGVvVXNhZ2VJbmZvLT5oYXNBdWRpbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVJlbmRl
cmVyOiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmhhc1JlbmRlcmVyKSwKKyAgICAgICAg
VVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOiBAKHNlc3Npb24t
Pm1fdmlkZW9Vc2FnZUluZm8tPmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSksCisgICAgICAg
IFVTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTogQChzZXNzaW9uLT5t
X3ZpZGVvVXNhZ2VJbmZvLT51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUpLAorICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU6IEAoc2Vzc2lvbi0+
bV92aWRlb1VzYWdlSW5mby0+aXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKSwKKyAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQ6IEAoc2Vzc2lvbi0+bV92aWRl
b1VzYWdlSW5mby0+cGxheWJhY2tQZXJtaXR0ZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFL
ZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZDogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZv
LT5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtl
eUlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudDogQChzZXNzaW9uLT5tX3ZpZGVvVXNh
Z2VJbmZvLT5pc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQpLAorICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
OiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVu
dFRvQXV0b3BsYXlJbmxpbmUpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDogQChzZXNz
aW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNr
QW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUhh
c0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJp
dHJhcnlVc2VyR2VzdHVyZTogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5oYXNIYWRVc2Vy
SW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNl
ckdlc3R1cmUpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNV
c2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZTogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZv
LT5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSksCisgICAg
ICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlOiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmlzQXVkaW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKSwKKyAgICAgICAgVVNWaWRlb01ldGFk
YXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJN
b2RlOiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJH
ZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0
YUtleU5vVXNlckdlc3R1cmVSZXF1aXJlZDogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5u
b1VzZXJHZXN0dXJlUmVxdWlyZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJl
c1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nOiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPnJl
cXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFL
ZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmc6IEAoc2Vzc2lvbi0+bV92aWRlb1VzYWdlSW5m
by0+aGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5T3V0c2lkZU9mRnVsbHNjcmVlbjogQChzZXNzaW9uLT5tX3ZpZGVvVXNhZ2VJbmZvLT5vdXRz
aWRlT2ZGdWxsc2NyZWVuKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3Vn
aEZvck1haW5Db250ZW50OiBAKHNlc3Npb24tPm1fdmlkZW9Vc2FnZUluZm8tPmlzTGFyZ2VFbm91
Z2hGb3JNYWluQ29udGVudCksCisgICAgfTsKKworICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tl
ciB1cGRhdGVWaWRlb01ldGFkYXRhOm1ldGFkYXRhXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KaW5kZXggNTY3MTI1NTRi
NmY2MmI4NjAxMzBiNjczNzdlM2Y0MzM2YWJjODIwYy4uNmYwY2I5OWFhYjFlOTNkNWVmZjRkNDhj
ZDMyMjkxOWNjYzQxNjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlv
bi5tbQpAQCAtMjksNyArMjksOSBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKICNpbXBvcnQg
PFNlY3VyaXR5L1NlY0l0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNpbXBv
cnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3Rm
L3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjOTdlMGFlNzk1YTkx
NzdiYjNmNTZkMGQwMWRhOTYxM2FhZGYyYzUwLi5lZTAwNWIyZmI3ZGQzOTgzZWU5YzQwM2VjY2M0
MTI1NzdiY2M3NzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI3OCw2ICsyNzgsMTAgQEAKICNpbmNsdWRlICJEYXRhRGV0ZWN0aW9uUmVzdWx0LmgiCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5j
bHVkZSAiVmlkZW9Vc2FnZU1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRpb25z
Lmg+CiAjZWxzZQpAQCAtNzQ2Miw2ICs3NDY2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNl
dFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICB9CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgaWYgKG1f
dmlkZW9Vc2FnZU1hbmFnZXIpCisgICAgICAgIG1fdmlkZW9Vc2FnZU1hbmFnZXItPnJlc2V0KCk7
CisjZW5kaWYKKwogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXKQogICAgIGlm
IChyZXNldFN0YXRlUmVhc29uICE9IFJlc2V0U3RhdGVSZWFzb246Ok5hdmlnYXRpb25Td2FwKQog
ICAgICAgICBtX2NvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbiA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI4YTc2ZmRlMjAyNzRjMDQ4YWQwMjc2
YmMwZDljMWU3MDM4OTdkNGUuLjQ1ZjE3YzlmNGI3YTkyMDM3ZDQ5YzkyMzkwODhmYjQ0NGIyYTc3
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjcsNiArMTY3
LDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmlj
ZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMp
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGVudFdvcmxkOwpA
QCAtMjQzLDYgKzI0Nyw3IEBAIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU2hh
cmVEYXRhOwogc3RydWN0IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZTsKIHN0cnVjdCBUZXh0Q2hl
Y2tpbmdSZXN1bHQ7CitzdHJ1Y3QgVmlkZW9Vc2FnZUluZm87CiBzdHJ1Y3QgVmlld3BvcnRBdHRy
aWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCkBAIC0yOTgsNiArMzAzLDcgQEAgY2xh
c3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXJQcm94eTsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk7CitjbGFzcyBWaWRlb1VzYWdlTWFuYWdlcjsKIGNs
YXNzIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRDYWNoZTsKIGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTsK
QEAgLTE3MjgsNiArMTczNCwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbGF0Zm9ybURpZFNlbGVj
dEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYp
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQor
ICAgIFZpZGVvVXNhZ2VNYW5hZ2VyJiB2aWRlb1VzYWdlTWFuYWdlcigpOworICAgIHZvaWQgYWRk
VmlkZW9Vc2FnZVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiAvKiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8p
OworICAgIHZvaWQgdXBkYXRlVmlkZW9Vc2FnZUZvclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6VmlkZW9Vc2FnZUluZm8mKTsKKyAgICB2b2lk
IHJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQ
cm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBw
bGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTIzNTMsNiArMjM2NiwxMCBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1B
QykKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9Vc2FnZU1hbmFnZXI+IG1fdmlkZW9Vc2FnZU1h
bmFnZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6SW5wdXRNb2RlPiBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2U7CiAgICAgVHJhbnNh
Y3Rpb25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBmMzNiMmUzNGJlOGE1YmNjMTM4MWZjMTAxY2I4YjFjNWQ1OWEzYzk1Li4yMjZmNGQxODU5
ODEwNzZjYTg2Y2M4ZDUyOWVjZjEzOTE0YWNjNzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01ODcsNCArNTg3LDEwIEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0
ZW1zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0
aW9uSXRlbT4gaXRlbXMpCiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0o
TUFDKQorICAgIEFkZFZpZGVvVXNhZ2VTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50
aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIFVSTCBwYWdlVVJMKTsK
KyAgICBVcGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpWaWRlb1VzYWdlSW5mbyBpbmZvKTsK
KyAgICBSZW1vdmVWaWRlb1VzYWdlU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpOworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUyNjNkMWMxNWQwYmNjNWE3MGY0OWZlMmQ0
MjMxYTg3MDIxYjU3OTYuLmIxZWUyMWNlZTMwYzI3ZTU2NmM2YjZlOTYyZmNmOGM4YjVmZWUxNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjE1NSw2ICsyMTU1LDEwIEBACiAJCTA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNDcyMzlDQkNCNzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTA3OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5
NEI0QUIyNDQ1MUJCOTAwMDFCOUM0IC8qIFZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBWaWRlb1VzYWdlTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzk0QjRBQzI0NDUxQkI5MDAwMUI5QzQgLyogVmlkZW9Vc2FnZU1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9Vc2FnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDc5NEI0QUUyNDQ1MjRCMDAwMDFCOUM0IC8qIFZpZGVvVXNhZ2VN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpZGVvVXNhZ2VNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIFZp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9Vc2FnZU1hbmFnZXJD
b2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCOTFDN0JBNDNFMDBC
OUNBNjkgLyogV0tGcmFtZUhhbmRsZVJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS0ZyYW1lSGFuZGxlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDdBNUVCQkExQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1MTksNiAr
NTUyMywyNSBAQAogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJMDc5NEI0QTkyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkwNzk0QjRBQTI0NDUxQkI5MDAwMUI5
QzQgLyogY29jb2EgKi8sCisJCQkJMDc5NEI0QUUyNDQ1MjRCMDAwMDFCOUM0IC8qIFZpZGVvVXNh
Z2VNYW5hZ2VyLmNwcCAqLywKKwkJCQkwNzk0QjRBQzI0NDUxQkI5MDAwMUI5QzQgLyogVmlkZW9V
c2FnZU1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gTWVkaWE7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OworCQkwNzk0QjRBQTI0NDUxQkI5MDAwMUI5QzQgLyogY29jb2Eg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTA3OTRCNEFG
MjQ0NTJBMkMwMDAxQjlDNCAvKiBWaWRlb1VzYWdlTWFuYWdlckNvY29hLmggKi8sCisJCQkJMDc5
NEI0QUIyNDQ1MUJCOTAwMDFCOUM0IC8qIFZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2EubW0gKi8sCisJ
CQkpOworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsK
IAkJMDdDNzVDMTcyMzk5QTNEQjAwODhFNjVCIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTg4NTUsNiArODg3OCw3IEBACiAJCQkJMkRBOTQ0
QTgxODg0RTlBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzExMUIxODExMkY1RkI0MDAzMzdC
QUIgLyogTGF1bmNoZXIgKi8sCiAJCQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAq
LywKKwkJCQkwNzk0QjRBOTI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWEgKi8sCiAJCQkJQ0Q0NTcw
RDgyNDQ0Q0ExNzAwQTNEQ0VCIC8qIE1lZGlhICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQw
M0VEMyAvKiBOZXR3b3JrICovLAogCQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3Rp
ZmljYXRpb25zICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA1NDNkZTIzZGE4OWUxYjc0
ZGJhOTdhYTFhMzk1M2YyY2Y2OWE0ZDFjLi4yY2Y3ZTMwNGYwMjE5MjZkMDUxYWZhNGI1MjQ5NWNj
ZjMwMDU5YWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAwOCw5ICsxMDA4LDI1IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvCiB7CiAgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKS5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7
CiB9Ci0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1B
QykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRWaWRlb1VzYWdlU2Vzc2lvbihNZWRpYVNlc3Np
b25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwg
Y29uc3QgVVJMJiBwYWdlVVJMKQoreworICAgIG1fcGFnZS5hZGRWaWRlb1VzYWdlU2Vzc2lvbihp
ZGVudGlmaWVyLCBidW5kbGVJZGVudGlmaWVyLCBwYWdlVVJMKTsKK30KKwordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnVwZGF0ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgVmlkZW9Vc2FnZUluZm8mIHVzYWdlKQoreworICAgIG1fcGFn
ZS51cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbihpZGVudGlmaWVyLCB1c2FnZSk7Cit9CisKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpyZW1vdmVWaWRlb1VzYWdlU2Vzc2lvbihNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9wYWdlLnJlbW92ZVZpZGVvVXNhZ2VTZXNz
aW9uKGlkZW50aWZpZXIpOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQ
TEFURk9STShNQUMpCisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5U
b01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggYTg1OTMxYzcxMDZmY2I0NjAxY2NjZGM5ZDUyMzY1NDYwOGM4NjY4
Ny4uNjUxZjFiMjA3NGNmZTMwNDgzMGI2OTc4M2Y1MTNmZTJlNjljYzA1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMjcwLDYgKzI3MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhpdFZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmlu
YWw7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMp
CisgICAgdm9pZCBhZGRWaWRlb1VzYWdlU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlkZW50aWZpZXIgKi8sIGNvbnN0IFVSTCYg
LyogcGFnZVVSTCAqLykgZmluYWw7CisgICAgdm9pZCB1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lv
bihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpWaWRlb1Vz
YWdlSW5mbyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlVmlkZW9Vc2FnZVNlc3Npb24oV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcikgZmluYWw7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZDQzY2E3N2U5NDI5MGY4NTVhNDMyMzZjOTVmMDMzN2FiMzMxOTUwYy4u
MmI1MGJlY2U3MmJmZjI3MWVmNDk0MzY1ODZhNzI5NTNhMWFhZWRkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcwNjIsNiArNzA2MiwyMyBA
QCBib29sIFdlYlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJw
b3NlIHB1cnBvc2UpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgUExBVEZPUk0oTUFDQ0FU
QUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKK3ZvaWQgV2ViUGFnZTo6YWRkVmlkZW9Vc2FnZVNlc3Np
b24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRs
ZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkFkZFZpZGVvVXNhZ2VTZXNzaW9uKGlkZW50aWZpZXIsIGJ1bmRsZUlkZW50
aWZpZXIsIHBhZ2VVUkwpKTsKK30KKwordm9pZCBXZWJQYWdlOjp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFZpZGVvVXNh
Z2VJbmZvJiB1c2FnZSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVwZGF0
ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKGlkZW50aWZpZXIsIHVzYWdlKSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cmVtb3ZlVmlkZW9Vc2FnZVNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVtb3ZlVmlkZW9V
c2FnZVNlc3Npb24oaWRlbnRpZmllcikpOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGQwZWQ5YzAwNzlmZTVhODRmZWMxZWYxNDZmOThmNjliMmY1ZWJiYzcu
LjcwYzQzOWVkZTczODJmZjNmMzYwZDFhZDQ1MjQ4OGQ1Y2EyOWYxNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzNSw2ICsxMzUsMTAgQEAgdHlw
ZWRlZiBzdHJ1Y3QgX0F0a09iamVjdCBBdGtPYmplY3Q7CiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRp
b25zL1BsYXRmb3JtR2VzdHVyZUV2ZW50TWFjLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Np
b25JZGVudGlmaWVyLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUg
IkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Zpc2libGVT
ZWxlY3Rpb24uaD4KQEAgLTIxMSw2ICsyMTUsNyBAQCBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwog
c3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiBzdHJ1Y3QgUnVuSmF2YVNjcmlwdFBhcmFt
ZXRlcnM7CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Oworc3RydWN0IFZpZGVvVXNhZ2VJbmZv
Owogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxF
TUVOVCkKQEAgLTEzMDcsNyArMTMxMiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0luQXBw
QnJvd3NlclByaXZhY3lRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzSW5BcHBCcm93c2Vy
UHJpdmFjeVF1aXJrczsgfQogICAgIAogICAgIGJvb2wgc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5n
Rm9yKFdlYkNvcmU6OlJlbmRlcmluZ1B1cnBvc2UpOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIGFkZFZpZGVvVXNhZ2VTZXNzaW9u
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgLyogYnVuZGxl
SWRlbnRpZmllciAqLywgY29uc3QgVVJMJiAvKiBwYWdlVVJMICovKTsKKyAgICB2b2lkIHVwZGF0
ZVZpZGVvVXNhZ2VGb3JTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvJik7CisgICAgdm9pZCByZW1vdmVWaWRlb1VzYWdl
U2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyKTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396497</attachid>
            <date>2020-04-14 21:44:25 -0700</date>
            <delta_ts>2020-04-15 07:04:50 -0700</delta_ts>
            <desc>updated WIP patch for the bots</desc>
            <filename>bug-210518-20200414214424.patch</filename>
            <type>text/plain</type>
            <size>106559</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg2NjczZmVmMTM3Mjdk
ZGUxZTViYWI5NGMxMGMwMGVjYmJmYWY2OC4uMTZkODAzZTc1YWE2NmYxOTY4YjBhZTkyMDg5NmE2
Y2E0N2ZlYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0wNC0xNCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVw
ZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUGFzcyBtZWRpYSBlbGVtZW50IHN0YXRlIHRvIFNjcmVlblRpbWUgZnJhbWV3
b3JrIHdoZW4gaXQgY2hhbmdlcy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpNZWRpYUVsZW1lbnRTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246On5NZWRpYUVsZW1lbnRT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1l
ZGlhVXNhZ2VJZkNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnQ6OnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNz
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlTWVkaWFVc2Fn
ZUlmQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVk
aWFTZXNzaW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBk
YXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJ
bmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRS
ZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFVc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYVVzYWdlU3RhdGUg
Y29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxh
eWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFBh
c3MgbWVkaWEgZWxlbWVudCBzdGF0ZSB0byBTY3JlZW5UaW1lIGZyYW1ld29yayB3aGVuIGl0IGNo
YW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRlbnRpZmllciBjb25zdCk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246Ok1l
ZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lv
bjo6fk1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50
U2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6YWRkVmlkZW9Vc2FnZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojp1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNz
aW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVT
Y3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpy
ZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlv
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNj
aGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1VzYWdlSW5mby5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9Vc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2aWRlb1VzYWdlU3RhdGUgY29uc3Qp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAzYTNlMjZlMDIyMTE2OWYxMWEyZThkYjY2ODZlNjU2ZTMx
N2MxYjM0Li4yOTY4ZjhjZGM2OTg4MTYyMDUwMDljMDg5NTQ0OTM0ZGU4OTBjMzBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xNCAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5U
aW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEx
ODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvY29jb2EvVXNh
Z2VUcmFja2luZ1NvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jb2NvYS9Vc2FnZVRy
YWNraW5nU29mdExpbmsubW06IEFkZGVkLgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5n
QXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2ZDNhMTJkY2QzMDliOTQ4YWQ4YzcxMTdhMGMx
ZTUwYTliMDFhYTQuLmMwMTE3Yjk2ODU4ODBkNDI4YTJhMWY1ZGY0YzM2YTU2OTAzY2I2NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUg
YXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1lZGlhVXNhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
ZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVVzYWdlTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25NZWRpYVVzYWdl
OjpTZXNzaW9uTWVkaWFVc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01l
ZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp1c2FnZVRy
YWNraW5nQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6On5NZWRpYVVz
YWdlTWFuYWdlckNvY29hKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRN
ZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjpy
ZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNv
Y29hOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZE1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVt
b3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJh
Y2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlkZW9Vc2FnZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZFZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVtb3ZlVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9WaWRlb1VzYWdlTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFu
YWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFn
ZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5h
Z2VyOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvVmlkZW9V
c2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1Zp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNh
Z2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25WaWRlb1VzYWdlOjpTZXNzaW9uVmlkZW9Vc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1ZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2EubW06
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5VcGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6On5WaWRlb1VzYWdlTWFuYWdlckNvY29hKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjpyZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0
aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojph
ZGRWaWRlb1VzYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
dXBkYXRlVmlkZW9Vc2FnZUZvclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWRkVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW92ZVZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIwLTA0
LTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyNTk4OTgpOiBUYWJzIG9jY2FzaW9uYWxseSBnbyBibGFuayBhbmQgZ2V0IHN0
dWNrIHRoYXQgd2F5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2OTcwN2QxMTIyZWRlMDg4ZjlkZjdh
OGU2NDJjODhjODNiYmQ0N2RlLi4yOWQzMjZkNzI3M2ZiYmQ1NjVkZGRjNDc4M2MwYjkyNTAzNDg3
YWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNTgsNiArMTE1OCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVVzYWdlSW5mb28uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9PcGVuR0xTaGltcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzBlMmFiMmMwODExYmVmMmY3MjU1NDI3ZWVkODY0YjMy
YjQxNjM4Yi4uZmZlOGRlZmQ2MWFlNjVlM2EzNGMwNjMzYmQ5NGM1OTkwMWM3NWNiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjEsNiArMjEsOCBAQAogLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisJCTA3NjExREI2MjQzRkE1QkYwMEQ4MDcw
NCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjExREI0MjQzRkE1QkUwMEQ4MDcwNCAvKiBVc2FnZVRyYWNr
aW5nU29mdExpbmsuaCAqLzsgfTsKKwkJMDc2MTFEQjcyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdl
VHJhY2tpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3NjExREI1MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExp
bmsubW0gKi87IH07CiAJCTA3N0U4N0IxMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAqLzsg
fTsKIAkJMDc3RTg3QjIyMjZBNDYwMzAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzdFODdCMDIy
NkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsuaCAqLzsgfTsKIAkJMEMwMENG
RDQxRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEMwMENGRDIxRjY4Q0U0NjAwQUFD
MjZEIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICovOyB9OwpAQCAtMTkwLDYgKzE5Miw4IEBA
CiAvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
RmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisJCTA3NjExREI0MjQzRkE1QkUwMEQ4MDcwNCAvKiBV
c2FnZVRyYWNraW5nU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
NjExREI1MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2FnZVRyYWNraW5nU29mdExpbmsu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZG
MCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IEFWRm91bmRhdGlvblNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwNzdFODdCMDIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExp
bmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVZGb3VuZGF0aW9uU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEMwMENGRDExRjY4Q0U0NjAwQUFD
MjZEIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjI1LDYgKzYyOSw4IEBACiAJCQkJQ0RBQ0IzNUYyMzg3M0U0ODAwMThE
N0NFIC8qIE1lZGlhVG9vbGJveFNvZnRMaW5rLmggKi8sCiAJCQkJQTFGNjNDOUQyMUE0REJGNzAw
NkZCNDNCIC8qIFBhc3NLaXRTb2Z0TGluay5oICovLAogCQkJCUExRjYzQzlFMjFBNERCRjcwMDZG
QjQzQiAvKiBQYXNzS2l0U29mdExpbmsubW0gKi8sCisJCQkJMDc2MTFEQjQyNDNGQTVCRTAwRDgw
NzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oICovLAorCQkJCTA3NjExREI1MjQzRkE1QkYw
MEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9
IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTg0NSw2ICs4NTEsNyBAQAog
CQkJCTJFMTM0MkNDMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtpdFNvZnRMaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIgLyogVUlLaXRTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBDMkRBMTQ3MUYzQkVCNDkwMERCQzMxNyAvKiBVUkxGb3JtYXR0aW5nU1BJ
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYxMURCNjI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VU
cmFja2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1OTFGM0JFQjQ5MDBE
QkMzMTcgLyogV2ViRmlsdGVyRXZhbHVhdG9yU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTA4
MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
QEAgLTk2NCw2ICs5NzEsNyBAQAogCQkJCUEzQUI2RTU3MUYzRDFEREIwMDlDMTRCMSAvKiBTeXN0
ZW1TbGVlcExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEzQUI2RTY1MUYzRDIxN0Yw
MDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkUxMzQyQ0QyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsubW0gaW4gU291cmNlcyAq
LywKKwkJCQkwNzYxMURCNzI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5r
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwODI2RkExRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBh
bmVsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9V
c2FnZVRyYWNraW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hN2VlZWU1ZmZhM2VmOWFmNzU4NTBh
M2I5YTNiYzliNjQ2ZWMxMmZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaApAQCAtMCwwICsxLDk2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKEFQUF9TU08pCisKKyNpbXBvcnQgPHd0
Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBV
c2FnZVRyYWNraW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoUEFMLCBVU1ZpZGVv
VXNhZ2UpOworI2RlZmluZSBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUg
UEFMOjpjYW5Mb2FkX2xpYkFjY2Vzc2liaWxpdHlfX0FYU0lzb2xhdGVkVHJlZU1vZGUKKworU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBV
U1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5hZ2VyLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5hZ2VyIFBBTDo6Z2V0X1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd0NvbnRyb2xzTWFuYWdlcigpCitT
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcs
IFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMsIE5TU3RyaW5nICop
CisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMgUEFM
OjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Tm93UGxheWluZ0Nv
bnRyb2xzKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNh
Z2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQsIE5TU3RyaW5nICopCisj
ZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tp
bmdfVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c0luQWN0aXZlRG9jdW1lbnQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtl
eUlzSW5BY3RpdmVEb2N1bWVudCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleUlzSW5BY3RpdmVEb2N1bWVudCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVl
biwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuIFBB
TDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuKCkKK1NP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNNdXRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtl
eUlzTXV0ZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFt
ZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50
SW5NYWluRnJhbWUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc01l
ZGlhRG9jdW1lbnRJbk1haW5GcmFtZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW8sIE5T
U3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW8gUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0F1ZGlvKCkKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRh
S2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1Zp
ZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUoKQor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZvcmUsIE5TU3RyaW5nICop
CisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0Jl
Zm9yZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFt
ZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNFbGVtZW50UmVjdE1v
c3RseUluTWFpbkZyYW1lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Tm9B
dWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbyBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW8oKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVv
TWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRl
b01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBh
Z2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5n
X1VTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkKCkKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50LCBOU1N0cmluZyAq
KQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVs
ZW1lbnQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9j
dW1lbnRBbmROb3RPd25lckVsZW1lbnQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGlj
aXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lLCBOU1N0cmluZyAqKQorI2RlZmluZSBV
U1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5s
aW5lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UGFnZUV4cGxpY2l0
bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJl
cXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVk
LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3Jl
ZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SGFz
SGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0
cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlI
YXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJi
aXRyYXJ5VXNlckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFL
ZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9y
QXJiaXRyYXJ5VXNlckdlc3R1cmUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9I
RUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUg
VVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1Jh
dGVDaGFuZ2UgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVv
QW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSgpCitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRh
ZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNV
c2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlk
ZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hh
bmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dl
ck1vZGUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5k
UmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVv
TWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVT
VmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1aXJlZCBQQUw6OmdldF9Vc2FnZVRyYWNr
aW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1aXJlZCgpCitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcsIE5TU3RyaW5nICopCisj
ZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcg
UEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNr
QW5kSXNOb3RQbGF5aW5nKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SGFzRXZlck5vdGlmaWVkQWJv
dXRQbGF5aW5nLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVy
Tm90aWZpZWRBYm91dFBsYXlpbmcgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcoKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlP
dXRzaWRlT2ZGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFL
ZXlPdXRzaWRlT2ZGdWxsc2NyZWVuIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5T3V0c2lkZU9mRnVsbHNjcmVlbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW8s
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW8gUEFMOjpnZXRf
VXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvKCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5UmVuZGVyZXIsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVJl
bmRlcmVyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIo
KQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1Zp
ZGVvTWV0YWRhdGFLZXlOb1ZpZGVvIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5Tm9WaWRlbygpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWlu
Q29udGVudCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNMYXJnZUVu
b3VnaEZvck1haW5Db250ZW50IFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRh
S2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRmZWE2MTFjODQ3NWMyODRkMmUxNDQ3M2FlOTVhOGRlZWExNTJlN2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0
TGluay5tbQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJB
TUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBQQUxfRVhQ
T1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQo
UEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvVXNhZ2UsIFBBTF9FWFBPUlQpOworCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFnZXIsIE5TU3RyaW5n
KiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dO
b3dQbGF5aW5nQ29udHJvbHMsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcs
IFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1lbnQsIE5TU3Ry
aW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRnVs
bHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01l
dGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUsIE5TU3RyaW5nKiwg
UEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW8sIE5T
U3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUF1
ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlLCBOU1N0
cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0Vs
ZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVybWl0dGVkLCBO
U1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQ
YWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVt
ZW50LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lLCBOU1N0cmlu
ZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJl
c0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCwgTlNT
dHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SGFz
SGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0
cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBV
U1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0
ZUNoYW5nZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01l
dGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2Us
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSwg
TlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5
Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nLCBO
U1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlI
YXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4sIE5TU3RyaW5n
KiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW8s
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eVJlbmRlcmVyLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVv
TWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQsIE5TU3RyaW5n
KiwgUEFMX0VYUE9SVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggYTVjZTU4YjVhYjhjNjliN2YyMmQ4MmRhNjRkMjQ2YTMxNzkx
ZjFkMi4uZjRkMTdjMjAxODc4NTE3YWRmOWEzMmQ1YTdkOWNmNGUxNjJiMGQ2NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMy
LDYgKzEzMiw3IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJh
Y2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTM4
NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsKIAkJMDc1NEE1
RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU0QTVFODIxNUVBM0I3
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEzRTIxNEFFNzk5MDA3OTRC
MEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3NjExREMxMjQ0
MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0IC8qIE1lZGlh
VXNhZ2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk3
MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOUExODg0NDg3MjAw
RTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVk
aWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4NzAwRjUwMkNG
IC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3Bw
ICovOyB9OwpAQCAtNTU3MCw2ICs1NTcxLDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5
IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291
cmNlRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFs
dGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVc2FnZUluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
ZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5
ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcwMEY1MDJDRiAv
KiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzNTYs
NiArMjUzNTgsNyBAQAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXll
clByaXZhdGUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyogTWVkaWFTb3Vy
Y2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8qIE1lZGlhU291
cmNlUHJpdmF0ZUNsaWVudC5oICovLAorCQkJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBN
ZWRpYVVzYWdlSW5mby5oICovLAogCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhFQSAvKiBNSU1F
VHlwZUNhY2hlLmNwcCAqLywKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEgLyogTUlNRVR5
cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBOYW1lZEltYWdl
R2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMzE5MTEsNiArMzE5MTQsNyBAQAogCQkJCTA3RkZE
RTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJhY2tDb25zdHJh
aW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAwMTAwQkQyMjU2IC8qIE1l
ZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MTFE
QzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBNZW1v
cnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAwMEQ1RjAxIC8q
IE1lbW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCAxMDFkMTdjYzk4MjYyYjVhOGFjNWJkNGMzY2ZiZTYzMGE5OTdm
YTk2Li5lZTNjNDkyZjBmZGQ0OTFjMjk5ZWE4ZGY4OTFjNzEzNzhkYTBlNjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ1OSw3ICs0NTksNiBAQCBIVE1M
TWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9sb2dnZXIoJmRvY3VtZW50LmxvZ2dlcigpKQog
ICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNlbmRpZgotICAg
ICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lvbklkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCiB7CiAgICAgYWxsTWVkaWFFbGVtZW50cygpLmFkZCh0aGlzKTsKIApAQCAtNzUwNSw3
ICs3NTA0LDcgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU2Vzc2lvblRpdGxlKCkg
Y29uc3QKIAogTWVkaWFTZXNzaW9uSWRlbnRpZmllciBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVNl
c3Npb25VbmlxdWVJZGVudGlmaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tZWRpYVNlc3Np
b25JZGVudGlmaWVyOworICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+bWVkaWFTZXNzaW9uSWRl
bnRpZmllcigpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2VpdmVSZW1vdGVD
b250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENvbW1hbmRU
eXBlIGNvbW1hbmQsIGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb21tYW5kQXJn
dW1lbnQqIGFyZ3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRl
eCAxYTcyOWY0MDkxYWNkZmNmNzY1YzBiZjU2OTE2NjI1YzI1YTIzZmRkLi41OWE3NjA3ZTM3MWQy
YTBmMjg4NDM5Yzk1ODA4YmU5NWQwM2IxZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaApAQCAtMTE5Nyw3ICsxMTk3LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3BsYXlpbmdPblNl
Y29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlvclJlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07Ci0gICAgTWVkaWFTZXNzaW9uSWRl
bnRpZmllciBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXI7CiB9OwogCiBTdHJpbmcgY29udmVydEVu
dW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVudFBsYXliYWNr
U3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKaW5k
ZXggYzZjOWE5ZWUxYjcxZjFjYWIxNGQxOGMwMDk1YmQ5ZmZlYWQ0NWU0MC4uZDRhNGYzOTZjODA5
YTA3YTQ2NTM4NmRmYmUwY2UyNDQ0ZTVjMGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiSFRNTFZp
ZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJOb3dQbGF5aW5n
SW5mby5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKQEAgLTExOSw2ICsxMjAsMTggQEAgTWVkaWFFbGVtZW50U2Vzc2lvbjo6TWVk
aWFFbGVtZW50U2Vzc2lvbihIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAgICwgbV9sb2dJ
ZGVudGlmaWVyKGVsZW1lbnQubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7CisjaWYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBwYWdlID0gbV9l
bGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpLCBt
X2VsZW1lbnQuc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCksIG1fZWxlbWVudC5kb2N1bWVu
dCgpLnVybCgpKTsKKyNlbmRpZgorfQorCitNZWRpYUVsZW1lbnRTZXNzaW9uOjp+TWVkaWFFbGVt
ZW50U2Vzc2lvbigpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1B
QykKKyAgICBpZiAoYXV0byBwYWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Np
b24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpKTsKKyNlbmRpZgogfQogCiB2b2lkIE1lZGlhRWxl
bWVudFNlc3Npb246OnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1bWVudCkKQEAg
LTk5OCw2ICsxMDExLDYyIEBAIE9wdGlvbmFsPE5vd1BsYXlpbmdJbmZvPiBNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpub3dQbGF5aW5nSW5mbygpIGNvbnN0CiAgICAgcmV0dXJuIE5vd1BsYXlpbmdJbmZv
IHsgbV9lbGVtZW50Lm1lZGlhU2Vzc2lvblRpdGxlKCksIG1fZWxlbWVudC5zb3VyY2VBcHBsaWNh
dGlvbklkZW50aWZpZXIoKSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lLCBzdXBwb3J0c1NlZWtpbmcs
IG1fZWxlbWVudC5tZWRpYVNlc3Npb25VbmlxdWVJZGVudGlmaWVyKCksIGlzUGxheWluZywgYWxs
b3dzTm93UGxheWluZ0NvbnRyb2xzVmlzaWJpbGl0eSB9OwogfQogCit2b2lkIE1lZGlhRWxlbWVu
dFNlc3Npb246OnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKQoreworI2lmIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgYXV0byYgZG9jdW1lbnQgPSBtX2VsZW1l
bnQuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnVsbHNjcmVlbkVsZW1lbnQg
PSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxsc2Ny
ZWVuRWxlbWVudCgpOworICAgIGJvb2wgaXNBdWRpbyA9IGNsaWVudCgpLnByZXNlbnRhdGlvblR5
cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wgaXNWaWRlbyA9IGNsaWVudCgpLnBy
ZXNlbnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlID0gZG9jdW1lbnQucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEoKTsK
KyAgICBib29sIGlzUGxheWluZyA9IG1fZWxlbWVudC5pc1BsYXlpbmcoKTsKKworICAgIE1lZGlh
VXNhZ2VJbmZvIHVzYWdlID0gIHsKKyAgICAgICAgbV9lbGVtZW50LmN1cnJlbnRTcmMoKSwKKyAg
ICAgICAgc3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZywKKyAgICAgICAg
Y2FuU2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZTo6Q29udHJvbHNN
YW5hZ2VyKSwKKyAgICAgICAgIXBhZ2UtPmlzVmlzaWJsZUFuZEFjdGl2ZSgpLAorICAgICAgICBt
X2VsZW1lbnQuaXNTdXNwZW5kZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmluQWN0aXZlRG9jdW1l
bnQoKSwKKyAgICAgICAgbV9lbGVtZW50LmlzRnVsbHNjcmVlbigpLAorICAgICAgICBtX2VsZW1l
bnQubXV0ZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuaXNNZWRpYURvY3VtZW50
KCkgJiYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkgJiYgbV9lbGVtZW50LmRvY3VtZW50
KCkuZnJhbWUoKS0+aXNNYWluRnJhbWUoKSksCisgICAgICAgIGlzVmlkZW8sCisgICAgICAgIGlz
QXVkaW8sCisgICAgICAgIG1fZWxlbWVudC5oYXNWaWRlbygpLAorICAgICAgICBtX2VsZW1lbnQu
aGFzQXVkaW8oKSwKKyAgICAgICAgbV9lbGVtZW50LnJlbmRlcmVyKCksCisgICAgICAgIGlzQXVk
aW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgIGlzQXVk
aW8gJiYgaXNQbGF5aW5nLCAvLyB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmUKKyAgICAgICAgaXNF
bGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCksCisgICAgICAgICFwbGF5YmFj
a1Blcm1pdHRlZCgpLAorICAgICAgICBwYWdlLT5tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQoKSwK
KyAgICAgICAgZG9jdW1lbnQuaXNNZWRpYURvY3VtZW50KCkgJiYgIWRvY3VtZW50Lm93bmVyRWxl
bWVudCgpLAorICAgICAgICBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5s
aW5lKG1fZWxlbWVudCksCisgICAgICAgIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJh
Y2soKSAmJiAhZnVsbHNjcmVlblBlcm1pdHRlZCgpLAorICAgICAgICBkb2N1bWVudC5oYXNIYWRV
c2VySW50ZXJhY3Rpb24oKSAmJiBkb2N1bWVudC5xdWlya3MoKS5zaG91bGRBdXRvcGxheUZvckFy
Yml0cmFyeVVzZXJHZXN0dXJlKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVoYXZpb3JSZXN0
cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpICYmICFwcm9jZXNz
aW5nVXNlckdlc3R1cmUsCisgICAgICAgIG1fZWxlbWVudC5oYXNBdWRpbygpICYmIGhhc0JlaGF2
aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKSAmJiAh
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlICYmICFtX2VsZW1lbnQubXV0ZWQoKSAmJiBtX2VsZW1lbnQu
dm9sdW1lKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1
aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKSAmJiAhcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlLAorICAgICAgICAhaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdl
c3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpIHx8IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwK
KyAgICAgICAgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlUGxheWJhY2tUb0NvbnRyb2xD
b250cm9sc01hbmFnZXIpICYmICFpc1BsYXlpbmcsCisgICAgICAgIG1fZWxlbWVudC5oYXNFdmVy
Tm90aWZpZWRBYm91dFBsYXlpbmcoKSwKKyAgICAgICAgZnVsbHNjcmVlbkVsZW1lbnQgJiYgIW1f
ZWxlbWVudC5pc0Rlc2NlbmRhbnRPZigqZnVsbHNjcmVlbkVsZW1lbnQpLAorICAgICAgICBpc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQdXJwb3NlOjpN
ZWRpYUNvbnRyb2xzKSwKKyAgICB9OworCisgICAgaWYgKG1fbWVkaWFVc2FnZUluZm8gJiYgKm1f
bWVkaWFVc2FnZUluZm8gPT0gdXNhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWVkaWFV
c2FnZUluZm8gPSBXVEZNb3ZlKHVzYWdlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS51
cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShtZWRpYVNlc3Npb25JZGVudGlmaWVy
KCksICptX21lZGlhVXNhZ2VJbmZvKTsKKyNlbmRpZgorfQorCiBTdHJpbmcgY29udmVydEVudW1l
cmF0aW9uVG9TdHJpbmcoY29uc3QgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbiBlbnVtZXJhdGlv
blZhbHVlKQogewogICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHZhbHVl
c1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAppbmRleCAx
Y2QyYzhhMGRjN2FlZWRkNzFlNzg2Njg3YzgzZWZkMDdkYjk3ZDFjLi41NjU5ZmMxMzBiNmNiOWVm
ZGJkZDgzZGZlMTI4NDNjNjliYzIxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIu
aCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiTWVkaWFVc2FnZUluZm8u
aCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUgIlN1Y2Nlc3NP
ci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01Nyw3ICs1OCw3IEBAIGNsYXNzIE1lZGlhRWxl
bWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb24KICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRpYUVsZW1lbnRT
ZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5NZWRpYUVsZW1lbnRTZXNz
aW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhRWxlbWVudFNlc3Npb24oKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKQEAgLTE1OSw2ICsxNjAsOSBAQCBwdWJsaWM6
CiAKICAgICBPcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWluZ0luZm8oKSBjb25zdCBm
aW5hbDsKIAorICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIGZpbmFsOworICAg
IE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBtZWRpYVVzYWdlSW5mbygpIGNvbnN0IHsgcmV0dXJu
IG1fbWVkaWFVc2FnZUluZm87IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50
aWZpZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiTWVkaWFFbGVtZW50U2Vzc2lvbiI7IH0KQEAgLTE4OCw2ICsxOTIsOCBAQCBwcml2YXRl
OgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBCZWhhdmlvclJlc3RyaWN0
aW9ucyBtX3Jlc3RyaWN0aW9uczsKIAorICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBtX21l
ZGlhVXNhZ2VJbmZvOworCiAgICAgYm9vbCBtX2VsZW1lbnRJc0hpZGRlblVudGlsVmlzaWJsZUlu
Vmlld3BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbGVtZW50SXNIaWRkZW5CZWNhdXNlSXRX
YXNSZW1vdmVkRnJvbURPTSB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IDNlOTg1YTg5MDA4MDk0OWNjNTdmMmE4NTdkZDZkZjVkYjliYjQ4MTguLjVjYTA4ZDky
OThlMGM1ODk1YzczM2Y3MDZkMDZhYjU3MjZhOGY0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtNjgsNiArNjgsMTEgQEAgY2xhc3MgV0FLUmVzcG9uZGVyOwogI2VuZGlmCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5j
bHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhVXNhZ2VJbmZv
LmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU1Jlc3BvbmRlcjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzU2LDYgKzM2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNsZWFy
UGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgLyog
YnVuZGxlSWRlbnRpZmllciAqLywgY29uc3QgVVJMJiAvKiBwYWdlVVJMICovKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoTWVkaWFTZXNz
aW9uSWRlbnRpZmllciwgY29uc3QgTWVkaWFVc2FnZUluZm8mKSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50aWZpZXIp
IHsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGV4aXRW
aWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1
YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFs
c2U7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9y
bU1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMTg1M2ExMjFjYWIyMjc2MGYxMWYyMjkzMGRmODkyNGM3
ODg1NzRkNi4uOGU3ZjhjMTJiZTk1ZWVmYWE3NzA0MzYwMDMyMTA2YTViZTk4OTk5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNz
aW9uLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybU1lZGlh
U2Vzc2lvbj4gUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1lZGlhCiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyJiBtYW5hZ2VyLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCYgY2xpZW50KQog
ICAgIDogbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogICAgICwgbV9jbGllbnQoY2xp
ZW50KQorICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lvbklkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX3N0YXRlVG9SZXN0
b3JlKElkbGUpCiAgICAgLCBtX25vdGlmeWluZ0NsaWVudChmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCmluZGV4IDkz
MDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFhY2EuLjQ2ODUxMmM0OTc3NjlhYjFm
ZjlhZDEzMjlmM2UwM2Y0OWQ4MTk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJN
ZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3
dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC0xODgs
NiArMTg5LDkgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0dWFsIE9wdGlvbmFsPE5vd1Bs
YXlpbmdJbmZvPiBub3dQbGF5aW5nSW5mbygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCkgeyB9CisKKyAgICBNZWRpYVNlc3Npb25JZGVudGlmaWVy
IG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU2Vzc2lvbklk
ZW50aWZpZXI7IH0KIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uKFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlciYsIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50Jik7CkBA
IC0yMDAsNiArMjA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyPiBtX21hbmFnZXI7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQm
IG1fY2xpZW50OworICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgbV9tZWRpYVNlc3Npb25JZGVu
dGlmaWVyOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgU3RhdGUgbV9zdGF0ZVRvUmVzdG9yZTsK
ICAgICBJbnRlcnJ1cHRpb25UeXBlIG1faW50ZXJydXB0aW9uVHlwZSB7IE5vSW50ZXJydXB0aW9u
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxMzc1NzUwNTU3Y2YzMDc4MGExOWRj
OWYxMWUwNzU5YjQxOGFjZDZmLi5hYmNlYjY0MmMzNWNiYmFjMjM0MjRkMDQzY2M5NGI4Mzk2YmVi
ZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpjcmVhdGUKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRh
dGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKIHsKICAgICBpZiAoYXV0byBleGlzdGluZ01h
bmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXJJZkV4aXN0
cygpKQotICAgICAgICBleGlzdGluZ01hbmFnZXItPnNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0lu
Zm8oKTsKKyAgICAgICAgZXhpc3RpbmdNYW5hZ2VyLT5zY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAppbmRleCAzOTVi
M2NhNjBkODJmZjJiMTg5NDFlNjk2YzAzNTNmMThlYzljMzIwLi5jNzI4ZDg2ZTNmMjA5YzIyYmE0
ZWIxZWJkZDIxNGJhOWExNTNlZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtNTksNyAr
NTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVVcGRhdGVOb3dQbGF5
aW5nSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+KSB7IH0KICAgICBib29s
IGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlKSBjb25zdDsKICAgICBpbnQgY291
bnQoUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSkgY29uc3Q7CiAgICAgYm9vbCBhY3Rp
dmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpIGNvbnN0OwpAQCAtMTE0LDcgKzExNCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVk
aWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7CiAgICAgdmlydHVhbCB2
b2lkIHNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnVi
YmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgY2xpZW50
Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5oCmluZGV4IDVkNmIxM2E4YTA5ODFkM2FkZjU4ODFiMzgwNDVlY2UyNGI4
ZGNjYmIuLjMyYWNlMWFkNDIyMGM5OWM5M2U3NDIzNjVlNzIyYTczOWIwZGRhYmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5oCkBAIC02MCw4ICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJOb3dQbGF5aW5nSW5mbygpOwogICAgIHN0YXRp
YyBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0QXNOb3dQbGF5
aW5nQXBwbGljYXRpb24sIGNvbnN0IE5vd1BsYXlpbmdJbmZvJik7CiAKKyAgICBzdGF0aWMgV0VC
Q09SRV9FWFBPUlQgdm9pZCB1cGRhdGVNZWRpYVVzYWdlKFBsYXRmb3JtTWVkaWFTZXNzaW9uJik7
CisKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8oKSBm
aW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyhPcHRpb25hbDxXZWFr
UHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uPj4pIGZpbmFsOwogICAgIHZvaWQgdXBkYXRlTm93UGxh
eWluZ0luZm8oKTsKIAogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYpIGZpbmFsOwpAQCAtNzAsNyArNzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIHNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYsIERlbGF5
Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Vzc2lvbkRpZEVu
ZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOworICAg
IHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYp
IGZpbmFsOwogICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbkNhblByb2R1Y2VBdWRpb0NoYW5n
ZWQoKSBmaW5hbDsKIApAQCAtMTA1LDcgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1f
bGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgeyBOQU4gfTsKICAgICBNZWRpYVNlc3Np
b25JZGVudGlmaWVyIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlkZW50aWZpZXI7
CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX25vd1BsYXlpbmdVcGRhdGVUYXNrUXVl
dWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBtX3JlbW90ZUNvbW1hbmRMaXN0ZW5l
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVyPiBtX3N5c3Rl
bVNsZWVwTGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5kZXggMGZiNzll
YmI5MmVhNGNhNmE1YmEwNDA0YzVhNmEyZmQ5ZTZiNGJiZi4uNzViMTZiNTFmNzY3YTJiYTUzZjVl
ZTA3OWUxNTJlYmMyNzQ2N2Q2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpAQCAt
MTM0LDEwICsxMzQsMjAgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnByZXBhcmVU
b1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAgICAgcHJvdmlkZVByZXNlbnRpbmdB
cHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCk7CiB9CiAKLXZvaWQgTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKK3ZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoT3B0aW9uYWw8V2Vha1B0
cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+IHNlc3Npb24pCiB7Ci0gICAgaWYgKCFtX25vd1BsYXlp
bmdVcGRhdGVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0gICAgICAgIG1fbm93UGxheWlu
Z1VwZGF0ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8sIHRoaXMpKTsKKyAgICBtX3Rhc2tRdWV1ZS5l
bnF1ZXVlVGFzayhbdGhpcywgJnNlc3Npb25dICgpIG11dGFibGUgeworICAgICAgICB1cGRhdGVO
b3dQbGF5aW5nSW5mbygpOworICAgICAgICBpZiAoc2Vzc2lvbi5oYXNWYWx1ZSgpKSB7CisgICAg
ICAgICAgICBpZiAoc2Vzc2lvbi52YWx1ZSgpKQorICAgICAgICAgICAgICAgIHNlc3Npb24udmFs
dWUoKS0+dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNlc3Npb24pIHsK
KyAgICAgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgICAg
ICB9KTsKKyAgICB9KTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Np
b25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKQEAgLTE0
NSwxMyArMTU1LDEzIEBAIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2ls
bEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlCiAgICAgaWYgKCFQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhzZXNzaW9uKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5m
bygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyh7IG1ha2VXZWFrUHRyKCZzZXNz
aW9uKSB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZvcm1NZWRpYVNl
c3Npb24mKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1v
dGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7Ci0gICAgc2NoZWR1
bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1
cyh7IG1ha2VXZWFrUHRyKCZzZXNzaW9uKSB9KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0x
NzQsNyArMTg0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJlbW92ZVNlc3Np
b24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgICAgIG1fYXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlp
bmdJbmZvKCk7CisgICAgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKHsgbWFrZVdlYWtQdHIo
JnNlc3Npb24pIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2V0Q3Vy
cmVudFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0xODgsMjMgKzE5
OCwzMCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2V0Q3VycmVudFNlc3Npb24o
UGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
biwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5
aW5nKQogewogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxFbmRQ
bGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKTsKLSAgICBpZiAo
ZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9PSBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5
aW5nOjpObykgeworCisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soWyZzZXNzaW9uXSB7Cisg
ICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgIH0pOworCisg
ICAgaWYgKGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcgPT0gRGVsYXlDYWxsaW5nVXBkYXRl
Tm93UGxheWluZzo6Tm8pCiAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7Ci0gICAgICAg
IHJldHVybjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3Ro
aXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAgIH0pOwog
ICAgIH0KLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAKIHZvaWQgTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBsYXRm
b3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkpOwotICAgIHNjaGVkdWxlVXBkYXRlTm93UGxheWlu
Z0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoeyBtYWtlV2Vha1B0cigm
c2Vzc2lvbikgfSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9u
Q2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoV1RGOjpu
dWxsb3B0KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsZWFyTm93UGxh
eWluZ0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9z
L01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQppbmRleCA0NWJkNTRiNGMxYmVmOWE4ZDA2
NWE4YTVlNTcxNDkxNmI5NWM2OTY2Li5lMWVjNzg2NmYzOTc5MDQ5Y2I4MDEzNWViZTJlN2Y4YTgz
MmQyNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVk
aWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnJlc2V0UmVzdHJpY3Rpb25zKCkKIAogICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CiAKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnJl
c2V0UmVzdHJpY3Rpb25zKCk7CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpyZXNldFJl
c3RyaWN0aW9ucygpOwogCiAgICAgaWYgKHJhbVNpemUoKSA8IHN5c3RlbU1lbW9yeVJlcXVpcmVk
Rm9yVmlkZW9JbkJhY2tncm91bmRUYWJzKSB7CiAgICAgICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgInJlc3RyaWN0aW5nIHZpZGVvIGluIGJhY2tncm91bmQgdGFicyBiZWNhdXNlIHN5c3Rl
bSBtZW1vcnkgPSAiLCByYW1TaXplKCkpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpCiAKIGJv
b2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRm
b3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewotICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Np
b25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCisgICAgaWYgKCFN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhzZXNzaW9u
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
ICYmICFQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFVc2FnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyNjcwMTYxYzU1NTNhYTBlMDY4
ZGVjN2FjMzViZTM4ZmEzOTA0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbklkZW50aWZpZXIu
aCIKKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE1lZGlhVXNhZ2VJbmZvIHsKKyAgICBV
UkwgbWVkaWFVUkw7CisgICAgYm9vbCBpc1BsYXlpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgY2Fu
U2hvd0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5TaG93Tm93UGxheWlu
Z0NvbnRyb2xzIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIGlzSW5BY3RpdmVEb2N1bWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0Z1bGxzY3Jl
ZW4geyBmYWxzZSB9OworICAgIGJvb2wgaXNNdXRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpc01l
ZGlhRG9jdW1lbnRJbk1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1ZpZGVvIHsgZmFs
c2UgfTsKKyAgICBib29sIGlzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFzVmlkZW8geyBm
YWxzZSB9OworICAgIGJvb2wgaGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFzUmVuZGVy
ZXIgeyBmYWxzZSB9OworICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlIHsgZmFs
c2UgfTsKKyAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSB7IGZhbHNlIH07CisgICAg
Ym9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgeyBmYWxzZSB9OworICAgIGJvb2wg
cGxheWJhY2tQZXJtaXR0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcGFnZU1lZGlhUGxheWJhY2tT
dXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJF
bGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIHBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRv
QXV0b3BsYXlJbmxpbmUgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9y
VmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZv
ckFyYml0cmFyeVVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlIHsgZmFsc2UgfTsKKyAgICBib29sIGlz
QXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIHsgZmFsc2UgfTsK
KyAgICBib29sIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWlyZWQgeyBmYWxz
ZSB9OworICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyB7IGZhbHNlIH07
CisgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgeyBmYWxzZSB9OworICAgIGJv
b2wgb3V0c2lkZU9mRnVsbHNjcmVlbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc0xhcmdlRW5vdWdo
Rm9yTWFpbkNvbnRlbnQgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1l
ZGlhVXNhZ2VJbmZvJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtZWRpYVVS
TCA9PSBvdGhlci5tZWRpYVVSTAorICAgICAgICAgICAgJiYgaXNQbGF5aW5nID09IG90aGVyLmlz
UGxheWluZworICAgICAgICAgICAgJiYgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9PSBvdGhlci5j
YW5TaG93Q29udHJvbHNNYW5hZ2VyCisgICAgICAgICAgICAmJiBjYW5TaG93Tm93UGxheWluZ0Nv
bnRyb2xzID09IG90aGVyLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMKKyAgICAgICAgICAgICYm
IGlzU3VzcGVuZGVkID09IG90aGVyLmlzU3VzcGVuZGVkCisgICAgICAgICAgICAmJiBpc0luQWN0
aXZlRG9jdW1lbnQgPT0gb3RoZXIuaXNJbkFjdGl2ZURvY3VtZW50CisgICAgICAgICAgICAmJiBp
c0Z1bGxzY3JlZW4gPT0gb3RoZXIuaXNGdWxsc2NyZWVuCisgICAgICAgICAgICAmJiBpc011dGVk
ID09IG90aGVyLmlzTXV0ZWQKKyAgICAgICAgICAgICYmIGlzTWVkaWFEb2N1bWVudEluTWFpbkZy
YW1lID09IG90aGVyLmlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lCisgICAgICAgICAgICAmJiBp
c1ZpZGVvID09IG90aGVyLmlzVmlkZW8KKyAgICAgICAgICAgICYmIGlzQXVkaW8gPT0gb3RoZXIu
aXNBdWRpbworICAgICAgICAgICAgJiYgaGFzQXVkaW8gPT0gb3RoZXIuaGFzQXVkaW8KKyAgICAg
ICAgICAgICYmIGhhc1ZpZGVvID09IG90aGVyLmhhc1ZpZGVvCisgICAgICAgICAgICAmJiBoYXNS
ZW5kZXJlciA9PSBvdGhlci5oYXNSZW5kZXJlcgorICAgICAgICAgICAgJiYgYXVkaW9FbGVtZW50
V2l0aFVzZXJHZXN0dXJlID09IG90aGVyLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZQorICAg
ICAgICAgICAgJiYgdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlID09IG90aGVyLnVzZXJIYXNQbGF5
ZWRBdWRpb0JlZm9yZQorICAgICAgICAgICAgJiYgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZy
YW1lID09IG90aGVyLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZQorICAgICAgICAgICAg
JiYgcGxheWJhY2tQZXJtaXR0ZWQgPT0gb3RoZXIucGxheWJhY2tQZXJtaXR0ZWQKKyAgICAgICAg
ICAgICYmIHBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkID09IG90aGVyLnBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkCisgICAgICAgICAgICAmJiBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVs
ZW1lbnQgPT0gb3RoZXIuaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50CisgICAgICAg
ICAgICAmJiBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lID09IG90
aGVyLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUKKyAgICAgICAg
ICAgICYmIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90
UGVybWl0dGVkID09IG90aGVyLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRG
dWxsc2NyZWVuTm90UGVybWl0dGVkCisgICAgICAgICAgICAmJiBoYXNIYWRVc2VySW50ZXJhY3Rp
b25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUg
PT0gb3RoZXIuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRv
cGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlCisgICAgICAgICAgICAmJiBpc1ZpZGVvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSA9PSBvdGhlci5pc1ZpZGVvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZQorICAgICAgICAgICAgJiYgaXNBdWRp
b0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPT0gb3RoZXIuaXNBdWRp
b0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAgICAgICAgICYm
IGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSA9
PSBvdGhlci5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dl
ck1vZGUKKyAgICAgICAgICAgICYmIG5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSBvdGhlci5ub1Vz
ZXJHZXN0dXJlUmVxdWlyZWQKKyAgICAgICAgICAgICYmIHJlcXVpcmVzUGxheWJhY2tBbmRJc05v
dFBsYXlpbmcgPT0gb3RoZXIucmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZworICAgICAg
ICAgICAgJiYgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nID09IG90aGVyLmhhc0V2ZXJOb3Rp
ZmllZEFib3V0UGxheWluZworICAgICAgICAgICAgJiYgb3V0c2lkZU9mRnVsbHNjcmVlbiA9PSBv
dGhlci5vdXRzaWRlT2ZGdWxsc2NyZWVuCisgICAgICAgICAgICAmJiBpc0xhcmdlRW5vdWdoRm9y
TWFpbkNvbnRlbnQgPT0gb3RoZXIuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworICAgIH0K
KworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNZWRpYVVzYWdlSW5mbyBvdGhlcikgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gaW5saW5lIHZv
aWQgTWVkaWFVc2FnZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAg
IGVuY29kZXIgPDwgbWVkaWFVUkw7CisgICAgZW5jb2RlciA8PCBpc1BsYXlpbmc7CisgICAgZW5j
b2RlciA8PCBjYW5TaG93Q29udHJvbHNNYW5hZ2VyOworICAgIGVuY29kZXIgPDwgY2FuU2hvd05v
d1BsYXlpbmdDb250cm9sczsKKyAgICBlbmNvZGVyIDw8IGlzU3VzcGVuZGVkOworICAgIGVuY29k
ZXIgPDwgaXNJbkFjdGl2ZURvY3VtZW50OworICAgIGVuY29kZXIgPDwgaXNGdWxsc2NyZWVuOwor
ICAgIGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICBlbmNvZGVyIDw8IGlzTWVkaWFEb2N1bWVudElu
TWFpbkZyYW1lOworICAgIGVuY29kZXIgPDwgaXNWaWRlbzsKKyAgICBlbmNvZGVyIDw8IGlzQXVk
aW87CisgICAgZW5jb2RlciA8PCBoYXNWaWRlbzsKKyAgICBlbmNvZGVyIDw8IGhhc0F1ZGlvOwor
ICAgIGVuY29kZXIgPDwgaGFzUmVuZGVyZXI7CisgICAgZW5jb2RlciA8PCBhdWRpb0VsZW1lbnRX
aXRoVXNlckdlc3R1cmU7CisgICAgZW5jb2RlciA8PCB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmU7
CisgICAgZW5jb2RlciA8PCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7CisgICAgZW5j
b2RlciA8PCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICBlbmNvZGVyIDw8IHBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkOworICAgIGVuY29kZXIgPDwgaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJF
bGVtZW50OworICAgIGVuY29kZXIgPDwgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRv
cGxheUlubGluZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOworICAgIGVuY29kZXIgPDwgaGFzSGFkVXNl
ckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVz
ZXJHZXN0dXJlOworICAgIGVuY29kZXIgPDwgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgZW5jb2RlciA8PCBpc0F1ZGlvQW5kUmVxdWlyZXNVc2Vy
R2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZTsKKyAgICBlbmNvZGVyIDw8IGlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsKKyAgICBlbmNvZGVyIDw8
IG5vVXNlckdlc3R1cmVSZXF1aXJlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzUGxheWJhY2tB
bmRJc05vdFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBoYXNFdmVyTm90aWZpZWRBYm91dFBsYXlp
bmc7CisgICAgZW5jb2RlciA8PCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgIGVuY29kZXIgPDwg
aXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBpbmxpbmUgT3B0aW9uYWw8TWVkaWFVc2FnZUluZm8+IE1lZGlhVXNhZ2VJbmZvOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBNZWRpYVVzYWdlSW5mbyBpbmZvOworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShpbmZvLm1lZGlhVVJMKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1BsYXlpbmcpKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNhblNob3dDb250cm9sc01hbmFn
ZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
LmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU3VzcGVuZGVkKSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0luQWN0aXZlRG9jdW1lbnQpKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzRnVs
bHNjcmVlbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8uaXNNdXRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUpKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW8pKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzQXVkaW8pKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmhhc1ZpZGVv
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5o
YXNBdWRpbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8uaGFzUmVuZGVyZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShpbmZvLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSkpCisgICAgICAgIHJl
dHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udXNlckhhc1BsYXllZEF1
ZGlvQmVmb3JlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUpKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBsYXliYWNrUGVybWl0dGVkKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5wYWdl
TWVkaWFQbGF5YmFja1N1c3BlbmRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50KSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5wYWdl
RXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5yZXF1aXJlc0Z1bGxzY3JlZW5G
b3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCkpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzSGFkVXNlckludGVyYWN0
aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJl
KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5p
c1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNBdWRpb0FuZFJl
cXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJH
ZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubm9Vc2VyR2VzdHVyZVJlcXVpcmVkKSkKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5yZXF1aXJl
c1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm91dHNpZGVP
ZkZ1bGxzY3JlZW4pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCkpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5ZTU1NTkzOTlj
ODE4ZjUxZDM3Y2RjOTk5YWIuLmVlOTc0MWM4ODQxNzMwY2FlYzZiMTM0MzM4ZGRhMjdmM2I0MTk0
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEsNiArMSw2IEBACiAv
KgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw2ICsxMjYsNyBA
QAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk1lZGlhUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisjaW5jbHVkZSAi
TWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIk1l
bW9yeUluZm8uaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgiCkBAIC00
MjIzLDYgKzQyMjQsNTMgQEAgSW50ZXJuYWxzOjpNZWRpYVNlc3Npb25TdGF0ZSBJbnRlcm5hbHM6
Om1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW0KIH0KICNlbmRpZgogCitF
eGNlcHRpb25PcjxJbnRlcm5hbHM6Ok1lZGlhVXNhZ2VTdGF0ZT4gSW50ZXJuYWxzOjptZWRpYVVz
YWdlU3RhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyNpZiBQTEFURk9S
TShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gaW5mbyA9IGVsZW1lbnQu
bWVkaWFTZXNzaW9uKCkubWVkaWFVc2FnZUluZm8oKTsKKyAgICBpZiAoIWluZm8pCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAgcmV0dXJuIHsg
eyBpbmZvLnZhbHVlKCkubWVkaWFVUkwuc3RyaW5nKCksCisgICAgICAgIGluZm8udmFsdWUoKS5p
c1BsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5jYW5TaG93Q29udHJvbHNNYW5hZ2VyLAor
ICAgICAgICBpbmZvLnZhbHVlKCkuY2FuU2hvd05vd1BsYXlpbmdDb250cm9scywKKyAgICAgICAg
aW5mby52YWx1ZSgpLmlzU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNJbkFjdGl2
ZURvY3VtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNGdWxsc2NyZWVuLAorICAgICAgICBp
bmZvLnZhbHVlKCkuaXNNdXRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTWVkaWFEb2N1bWVu
dEluTWFpbkZyYW1lLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNWaWRlbywKKyAgICAgICAgaW5m
by52YWx1ZSgpLmlzQXVkaW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNWaWRlbywKKyAgICAg
ICAgaW5mby52YWx1ZSgpLmhhc0F1ZGlvLAorICAgICAgICBpbmZvLnZhbHVlKCkuaGFzUmVuZGVy
ZXIsCisgICAgICAgIGluZm8udmFsdWUoKS5hdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUsCisg
ICAgICAgIGluZm8udmFsdWUoKS51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUsCisgICAgICAgIGlu
Zm8udmFsdWUoKS5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsCisgICAgICAgIGluZm8u
dmFsdWUoKS5wbGF5YmFja1Blcm1pdHRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLnBhZ2VNZWRp
YVBsYXliYWNrU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNNZWRpYURvY3VtZW50
QW5kTm90T3duZXJFbGVtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkucGFnZUV4cGxpY2l0bHlB
bGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLnJlcXVp
cmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkLAor
ICAgICAgICBpbmZvLnZhbHVlKCkuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFp
bnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLAorICAgICAgICBpbmZvLnZh
bHVlKCkuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UsCisg
ICAgICAgIGluZm8udmFsdWUoKS5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlv
UmF0ZUNoYW5nZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJH
ZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLm5v
VXNlckdlc3R1cmVSZXF1aXJlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLnJlcXVpcmVzUGxheWJh
Y2tBbmRJc05vdFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5vdXRzaWRlT2ZGdWxsc2NyZWVuLAor
ICAgICAgICBpbmZvLnZhbHVlKCkuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50LAorICAgIH0g
fTsKKworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworI2VuZGlmCit9CisKKwogI2lmIEVOQUJMRShX
SVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRNb2NrTWVkaWFQ
bGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKaW5kZXggZWRlYWJhY2FlN2MxYjUzOWZjMDM1MmYzNzk1ZDhjMWNjN2FmNmUx
MC4uNzZkOGFjZjk3ZmRlMTFlMzkzOTQ3ZDVmY2VlYTI3ZWMyMjkxOTBjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC04MTQsNiArODE0LDQxIEBAIHB1YmxpYzoKICAgICB9Owog
ICAgIEV4Y2VwdGlvbk9yPE5vd1BsYXlpbmdTdGF0ZT4gbm93UGxheWluZ1N0YXRlKCkgY29uc3Q7
CiAKKyAgICBzdHJ1Y3QgTWVkaWFVc2FnZVN0YXRlIHsKKyAgICAgICAgU3RyaW5nIG1lZGlhVVJM
OworICAgICAgICBib29sIGlzUGxheWluZzsKKyAgICAgICAgYm9vbCBjYW5TaG93Q29udHJvbHNN
YW5hZ2VyOworICAgICAgICBib29sIGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM7CisgICAgICAg
IGJvb2wgaXNTdXNwZW5kZWQ7CisgICAgICAgIGJvb2wgaXNJbkFjdGl2ZURvY3VtZW50OworICAg
ICAgICBib29sIGlzRnVsbHNjcmVlbjsKKyAgICAgICAgYm9vbCBpc011dGVkOworICAgICAgICBi
b29sIGlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lOworICAgICAgICBib29sIGlzVmlkZW87Cisg
ICAgICAgIGJvb2wgaXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNWaWRlbzsKKyAgICAgICAgYm9v
bCBoYXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNSZW5kZXJlcjsKKyAgICAgICAgYm9vbCBhdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgICAgIGJvb2wgdXNlckhhc1BsYXllZEF1ZGlv
QmVmb3JlOworICAgICAgICBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZTsKKyAg
ICAgICAgYm9vbCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICAgICAgYm9vbCBwYWdlTWVkaWFQbGF5
YmFja1N1c3BlbmRlZDsKKyAgICAgICAgYm9vbCBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVs
ZW1lbnQ7CisgICAgICAgIGJvb2wgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxh
eUlubGluZTsKKyAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNr
QW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJh
Y3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1
cmU7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1Jh
dGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JB
dWRpb1JhdGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOworICAgICAgICBib29sIG5vVXNlckdlc3R1cmVS
ZXF1aXJlZDsKKyAgICAgICAgYm9vbCByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nOwor
ICAgICAgICBib29sIGhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZzsKKyAgICAgICAgYm9vbCBv
dXRzaWRlT2ZGdWxsc2NyZWVuOworICAgICAgICBib29sIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudDsKKyAgICB9OworICAgIEV4Y2VwdGlvbk9yPE1lZGlhVXNhZ2VTdGF0ZT4gbWVkaWFVc2Fn
ZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdDsKKwogI2lmIEVOQUJMRShWSURFTykKICAg
ICB1c2luZyBQbGF5YmFja0NvbnRyb2xzUHVycG9zZSA9IE1lZGlhRWxlbWVudFNlc3Npb246OlBs
YXliYWNrQ29udHJvbHNQdXJwb3NlOwogICAgIFJlZlB0cjxIVE1MTWVkaWFFbGVtZW50PiBiZXN0
TWVkaWFFbGVtZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29u
dHJvbHNQdXJwb3NlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0MzE5
NTJlOTY1ZjdlMThjNGY1YjU3NTNhZmI1Mjg0Nzc0YjI2ZDNlLi5kMThlZWIwM2I4N2JkNzEyMjYw
YTUyZGY5NDM2ODVlNTFmZjI1YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CkBAIC0xMTMsNiArMTEzLDQ0IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyB1bmlxdWVJZGVudGlmaWVyOwogfTsKIAorWworICAgIEV4cG9ydE1hY3Jv
PVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAorICAgIENvbmRpdGlvbmFsPVZJREVPLAorICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IE1lZGlhVXNhZ2VTdGF0ZSB7Cisg
ICAgRE9NU3RyaW5nIG1lZGlhVVJMOworICAgIGJvb2xlYW4gaXNQbGF5aW5nOworICAgIGJvb2xl
YW4gY2FuU2hvd0NvbnRyb2xzTWFuYWdlcjsKKyAgICBib29sZWFuIGNhblNob3dOb3dQbGF5aW5n
Q29udHJvbHM7CisgICAgYm9vbGVhbiBpc1N1c3BlbmRlZDsKKyAgICBib29sZWFuIGlzSW5BY3Rp
dmVEb2N1bWVudDsKKyAgICBib29sZWFuIGlzRnVsbHNjcmVlbjsKKyAgICBib29sZWFuIGlzTXV0
ZWQ7CisgICAgYm9vbGVhbiBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTsKKyAgICBib29sZWFu
IGlzVmlkZW87CisgICAgYm9vbGVhbiBpc0F1ZGlvOworICAgIGJvb2xlYW4gaGFzVmlkZW87Cisg
ICAgYm9vbGVhbiBoYXNBdWRpbzsKKyAgICBib29sZWFuIGhhc1JlbmRlcmVyOworICAgIGJvb2xl
YW4gYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOworICAgIGJvb2xlYW4gdXNlckhhc1BsYXll
ZEF1ZGlvQmVmb3JlOworICAgIGJvb2xlYW4gaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1l
OworICAgIGJvb2xlYW4gcGxheWJhY2tQZXJtaXR0ZWQ7CisgICAgYm9vbGVhbiBwYWdlTWVkaWFQ
bGF5YmFja1N1c3BlbmRlZDsKKyAgICBib29sZWFuIGlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVy
RWxlbWVudDsKKyAgICBib29sZWFuIHBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3Bs
YXlJbmxpbmU7CisgICAgYm9vbGVhbiByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNr
QW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICBib29sZWFuIGhhc0hhZFVzZXJJbnRlcmFj
dGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVy
ZTsKKyAgICBib29sZWFuIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRl
Q2hhbmdlOworICAgIGJvb2xlYW4gaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRp
b1JhdGVDaGFuZ2U7CisgICAgYm9vbGVhbiBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
clZpZGVvRHVlVG9Mb3dQb3dlck1vZGU7CisgICAgYm9vbGVhbiBub1VzZXJHZXN0dXJlUmVxdWly
ZWQ7CisgICAgYm9vbGVhbiByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nOworICAgIGJv
b2xlYW4gaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOworICAgIGJvb2xlYW4gb3V0c2lkZU9m
RnVsbHNjcmVlbjsKKyAgICBib29sZWFuIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudDsKK307
CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKICAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKQEAgLTc5NSw2ICs4MzMsOCBAQCBlbnVtIENvbXBvc2l0aW5n
UG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIEhUTUxNZWRpYUVsZW1lbnQgYmVzdE1l
ZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRy
b2xzUHVycG9zZSBwdXJwb3NlKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIE1lZGlhU2Vzc2lv
blN0YXRlIG1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCk7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9VklERU8sIE1heVRocm93RXhjZXB0aW9uXSBNZWRpYVVzYWdlU3RhdGUg
bWVkaWFVc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCk7CisKICAgICBET01TdHJp
bmcgb25nb2luZ0xvYWRzRGVzY3JpcHRpb25zKCk7CiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3YzljNTQxNWU3NDA5OGQ4NWNjYjVhMDM2
ZTViYjFiMmYwYWQ5ODFhLi42ODU2NDMwNjFiY2RkOTdmMzE3YzUzZGE4M2E2YzFlNDU4ODRkNDEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIxMiw2ICsy
MTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAg
ICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVy
JywKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXInLAogICAgICAgICAn
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywK
ICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGQz
ODRjZTU2NWM3ODRjMTRlOTFhZmQ4OTYwN2M3NTM0OGFiYjc1Y2QuLjFhZTFkNzFlMTI3NTI1ODIz
N2I3ZWE5MTZhMDQ1ZjMzYWEyMDhjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDQyLDYgKzQ0Miw3IEBA
IFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIuY3BwCiBVSVBy
b2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3BwCiAKIFVJUHJv
Y2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNwcAorVUlQcm9j
ZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApp
bmRleCBmOTMyM2ZiOTM5NjA5OGE5OGRmOTZmNmJkNjJkMDE2MmQ2ZGY4Y2M4Li5mNGE4N2M0NTIy
ZmJkNjUxNTZkZmM5ZGRkNzc0YmEwODNlNjdmMDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBA
IC01MDQsNiArNTA0LDggQEAgVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KIFVJ
UHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCiBVSVByb2Nlc3MvbWFj
L1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCiAKK1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVz
YWdlTWFuYWdlckNvY29hLm1tCisKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9M
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5jcHAKIAogVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAzOTRiZjkxOTM5Nzg3YTc2YmYxNzNl
MzE5ZGMyMmJiNjIyMzI5N2IwLi4wYTNiMzhiZTRhODBiNWY2NjJhZWQwMjExZDYxMWM5MTgzODZi
Yjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbQpAQCAtNTAsNiArNTAsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVy
bmF0aXZlV2l0aFJhbmdlLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8
fCBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAg
LTM2MCw0ICszNjQsMjkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9QcmVmZXJl
bmNlU2VydmljZSgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQ
TEFURk9STShNQUMpCitNZWRpYVVzYWdlTWFuYWdlciYgV2ViUGFnZVByb3h5OjptZWRpYVVzYWdl
TWFuYWdlcigpCit7CisgICAgaWYgKCFtX21lZGlhVXNhZ2VNYW5hZ2VyKQorICAgICAgICBtX21l
ZGlhVXNhZ2VNYW5hZ2VyID0gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpOworCisgICAgcmV0
dXJuICptX21lZGlhVXNhZ2VNYW5hZ2VyOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VV
UkwpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5hZGRNZWRpYVNlc3Npb24oaWRlbnRpZmll
ciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1
cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBpbmZv
KQoreworICAgIG1lZGlhVXNhZ2VNYW5hZ2VyKCkudXBkYXRlTWVkaWFVc2FnZShpZGVudGlmaWVy
LCBpbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2Vy
U2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7Cisg
ICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5yZW1vdmVNZWRpYVNlc3Npb24oaWRlbnRpZmllcik7Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY1MTIz
NWJjOTg2MGU4NjI2NjkyOTc2NDNkNzZjZDAzMmQyNjk5ZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcApAQCAtMCww
ICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1l
ZGlhVXNhZ2VNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAh
UExBVEZPUk0oTUFDKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhVXNhZ2VNYW5hZ2VyPiBNZWRpYVVz
YWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVVzYWdl
TWFuYWdlcj4oKTsKK30KKyNlbmRpZgorCit2b2lkIE1lZGlhVXNhZ2VNYW5hZ2VyOjogcmVzZXQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXI6
OmFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXI6OnJl
bW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVVzYWdlTWFuYWdl
cjo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBtZWRpYVVzYWdlSW5mbykKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjdjYTFkYzU3N2IzNTc5MGRkZTIzMzg4MWNlODZlN2M4Y2Q5ODk1YgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5h
Z2VyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVVzYWdlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVVzYWdlTWFuYWdlciB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxNZWRpYVVzYWdlTWFuYWdlcj4gY3JlYXRlKCk7CisKKyAgICBNZWRpYVVzYWdlTWFuYWdl
cigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5NZWRpYVVzYWdlTWFuYWdlcigpID0gZGVmYXVs
dDsKKworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZWRp
YVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiAv
KiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pOworICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRp
Zmllcik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKTsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlh
VXNhZ2VNYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29h
L01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTkzMDhhMGU3YzY0NGMxMjFk
ZjQxMzk5NTY3OTEzYzcxNDJjZjIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oCkBAIC0wLDAgKzEs
NzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJNZWRpYVVzYWdlTWFuYWdlci5oIgor
CitPQkpDX0NMQVNTIFVTVmlkZW9Vc2FnZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EgOiBwdWJsaWMgTWVkaWFVc2FnZU1hbmFnZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFVc2FnZU1hbmFnZXJDb2NvYSgp
OworCisgICAgdm9pZCByZXNldCgpIGZpbmFsOworICAgIHZvaWQgYWRkTWVkaWFTZXNzaW9uKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYp
IGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpIGZpbmFsOworICAgIHZv
aWQgcmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpIGZp
bmFsOworCitwcml2YXRlOgorCisgICAgc3RydWN0IFNlc3Npb25NZWRpYVVzYWdlIHsKKyAgICAg
ICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgICAgIFNlc3Npb25NZWRp
YVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCisgICAgICAgICAg
ICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAgICAgLCBtX2J1bmRsZUlkZW50
aWZpZXIoYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgICAgICwgbV9wYWdlVVJMKHBhZ2VVUkwp
CisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgICAgICBTdHJpbmcgbV9idW5kbGVJZGVudGlmaWVy
OworICAgICAgICBVUkwgbV9wYWdlVVJMOworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpNZWRp
YVVzYWdlSW5mbz4gbV9tZWRpYVVzYWdlSW5mbzsKKyAgICAgICAgUmV0YWluUHRyPFVTVmlkZW9V
c2FnZT4gbV91c2FnZVRyYWNrZXI7CisgICAgfTsKKworICAgIEhhc2hNYXA8V2ViQ29yZTo6TWVk
aWFTZXNzaW9uSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25NZWRpYVVzYWdlPj4g
bV9tZWRpYVNlc3Npb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1ZWE1NzJhZDNmNmFiYjgxZGMwZjU4M2I0NmU1OTc4MmE0
OWFkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2Nv
Y29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KQEAgLTAsMCArMSwxNjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2Eu
aCIKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisKKyNpbXBv
cnQgPHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaD4KKworTlNfQVNTVU1FX05PTk5V
TExfQkVHSU4KKworQGludGVyZmFjZSBVU1ZpZGVvVXNhZ2UgOiBOU09iamVjdAorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoQnVuZGxlSWRlbnRpZmllcjooTlNTdHJpbmcgKilidW5kbGVJZGVudGlm
aWVyIFVSTDooTlNVUkwgKil1cmwgbWVkaWFVUkw6KE5TVVJMICopbWVkaWFVUkwgTlNfREVTSUdO
QVRFRF9JTklUSUFMSVpFUjsKKy0gKHZvaWQpc3RvcDsKKy0gKHZvaWQpcmVzdGFydDsKKy0gKHZv
aWQpdXBkYXRlVmlkZW9NZXRhZGF0YTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKXZp
ZGVvTWV0YWRhdGE7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCit7CisgICAg
cmV0dXJuIChQQUw6OmlzVXNhZ2VUcmFja2luZ0ZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6
Z2V0VVNWaWRlb1VzYWdlQ2xhc3MoKSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdl
TWFuYWdlcj4gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VV
bmlxdWU8TWVkaWFVc2FnZU1hbmFnZXJDb2NvYT4oKTsKK30KKworTWVkaWFVc2FnZU1hbmFnZXJD
b2NvYTo6fk1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EoKQoreworICAgIHJlc2V0KCk7Cit9CisKK3Zv
aWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQoKQoreworICAgIGZvciAoYXV0byYgc2Vz
c2lvbiA6IG1fbWVkaWFTZXNzaW9ucy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+
bV91c2FnZVRyYWNrZXIpIHsKKyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBz
dG9wXTsKKyAgICAgICAgICAgIHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBtX21lZGlhU2Vzc2lvbnMuY2xlYXIoKTsKK30KKwordm9pZCBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIs
IGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWVkaWFTZXNz
aW9ucy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6U2Vzc2lvbk1lZGlhVXNhZ2U+KGlkZW50aWZpZXIsIGJ1
bmRsZUlkZW50aWZpZXIsIHBhZ2VVUkwpOworICAgIH0pOworICAgIEFTU0VSVChhZGRSZXN1bHQu
aXNOZXdFbnRyeSk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVtb3ZlTWVk
aWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAg
IG1fbWVkaWFTZXNzaW9ucy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYTo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBtZWRpYVVz
YWdlSW5mbykKK3sKKyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBhdXRvIHNlc3Npb24gPSBtX21lZGlhU2Vzc2lvbnMuZ2V0KGlkZW50aWZpZXIp
OworICAgIGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF1c2FnZVRy
YWNraW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzZXNzaW9uLT5t
X21lZGlhVXNhZ2VJbmZvKSB7CisgICAgICAgIGlmIChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZv
ID09IG1lZGlhVXNhZ2VJbmZvKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChz
ZXNzaW9uLT5tX3VzYWdlVHJhY2tlciAmJiBzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5tZWRp
YVVSTCAhPSBtZWRpYVVzYWdlSW5mby5tZWRpYVVSTCkgeworICAgICAgICAgICAgW3Nlc3Npb24t
Pm1fdXNhZ2VUcmFja2VyIHN0b3BdOworICAgICAgICAgICAgc2Vzc2lvbi0+bV91c2FnZVRyYWNr
ZXIgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFzZXNzaW9uLT5tX3Vz
YWdlVHJhY2tlcikgeworICAgICAgICBpZiAoIW1lZGlhVXNhZ2VJbmZvLmlzUGxheWluZykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NVU1ZpZGVvVXNhZ2VJbnN0YW5jZSgpIGluaXRXaXRoQnVuZGxlSWRl
bnRpZmllcjpzZXNzaW9uLT5tX2J1bmRsZUlkZW50aWZpZXIgVVJMOihOU1VSTCAqKXNlc3Npb24t
Pm1fcGFnZVVSTCBtZWRpYVVSTDooTlNVUkwgKiltZWRpYVVzYWdlSW5mby5tZWRpYVVSTF0pOwor
ICAgICAgICBBU1NFUlQoc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIpOworICAgIH0KKworICAgIGlm
IChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvICYmIHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8t
PmlzUGxheWluZyAhPSBtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpIHsKKyAgICAgICAgaWYgKG1l
ZGlhVXNhZ2VJbmZvLmlzUGxheWluZykKKyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJh
Y2tlciByZXN0YXJ0XTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgW3Nlc3Npb24tPm1fdXNh
Z2VUcmFja2VyIHN0b3BdOworICAgIH0KKyAgICBzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvID0g
bWVkaWFVc2FnZUluZm87CisKKyAgICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICptZXRh
ZGF0YSA9IEB7CisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFn
ZXI6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciks
CisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM6IEAo
c2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+Y2FuU2hvd05vd1BsYXlpbmdDb250cm9scyksCisg
ICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkOiBAKHNlc3Npb24tPm1fbWVkaWFV
c2FnZUluZm8tPmlzU3VzcGVuZGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFj
dGl2ZURvY3VtZW50OiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmlzSW5BY3RpdmVEb2N1
bWVudCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbjogQChzZXNzaW9u
LT5tX21lZGlhVXNhZ2VJbmZvLT5pc0Z1bGxzY3JlZW4pLAorICAgICAgICBVU1ZpZGVvTWV0YWRh
dGFLZXlJc011dGVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmlzTXV0ZWQpLAorICAg
ICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSksCisgICAg
ICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW86IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5m
by0+aXNWaWRlbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW86IEAoc2Vzc2lv
bi0+bV9tZWRpYVVzYWdlSW5mby0+aXNBdWRpbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtl
eU5vVmlkZW86IEAoIXNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmhhc1ZpZGVvKSwKKyAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbzogQCghc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5m
by0+aGFzQXVkaW8pLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlcjogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5oYXNSZW5kZXJlciksCisgICAgICAgIFVTVmlkZW9NZXRh
ZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZTogQChzZXNzaW9uLT5tX21lZGlhVXNh
Z2VJbmZvLT5hdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUpLAorICAgICAgICBVU1ZpZGVvTWV0
YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZvcmU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdl
SW5mby0+dXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lOiBAKHNlc3Npb24tPm1fbWVkaWFVc2Fn
ZUluZm8tPmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSksCisgICAgICAgIFVTVmlkZW9N
ZXRhZGF0YUtleVBsYXliYWNrUGVybWl0dGVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8t
PnBsYXliYWNrUGVybWl0dGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+cGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9j
dW1lbnRBbmROb3RPd25lckVsZW1lbnQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNN
ZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50KSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZTogQChzZXNzaW9u
LT5tX21lZGlhVXNhZ2VJbmZvLT5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5
SW5saW5lKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9y
VmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ6IEAoc2Vzc2lvbi0+bV9tZWRp
YVVzYWdlSW5mby0+cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3Jl
ZW5Ob3RQZXJtaXR0ZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50
ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdl
c3R1cmU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aGFzSGFkVXNlckludGVyYWN0aW9u
QW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKSwK
KyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2U6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNWaWRlb0Fu
ZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpLAorICAgICAgICBVU1ZpZGVv
TWV0YWRhdGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5n
ZTogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2Vz
dHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZp
ZGVvRHVlVG9Mb3dQb3dlck1vZGUpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJH
ZXN0dXJlUmVxdWlyZWQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+bm9Vc2VyR2VzdHVy
ZVJlcXVpcmVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQbGF5YmFja0Fu
ZElzTm90UGxheWluZzogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5yZXF1aXJlc1BsYXli
YWNrQW5kSXNOb3RQbGF5aW5nKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SGFzRXZlck5v
dGlmaWVkQWJvdXRQbGF5aW5nOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmhhc0V2ZXJO
b3RpZmllZEFib3V0UGxheWluZyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVP
ZkZ1bGxzY3JlZW46IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+b3V0c2lkZU9mRnVsbHNj
cmVlbiksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudDogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc0xhcmdlRW5vdWdoRm9yTWFpbkNv
bnRlbnQpLAorICAgIH07CisKKyAgICBbc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgdXBkYXRlVmlk
ZW9NZXRhZGF0YTptZXRhZGF0YV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDQwNzQwMmIyMzdkNDQ4OTE3NmIzNjlmNDEx
NGFkYjQ3OGFkYjIzMGMuLjVhYjVjOTBmMGZhYWJiMTQ4MzdjY2M3YTRlYjZkNjM1Yzg2MmMxZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJOZmNTZXJ2aWNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQppbmRleCA1NjcxMjU1NGI2ZjYyYjg2MDEzMGI2NzM3
N2UzZjQzMzZhYmM4MjBjLi42ZjBjYjk5YWFiMWU5M2Q1ZWZmNGQ0OGNkMzIyOTE5Y2NjNDE2MTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0yOSw3ICsy
OSw5IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRl
bS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3Vy
aXR5U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM5N2UwYWU3OTVhOTE3N2JiM2Y1NmQwZDAxZGE5
NjEzYWFkZjJjNTAuLmZlNDU3MzQ3NWE0MjViNDU3NTdiOWI4YjIzYzY4NDc0NWE2N2NjZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc4LDYgKzI3OCwx
MCBAQAogI2luY2x1ZGUgIkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJNZWRpYVVzYWdl
TWFuYWdlci5oIgorI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMuaD4KICNlbHNlCkBAIC03
NDYyLDYgKzc0NjYsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0
ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9tZWRpYVVzYWdlTWFuYWdl
cikKKyAgICAgICAgbV9tZWRpYVVzYWdlTWFuYWdlci0+cmVzZXQoKTsKKyNlbmRpZgorCiAjaWYg
SEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAgaWYgKHJlc2V0U3RhdGVSZWFz
b24gIT0gUmVzZXRTdGF0ZVJlYXNvbjo6TmF2aWdhdGlvblN3YXApCiAgICAgICAgIG1fY29udGV4
dElERm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjhhNzZmZGUyMDI3NGMwNDhhZDAyNzZiYzBkOWMxZTcwMzg5N2Q0
ZS4uYjdiZjZjNTg0ZTNiMzA2ZjcwZTY4MTIwYzZkZDAzZGMyOGQxNTBkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2Nyw2ICsxNjcsMTAgQEAgY2xhc3MgTWVk
aWFTZXNzaW9uTWV0YWRhdGE7CiBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhU2Vzc2lvbklkZW50aWZpZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsK
IGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CkBAIC0yMzcsNiArMjQxLDcg
QEAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgR2xvYmFsV2luZG93SWRlbnRp
ZmllcjsKIHN0cnVjdCBMaW5rSWNvbjsKIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Q7CitzdHJ1
Y3QgTWVkaWFVc2FnZUluZm87CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKIHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOwpAQCAtMjc1LDYgKzI4MCw3IEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHk7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNv
bnRyb2xsZXI7CiBjbGFzcyBHYW1lcGFkRGF0YTsKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyOwog
Y2xhc3MgTmF0aXZlV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0xNzI4LDYgKzE3MzQsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgcGxhdGZvcm1EaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51
KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBNZWRpYVVzYWdlTWFuYWdlciYgbWVk
aWFVc2FnZU1hbmFnZXIoKTsKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihX
ZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlk
ZW50aWZpZXIgKi8sIGNvbnN0IFVSTCYgLyogcGFnZVVSTCAqLyk7CisgICAgdm9pZCB1cGRhdGVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpOworICAgIHZvaWQgcmVtb3ZlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9j
ZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKQEAgLTIzNTMsNiArMjM2NiwxMCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFVc2FnZU1hbmFnZXI+IG1fbWVkaWFVc2FnZU1hbmFn
ZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW5wdXRNb2RlPiBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2U7CiAgICAgVHJhbnNhY3Rp
b25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCBmMzNiMmUzNGJlOGE1YmNjMTM4MWZjMTAxY2I4YjFjNWQ1OWEzYzk1Li5hYjYzNjY2MGNjNWUw
ZDU4ODdjNzM1ZDlhZmI2NmNmOWJlYTE3OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01ODcsNCArNTg3LDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1z
KFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9u
SXRlbT4gaXRlbXMpCiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFD
KQorICAgIEFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCBVUkwgcGFnZVVS
TCk7CisgICAgVXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFVc2Fn
ZUluZm8gaW5mbyk7CisgICAgUmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcik7CisjZW5kaWYKKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTI2M2Qx
YzE1ZDBiY2M1YTcwZjQ5ZmUyZDQyMzFhODcwMjFiNTc5Ni4uNDllYTRlMWUyMmJjMzgxMjI4MDA1
NTY3NzVlM2JiODdmMWZiNzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTU1LDYgKzIxNTUsMTAgQEAKIAkJMDc5MjMxNDYyMzlD
QkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0NzIz
OUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNEUyMzlENUY1MzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzk0QjRBQjI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1h
bmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFDMjQ0NTFCQjkwMDAx
QjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzk0QjRBRTI0NDUyNEIwMDAw
MUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFV
c2FnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzk0QjRBRjI0
NDUyQTJDMDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVVzYWdlTWFuYWdlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3QTVFQkI5MUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCQTFDN0JBNDNFMDBCOUNBNjkgLyogV0tG
cmFtZUhhbmRsZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZyYW1l
SGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjFEMDRCMjNEMzhG
Q0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTUxOSw2ICs1NTIzLDI1IEBACiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkwNzk0QjRBOTI0NDUxQkI5MDAwMUI5QzQgLyog
TWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTA3
OTRCNEFBMjQ0NTFCQjkwMDAxQjlDNCAvKiBjb2NvYSAqLywKKwkJCQkwNzk0QjRBRTI0NDUyNEIw
MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuY3BwICovLAorCQkJCTA3OTRCNEFDMjQ0NTFC
QjkwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBN
ZWRpYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTA3OTRCNEFBMjQ0NTFC
QjkwMDAxQjlDNCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EuaCAqLywKKwkJCQkwNzk0QjRBQjI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1h
bmFnZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkwN0M3NUMxNzIzOTlBM0RCMDA4OEU2NUIgLyogbWVkaWEg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODg1NSw2ICs4
ODc4LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJD
MTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0Yz
Qjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCTA3OTRCNEE5MjQ0NTFCQjkwMDAxQjlDNCAvKiBN
ZWRpYSAqLywKIAkJCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RDRUIgLyogTWVkaWEgKi8sCiAJCQkJ
NTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5ldHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5
OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IDU0M2RlMjNkYTg5ZTFiNzRkYmE5N2FhMWEzOTUzZjJjZjY5YTRkMWMuLmYwZjJlNGFhNjAy
ZDAwZDAwMWQ2NTc0OWEwMWZhYTNiZTM4OGNjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMDA4LDkgKzEwMDgsMjUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW8KIHsKICAgICBtX3Bh
Z2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQodmlkZW9FbGVtZW50KTsKIH0KLQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUNDQVRB
TFlTVCkgfHwgUExBVEZPUk0oTUFDKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQoreworICAgIG1f
cGFnZS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllciwgYnVuZGxlSWRlbnRp
ZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVNZWRpYVVz
YWdlTWFuYWdlclNlc3Npb25TdGF0ZShNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IE1lZGlhVXNhZ2VJbmZvJiB1c2FnZSkKK3sKKyAgICBtX3BhZ2UudXBkYXRlTWVkaWFV
c2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoaWRlbnRpZmllciwgdXNhZ2UpOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lv
bklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3BhZ2UucmVtb3ZlTWVkaWFVc2FnZU1h
bmFnZXJTZXNzaW9uKGlkZW50aWZpZXIpOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1
bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxl
bWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTg1OTMxYzcxMDZmY2I0NjAxY2NjZGM5ZDUyMzY1
NDYwOGM4NjY4Ny4uOTVkM2YzYmY0MDk4MTg3N2Y5YWM0ZTU0NjYxMTVlMmRmOWU3NmM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMjcwLDYgKzI3MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50JikgZmluYWw7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFU
Rk9STShNQUMpCisgICAgdm9pZCBhZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6
TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiAvKiBidW5kbGVJZGVudGlmaWVy
ICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92
ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
KSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91
dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkNDNjYTc3ZTk0
MjkwZjg1NWE0MzIzNmM5NWYwMzM3YWIzMzE5NTBjLi4wM2VlYmU0NmVhNWM2OTFkNWYzODk0MzM5
OGVjOGMzMGVlMGZkYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNzA2Miw2ICs3MDYyLDIzIEBAIGJvb2wgV2ViUGFnZTo6c2hvdWxkVXNl
UmVtb3RlUmVuZGVyaW5nRm9yKFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQor
dm9pZCBXZWJQYWdlOjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0
IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1l
ZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihpZGVudGlmaWVyLCBidW5kbGVJZGVudGlmaWVyLCBwYWdl
VVJMKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
U3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBNZWRpYVVzYWdl
SW5mbyYgdXNhZ2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVcGRhdGVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShpZGVudGlmaWVyLCB1c2FnZSkpOworfQorCit2
b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllcikpOworfQorI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQwZWQ5YzAwNzlmZTVhODRmZWMx
ZWYxNDZmOThmNjliMmY1ZWJiYzcuLmJlOGUxYWMwZTM2ZDYxYTYwMGVjZjk0MGNlOTMxYjQ0OWU3
NGVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTEzNSw2ICsxMzUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0F0a09iamVjdCBBdGtPYmplY3Q7CiAj
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1BsYXRmb3JtR2VzdHVyZUV2ZW50TWFjLmg+CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmg+CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KQEAgLTIwOCw2ICsyMTIsNyBAQCBzdHJ1
Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyOwogc3RydWN0IEdsb2JhbFdpbmRvd0lkZW50aWZpZXI7
CiBzdHJ1Y3QgSGlnaGxpZ2h0Owogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKK3N0cnVjdCBNZWRp
YVVzYWdlSW5mbzsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFJ1bkph
dmFTY3JpcHRQYXJhbWV0ZXJzOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKQEAgLTEzMDcs
NyArMTMxMiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0luQXBwQnJvd3NlclByaXZhY3lR
dWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrczsg
fQogICAgIAogICAgIGJvb2wgc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFdlYkNvcmU6OlJl
bmRlcmluZ1B1cnBvc2UpOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBM
QVRGT1JNKE1BQykKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3Jl
OjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlkZW50aWZp
ZXIgKi8sIGNvbnN0IFVSTCYgLyogcGFnZVVSTCAqLyk7CisgICAgdm9pZCB1cGRhdGVNZWRpYVVz
YWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpOworICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396528</attachid>
            <date>2020-04-15 07:04:52 -0700</date>
            <delta_ts>2020-04-15 08:36:33 -0700</delta_ts>
            <desc>updated WIP patch for the bots</desc>
            <filename>bug-210518-20200415070451.patch</filename>
            <type>text/plain</type>
            <size>106673</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg2NjczZmVmMTM3Mjdk
ZGUxZTViYWI5NGMxMGMwMGVjYmJmYWY2OC4uMTZkODAzZTc1YWE2NmYxOTY4YjBhZTkyMDg5NmE2
Y2E0N2ZlYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0wNC0xNCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVw
ZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUGFzcyBtZWRpYSBlbGVtZW50IHN0YXRlIHRvIFNjcmVlblRpbWUgZnJhbWV3
b3JrIHdoZW4gaXQgY2hhbmdlcy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpNZWRpYUVsZW1lbnRTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246On5NZWRpYUVsZW1lbnRT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1l
ZGlhVXNhZ2VJZkNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnQ6OnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNz
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlTWVkaWFVc2Fn
ZUlmQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVk
aWFTZXNzaW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBk
YXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJ
bmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRS
ZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFVc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYVVzYWdlU3RhdGUg
Y29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxh
eWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFBh
c3MgbWVkaWEgZWxlbWVudCBzdGF0ZSB0byBTY3JlZW5UaW1lIGZyYW1ld29yayB3aGVuIGl0IGNo
YW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRlbnRpZmllciBjb25zdCk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246Ok1l
ZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lv
bjo6fk1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50
U2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6YWRkVmlkZW9Vc2FnZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojp1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNz
aW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVT
Y3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpy
ZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlv
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNj
aGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1VzYWdlSW5mby5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9Vc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2aWRlb1VzYWdlU3RhdGUgY29uc3Qp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAzYTNlMjZlMDIyMTE2OWYxMWEyZThkYjY2ODZlNjU2ZTMx
N2MxYjM0Li4yOTY4ZjhjZGM2OTg4MTYyMDUwMDljMDg5NTQ0OTM0ZGU4OTBjMzBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xNCAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5U
aW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEx
ODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvY29jb2EvVXNh
Z2VUcmFja2luZ1NvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jb2NvYS9Vc2FnZVRy
YWNraW5nU29mdExpbmsubW06IEFkZGVkLgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5n
QXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2ZDNhMTJkY2QzMDliOTQ4YWQ4YzcxMTdhMGMx
ZTUwYTliMDFhYTQuLmMwMTE3Yjk2ODU4ODBkNDI4YTJhMWY1ZGY0YzM2YTU2OTAzY2I2NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUg
YXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1lZGlhVXNhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
ZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVVzYWdlTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25NZWRpYVVzYWdl
OjpTZXNzaW9uTWVkaWFVc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01l
ZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp1c2FnZVRy
YWNraW5nQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6On5NZWRpYVVz
YWdlTWFuYWdlckNvY29hKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRN
ZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjpy
ZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNv
Y29hOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZE1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVt
b3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJh
Y2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlkZW9Vc2FnZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZFZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVtb3ZlVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9WaWRlb1VzYWdlTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFu
YWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFn
ZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5h
Z2VyOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvVmlkZW9V
c2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1Zp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNh
Z2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25WaWRlb1VzYWdlOjpTZXNzaW9uVmlkZW9Vc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1ZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2EubW06
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5VcGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6On5WaWRlb1VzYWdlTWFuYWdlckNvY29hKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjpyZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0
aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojph
ZGRWaWRlb1VzYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
dXBkYXRlVmlkZW9Vc2FnZUZvclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWRkVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW92ZVZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIwLTA0
LTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyNTk4OTgpOiBUYWJzIG9jY2FzaW9uYWxseSBnbyBibGFuayBhbmQgZ2V0IHN0
dWNrIHRoYXQgd2F5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2OTcwN2QxMTIyZWRlMDg4ZjlkZjdh
OGU2NDJjODhjODNiYmQ0N2RlLi5iOTk5Y2MyZDkwNTEyODMwOWRjYjEwNTBiNzhiOWU3NWNlMjU0
MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNTgsNiArMTE1OCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVVzYWdlSW5mby5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTFNoaW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzMGUyYWIyYzA4MTFiZWYyZjcyNTU0MjdlZWQ4NjRiMzJi
NDE2MzhiLi5mZmU4ZGVmZDYxYWU2NWUzYTM0YzA2MzNiZDk0YzU5OTAxYzc1Y2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MSw2ICsyMSw4IEBACiAvKiBFbmQgUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKwkJMDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0
IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tp
bmdTb2Z0TGluay5oICovOyB9OworCQkwNzYxMURCNzI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VU
cmFja2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc2MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSAqLzsgfTsKIAkJMDc3RTg3QjEyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovOyB9
OwogCQkwNzdFODdCMjIyNkE0NjAzMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0U4N0IwMjI2
QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5oICovOyB9OwogCQkwQzAwQ0ZE
NDFGNjhDRTQ2MDBBQUMyNkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzAwQ0ZEMjFGNjhDRTQ2MDBBQUMy
NkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CkBAIC0xOTAsNiArMTkyLDggQEAK
IC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
aWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVz
YWdlVHJhY2tpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
c2FnZVRyYWNraW5nU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2
MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzYWdlVHJhY2tpbmdTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYw
IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQVZGb3VuZGF0aW9uU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQzAwQ0ZEMTFGNjhDRTQ2MDBBQUMy
NkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MjUsNiArNjI5LDggQEAKIAkJCQlDREFDQjM1RjIzODczRTQ4MDAxOEQ3
Q0UgLyogTWVkaWFUb29sYm94U29mdExpbmsuaCAqLywKIAkJCQlBMUY2M0M5RDIxQTREQkY3MDA2
RkI0M0IgLyogUGFzc0tpdFNvZnRMaW5rLmggKi8sCiAJCQkJQTFGNjNDOUUyMUE0REJGNzAwNkZC
NDNCIC8qIFBhc3NLaXRTb2Z0TGluay5tbSAqLywKKwkJCQkwNzYxMURCNDI0M0ZBNUJFMDBEODA3
MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggKi8sCisJCQkJMDc2MTFEQjUyNDNGQTVCRjAw
RDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Y29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODQ1LDYgKzg1MSw3IEBACiAJ
CQkJMkUxMzQyQ0MyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNUFGOTIyMUY0M0E0QzcwMDJFQUMwMiAvKiBVSUtpdFNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREExNDcxRjNCRUI0OTAwREJDMzE3IC8qIFVSTEZvcm1hdHRpbmdTUEku
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjExREI2MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRy
YWNraW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5MUYzQkVCNDkwMERC
QzMxNyAvKiBXZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMDgy
NkY5MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwpA
QCAtOTY0LDYgKzk3MSw3IEBACiAJCQkJQTNBQjZFNTcxRjNEMUREQjAwOUMxNEIxIC8qIFN5c3Rl
bVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZFNjUxRjNEMjE3RjAw
OUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RTEzNDJDRDIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTA3NjExREI3MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTA4MjZGQTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFu
ZWwubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Vz
YWdlVHJhY2tpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMDBjYmZjMWRlZGMyMjJmMDg5YzJl
ZDk1OTE5YzNmZDVhMTIyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nKTsKKworU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBVU1ZpZGVvVXNhZ2UpOworI2RlZmluZSBfQVhTSXNvbGF0ZWRUcmVl
TW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUgUEFMOjpjYW5Mb2FkX2xpYkFjY2Vzc2liaWxpdHlfX0FY
U0lzb2xhdGVkVHJlZU1vZGUKKworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNN
YW5hZ2VyLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29u
dHJvbHNNYW5hZ2VyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Q2Fu
U2hvd0NvbnRyb2xzTWFuYWdlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5
aW5nQ29udHJvbHMsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUNhblNo
b3dOb3dQbGF5aW5nQ29udHJvbHMgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlDYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNT
dXNwZW5kZWQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVu
ZGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQo
KQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1lbnQsIE5TU3RyaW5nICopCisj
ZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNGdWxsc2NyZWVuIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5SXNGdWxsc2NyZWVuKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCBQQUw6OmdldF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzTXV0ZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUgUEFMOjpnZXRfVXNhZ2VUcmFja2lu
Z19VU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleUlzQXVkaW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0
YUtleUlzQXVkaW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0F1
ZGlvKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNl
ckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0Vs
ZW1lbnRXaXRoVXNlckdlc3R1cmUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9I
RUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVk
QXVkaW9CZWZvcmUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJI
YXNQbGF5ZWRBdWRpb0JlZm9yZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRWxl
bWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lIFBBTDo6Z2V0X1VzYWdlVHJh
Y2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRl
b01ldGFkYXRhS2V5Tm9BdWRpbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleU5vQXVkaW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQgUEFM
OjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRl
ZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90
T3duZXJFbGVtZW50LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc01l
ZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQoKQorU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFs
bG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRl
b01ldGFkYXRhS2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tB
bmRGdWxsc2NyZWVuTm90UGVybWl0dGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5v
dFBlcm1pdHRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVJlcXVp
cmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFp
bnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250
YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3ND
b250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVv
TWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5n
ZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVp
cmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19V
U1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0
ZUNoYW5nZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVz
YWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRh
dGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRl
b0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2Vz
dHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9M
b3dQb3dlck1vZGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQs
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1
aXJlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1
cmVSZXF1aXJlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05v
dFBsYXlpbmcsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVz
UGxheWJhY2tBbmRJc05vdFBsYXlpbmcgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0
YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nLCBOU1N0cmluZyAqKQorI2RlZmluZSBV
U1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmco
KQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQor
I2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuIFBBTDo6Z2V0X1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5T3V0c2lkZU9mRnVsbHNjcmVlbigpCitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVT
VmlkZW9NZXRhZGF0YUtleUlzVmlkZW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRh
ZGF0YUtleUlzVmlkZW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJ
c1ZpZGVvKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNh
Z2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIsIE5TU3RyaW5nICopCisjZGVm
aW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlbmRlcmVyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNW
aWRlb01ldGFkYXRhS2V5UmVuZGVyZXIoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvIFBBTDo6Z2V0X1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9WaWRlbygpCitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNW
aWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50IFBBTDo6Z2V0X1VzYWdl
VHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkK
KworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5r
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRmZWE2MTFjODQ3NWMyODRkMmUxNDQ3M2FlOTVhOGRlZWExNTJlN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJh
Y2tpbmdTb2Z0TGluay5tbQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BS
SVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lU
SF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvVXNhZ2UsIFBBTF9FWFBPUlQpOwor
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFnZXIs
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkLCBOU1N0cmluZyosIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1l
bnQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUsIE5T
U3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlz
QXVkaW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRh
ZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVm
b3JlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW8sIE5TU3RyaW5nKiwg
UEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVy
bWl0dGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0
YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90
T3duZXJFbGVtZW50LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFL
ZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1p
dHRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxh
eUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRy
YWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
clZpZGVvUmF0ZUNoYW5nZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Jh
dGVDaGFuZ2UsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01l
dGFkYXRhS2V5Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQ
bGF5aW5nLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0
YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4s
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eUlzVmlkZW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleVJlbmRlcmVyLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2Fn
ZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQs
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTVjZTU4YjVhYjhjNjliN2YyMmQ4MmRhNjRk
MjQ2YTMxNzkxZjFkMi4uZjRkMTdjMjAxODc4NTE3YWRmOWEzMmQ1YTdkOWNmNGUxNjJiMGQ2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTMyLDYgKzEzMiw3IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNo
ZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsK
IAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU0QTVF
ODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEzRTIxNEFF
Nzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNl
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3
NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0
IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOUEx
ODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4
NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwICovOyB9OwpAQCAtNTU3MCw2ICs1NTcxLDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNC
NzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVc2FnZUluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFn
ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjUzNTYsNiArMjUzNTgsNyBAQAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBN
ZWRpYVBsYXllclByaXZhdGUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyog
TWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8q
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAorCQkJCTA3NjExREI4MjQzRkI3NUMwMEQ4
MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLAogCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhF
QSAvKiBNSU1FVHlwZUNhY2hlLmNwcCAqLywKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEg
LyogTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBO
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMzE5MTEsNiArMzE5MTQsNyBAQAog
CQkJCTA3RkZERTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJh
Y2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAwMTAwQkQy
MjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0
MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAw
MEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAxMDFkMTdjYzk4MjYyYjVhOGFjNWJkNGMzY2Zi
ZTYzMGE5OTdmYTk2Li5lZTNjNDkyZjBmZGQ0OTFjMjk5ZWE4ZGY4OTFjNzEzNzhkYTBlNjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ1OSw3ICs0NTks
NiBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9sb2dnZXIoJmRvY3VtZW50Lmxv
Z2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNl
bmRpZgotICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lvbklkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgYWxsTWVkaWFFbGVtZW50cygpLmFkZCh0aGlzKTsKIApA
QCAtNzUwNSw3ICs3NTA0LDcgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU2Vzc2lv
blRpdGxlKCkgY29uc3QKIAogTWVkaWFTZXNzaW9uSWRlbnRpZmllciBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVNlc3Npb25VbmlxdWVJZGVudGlmaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9t
ZWRpYVNlc3Npb25JZGVudGlmaWVyOworICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+bWVkaWFT
ZXNzaW9uSWRlbnRpZmllcigpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJv
bENvbW1hbmRUeXBlIGNvbW1hbmQsIGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b21tYW5kQXJndW1lbnQqIGFyZ3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAxYTcyOWY0MDkxYWNkZmNmNzY1YzBiZjU2OTE2NjI1YzI1YTIzZmRkLi41OWE3
NjA3ZTM3MWQyYTBmMjg4NDM5Yzk1ODA4YmU5NWQwM2IxZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTE5Nyw3ICsxMTk3LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Bs
YXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlv
clJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07Ci0gICAgTWVkaWFT
ZXNzaW9uSWRlbnRpZmllciBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXI7CiB9OwogCiBTdHJpbmcg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVu
dFBsYXliYWNrU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggYzZjOWE5ZWUxYjcxZjFjYWIxNGQxOGMwMDk1YmQ5ZmZlYWQ0NWU0MC4uZDRh
NGYzOTZjODA5YTA3YTQ2NTM4NmRmYmUwY2UyNDQ0ZTVjMGI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJO
b3dQbGF5aW5nSW5mby5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTExOSw2ICsxMjAsMTggQEAgTWVkaWFFbGVtZW50U2Vz
c2lvbjo6TWVkaWFFbGVtZW50U2Vzc2lvbihIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAg
ICwgbV9sb2dJZGVudGlmaWVyKGVsZW1lbnQubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Cisj
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBw
YWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRp
ZmllcigpLCBtX2VsZW1lbnQuc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCksIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpKTsKKyNlbmRpZgorfQorCitNZWRpYUVsZW1lbnRTZXNzaW9uOjp+
TWVkaWFFbGVtZW50U2Vzc2lvbigpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBM
QVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBwYWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFn
ZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZW1vdmVNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpKTsKKyNlbmRpZgogfQogCiB2b2lk
IE1lZGlhRWxlbWVudFNlc3Npb246OnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKQEAgLTk5OCw2ICsxMDExLDYyIEBAIE9wdGlvbmFsPE5vd1BsYXlpbmdJbmZvPiBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpub3dQbGF5aW5nSW5mbygpIGNvbnN0CiAgICAgcmV0dXJuIE5vd1Bs
YXlpbmdJbmZvIHsgbV9lbGVtZW50Lm1lZGlhU2Vzc2lvblRpdGxlKCksIG1fZWxlbWVudC5zb3Vy
Y2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lLCBzdXBwb3J0
c1NlZWtpbmcsIG1fZWxlbWVudC5tZWRpYVNlc3Npb25VbmlxdWVJZGVudGlmaWVyKCksIGlzUGxh
eWluZywgYWxsb3dzTm93UGxheWluZ0NvbnRyb2xzVmlzaWJpbGl0eSB9OwogfQogCit2b2lkIE1l
ZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKQoreworI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgYXV0byYgZG9jdW1lbnQg
PSBtX2VsZW1lbnQuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnVsbHNjcmVl
bkVsZW1lbnQgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJl
bnRGdWxsc2NyZWVuRWxlbWVudCgpOworICAgIGJvb2wgaXNBdWRpbyA9IGNsaWVudCgpLnByZXNl
bnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wgaXNWaWRlbyA9IGNs
aWVudCgpLnByZXNlbnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gZG9jdW1lbnQucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKTsKKyAgICBib29sIGlzUGxheWluZyA9IG1fZWxlbWVudC5pc1BsYXlpbmcoKTsKKwor
ICAgIE1lZGlhVXNhZ2VJbmZvIHVzYWdlID0gIHsKKyAgICAgICAgbV9lbGVtZW50LmN1cnJlbnRT
cmMoKSwKKyAgICAgICAgc3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZywK
KyAgICAgICAgY2FuU2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZTo6
Q29udHJvbHNNYW5hZ2VyKSwKKyAgICAgICAgIXBhZ2UtPmlzVmlzaWJsZUFuZEFjdGl2ZSgpLAor
ICAgICAgICBtX2VsZW1lbnQuaXNTdXNwZW5kZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmluQWN0
aXZlRG9jdW1lbnQoKSwKKyAgICAgICAgbV9lbGVtZW50LmlzRnVsbHNjcmVlbigpLAorICAgICAg
ICBtX2VsZW1lbnQubXV0ZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuaXNNZWRp
YURvY3VtZW50KCkgJiYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkgJiYgbV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKS0+aXNNYWluRnJhbWUoKSksCisgICAgICAgIGlzVmlkZW8sCisg
ICAgICAgIGlzQXVkaW8sCisgICAgICAgIG1fZWxlbWVudC5oYXNWaWRlbygpLAorICAgICAgICBt
X2VsZW1lbnQuaGFzQXVkaW8oKSwKKyAgICAgICAgbV9lbGVtZW50LnJlbmRlcmVyKCksCisgICAg
ICAgIGlzQXVkaW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAg
ICAgIGlzQXVkaW8gJiYgaXNQbGF5aW5nLCAvLyB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmUKKyAg
ICAgICAgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCksCisgICAgICAg
ICFwbGF5YmFja1Blcm1pdHRlZCgpLAorICAgICAgICBwYWdlLT5tZWRpYVBsYXliYWNrSXNTdXNw
ZW5kZWQoKSwKKyAgICAgICAgZG9jdW1lbnQuaXNNZWRpYURvY3VtZW50KCkgJiYgIWRvY3VtZW50
Lm93bmVyRWxlbWVudCgpLAorICAgICAgICBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1
dG9wbGF5SW5saW5lKG1fZWxlbWVudCksCisgICAgICAgIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZp
ZGVvUGxheWJhY2soKSAmJiAhZnVsbHNjcmVlblBlcm1pdHRlZCgpLAorICAgICAgICBkb2N1bWVu
dC5oYXNIYWRVc2VySW50ZXJhY3Rpb24oKSAmJiBkb2N1bWVudC5xdWlya3MoKS5zaG91bGRBdXRv
cGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVo
YXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpICYm
ICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgIG1fZWxlbWVudC5oYXNBdWRpbygpICYm
IGhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hh
bmdlKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlICYmICFtX2VsZW1lbnQubXV0ZWQoKSAmJiBt
X2VsZW1lbnQudm9sdW1lKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVoYXZpb3JSZXN0cmlj
dGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKSAmJiAhcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlLAorICAgICAgICAhaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1
aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpIHx8IHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSwKKyAgICAgICAgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlUGxheWJhY2tU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpICYmICFpc1BsYXlpbmcsCisgICAgICAgIG1fZWxlbWVu
dC5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcoKSwKKyAgICAgICAgZnVsbHNjcmVlbkVsZW1l
bnQgJiYgIW1fZWxlbWVudC5pc0Rlc2NlbmRhbnRPZigqZnVsbHNjcmVlbkVsZW1lbnQpLAorICAg
ICAgICBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQ
dXJwb3NlOjpNZWRpYUNvbnRyb2xzKSwKKyAgICB9OworCisgICAgaWYgKG1fbWVkaWFVc2FnZUlu
Zm8gJiYgKm1fbWVkaWFVc2FnZUluZm8gPT0gdXNhZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbWVkaWFVc2FnZUluZm8gPSBXVEZNb3ZlKHVzYWdlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS51cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShtZWRpYVNlc3Npb25J
ZGVudGlmaWVyKCksICptX21lZGlhVXNhZ2VJbmZvKTsKKyNlbmRpZgorfQorCiBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY29uc3QgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbiBl
bnVtZXJhdGlvblZhbHVlKQogewogICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZhbHVlc1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
aAppbmRleCAxY2QyYzhhMGRjN2FlZWRkNzFlNzg2Njg3YzgzZWZkMDdkYjk3ZDFjLi41NjU5ZmMx
MzBiNmNiOWVmZGJkZDgzZGZlMTI4NDNjNjliYzIxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiTWVkaWFV
c2FnZUluZm8uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUg
IlN1Y2Nlc3NPci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01Nyw3ICs1OCw3IEBAIGNsYXNz
IE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb24K
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRp
YUVsZW1lbnRTZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5NZWRpYUVs
ZW1lbnRTZXNzaW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhRWxlbWVudFNlc3Np
b24oKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKQEAgLTE1OSw2ICsxNjAsOSBA
QCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWluZ0luZm8o
KSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIGZp
bmFsOworICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBtZWRpYVVzYWdlSW5mbygpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFVc2FnZUluZm87IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2xvZ0lkZW50aWZpZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiTWVkaWFFbGVtZW50U2Vzc2lvbiI7IH0KQEAgLTE4OCw2ICsxOTIsOCBA
QCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBCZWhhdmlv
clJlc3RyaWN0aW9ucyBtX3Jlc3RyaWN0aW9uczsKIAorICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJ
bmZvPiBtX21lZGlhVXNhZ2VJbmZvOworCiAgICAgYm9vbCBtX2VsZW1lbnRJc0hpZGRlblVudGls
VmlzaWJsZUluVmlld3BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbGVtZW50SXNIaWRkZW5C
ZWNhdXNlSXRXYXNSZW1vdmVkRnJvbURPTSB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCmluZGV4IDNlOTg1YTg5MDA4MDk0OWNjNTdmMmE4NTdkZDZkZjVkYjliYjQ4MTgu
LjVjYTA4ZDkyOThlMGM1ODk1YzczM2Y3MDZkMDZhYjU3MjZhOGY0M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaApAQCAtNjgsNiArNjgsMTEgQEAgY2xhc3MgV0FLUmVzcG9uZGVyOwog
I2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShN
QUMpCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlh
VXNhZ2VJbmZvLmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU1Jlc3BvbmRlcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzU2LDYgKzM2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
TWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgLyogYnVuZGxlSWRlbnRpZmllciAqLywgY29uc3QgVVJMJiAvKiBwYWdlVVJMICovKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUo
TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgTWVkaWFVc2FnZUluZm8mKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIpIHsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0Vs
ZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQog
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyBy
ZXR1cm4gZmFsc2U7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMTg1M2ExMjFjYWIyMjc2MGYxMWYyMjkz
MGRmODkyNGM3ODg1NzRkNi4uOGU3ZjhjMTJiZTk1ZWVmYWE3NzA0MzYwMDMyMTA2YTViZTk4OTk5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbj4gUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1l
ZGlhCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyJiBtYW5hZ2VyLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCYg
Y2xpZW50KQogICAgIDogbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogICAgICwgbV9j
bGllbnQoY2xpZW50KQorICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lv
bklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX3N0
YXRlVG9SZXN0b3JlKElkbGUpCiAgICAgLCBtX25vdGlmeWluZ0NsaWVudChmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
CmluZGV4IDkzMDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFhY2EuLjQ2ODUxMmM0
OTc3NjlhYjFmZjlhZDEzMjlmM2UwM2Y0OWQ4MTk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CkBAIC0xODgsNiArMTg5LDkgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0dWFsIE9wdGlv
bmFsPE5vd1BsYXlpbmdJbmZvPiBub3dQbGF5aW5nSW5mbygpIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCkgeyB9CisKKyAgICBNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U2Vzc2lvbklkZW50aWZpZXI7IH0KIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtTWVkaWFTZXNz
aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYsIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xp
ZW50Jik7CkBAIC0yMDAsNiArMjA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX21hbmFnZXI7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Np
b25DbGllbnQmIG1fY2xpZW50OworICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgbV9tZWRpYVNl
c3Npb25JZGVudGlmaWVyOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgU3RhdGUgbV9zdGF0ZVRv
UmVzdG9yZTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIG1faW50ZXJydXB0aW9uVHlwZSB7IE5vSW50
ZXJydXB0aW9uIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxMzc1NzUwNTU3Y2Yz
MDc4MGExOWRjOWYxMWUwNzU5YjQxOGFjZDZmLi5hYmNlYjY0MmMzNWNiYmFjMjM0MjRkMDQzY2M5
NGI4Mzk2YmViZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjcmVhdGUKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKIHsKICAgICBpZiAoYXV0byBl
eGlzdGluZ01hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXJJZkV4aXN0cygpKQotICAgICAgICBleGlzdGluZ01hbmFnZXItPnNjaGVkdWxlVXBkYXRlTm93
UGxheWluZ0luZm8oKTsKKyAgICAgICAgZXhpc3RpbmdNYW5hZ2VyLT5zY2hlZHVsZVVwZGF0ZVNl
c3Npb25TdGF0dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApp
bmRleCAzOTViM2NhNjBkODJmZjJiMTg5NDFlNjk2YzAzNTNmMThlYzljMzIwLi5jNzI4ZDg2ZTNm
MjA5YzIyYmE0ZWIxZWJkZDIxNGJhOWExNTNlZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVVcGRh
dGVOb3dQbGF5aW5nSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVVwZGF0ZVNl
c3Npb25TdGF0dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+KSB7IH0K
ICAgICBib29sIGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlKSBjb25zdDsKICAg
ICBpbnQgY291bnQoUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSkgY29uc3Q7CiAgICAg
Ym9vbCBhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpIGNvbnN0OwpAQCAtMTE0LDcgKzExNCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7CiAgICAg
dmlydHVhbCB2b2lkIHNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJl
bW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCmluZGV4IDVkNmIxM2E4YTA5ODFkM2FkZjU4ODFiMzgw
NDVlY2UyNGI4ZGNjYmIuLjMyYWNlMWFkNDIyMGM5OWM5M2U3NDIzNjVlNzIyYTczOWIwZGRhYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCkBAIC02MCw4ICs2MCwxMCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJOb3dQbGF5aW5nSW5mbygpOwog
ICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0
QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIGNvbnN0IE5vd1BsYXlpbmdJbmZvJik7CiAKKyAgICBz
dGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVNZWRpYVVzYWdlKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJik7CisKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNjaGVkdWxlVXBkYXRlTm93UGxheWlu
Z0luZm8oKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyhPcHRp
b25hbDxXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uPj4pIGZpbmFsOwogICAgIHZvaWQgdXBk
YXRlTm93UGxheWluZ0luZm8oKTsKIAogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYpIGZpbmFsOwpAQCAtNzAsNyArNzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBi
b29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Vz
c2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZp
bmFsOworICAgIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbkNhblByb2R1Y2VB
dWRpb0NoYW5nZWQoKSBmaW5hbDsKIApAQCAtMTA1LDcgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAg
ZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgeyBOQU4gfTsKICAgICBN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlk
ZW50aWZpZXI7CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX25vd1BsYXlpbmdVcGRh
dGVUYXNrUXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBtX3JlbW90ZUNvbW1h
bmRMaXN0ZW5lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVy
PiBtX3N5c3RlbVNsZWVwTGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5k
ZXggMGZiNzllYmI5MmVhNGNhNmE1YmEwNDA0YzVhNmEyZmQ5ZTZiNGJiZi4uNzViMTZiNTFmNzY3
YTJiYTUzZjVlZTA3OWUxNTJlYmMyNzQ2N2Q2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtMTM0LDEwICsxMzQsMjAgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAgICAgcHJvdmlkZVBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCk7CiB9CiAKLXZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKK3ZvaWQgTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoT3B0aW9u
YWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+IHNlc3Npb24pCiB7Ci0gICAgaWYgKCFt
X25vd1BsYXlpbmdVcGRhdGVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0gICAgICAgIG1f
bm93UGxheWluZ1VwZGF0ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8sIHRoaXMpKTsKKyAgICBtX3Rh
c2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgJnNlc3Npb25dICgpIG11dGFibGUgeworICAgICAg
ICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgICAgICBpZiAoc2Vzc2lvbi5oYXNWYWx1ZSgp
KSB7CisgICAgICAgICAgICBpZiAoc2Vzc2lvbi52YWx1ZSgpKQorICAgICAgICAgICAgICAgIHNl
c3Npb24udmFsdWUoKS0+dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNl
c3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgp
OworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKQEAgLTE0NSwxMyArMTU1LDEzIEBAIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlCiAgICAgaWYg
KCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhz
ZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NoZWR1bGVVcGRhdGVOb3dQ
bGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyh7IG1ha2VXZWFr
UHRyKCZzZXNzaW9uKSB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZv
cm1NZWRpYVNlc3Npb24mKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25E
aWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7Ci0g
ICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyh7IG1ha2VXZWFrUHRyKCZzZXNzaW9uKSB9KTsKIH0KIAogdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Np
b24pCkBAIC0xNzQsNyArMTg0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJl
bW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgICAgIG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBzY2hlZHVsZVVwZGF0
ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKHsgbWFr
ZVdlYWtQdHIoJnNlc3Npb24pIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2V0Q3VycmVudFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0x
ODgsMjMgKzE5OCwzMCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2V0Q3VycmVu
dFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYgc2Vzc2lvbiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBkZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nKQogewogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lv
bldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKTsK
LSAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9PSBEZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nOjpObykgeworCisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soWyZzZXNz
aW9uXSB7CisgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAg
IH0pOworCisgICAgaWYgKGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcgPT0gRGVsYXlDYWxs
aW5nVXBkYXRlTm93UGxheWluZzo6Tm8pCiAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7
Ci0gICAgICAgIHJldHVybjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAg
ICAgIH0pOwogICAgIH0KLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAK
IHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkpOwotICAgIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoeyBtYWtl
V2Vha1B0cigmc2Vzc2lvbikgfSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIHNjaGVk
dWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNs
ZWFyTm93UGxheWluZ0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQppbmRleCA0NWJkNTRiNGMx
YmVmOWE4ZDA2NWE4YTVlNTcxNDkxNmI5NWM2OTY2Li5lMWVjNzg2NmYzOTc5MDQ5Y2I4MDEzNWVi
ZTJlN2Y4YTgzMmQyNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpAQCAtNjgsNyArNjgsNyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnJlc2V0UmVzdHJpY3Rpb25zKCkKIAogICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlc2V0UmVzdHJpY3Rpb25zKCk7CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpyZXNldFJlc3RyaWN0aW9ucygpOwogCiAgICAgaWYgKHJhbVNpemUoKSA8IHN5c3RlbU1lbW9y
eVJlcXVpcmVkRm9yVmlkZW9JbkJhY2tncm91bmRUYWJzKSB7CiAgICAgICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgInJlc3RyaWN0aW5nIHZpZGVvIGluIGJhY2tncm91bmQgdGFicyBiZWNh
dXNlIHN5c3RlbSBtZW1vcnkgPSAiLCByYW1TaXplKCkpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpCiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewotICAgIGlmICghUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCisg
ICAgaWYgKCFNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFj
ayhzZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFD
Q0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFVc2FnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyNjcwMTYxYzU1
NTNhYTBlMDY4ZGVjN2FjMzViZTM4ZmEzOTA0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKQEAgLTAsMCArMSwyNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE1lZGlhVXNhZ2VJbmZv
IHsKKyAgICBVUkwgbWVkaWFVUkw7CisgICAgYm9vbCBpc1BsYXlpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5TaG93
Tm93UGxheWluZ0NvbnRyb2xzIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIGlzSW5BY3RpdmVEb2N1bWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBp
c0Z1bGxzY3JlZW4geyBmYWxzZSB9OworICAgIGJvb2wgaXNNdXRlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1Zp
ZGVvIHsgZmFsc2UgfTsKKyAgICBib29sIGlzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFz
VmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wg
aGFzUmVuZGVyZXIgeyBmYWxzZSB9OworICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0
dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgcGxheWJhY2tQZXJtaXR0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIHBhZ2VFeHBsaWNpdGx5QWxsb3dz
RWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNGdWxs
c2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRB
dXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlIHsgZmFsc2UgfTsKKyAg
ICBib29sIGlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9E
dWVUb0xvd1Bvd2VyTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWly
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyB7
IGZhbHNlIH07CisgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgeyBmYWxzZSB9
OworICAgIGJvb2wgb3V0c2lkZU9mRnVsbHNjcmVlbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IE1lZGlhVXNhZ2VJbmZvJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtZWRpYVVSTCA9PSBvdGhlci5tZWRpYVVSTAorICAgICAgICAgICAgJiYgaXNQbGF5aW5nID09
IG90aGVyLmlzUGxheWluZworICAgICAgICAgICAgJiYgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9
PSBvdGhlci5jYW5TaG93Q29udHJvbHNNYW5hZ2VyCisgICAgICAgICAgICAmJiBjYW5TaG93Tm93
UGxheWluZ0NvbnRyb2xzID09IG90aGVyLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMKKyAgICAg
ICAgICAgICYmIGlzU3VzcGVuZGVkID09IG90aGVyLmlzU3VzcGVuZGVkCisgICAgICAgICAgICAm
JiBpc0luQWN0aXZlRG9jdW1lbnQgPT0gb3RoZXIuaXNJbkFjdGl2ZURvY3VtZW50CisgICAgICAg
ICAgICAmJiBpc0Z1bGxzY3JlZW4gPT0gb3RoZXIuaXNGdWxsc2NyZWVuCisgICAgICAgICAgICAm
JiBpc011dGVkID09IG90aGVyLmlzTXV0ZWQKKyAgICAgICAgICAgICYmIGlzTWVkaWFEb2N1bWVu
dEluTWFpbkZyYW1lID09IG90aGVyLmlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lCisgICAgICAg
ICAgICAmJiBpc1ZpZGVvID09IG90aGVyLmlzVmlkZW8KKyAgICAgICAgICAgICYmIGlzQXVkaW8g
PT0gb3RoZXIuaXNBdWRpbworICAgICAgICAgICAgJiYgaGFzQXVkaW8gPT0gb3RoZXIuaGFzQXVk
aW8KKyAgICAgICAgICAgICYmIGhhc1ZpZGVvID09IG90aGVyLmhhc1ZpZGVvCisgICAgICAgICAg
ICAmJiBoYXNSZW5kZXJlciA9PSBvdGhlci5oYXNSZW5kZXJlcgorICAgICAgICAgICAgJiYgYXVk
aW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlID09IG90aGVyLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2Vz
dHVyZQorICAgICAgICAgICAgJiYgdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlID09IG90aGVyLnVz
ZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZQorICAgICAgICAgICAgJiYgaXNFbGVtZW50UmVjdE1vc3Rs
eUluTWFpbkZyYW1lID09IG90aGVyLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZQorICAg
ICAgICAgICAgJiYgcGxheWJhY2tQZXJtaXR0ZWQgPT0gb3RoZXIucGxheWJhY2tQZXJtaXR0ZWQK
KyAgICAgICAgICAgICYmIHBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkID09IG90aGVyLnBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkCisgICAgICAgICAgICAmJiBpc01lZGlhRG9jdW1lbnRBbmRO
b3RPd25lckVsZW1lbnQgPT0gb3RoZXIuaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50
CisgICAgICAgICAgICAmJiBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5s
aW5lID09IG90aGVyLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUK
KyAgICAgICAgICAgICYmIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkID09IG90aGVyLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkCisgICAgICAgICAgICAmJiBoYXNIYWRVc2Vy
SW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNl
ckdlc3R1cmUgPT0gb3RoZXIuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNT
aG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlCisgICAgICAgICAgICAmJiBpc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSA9PSBvdGhlci5pc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZQorICAgICAgICAgICAg
JiYgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPT0gb3Ro
ZXIuaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAg
ICAgICAgICYmIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSA9PSBvdGhlci5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVl
VG9Mb3dQb3dlck1vZGUKKyAgICAgICAgICAgICYmIG5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSBv
dGhlci5ub1VzZXJHZXN0dXJlUmVxdWlyZWQKKyAgICAgICAgICAgICYmIHJlcXVpcmVzUGxheWJh
Y2tBbmRJc05vdFBsYXlpbmcgPT0gb3RoZXIucmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWlu
ZworICAgICAgICAgICAgJiYgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nID09IG90aGVyLmhh
c0V2ZXJOb3RpZmllZEFib3V0UGxheWluZworICAgICAgICAgICAgJiYgb3V0c2lkZU9mRnVsbHNj
cmVlbiA9PSBvdGhlci5vdXRzaWRlT2ZGdWxsc2NyZWVuCisgICAgICAgICAgICAmJiBpc0xhcmdl
RW5vdWdoRm9yTWFpbkNvbnRlbnQgPT0gb3RoZXIuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNZWRpYVVzYWdlSW5mbyBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhVXNh
Z2VJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
aW5saW5lIHZvaWQgTWVkaWFVc2FnZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbWVkaWFVUkw7CisgICAgZW5jb2RlciA8PCBpc1BsYXlpbmc7
CisgICAgZW5jb2RlciA8PCBjYW5TaG93Q29udHJvbHNNYW5hZ2VyOworICAgIGVuY29kZXIgPDwg
Y2FuU2hvd05vd1BsYXlpbmdDb250cm9sczsKKyAgICBlbmNvZGVyIDw8IGlzU3VzcGVuZGVkOwor
ICAgIGVuY29kZXIgPDwgaXNJbkFjdGl2ZURvY3VtZW50OworICAgIGVuY29kZXIgPDwgaXNGdWxs
c2NyZWVuOworICAgIGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICBlbmNvZGVyIDw8IGlzTWVkaWFE
b2N1bWVudEluTWFpbkZyYW1lOworICAgIGVuY29kZXIgPDwgaXNWaWRlbzsKKyAgICBlbmNvZGVy
IDw8IGlzQXVkaW87CisgICAgZW5jb2RlciA8PCBoYXNWaWRlbzsKKyAgICBlbmNvZGVyIDw8IGhh
c0F1ZGlvOworICAgIGVuY29kZXIgPDwgaGFzUmVuZGVyZXI7CisgICAgZW5jb2RlciA8PCBhdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgZW5jb2RlciA8PCB1c2VySGFzUGxheWVkQXVk
aW9CZWZvcmU7CisgICAgZW5jb2RlciA8PCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7
CisgICAgZW5jb2RlciA8PCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICBlbmNvZGVyIDw8IHBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkOworICAgIGVuY29kZXIgPDwgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50OworICAgIGVuY29kZXIgPDwgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVt
ZW50VG9BdXRvcGxheUlubGluZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOworICAgIGVuY29kZXIgPDwg
aGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFy
Yml0cmFyeVVzZXJHZXN0dXJlOworICAgIGVuY29kZXIgPDwgaXNWaWRlb0FuZFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgZW5jb2RlciA8PCBpc0F1ZGlvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZTsKKyAgICBlbmNvZGVyIDw8IGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsKKyAgICBl
bmNvZGVyIDw8IG5vVXNlckdlc3R1cmVSZXF1aXJlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVz
UGxheWJhY2tBbmRJc05vdFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBoYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgIGVu
Y29kZXIgPDwgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBpbmxpbmUgT3B0aW9uYWw8TWVkaWFVc2FnZUluZm8+IE1lZGlhVXNhZ2VJbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBNZWRpYVVzYWdlSW5mbyBpbmZvOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1lZGlhVVJMKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1BsYXlpbmcpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNhblNob3dDb250
cm9sc01hbmFnZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMpKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU3VzcGVuZGVkKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0luQWN0aXZlRG9j
dW1lbnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLmlzRnVsbHNjcmVlbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaXNNdXRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW8pKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzQXVk
aW8pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lmhhc1ZpZGVvKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5oYXNBdWRpbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaGFzUmVuZGVyZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSkpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBsYXliYWNrUGVy
bWl0dGVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJF
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5yZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCkpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzSGFkVXNl
ckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVz
ZXJHZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNB
dWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSkpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubm9Vc2VyR2VzdHVyZVJlcXVp
cmVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5m
by5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlp
bmcpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm91dHNpZGVPZkZ1bGxzY3JlZW4pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLmlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5
ZTU1NTkzOTljODE4ZjUxZDM3Y2RjOTk5YWIuLmVlOTc0MWM4ODQxNzMwY2FlYzZiMTM0MzM4ZGRh
MjdmM2I0MTk0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw2
ICsxMjYsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUg
Ik1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisj
aW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgiCkBAIC00MjIzLDYgKzQyMjQsNTMgQEAgSW50ZXJuYWxzOjpNZWRpYVNlc3Npb25TdGF0ZSBJ
bnRlcm5hbHM6Om1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW0KIH0KICNl
bmRpZgogCitFeGNlcHRpb25PcjxJbnRlcm5hbHM6Ok1lZGlhVXNhZ2VTdGF0ZT4gSW50ZXJuYWxz
OjptZWRpYVVzYWdlU3RhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyNp
ZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gaW5mbyA9
IGVsZW1lbnQubWVkaWFTZXNzaW9uKCkubWVkaWFVc2FnZUluZm8oKTsKKyAgICBpZiAoIWluZm8p
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAg
cmV0dXJuIHsgeyBpbmZvLnZhbHVlKCkubWVkaWFVUkwuc3RyaW5nKCksCisgICAgICAgIGluZm8u
dmFsdWUoKS5pc1BsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5jYW5TaG93Q29udHJvbHNN
YW5hZ2VyLAorICAgICAgICBpbmZvLnZhbHVlKCkuY2FuU2hvd05vd1BsYXlpbmdDb250cm9scywK
KyAgICAgICAgaW5mby52YWx1ZSgpLmlzU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCku
aXNJbkFjdGl2ZURvY3VtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNGdWxsc2NyZWVuLAor
ICAgICAgICBpbmZvLnZhbHVlKCkuaXNNdXRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTWVk
aWFEb2N1bWVudEluTWFpbkZyYW1lLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNWaWRlbywKKyAg
ICAgICAgaW5mby52YWx1ZSgpLmlzQXVkaW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNWaWRl
bywKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc0F1ZGlvLAorICAgICAgICBpbmZvLnZhbHVlKCku
aGFzUmVuZGVyZXIsCisgICAgICAgIGluZm8udmFsdWUoKS5hdWRpb0VsZW1lbnRXaXRoVXNlckdl
c3R1cmUsCisgICAgICAgIGluZm8udmFsdWUoKS51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUsCisg
ICAgICAgIGluZm8udmFsdWUoKS5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsCisgICAg
ICAgIGluZm8udmFsdWUoKS5wbGF5YmFja1Blcm1pdHRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgp
LnBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNNZWRp
YURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkucGFnZUV4
cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSwKKyAgICAgICAgaW5mby52YWx1
ZSgpLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVy
bWl0dGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVp
cmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLAorICAgICAg
ICBpbmZvLnZhbHVlKCkuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVD
aGFuZ2UsCisgICAgICAgIGluZm8udmFsdWUoKS5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVy
ZUZvckF1ZGlvUmF0ZUNoYW5nZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSwKKyAgICAgICAgaW5mby52
YWx1ZSgpLm5vVXNlckdlc3R1cmVSZXF1aXJlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLnJlcXVp
cmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNFdmVy
Tm90aWZpZWRBYm91dFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5vdXRzaWRlT2ZGdWxs
c2NyZWVuLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
LAorICAgIH0gfTsKKworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworI2VuZGlmCit9CisKKwogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZWRlYWJhY2FlN2MxYjUzOWZjMDM1MmYzNzk1ZDhj
MWNjN2FmNmUxMC4uNzZkOGFjZjk3ZmRlMTFlMzkzOTQ3ZDVmY2VlYTI3ZWMyMjkxOTBjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04MTQsNiArODE0LDQxIEBAIHB1YmxpYzoK
ICAgICB9OwogICAgIEV4Y2VwdGlvbk9yPE5vd1BsYXlpbmdTdGF0ZT4gbm93UGxheWluZ1N0YXRl
KCkgY29uc3Q7CiAKKyAgICBzdHJ1Y3QgTWVkaWFVc2FnZVN0YXRlIHsKKyAgICAgICAgU3RyaW5n
IG1lZGlhVVJMOworICAgICAgICBib29sIGlzUGxheWluZzsKKyAgICAgICAgYm9vbCBjYW5TaG93
Q29udHJvbHNNYW5hZ2VyOworICAgICAgICBib29sIGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM7
CisgICAgICAgIGJvb2wgaXNTdXNwZW5kZWQ7CisgICAgICAgIGJvb2wgaXNJbkFjdGl2ZURvY3Vt
ZW50OworICAgICAgICBib29sIGlzRnVsbHNjcmVlbjsKKyAgICAgICAgYm9vbCBpc011dGVkOwor
ICAgICAgICBib29sIGlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lOworICAgICAgICBib29sIGlz
VmlkZW87CisgICAgICAgIGJvb2wgaXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNWaWRlbzsKKyAg
ICAgICAgYm9vbCBoYXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNSZW5kZXJlcjsKKyAgICAgICAg
Ym9vbCBhdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgICAgIGJvb2wgdXNlckhhc1Bs
YXllZEF1ZGlvQmVmb3JlOworICAgICAgICBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5G
cmFtZTsKKyAgICAgICAgYm9vbCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICAgICAgYm9vbCBwYWdl
TWVkaWFQbGF5YmFja1N1c3BlbmRlZDsKKyAgICAgICAgYm9vbCBpc01lZGlhRG9jdW1lbnRBbmRO
b3RPd25lckVsZW1lbnQ7CisgICAgICAgIGJvb2wgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50
VG9BdXRvcGxheUlubGluZTsKKyAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICAgICAgYm9vbCBoYXNIYWRV
c2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5
VXNlckdlc3R1cmU7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVz
VXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOworICAgICAgICBib29sIG5vVXNl
ckdlc3R1cmVSZXF1aXJlZDsKKyAgICAgICAgYm9vbCByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQ
bGF5aW5nOworICAgICAgICBib29sIGhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZzsKKyAgICAg
ICAgYm9vbCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgICAgICBib29sIGlzTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudDsKKyAgICB9OworICAgIEV4Y2VwdGlvbk9yPE1lZGlhVXNhZ2VTdGF0ZT4g
bWVkaWFVc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdDsKKwogI2lmIEVOQUJMRShW
SURFTykKICAgICB1c2luZyBQbGF5YmFja0NvbnRyb2xzUHVycG9zZSA9IE1lZGlhRWxlbWVudFNl
c3Npb246OlBsYXliYWNrQ29udHJvbHNQdXJwb3NlOwogICAgIFJlZlB0cjxIVE1MTWVkaWFFbGVt
ZW50PiBiZXN0TWVkaWFFbGVtZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFBs
YXliYWNrQ29udHJvbHNQdXJwb3NlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCA0MzE5NTJlOTY1ZjdlMThjNGY1YjU3NTNhZmI1Mjg0Nzc0YjI2ZDNlLi5kMThlZWIwM2I4
N2JkNzEyMjYwYTUyZGY5NDM2ODVlNTFmZjI1YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0xMTMsNiArMTEzLDQ0IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewog
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bmlxdWVJZGVudGlmaWVyOwogfTsKIAorWworICAgIEV4
cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAorICAgIENvbmRpdGlvbmFsPVZJ
REVPLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IE1lZGlhVXNhZ2VT
dGF0ZSB7CisgICAgRE9NU3RyaW5nIG1lZGlhVVJMOworICAgIGJvb2xlYW4gaXNQbGF5aW5nOwor
ICAgIGJvb2xlYW4gY2FuU2hvd0NvbnRyb2xzTWFuYWdlcjsKKyAgICBib29sZWFuIGNhblNob3dO
b3dQbGF5aW5nQ29udHJvbHM7CisgICAgYm9vbGVhbiBpc1N1c3BlbmRlZDsKKyAgICBib29sZWFu
IGlzSW5BY3RpdmVEb2N1bWVudDsKKyAgICBib29sZWFuIGlzRnVsbHNjcmVlbjsKKyAgICBib29s
ZWFuIGlzTXV0ZWQ7CisgICAgYm9vbGVhbiBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTsKKyAg
ICBib29sZWFuIGlzVmlkZW87CisgICAgYm9vbGVhbiBpc0F1ZGlvOworICAgIGJvb2xlYW4gaGFz
VmlkZW87CisgICAgYm9vbGVhbiBoYXNBdWRpbzsKKyAgICBib29sZWFuIGhhc1JlbmRlcmVyOwor
ICAgIGJvb2xlYW4gYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOworICAgIGJvb2xlYW4gdXNl
ckhhc1BsYXllZEF1ZGlvQmVmb3JlOworICAgIGJvb2xlYW4gaXNFbGVtZW50UmVjdE1vc3RseUlu
TWFpbkZyYW1lOworICAgIGJvb2xlYW4gcGxheWJhY2tQZXJtaXR0ZWQ7CisgICAgYm9vbGVhbiBw
YWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZDsKKyAgICBib29sZWFuIGlzTWVkaWFEb2N1bWVudEFu
ZE5vdE93bmVyRWxlbWVudDsKKyAgICBib29sZWFuIHBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVu
dFRvQXV0b3BsYXlJbmxpbmU7CisgICAgYm9vbGVhbiByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICBib29sZWFuIGhhc0hhZFVz
ZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlV
c2VyR2VzdHVyZTsKKyAgICBib29sZWFuIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
VmlkZW9SYXRlQ2hhbmdlOworICAgIGJvb2xlYW4gaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2U7CisgICAgYm9vbGVhbiBpc1ZpZGVvQW5kUmVxdWlyZXNVc2Vy
R2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGU7CisgICAgYm9vbGVhbiBub1VzZXJHZXN0
dXJlUmVxdWlyZWQ7CisgICAgYm9vbGVhbiByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5n
OworICAgIGJvb2xlYW4gaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOworICAgIGJvb2xlYW4g
b3V0c2lkZU9mRnVsbHNjcmVlbjsKKyAgICBib29sZWFuIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudDsKK307CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9S
VCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKQEAgLTc5NSw2ICs4MzMsOCBAQCBlbnVtIENv
bXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIEhUTUxNZWRpYUVsZW1l
bnQgYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihQbGF5
YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIE1l
ZGlhU2Vzc2lvblN0YXRlIG1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVu
dCk7CiAKKyAgICBbQ29uZGl0aW9uYWw9VklERU8sIE1heVRocm93RXhjZXB0aW9uXSBNZWRpYVVz
YWdlU3RhdGUgbWVkaWFVc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCk7CisKICAg
ICBET01TdHJpbmcgb25nb2luZ0xvYWRzRGVzY3JpcHRpb25zKCk7CiAgICAgdm9pZCBzZXRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3YzljNTQxNWU3NDA5OGQ4
NWNjYjVhMDM2ZTViYjFiMmYwYWQ5ODFhLi42ODU2NDMwNjFiY2RkOTdmMzE3YzUzZGE4M2E2YzFl
NDU4ODRkNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTIxMiw2ICsyMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXInLAog
ICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UG9p
bnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IGQzODRjZTU2NWM3ODRjMTRlOTFhZmQ4OTYwN2M3NTM0OGFiYjc1Y2QuLjFhZTFkNzFl
MTI3NTI1ODIzN2I3ZWE5MTZhMDQ1ZjMzYWEyMDhjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDQyLDYg
KzQ0Miw3IEBAIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCiBVSVByb2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3Bw
CiAKIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNw
cAorVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogCiBVSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAppbmRleCBmOTMyM2ZiOTM5NjA5OGE5OGRmOTZmNmJkNjJkMDE2MmQ2ZGY4Y2M4Li5m
NGE4N2M0NTIyZmJkNjUxNTZkZmM5ZGRkNzc0YmEwODNlNjdmMDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CkBAIC01MDQsNiArNTA0LDggQEAgVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGll
bnQubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCiBVSVBy
b2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCiAKK1VJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCisKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5jcHAKIAogVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAzOTRiZjkxOTM5Nzg3
YTc2YmYxNzNlMzE5ZGMyMmJiNjIyMzI5N2IwLi4wYTNiMzhiZTRhODBiNWY2NjJhZWQwMjExZDYx
MWM5MTgzODZiYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNTAsNiArNTAsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUv
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiTWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTM2MCw0ICszNjQsMjkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNz
VG9QcmVmZXJlbmNlU2VydmljZSgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCitNZWRpYVVzYWdlTWFuYWdlciYgV2ViUGFnZVByb3h5Ojpt
ZWRpYVVzYWdlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX21lZGlhVXNhZ2VNYW5hZ2VyKQorICAg
ICAgICBtX21lZGlhVXNhZ2VNYW5hZ2VyID0gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpOwor
CisgICAgcmV0dXJuICptX21lZGlhVXNhZ2VNYW5hZ2VyOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBV
UkwmIHBhZ2VVUkwpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5hZGRNZWRpYVNlc3Npb24o
aWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJ
bmZvJiBpbmZvKQoreworICAgIG1lZGlhVXNhZ2VNYW5hZ2VyKCkudXBkYXRlTWVkaWFVc2FnZShp
ZGVudGlmaWVyLCBpbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZU1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5yZW1vdmVNZWRpYVNlc3Npb24oaWRlbnRp
Zmllcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDY1MTIzNWJjOTg2MGU4NjI2NjkyOTc2NDNkNzZjZDAzMmQyNjk5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSAmJiAhUExBVEZPUk0oTUFDKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhVXNhZ2VNYW5hZ2Vy
PiBNZWRpYVVzYWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxN
ZWRpYVVzYWdlTWFuYWdlcj4oKTsKK30KKyNlbmRpZgorCit2b2lkIE1lZGlhVXNhZ2VNYW5hZ2Vy
OjogcmVzZXQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2Fn
ZU1hbmFnZXI6OmFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBw
YWdlVVJMKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1h
bmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVVz
YWdlTWFuYWdlcjo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBtZWRpYVVzYWdl
SW5mbykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2Fn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjdjYTFkYzU3N2IzNTc5MGRkZTIzMzg4MWNlODZlN2M4Y2Q5ODk1
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlh
VXNhZ2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVVzYWdlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVVzYWdlTWFuYWdl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdlTWFuYWdlcj4gY3JlYXRlKCk7CisKKyAgICBNZWRpYVVz
YWdlTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5NZWRpYVVzYWdlTWFuYWdlcigp
ID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiAvKiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8p
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllcik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8m
KTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2Nv
Y29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTkzMDhhMGU3
YzY0NGMxMjFkZjQxMzk5NTY3OTEzYzcxNDJjZjIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oCkBA
IC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJNZWRpYVVzYWdlTWFu
YWdlci5oIgorCitPQkpDX0NMQVNTIFVTVmlkZW9Vc2FnZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EgOiBwdWJsaWMgTWVkaWFVc2FnZU1hbmFn
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYSgpOworCisgICAgdm9pZCByZXNldCgpIGZpbmFsOworICAgIHZvaWQgYWRkTWVkaWFT
ZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFVSTCYpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpIGZpbmFs
OworICAgIHZvaWQgcmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50
aWZpZXIpIGZpbmFsOworCitwcml2YXRlOgorCisgICAgc3RydWN0IFNlc3Npb25NZWRpYVVzYWdl
IHsKKyAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgICAgIFNl
c3Npb25NZWRpYVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCisg
ICAgICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAgICAgLCBtX2J1
bmRsZUlkZW50aWZpZXIoYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgICAgICwgbV9wYWdlVVJM
KHBhZ2VVUkwpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgICAgICBTdHJpbmcgbV9idW5kbGVJ
ZGVudGlmaWVyOworICAgICAgICBVUkwgbV9wYWdlVVJMOworICAgICAgICBPcHRpb25hbDxXZWJD
b3JlOjpNZWRpYVVzYWdlSW5mbz4gbV9tZWRpYVVzYWdlSW5mbzsKKyAgICAgICAgUmV0YWluUHRy
PFVTVmlkZW9Vc2FnZT4gbV91c2FnZVRyYWNrZXI7CisgICAgfTsKKworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25NZWRp
YVVzYWdlPj4gbV9tZWRpYVNlc3Npb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEwYTI4ZDU3MjQ4MjRmMWNmNjY2NjUwOTYw
YjkzNzg0Y2M4NzA4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KQEAgLTAsMCArMSwxNjMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2EuaCIKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMp
CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaD4KKworTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KKworQGludGVyZmFjZSBVU1ZpZGVvVXNhZ2UgOiBOU09iamVjdAor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnVuZGxlSWRlbnRpZmllcjooTlNTdHJpbmcgKilidW5k
bGVJZGVudGlmaWVyIFVSTDooTlNVUkwgKil1cmwgbWVkaWFVUkw6KE5TVVJMICopbWVkaWFVUkwg
TlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKKy0gKHZvaWQpc3RvcDsKKy0gKHZvaWQpcmVzdGFy
dDsKKy0gKHZvaWQpdXBkYXRlVmlkZW9NZXRhZGF0YTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICos
IGlkPiAqKXZpZGVvTWV0YWRhdGE7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCit7CisgICAg
cmV0dXJuIChQQUw6OmlzVXNhZ2VUcmFja2luZ0ZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6
Z2V0VVNWaWRlb1VzYWdlQ2xhc3MoKSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdl
TWFuYWdlcj4gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VV
bmlxdWU8TWVkaWFVc2FnZU1hbmFnZXJDb2NvYT4oKTsKK30KKworTWVkaWFVc2FnZU1hbmFnZXJD
b2NvYTo6fk1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EoKQoreworICAgIHJlc2V0KCk7Cit9CisKK3Zv
aWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQoKQoreworICAgIGZvciAoYXV0byYgc2Vz
c2lvbiA6IG1fbWVkaWFTZXNzaW9ucy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+
bV91c2FnZVRyYWNrZXIpIHsKKyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBz
dG9wXTsKKyAgICAgICAgICAgIHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBtX21lZGlhU2Vzc2lvbnMuY2xlYXIoKTsKK30KKwordm9pZCBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIs
IGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWVkaWFTZXNz
aW9ucy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6U2Vzc2lvbk1lZGlhVXNhZ2U+KGlkZW50aWZpZXIsIGJ1
bmRsZUlkZW50aWZpZXIsIHBhZ2VVUkwpOworICAgIH0pOworICAgIEFTU0VSVChhZGRSZXN1bHQu
aXNOZXdFbnRyeSk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVtb3ZlTWVk
aWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKworICAg
IG1fbWVkaWFTZXNzaW9ucy5yZW1vdmUoaWRlbnRpZmllcik7Cit9CisKK3ZvaWQgTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYTo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBtZWRpYVVz
YWdlSW5mbykKK3sKKyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBhdXRvIHNlc3Npb24gPSBtX21lZGlhU2Vzc2lvbnMuZ2V0KGlkZW50aWZpZXIp
OworICAgIGlmICghc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCF1c2FnZVRy
YWNraW5nQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzZXNzaW9uLT5t
X21lZGlhVXNhZ2VJbmZvKSB7CisgICAgICAgIGlmIChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZv
ID09IG1lZGlhVXNhZ2VJbmZvKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChz
ZXNzaW9uLT5tX3VzYWdlVHJhY2tlciAmJiBzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5tZWRp
YVVSTCAhPSBtZWRpYVVzYWdlSW5mby5tZWRpYVVSTCkgeworICAgICAgICAgICAgW3Nlc3Npb24t
Pm1fdXNhZ2VUcmFja2VyIHN0b3BdOworICAgICAgICAgICAgc2Vzc2lvbi0+bV91c2FnZVRyYWNr
ZXIgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFzZXNzaW9uLT5tX3Vz
YWdlVHJhY2tlcikgeworICAgICAgICBpZiAoIW1lZGlhVXNhZ2VJbmZvLmlzUGxheWluZykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NVU1ZpZGVvVXNhZ2VJbnN0YW5jZSgpIGluaXRXaXRoQnVuZGxlSWRl
bnRpZmllcjpzZXNzaW9uLT5tX2J1bmRsZUlkZW50aWZpZXIgVVJMOihOU1VSTCAqKXNlc3Npb24t
Pm1fcGFnZVVSTCBtZWRpYVVSTDooTlNVUkwgKiltZWRpYVVzYWdlSW5mby5tZWRpYVVSTF0pOwor
ICAgICAgICBBU1NFUlQoc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIpOworICAgIH0KKworICAgIGlm
IChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvICYmIHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8t
PmlzUGxheWluZyAhPSBtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpIHsKKyAgICAgICAgaWYgKG1l
ZGlhVXNhZ2VJbmZvLmlzUGxheWluZykKKyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJh
Y2tlciByZXN0YXJ0XTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgW3Nlc3Npb24tPm1fdXNh
Z2VUcmFja2VyIHN0b3BdOworICAgIH0KKyAgICBzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvID0g
bWVkaWFVc2FnZUluZm87CisKKyAgICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICptZXRh
ZGF0YSA9IEB7CisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFn
ZXI6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciks
CisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM6IEAo
c2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+Y2FuU2hvd05vd1BsYXlpbmdDb250cm9scyksCisg
ICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkOiBAKHNlc3Npb24tPm1fbWVkaWFV
c2FnZUluZm8tPmlzU3VzcGVuZGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFj
dGl2ZURvY3VtZW50OiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmlzSW5BY3RpdmVEb2N1
bWVudCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbjogQChzZXNzaW9u
LT5tX21lZGlhVXNhZ2VJbmZvLT5pc0Z1bGxzY3JlZW4pLAorICAgICAgICBVU1ZpZGVvTWV0YWRh
dGFLZXlJc011dGVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmlzTXV0ZWQpLAorICAg
ICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSksCisgICAg
ICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW86IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5m
by0+aXNWaWRlbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW86IEAoc2Vzc2lv
bi0+bV9tZWRpYVVzYWdlSW5mby0+aXNBdWRpbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtl
eU5vVmlkZW86IEAoIXNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmhhc1ZpZGVvKSwKKyAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbzogQCghc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5m
by0+aGFzQXVkaW8pLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlcjogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5oYXNSZW5kZXJlciksCisgICAgICAgIFVTVmlkZW9NZXRh
ZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZTogQChzZXNzaW9uLT5tX21lZGlhVXNh
Z2VJbmZvLT5hdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUpLAorICAgICAgICBVU1ZpZGVvTWV0
YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZvcmU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdl
SW5mby0+dXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lOiBAKHNlc3Npb24tPm1fbWVkaWFVc2Fn
ZUluZm8tPmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSksCisgICAgICAgIFVTVmlkZW9N
ZXRhZGF0YUtleVBsYXliYWNrUGVybWl0dGVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8t
PnBsYXliYWNrUGVybWl0dGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+cGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9j
dW1lbnRBbmROb3RPd25lckVsZW1lbnQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNN
ZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50KSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZTogQChzZXNzaW9u
LT5tX21lZGlhVXNhZ2VJbmZvLT5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5
SW5saW5lKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9y
VmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ6IEAoc2Vzc2lvbi0+bV9tZWRp
YVVzYWdlSW5mby0+cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3Jl
ZW5Ob3RQZXJtaXR0ZWQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50
ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdl
c3R1cmU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aGFzSGFkVXNlckludGVyYWN0aW9u
QW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKSwK
KyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2U6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNWaWRlb0Fu
ZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpLAorICAgICAgICBVU1ZpZGVv
TWV0YWRhdGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5n
ZTogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2Vz
dHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZp
ZGVvRHVlVG9Mb3dQb3dlck1vZGUpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJH
ZXN0dXJlUmVxdWlyZWQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+bm9Vc2VyR2VzdHVy
ZVJlcXVpcmVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQbGF5YmFja0Fu
ZElzTm90UGxheWluZzogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5yZXF1aXJlc1BsYXli
YWNrQW5kSXNOb3RQbGF5aW5nKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SGFzRXZlck5v
dGlmaWVkQWJvdXRQbGF5aW5nOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmhhc0V2ZXJO
b3RpZmllZEFib3V0UGxheWluZyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVP
ZkZ1bGxzY3JlZW46IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+b3V0c2lkZU9mRnVsbHNj
cmVlbiksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudDogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc0xhcmdlRW5vdWdoRm9yTWFpbkNv
bnRlbnQpLAorICAgIH07CisKKyAgICBbc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgdXBkYXRlVmlk
ZW9NZXRhZGF0YTptZXRhZGF0YV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRvck1hbmFnZXIuY3BwCmluZGV4IDQwNzQwMmIyMzdkNDQ4OTE3NmIzNjlmNDEx
NGFkYjQ3OGFkYjIzMGMuLjVhYjVjOTBmMGZhYWJiMTQ4MzdjY2M3YTRlYjZkNjM1Yzg2MmMxZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJOZmNTZXJ2aWNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5j
bHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01v
Y2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbQppbmRleCA1NjcxMjU1NGI2ZjYyYjg2MDEzMGI2NzM3
N2UzZjQzMzZhYmM4MjBjLi42ZjBjYjk5YWFiMWU5M2Q1ZWZmNGQ0OGNkMzIyOTE5Y2NjNDE2MTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0yOSw3ICsy
OSw5IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRl
bS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3Vy
aXR5U1BJLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM5N2UwYWU3OTVhOTE3N2JiM2Y1NmQwZDAxZGE5
NjEzYWFkZjJjNTAuLmZlNDU3MzQ3NWE0MjViNDU3NTdiOWI4YjIzYzY4NDc0NWE2N2NjZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc4LDYgKzI3OCwx
MCBAQAogI2luY2x1ZGUgIkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlICJNZWRpYVVzYWdl
TWFuYWdlci5oIgorI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJQYWdlUHJveHlBZGRpdGlvbnMuaD4KICNlbHNlCkBAIC03
NDYyLDYgKzc0NjYsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUoUmVzZXRTdGF0
ZVJlYXNvbiByZXNldFN0YXRlUmVhc29uKQogICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9tZWRpYVVzYWdlTWFuYWdl
cikKKyAgICAgICAgbV9tZWRpYVVzYWdlTWFuYWdlci0+cmVzZXQoKTsKKyNlbmRpZgorCiAjaWYg
SEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiAgICAgaWYgKHJlc2V0U3RhdGVSZWFz
b24gIT0gUmVzZXRTdGF0ZVJlYXNvbjo6TmF2aWdhdGlvblN3YXApCiAgICAgICAgIG1fY29udGV4
dElERm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggMjhhNzZmZGUyMDI3NGMwNDhhZDAyNzZiYzBkOWMxZTcwMzg5N2Q0
ZS4uYjdiZjZjNTg0ZTNiMzA2ZjcwZTY4MTIwYzZkZDAzZGMyOGQxNTBkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2Nyw2ICsxNjcsMTAgQEAgY2xhc3MgTWVk
aWFTZXNzaW9uTWV0YWRhdGE7CiBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNlbmRpZgogCisj
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhU2Vzc2lvbklkZW50aWZpZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsK
IGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CkBAIC0yMzcsNiArMjQxLDcg
QEAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgR2xvYmFsV2luZG93SWRlbnRp
ZmllcjsKIHN0cnVjdCBMaW5rSWNvbjsKIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Q7CitzdHJ1
Y3QgTWVkaWFVc2FnZUluZm87CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbjsKIHN0cnVjdCBQcmV3YXJtSW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOwpAQCAtMjc1LDYgKzI4MCw3IEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJh
dG9yUHJveHk7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNv
bnRyb2xsZXI7CiBjbGFzcyBHYW1lcGFkRGF0YTsKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyOwog
Y2xhc3MgTmF0aXZlV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0xNzI4LDYgKzE3MzQsMTMgQEAgcHVi
bGljOgogICAgIHZvaWQgcGxhdGZvcm1EaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51
KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBNZWRpYVVzYWdlTWFuYWdlciYgbWVk
aWFVc2FnZU1hbmFnZXIoKTsKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihX
ZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlk
ZW50aWZpZXIgKi8sIGNvbnN0IFVSTCYgLyogcGFnZVVSTCAqLyk7CisgICAgdm9pZCB1cGRhdGVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpOworICAgIHZvaWQgcmVtb3ZlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9j
ZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKQEAgLTIzNTMsNiArMjM2NiwxMCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFVc2FnZU1hbmFnZXI+IG1fbWVkaWFVc2FnZU1hbmFn
ZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW5wdXRNb2RlPiBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2U7CiAgICAgVHJhbnNhY3Rp
b25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCBmMzNiMmUzNGJlOGE1YmNjMTM4MWZjMTAxY2I4YjFjNWQ1OWEzYzk1Li5hYjYzNjY2MGNjNWUw
ZDU4ODdjNzM1ZDlhZmI2NmNmOWJlYTE3OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01ODcsNCArNTg3LDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1z
KFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9u
SXRlbT4gaXRlbXMpCiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFD
KQorICAgIEFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCBVUkwgcGFnZVVS
TCk7CisgICAgVXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFVc2Fn
ZUluZm8gaW5mbyk7CisgICAgUmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6
Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcik7CisjZW5kaWYKKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTI2M2Qx
YzE1ZDBiY2M1YTcwZjQ5ZmUyZDQyMzFhODcwMjFiNTc5Ni4uNDllYTRlMWUyMmJjMzgxMjI4MDA1
NTY3NzVlM2JiODdmMWZiNzNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTU1LDYgKzIxNTUsMTAgQEAKIAkJMDc5MjMxNDYyMzlD
QkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0NzIz
OUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc5MjMxNEUyMzlENUY1MzAw
OTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzk0QjRBQjI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1h
bmFnZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyQ29j
b2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFDMjQ0NTFCQjkwMDAx
QjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdlTWFu
YWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzk0QjRBRTI0NDUyNEIwMDAw
MUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFV
c2FnZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzk0QjRBRjI0
NDUyQTJDMDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVVzYWdlTWFuYWdlckNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3QTVFQkI5MUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRnJhbWVIYW5kbGVSZWYuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0E1RUJCQTFDN0JBNDNFMDBCOUNBNjkgLyogV0tG
cmFtZUhhbmRsZVJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZyYW1l
SGFuZGxlUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QjFEMDRCMjNEMzhG
Q0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTUxOSw2ICs1NTIzLDI1IEBACiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQkwNzk0QjRBOTI0NDUxQkI5MDAwMUI5QzQgLyog
TWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTA3
OTRCNEFBMjQ0NTFCQjkwMDAxQjlDNCAvKiBjb2NvYSAqLywKKwkJCQkwNzk0QjRBRTI0NDUyNEIw
MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuY3BwICovLAorCQkJCTA3OTRCNEFDMjQ0NTFC
QjkwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5oICovLAorCQkJKTsKKwkJCXBhdGggPSBN
ZWRpYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTA3OTRCNEFBMjQ0NTFC
QjkwMDAxQjlDNCAvKiBjb2NvYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2Vy
Q29jb2EuaCAqLywKKwkJCQkwNzk0QjRBQjI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1h
bmFnZXJDb2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOworCQl9OwogCQkwN0M3NUMxNzIzOTlBM0RCMDA4OEU2NUIgLyogbWVkaWEg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODg1NSw2ICs4
ODc4LDcgQEAKIAkJCQkyREE5NDRBODE4ODRFOUFCMDBFRDg2REIgLyogaW9zICovLAogCQkJCUJD
MTExQjE4MTEyRjVGQjQwMDMzN0JBQiAvKiBMYXVuY2hlciAqLywKIAkJCQlCQ0NGMDg1QzExM0Yz
Qjc1MDBDNjUwQzUgLyogbWFjICovLAorCQkJCTA3OTRCNEE5MjQ0NTFCQjkwMDAxQjlDNCAvKiBN
ZWRpYSAqLywKIAkJCQlDRDQ1NzBEODI0NDRDQTE3MDBBM0RDRUIgLyogTWVkaWEgKi8sCiAJCQkJ
NTEwQ0M3RTcxNjEzOEU3MjAwRDAzRUQzIC8qIE5ldHdvcmsgKi8sCiAJCQkJMzFBMkVDNDAxNDg5
OTczNzAwODEwRDcxIC8qIE5vdGlmaWNhdGlvbnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IDU0M2RlMjNkYTg5ZTFiNzRkYmE5N2FhMWEzOTUzZjJjZjY5YTRkMWMuLmYwZjJlNGFhNjAy
ZDAwZDAwMWQ2NTc0OWEwMWZhYTNiZTM4OGNjYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMDA4LDkgKzEwMDgsMjUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW8KIHsKICAgICBtX3Bh
Z2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQodmlkZW9FbGVtZW50KTsKIH0KLQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUNDQVRB
TFlTVCkgfHwgUExBVEZPUk0oTUFDKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQoreworICAgIG1f
cGFnZS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllciwgYnVuZGxlSWRlbnRp
ZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1cGRhdGVNZWRpYVVz
YWdlTWFuYWdlclNlc3Npb25TdGF0ZShNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IE1lZGlhVXNhZ2VJbmZvJiB1c2FnZSkKK3sKKyAgICBtX3BhZ2UudXBkYXRlTWVkaWFV
c2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoaWRlbnRpZmllciwgdXNhZ2UpOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lv
bklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtX3BhZ2UucmVtb3ZlTWVkaWFVc2FnZU1h
bmFnZXJTZXNzaW9uKGlkZW50aWZpZXIpOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1
bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxl
bWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1v
ZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTg1OTMxYzcxMDZmY2I0NjAxY2NjZGM5ZDUyMzY1
NDYwOGM4NjY4Ny4uOTVkM2YzYmY0MDk4MTg3N2Y5YWM0ZTU0NjYxMTVlMmRmOWU3NmM3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMjcwLDYgKzI3MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50JikgZmluYWw7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFU
Rk9STShNQUMpCisgICAgdm9pZCBhZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6
TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiAvKiBidW5kbGVJZGVudGlmaWVy
ICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92
ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
KSBmaW5hbDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91
dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkNDNjYTc3ZTk0
MjkwZjg1NWE0MzIzNmM5NWYwMzM3YWIzMzE5NTBjLi4wM2VlYmU0NmVhNWM2OTFkNWYzODk0MzM5
OGVjOGMzMGVlMGZkYWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNzA2Miw2ICs3MDYyLDIzIEBAIGJvb2wgV2ViUGFnZTo6c2hvdWxkVXNl
UmVtb3RlUmVuZGVyaW5nRm9yKFJlbmRlcmluZ1B1cnBvc2UgcHVycG9zZSkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQor
dm9pZCBXZWJQYWdlOjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0
IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1l
ZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihpZGVudGlmaWVyLCBidW5kbGVJZGVudGlmaWVyLCBwYWdl
VVJMKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
U3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBNZWRpYVVzYWdl
SW5mbyYgdXNhZ2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVcGRhdGVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShpZGVudGlmaWVyLCB1c2FnZSkpOworfQorCit2
b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllcikpOworfQorI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQwZWQ5YzAwNzlmZTVhODRmZWMx
ZWYxNDZmOThmNjliMmY1ZWJiYzcuLmJlOGUxYWMwZTM2ZDYxYTYwMGVjZjk0MGNlOTMxYjQ0OWU3
NGVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAg
LTEzNSw2ICsxMzUsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0F0a09iamVjdCBBdGtPYmplY3Q7CiAj
aW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1BsYXRmb3JtR2VzdHVyZUV2ZW50TWFjLmg+CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmg+CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KQEAgLTIwOCw2ICsyMTIsNyBAQCBzdHJ1
Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyOwogc3RydWN0IEdsb2JhbFdpbmRvd0lkZW50aWZpZXI7
CiBzdHJ1Y3QgSGlnaGxpZ2h0Owogc3RydWN0IEtleXByZXNzQ29tbWFuZDsKK3N0cnVjdCBNZWRp
YVVzYWdlSW5mbzsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZvOwogc3RydWN0IFJ1bkph
dmFTY3JpcHRQYXJhbWV0ZXJzOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKQEAgLTEzMDcs
NyArMTMxMiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0luQXBwQnJvd3NlclByaXZhY3lR
dWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrczsg
fQogICAgIAogICAgIGJvb2wgc2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFdlYkNvcmU6OlJl
bmRlcmluZ1B1cnBvc2UpOwotICAgIAorCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBM
QVRGT1JNKE1BQykKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3Jl
OjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIC8qIGJ1bmRsZUlkZW50aWZp
ZXIgKi8sIGNvbnN0IFVSTCYgLyogcGFnZVVSTCAqLyk7CisgICAgdm9pZCB1cGRhdGVNZWRpYVVz
YWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpOworICAgIHZvaWQgcmVtb3ZlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396540</attachid>
            <date>2020-04-15 08:36:35 -0700</date>
            <delta_ts>2020-04-15 16:23:57 -0700</delta_ts>
            <desc>updated WIP patch for the bots</desc>
            <filename>bug-210518-20200415083634.patch</filename>
            <type>text/plain</type>
            <size>106689</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg2NjczZmVmMTM3Mjdk
ZGUxZTViYWI5NGMxMGMwMGVjYmJmYWY2OC4uMTZkODAzZTc1YWE2NmYxOTY4YjBhZTkyMDg5NmE2
Y2E0N2ZlYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMCBAQAorMjAyMC0wNC0xNCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVw
ZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUGFzcyBtZWRpYSBlbGVtZW50IHN0YXRlIHRvIFNjcmVlblRpbWUgZnJhbWV3
b3JrIHdoZW4gaXQgY2hhbmdlcy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpI
VE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1lbnRTZXNzaW9uOjpNZWRpYUVsZW1lbnRTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246On5NZWRpYUVsZW1lbnRT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1l
ZGlhVXNhZ2VJZkNoYW5nZWQpOgorICAgICAgICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5o
OgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnQ6OnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNz
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlTWVkaWFVc2Fn
ZUlmQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVk
aWFTZXNzaW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBk
YXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJ
bmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRS
ZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hOjpyZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFn
ZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVj
ZUF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFVc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYVVzYWdlU3RhdGUg
Y29uc3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxh
eWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFBh
c3MgbWVkaWEgZWxlbWVudCBzdGF0ZSB0byBTY3JlZW5UaW1lIGZyYW1ld29yayB3aGVuIGl0IGNo
YW5nZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRlbnRpZmllciBjb25zdCk6CisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NZWRpYUVsZW1l
bnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246Ok1l
ZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vzc2lv
bjo6fk1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50
U2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9NZWRp
YUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6YWRkVmlkZW9Vc2FnZVNlc3Npb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50Ojp1cGRhdGVWaWRlb1VzYWdlRm9yU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6dXBkYXRlVmlkZW9Vc2FnZUlmQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNz
aW9uSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcjo6dXBkYXRlTm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVT
Y3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpy
ZW1vdmVTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlv
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNj
aGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb1VzYWdlSW5mby5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlZpZGVvVXNhZ2VJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6VmlkZW9Vc2FnZUluZm86OmRlY29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp2aWRlb1VzYWdlU3RhdGUgY29uc3Qp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFj
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwppbmRleCAzYTNlMjZlMDIyMTE2OWYxMWEyZThkYjY2ODZlNjU2ZTMx
N2MxYjM0Li4yOTY4ZjhjZGM2OTg4MTYyMDUwMDljMDg5NTQ0OTM0ZGU4OTBjMzBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0xNCAgRXJpYyBDYXJsc29uICA8
ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5U
aW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjEx
ODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBQQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvY29jb2EvVXNh
Z2VUcmFja2luZ1NvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jb2NvYS9Vc2FnZVRy
YWNraW5nU29mdExpbmsubW06IEFkZGVkLgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5n
QXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2ZDNhMTJkY2QzMDliOTQ4YWQ4YzcxMTdhMGMx
ZTUwYTliMDFhYTQuLmMwMTE3Yjk2ODU4ODBkNDI4YTJhMWY1ZGY0YzM2YTU2OTAzY2I2NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTA0IEBACisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUg
YXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om1lZGlhVXNhZ2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
ZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVVzYWdlTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25NZWRpYVVzYWdl
OjpTZXNzaW9uTWVkaWFVc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL01l
ZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp1c2FnZVRy
YWNraW5nQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6On5NZWRpYVVz
YWdlTWFuYWdlckNvY29hKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRN
ZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjpy
ZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNv
Y29hOjp1cGRhdGVNZWRpYVVzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW06CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZE1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVt
b3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorCisyMDIwLTA0LTE0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJh
Y2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVBy
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlkZW9Vc2FnZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZFZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVtb3ZlVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9WaWRlb1VzYWdlTWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFu
YWdlcjo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFn
ZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNhZ2VNYW5h
Z2VyOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvVmlkZW9V
c2FnZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1Zp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2EuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlZpZGVvVXNh
Z2VNYW5hZ2VyQ29jb2E6OlNlc3Npb25WaWRlb1VzYWdlOjpTZXNzaW9uVmlkZW9Vc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL01lZGlhL2NvY29hL1ZpZGVvVXNhZ2VNYW5hZ2VyQ29jb2EubW06
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpjYW5VcGRhdGVWaWRlb1VzYWdlKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvVXNhZ2VNYW5hZ2VyQ29jb2E6On5WaWRlb1VzYWdlTWFuYWdlckNvY29hKToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9Vc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjpyZW1vdmVNZWRpYVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb1VzYWdlTWFuYWdlckNvY29hOjp1cGRhdGVWaWRlb1VzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0
aW9uLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojph
ZGRWaWRlb1VzYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
dXBkYXRlVmlkZW9Vc2FnZUZvclNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnJlbW92ZVZpZGVvVXNhZ2VTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWRkVmlkZW9Vc2Fn
ZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaWRlb1VzYWdlRm9y
U2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW92ZVZpZGVvVXNhZ2VTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIwLTA0
LTE0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04gKHIyNTk4OTgpOiBUYWJzIG9jY2FzaW9uYWxseSBnbyBibGFuayBhbmQgZ2V0IHN0
dWNrIHRoYXQgd2F5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA2OTcwN2QxMTIyZWRlMDg4ZjlkZjdh
OGU2NDJjODhjODNiYmQ0N2RlLi5iOTk5Y2MyZDkwNTEyODMwOWRjYjEwNTBiNzhiOWU3NWNlMjU0
MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTExNTgsNiArMTE1OCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJFbnVtcy5oCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVVzYWdlSW5mby5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL09wZW5HTFNoaW1zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAzMGUyYWIyYzA4MTFiZWYyZjcyNTU0MjdlZWQ4NjRiMzJi
NDE2MzhiLi5mZmU4ZGVmZDYxYWU2NWUzYTM0YzA2MzNiZDk0YzU5OTAxYzc1Y2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MSw2ICsyMSw4IEBACiAvKiBFbmQgUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KIAogLyog
QmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKwkJMDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0
IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tp
bmdTb2Z0TGluay5oICovOyB9OworCQkwNzYxMURCNzI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VU
cmFja2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMDc2MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSAqLzsgfTsKIAkJMDc3RTg3QjEyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovOyB9
OwogCQkwNzdFODdCMjIyNkE0NjAzMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0U4N0IwMjI2
QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5oICovOyB9OwogCQkwQzAwQ0ZE
NDFGNjhDRTQ2MDBBQUMyNkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQzAwQ0ZEMjFGNjhDRTQ2MDBBQUMy
NkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmggKi87IH07CkBAIC0xOTAsNiArMTkyLDggQEAK
IC8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
aWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVz
YWdlVHJhY2tpbmdTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
c2FnZVRyYWNraW5nU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2
MTFEQjUyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzYWdlVHJhY2tpbmdTb2Z0TGluay5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc3RTg3QUYyMjZBNDYwMjAwQTJBRkYw
IC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gQVZGb3VuZGF0aW9uU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3N0U4N0IwMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBVkZvdW5kYXRpb25Tb2Z0TGlu
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwQzAwQ0ZEMTFGNjhDRTQ2MDBBQUMy
NkQgLyogTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC02MjUsNiArNjI5LDggQEAKIAkJCQlDREFDQjM1RjIzODczRTQ4MDAxOEQ3
Q0UgLyogTWVkaWFUb29sYm94U29mdExpbmsuaCAqLywKIAkJCQlBMUY2M0M5RDIxQTREQkY3MDA2
RkI0M0IgLyogUGFzc0tpdFNvZnRMaW5rLmggKi8sCiAJCQkJQTFGNjNDOUUyMUE0REJGNzAwNkZC
NDNCIC8qIFBhc3NLaXRTb2Z0TGluay5tbSAqLywKKwkJCQkwNzYxMURCNDI0M0ZBNUJFMDBEODA3
MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggKi8sCisJCQkJMDc2MTFEQjUyNDNGQTVCRjAw
RDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
Y29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtODQ1LDYgKzg1MSw3IEBACiAJ
CQkJMkUxMzQyQ0MyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBDNUFGOTIyMUY0M0E0QzcwMDJFQUMwMiAvKiBVSUtpdFNQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEMyREExNDcxRjNCRUI0OTAwREJDMzE3IC8qIFVSTEZvcm1hdHRpbmdTUEku
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjExREI2MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRy
YWNraW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU5MUYzQkVCNDkwMERC
QzMxNyAvKiBXZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMDgy
NkY5MUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQYW5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwpA
QCAtOTY0LDYgKzk3MSw3IEBACiAJCQkJQTNBQjZFNTcxRjNEMUREQjAwOUMxNEIxIC8qIFN5c3Rl
bVNsZWVwTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTNBQjZFNjUxRjNEMjE3RjAw
OUMxNEIxIC8qIFN5c3RlbVNsZWVwTGlzdGVuZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RTEzNDJDRDIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTA3NjExREI3MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTA4MjZGQTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFu
ZWwubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1Vz
YWdlVHJhY2tpbmdTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmMDBjYmZjMWRlZGMyMjJmMDg5YzJl
ZDk1OTE5YzNmZDVhMTIyNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFU
Rk9STShNQUMpCisKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJB
TUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nKTsKKworU09GVF9MSU5LX0NMQVNT
X0ZPUl9IRUFERVIoUEFMLCBVU1ZpZGVvVXNhZ2UpOworI2RlZmluZSBfQVhTSXNvbGF0ZWRUcmVl
TW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUgUEFMOjpjYW5Mb2FkX2xpYkFjY2Vzc2liaWxpdHlfX0FY
U0lzb2xhdGVkVHJlZU1vZGUKKworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNN
YW5hZ2VyLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29u
dHJvbHNNYW5hZ2VyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Q2Fu
U2hvd0NvbnRyb2xzTWFuYWdlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5
aW5nQ29udHJvbHMsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUNhblNo
b3dOb3dQbGF5aW5nQ29udHJvbHMgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlDYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNT
dXNwZW5kZWQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVu
ZGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQo
KQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1lbnQsIE5TU3RyaW5nICopCisj
ZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNGdWxsc2NyZWVuIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5SXNGdWxsc2NyZWVuKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCBQQUw6OmdldF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzTXV0ZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUgUEFMOjpnZXRfVXNhZ2VUcmFja2lu
Z19VU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleUlzQXVkaW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0
YUtleUlzQXVkaW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0F1
ZGlvKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNl
ckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0Vs
ZW1lbnRXaXRoVXNlckdlc3R1cmUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9I
RUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVk
QXVkaW9CZWZvcmUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJI
YXNQbGF5ZWRBdWRpb0JlZm9yZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRWxl
bWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01l
dGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lIFBBTDo6Z2V0X1VzYWdlVHJh
Y2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRl
b01ldGFkYXRhS2V5Tm9BdWRpbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleU5vQXVkaW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQgUEFM
OjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRl
ZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90
T3duZXJFbGVtZW50LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc01l
ZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQoKQorU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFs
bG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRl
b01ldGFkYXRhS2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tB
bmRGdWxsc2NyZWVuTm90UGVybWl0dGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5v
dFBlcm1pdHRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVJlcXVp
cmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFp
bnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250
YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3ND
b250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVv
TWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5n
ZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVp
cmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19V
U1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0
ZUNoYW5nZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVz
YWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yQXVkaW9SYXRlQ2hhbmdlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRh
dGFLZXlJc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRl
b0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2Vz
dHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9M
b3dQb3dlck1vZGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQs
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1
aXJlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1
cmVSZXF1aXJlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05v
dFBsYXlpbmcsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVz
UGxheWJhY2tBbmRJc05vdFBsYXlpbmcgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0
YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nLCBOU1N0cmluZyAqKQorI2RlZmluZSBV
U1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmco
KQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQor
I2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuIFBBTDo6Z2V0X1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5T3V0c2lkZU9mRnVsbHNjcmVlbigpCitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVT
VmlkZW9NZXRhZGF0YUtleUlzVmlkZW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRh
ZGF0YUtleUlzVmlkZW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJ
c1ZpZGVvKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNh
Z2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIsIE5TU3RyaW5nICopCisjZGVm
aW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlbmRlcmVyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNW
aWRlb01ldGFkYXRhS2V5UmVuZGVyZXIoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvIFBBTDo6Z2V0X1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9WaWRlbygpCitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNW
aWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50IFBBTDo6Z2V0X1VzYWdl
VHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkK
KworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5r
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRmZWE2MTFjODQ3NWMyODRkMmUxNDQ3M2FlOTVhOGRlZWExNTJlN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJh
Y2tpbmdTb2Z0TGluay5tbQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BS
SVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lU
SF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvVXNhZ2UsIFBBTF9FWFBPUlQpOwor
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFnZXIs
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdl
VHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkLCBOU1N0cmluZyosIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1l
bnQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUsIE5T
U3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlz
QXVkaW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRh
ZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVm
b3JlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW8sIE5TU3RyaW5nKiwg
UEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVy
bWl0dGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0
YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90
T3duZXJFbGVtZW50LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFL
ZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1p
dHRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxh
eUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRy
YWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
clZpZGVvUmF0ZUNoYW5nZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1Jh
dGVDaGFuZ2UsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01l
dGFkYXRhS2V5Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQ
bGF5aW5nLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0
YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4s
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eUlzVmlkZW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleVJlbmRlcmVyLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2Fn
ZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQs
IE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTVjZTU4YjVhYjhjNjliN2YyMmQ4MmRhNjRk
MjQ2YTMxNzkxZjFkMi4uZjRkMTdjMjAxODc4NTE3YWRmOWEzMmQ1YTdkOWNmNGUxNjJiMGQ2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTMyLDYgKzEzMiw3IEBACiAJCTA3NTM4NjAzMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNo
ZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3NTM4NjAxMTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCAqLzsgfTsK
IAkJMDc1NEE1RUEyMTVFQTNCODAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU0QTVF
ODIxNUVBM0I3MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzU3QjEzRTIxNEFF
Nzk5MDA3OTRCMEQgLyogVmlkZW9QcmVzZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNl
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTA3
NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2MTFEQjgyNDNGQjc1QzAwRDgwNzA0
IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOTkxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3NjM4QTk3MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDc2MzhBOUEx
ODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5ODE4ODQ0ODcyMDBFMTVB
MUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAqLzsgfTsKIAkJMDc2OTcwODYxNDYzQUQ4
NzAwRjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2OTcwODQxNDYzQUQ4NzAwRjUwMkNGIC8qIFRleHRUcmFj
a0xpc3QuY3BwICovOyB9OwpAQCAtNTU3MCw2ICs1NTcxLDcgQEAKIAkJMDc1NEE1RTgyMTVFQTNC
NzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NTRBNUVCMjE1RUFERjMwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTA3NTdCMTNDMjE0QUU3OTcwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb1ByZXNldC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVc2FnZUluZm8uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8q
IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzYzOEE5ODE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFn
ZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Njk3MDg0MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRleHRUcmFja0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjUzNTYsNiArMjUzNTgsNyBAQAogCQkJCTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBN
ZWRpYVBsYXllclByaXZhdGUuaCAqLywKIAkJCQlDRDY0MUVCMTE4MThGNUVEMDBFRTRDNDEgLyog
TWVkaWFTb3VyY2VQcml2YXRlLmggKi8sCiAJCQkJQ0REQzFFNzkxOEE5NTJGMzAwMjdBOUQ0IC8q
IE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudC5oICovLAorCQkJCTA3NjExREI4MjQzRkI3NUMwMEQ4
MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovLAogCQkJCTA3QjkzRkZCMjNCOTJBQUIwMDM2RjhF
QSAvKiBNSU1FVHlwZUNhY2hlLmNwcCAqLywKIAkJCQkwN0I5M0ZGOTIzQjkyQUFBMDAzNkY4RUEg
LyogTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTMxNEJFM0E0MUIzMTAzRkIwMDE0MTk4MiAvKiBO
YW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuY3BwICovLApAQCAtMzE5MTEsNiArMzE5MTQsNyBAQAog
CQkJCTA3RkZERTY5MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyQ0MwQjcxREZGRDE1ODAwNEMwRjlGIC8qIE1lZGlhVHJh
Y2tDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdDMUMwRTIxQkZCNjAwMTAwQkQy
MjU2IC8qIE1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMDc2MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MUUxQkFDMzFCRDgwNjRFMDA1NUQ4MUYgLyogTWVtb3J5QmFja2luZ1N0b3Jl
VHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjE2QzE4MDk3OUMzQkQwMDQ2Nzc0
MSAvKiBNZW1vcnlDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3MTM5MDgxQkY2NERFRjAw
MEQ1RjAxIC8qIE1lbW9yeUN1cnNvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCAxMDFkMTdjYzk4MjYyYjVhOGFjNWJkNGMzY2Zi
ZTYzMGE5OTdmYTk2Li5lZTNjNDkyZjBmZGQ0OTFjMjk5ZWE4ZGY4OTFjNzEzNzhkYTBlNjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQ1OSw3ICs0NTks
NiBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9sb2dnZXIoJmRvY3VtZW50Lmxv
Z2dlcigpKQogICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKICNl
bmRpZgotICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lvbklkZW50aWZp
ZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgYWxsTWVkaWFFbGVtZW50cygpLmFkZCh0aGlzKTsKIApA
QCAtNzUwNSw3ICs3NTA0LDcgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU2Vzc2lv
blRpdGxlKCkgY29uc3QKIAogTWVkaWFTZXNzaW9uSWRlbnRpZmllciBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVNlc3Npb25VbmlxdWVJZGVudGlmaWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9t
ZWRpYVNlc3Npb25JZGVudGlmaWVyOworICAgIHJldHVybiBtX21lZGlhU2Vzc2lvbi0+bWVkaWFT
ZXNzaW9uSWRlbnRpZmllcigpOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2Vp
dmVSZW1vdGVDb250cm9sQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJv
bENvbW1hbmRUeXBlIGNvbW1hbmQsIGNvbnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVD
b21tYW5kQXJndW1lbnQqIGFyZ3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCAxYTcyOWY0MDkxYWNkZmNmNzY1YzBiZjU2OTE2NjI1YzI1YTIzZmRkLi41OWE3
NjA3ZTM3MWQyYTBmMjg4NDM5Yzk1ODA4YmU5NWQwM2IxZTU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMTE5Nyw3ICsxMTk3LDYgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Bs
YXlpbmdPblNlY29uZFNjcmVlbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3JlbW92ZWRCZWhhdmlv
clJlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSB7IGZhbHNlIH07Ci0gICAgTWVkaWFT
ZXNzaW9uSWRlbnRpZmllciBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXI7CiB9OwogCiBTdHJpbmcg
Y29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoSFRNTE1lZGlhRWxlbWVudDo6QXV0b3BsYXlFdmVu
dFBsYXliYWNrU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lv
bi5jcHAKaW5kZXggYzZjOWE5ZWUxYjcxZjFjYWIxNGQxOGMwMDk1YmQ5ZmZlYWQ0NWU0MC4uZDRh
NGYzOTZjODA5YTA3YTQ2NTM4NmRmYmUwY2UyNDQ0ZTVjMGI5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJO
b3dQbGF5aW5nSW5mby5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXIuaCIKQEAgLTExOSw2ICsxMjAsMTggQEAgTWVkaWFFbGVtZW50U2Vz
c2lvbjo6TWVkaWFFbGVtZW50U2Vzc2lvbihIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogICAg
ICwgbV9sb2dJZGVudGlmaWVyKGVsZW1lbnQubG9nSWRlbnRpZmllcigpKQogI2VuZGlmCiB7Cisj
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBw
YWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRp
ZmllcigpLCBtX2VsZW1lbnQuc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCksIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpKTsKKyNlbmRpZgorfQorCitNZWRpYUVsZW1lbnRTZXNzaW9uOjp+
TWVkaWFFbGVtZW50U2Vzc2lvbigpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBM
QVRGT1JNKE1BQykKKyAgICBpZiAoYXV0byBwYWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFn
ZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5yZW1vdmVNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpKTsKKyNlbmRpZgogfQogCiB2b2lk
IE1lZGlhRWxlbWVudFNlc3Npb246OnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50JiBkb2N1
bWVudCkKQEAgLTk5OCw2ICsxMDExLDYyIEBAIE9wdGlvbmFsPE5vd1BsYXlpbmdJbmZvPiBNZWRp
YUVsZW1lbnRTZXNzaW9uOjpub3dQbGF5aW5nSW5mbygpIGNvbnN0CiAgICAgcmV0dXJuIE5vd1Bs
YXlpbmdJbmZvIHsgbV9lbGVtZW50Lm1lZGlhU2Vzc2lvblRpdGxlKCksIG1fZWxlbWVudC5zb3Vy
Y2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSwgZHVyYXRpb24sIGN1cnJlbnRUaW1lLCBzdXBwb3J0
c1NlZWtpbmcsIG1fZWxlbWVudC5tZWRpYVNlc3Npb25VbmlxdWVJZGVudGlmaWVyKCksIGlzUGxh
eWluZywgYWxsb3dzTm93UGxheWluZ0NvbnRyb2xzVmlzaWJpbGl0eSB9OwogfQogCit2b2lkIE1l
ZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKQoreworI2lmIFBM
QVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgYXV0byYgZG9jdW1lbnQg
PSBtX2VsZW1lbnQuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnVsbHNjcmVl
bkVsZW1lbnQgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJl
bnRGdWxsc2NyZWVuRWxlbWVudCgpOworICAgIGJvb2wgaXNBdWRpbyA9IGNsaWVudCgpLnByZXNl
bnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wgaXNWaWRlbyA9IGNs
aWVudCgpLnByZXNlbnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wg
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gZG9jdW1lbnQucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9y
TWVkaWEoKTsKKyAgICBib29sIGlzUGxheWluZyA9IG1fZWxlbWVudC5pc1BsYXlpbmcoKTsKKwor
ICAgIE1lZGlhVXNhZ2VJbmZvIHVzYWdlID0gIHsKKyAgICAgICAgbV9lbGVtZW50LmN1cnJlbnRT
cmMoKSwKKyAgICAgICAgc3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZywK
KyAgICAgICAgY2FuU2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZTo6
Q29udHJvbHNNYW5hZ2VyKSwKKyAgICAgICAgIXBhZ2UtPmlzVmlzaWJsZUFuZEFjdGl2ZSgpLAor
ICAgICAgICBtX2VsZW1lbnQuaXNTdXNwZW5kZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmluQWN0
aXZlRG9jdW1lbnQoKSwKKyAgICAgICAgbV9lbGVtZW50LmlzRnVsbHNjcmVlbigpLAorICAgICAg
ICBtX2VsZW1lbnQubXV0ZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuaXNNZWRp
YURvY3VtZW50KCkgJiYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkgJiYgbV9lbGVtZW50
LmRvY3VtZW50KCkuZnJhbWUoKS0+aXNNYWluRnJhbWUoKSksCisgICAgICAgIGlzVmlkZW8sCisg
ICAgICAgIGlzQXVkaW8sCisgICAgICAgIG1fZWxlbWVudC5oYXNWaWRlbygpLAorICAgICAgICBt
X2VsZW1lbnQuaGFzQXVkaW8oKSwKKyAgICAgICAgbV9lbGVtZW50LnJlbmRlcmVyKCksCisgICAg
ICAgIGlzQXVkaW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAg
ICAgIGlzQXVkaW8gJiYgaXNQbGF5aW5nLCAvLyB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmUKKyAg
ICAgICAgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCksCisgICAgICAg
ICFwbGF5YmFja1Blcm1pdHRlZCgpLAorICAgICAgICBwYWdlLT5tZWRpYVBsYXliYWNrSXNTdXNw
ZW5kZWQoKSwKKyAgICAgICAgZG9jdW1lbnQuaXNNZWRpYURvY3VtZW50KCkgJiYgIWRvY3VtZW50
Lm93bmVyRWxlbWVudCgpLAorICAgICAgICBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1
dG9wbGF5SW5saW5lKG1fZWxlbWVudCksCisgICAgICAgIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZp
ZGVvUGxheWJhY2soKSAmJiAhZnVsbHNjcmVlblBlcm1pdHRlZCgpLAorICAgICAgICBkb2N1bWVu
dC5oYXNIYWRVc2VySW50ZXJhY3Rpb24oKSAmJiBkb2N1bWVudC5xdWlya3MoKS5zaG91bGRBdXRv
cGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVo
YXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpICYm
ICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgIG1fZWxlbWVudC5oYXNBdWRpbygpICYm
IGhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hh
bmdlKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlICYmICFtX2VsZW1lbnQubXV0ZWQoKSAmJiBt
X2VsZW1lbnQudm9sdW1lKCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVoYXZpb3JSZXN0cmlj
dGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKSAmJiAhcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlLAorICAgICAgICAhaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1
aXJlVXNlckdlc3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIpIHx8IHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSwKKyAgICAgICAgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlUGxheWJhY2tU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpICYmICFpc1BsYXlpbmcsCisgICAgICAgIG1fZWxlbWVu
dC5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcoKSwKKyAgICAgICAgZnVsbHNjcmVlbkVsZW1l
bnQgJiYgIW1fZWxlbWVudC5pc0Rlc2NlbmRhbnRPZigqZnVsbHNjcmVlbkVsZW1lbnQpLAorICAg
ICAgICBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQ
dXJwb3NlOjpNZWRpYUNvbnRyb2xzKSwKKyAgICB9OworCisgICAgaWYgKG1fbWVkaWFVc2FnZUlu
Zm8gJiYgKm1fbWVkaWFVc2FnZUluZm8gPT0gdXNhZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbWVkaWFVc2FnZUluZm8gPSBXVEZNb3ZlKHVzYWdlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS51cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShtZWRpYVNlc3Npb25J
ZGVudGlmaWVyKCksICptX21lZGlhVXNhZ2VJbmZvKTsKKyNlbmRpZgorfQorCiBTdHJpbmcgY29u
dmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY29uc3QgTWVkaWFQbGF5YmFja0RlbmlhbFJlYXNvbiBl
bnVtZXJhdGlvblZhbHVlKQogewogICAgIHN0YXRpYyBjb25zdCBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHZhbHVlc1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24u
aAppbmRleCAxY2QyYzhhMGRjN2FlZWRkNzFlNzg2Njg3YzgzZWZkMDdkYjk3ZDFjLi41NjU5ZmMx
MzBiNmNiOWVmZGJkZDgzZGZlMTI4NDNjNjliYzIxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiTWVkaWFV
c2FnZUluZm8uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oIgogI2luY2x1ZGUg
IlN1Y2Nlc3NPci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01Nyw3ICs1OCw3IEBAIGNsYXNz
IE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1NZWRpYVNlc3Npb24K
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNZWRp
YUVsZW1lbnRTZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmKTsKLSAgICB2aXJ0dWFsIH5NZWRpYUVs
ZW1lbnRTZXNzaW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlhRWxlbWVudFNlc3Np
b24oKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKICAgICB2
b2lkIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKQEAgLTE1OSw2ICsxNjAsOSBA
QCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWluZ0luZm8o
KSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIGZp
bmFsOworICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBtZWRpYVVzYWdlSW5mbygpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFVc2FnZUluZm87IH0KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2xvZ0lkZW50aWZpZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiTWVkaWFFbGVtZW50U2Vzc2lvbiI7IH0KQEAgLTE4OCw2ICsxOTIsOCBA
QCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBCZWhhdmlv
clJlc3RyaWN0aW9ucyBtX3Jlc3RyaWN0aW9uczsKIAorICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJ
bmZvPiBtX21lZGlhVXNhZ2VJbmZvOworCiAgICAgYm9vbCBtX2VsZW1lbnRJc0hpZGRlblVudGls
VmlzaWJsZUluVmlld3BvcnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbGVtZW50SXNIaWRkZW5C
ZWNhdXNlSXRXYXNSZW1vdmVkRnJvbURPTSB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCmluZGV4IDNlOTg1YTg5MDA4MDk0OWNjNTdmMmE4NTdkZDZkZjVkYjliYjQ4MTgu
LjVjYTA4ZDkyOThlMGM1ODk1YzczM2Y3MDZkMDZhYjU3MjZhOGY0M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaApAQCAtNjgsNiArNjgsMTEgQEAgY2xhc3MgV0FLUmVzcG9uZGVyOwog
I2VuZGlmCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShN
QUMpCisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlh
VXNhZ2VJbmZvLmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU1Jlc3BvbmRlcjsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzU2LDYgKzM2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
TWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgLyogYnVuZGxlSWRlbnRpZmllciAqLywgY29uc3QgVVJMJiAvKiBwYWdlVVJMICovKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUo
TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgTWVkaWFVc2FnZUluZm8mKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIpIHsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0Vs
ZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQog
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyBy
ZXR1cm4gZmFsc2U7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMTg1M2ExMjFjYWIyMjc2MGYxMWYyMjkz
MGRmODkyNGM3ODg1NzRkNi4uOGU3ZjhjMTJiZTk1ZWVmYWE3NzA0MzYwMDMyMTA2YTViZTk4OTk5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRp
YVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3Jt
TWVkaWFTZXNzaW9uLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbj4gUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQbGF0Zm9ybU1l
ZGlhCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24oUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyJiBtYW5hZ2VyLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVudCYg
Y2xpZW50KQogICAgIDogbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogICAgICwgbV9j
bGllbnQoY2xpZW50KQorICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1lZGlhU2Vzc2lv
bklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX3N0
YXRlVG9SZXN0b3JlKElkbGUpCiAgICAgLCBtX25vdGlmeWluZ0NsaWVudChmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
CmluZGV4IDkzMDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFhY2EuLjQ2ODUxMmM0
OTc3NjlhYjFmZjlhZDEzMjlmM2UwM2Y0OWQ4MTk5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAtMjYsNiArMjYs
NyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKKyNp
bmNsdWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CkBAIC0xODgsNiArMTg5LDkgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0dWFsIE9wdGlv
bmFsPE5vd1BsYXlpbmdJbmZvPiBub3dQbGF5aW5nSW5mbygpIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCkgeyB9CisKKyAgICBNZWRpYVNlc3Npb25J
ZGVudGlmaWVyIG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U2Vzc2lvbklkZW50aWZpZXI7IH0KIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3JtTWVkaWFTZXNz
aW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYsIFBsYXRmb3JtTWVkaWFTZXNzaW9uQ2xp
ZW50Jik7CkBAIC0yMDAsNiArMjA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX21hbmFnZXI7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Np
b25DbGllbnQmIG1fY2xpZW50OworICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgbV9tZWRpYVNl
c3Npb25JZGVudGlmaWVyOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgU3RhdGUgbV9zdGF0ZVRv
UmVzdG9yZTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIG1faW50ZXJydXB0aW9uVHlwZSB7IE5vSW50
ZXJydXB0aW9uIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxMzc1NzUwNTU3Y2Yz
MDc4MGExOWRjOWYxMWUwNzU5YjQxOGFjZDZmLi5hYmNlYjY0MmMzNWNiYmFjMjM0MjRkMDQzY2M5
NGI4Mzk2YmViZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpjcmVhdGUKIHZvaWQgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKIHsKICAgICBpZiAoYXV0byBl
eGlzdGluZ01hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXJJZkV4aXN0cygpKQotICAgICAgICBleGlzdGluZ01hbmFnZXItPnNjaGVkdWxlVXBkYXRlTm93
UGxheWluZ0luZm8oKTsKKyAgICAgICAgZXhpc3RpbmdNYW5hZ2VyLT5zY2hlZHVsZVVwZGF0ZVNl
c3Npb25TdGF0dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApp
bmRleCAzOTViM2NhNjBkODJmZjJiMTg5NDFlNjk2YzAzNTNmMThlYzljMzIwLi5jNzI4ZDg2ZTNm
MjA5YzIyYmE0ZWIxZWJkZDIxNGJhOWExNTNlZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApA
QCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVVcGRh
dGVOb3dQbGF5aW5nSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVVwZGF0ZVNl
c3Npb25TdGF0dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+KSB7IH0K
ICAgICBib29sIGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlKSBjb25zdDsKICAg
ICBpbnQgY291bnQoUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSkgY29uc3Q7CiAgICAg
Ym9vbCBhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpIGNvbnN0OwpAQCAtMTE0LDcgKzExNCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyk7CiAgICAg
dmlydHVhbCB2b2lkIHNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJl
bW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKICAgICB2aXJ0dWFsIHZv
aWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCmluZGV4IDVkNmIxM2E4YTA5ODFkM2FkZjU4ODFiMzgw
NDVlY2UyNGI4ZGNjYmIuLjMyYWNlMWFkNDIyMGM5OWM5M2U3NDIzNjVlNzIyYTczOWIwZGRhYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCkBAIC02MCw4ICs2MCwxMCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJOb3dQbGF5aW5nSW5mbygpOwog
ICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5vd1BsYXlpbmdJbmZvKGJvb2wgc2V0
QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIGNvbnN0IE5vd1BsYXlpbmdJbmZvJik7CiAKKyAgICBz
dGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVNZWRpYVVzYWdlKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJik7CisKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNjaGVkdWxlVXBkYXRlTm93UGxheWlu
Z0luZm8oKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyhPcHRp
b25hbDxXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uPj4pIGZpbmFsOwogICAgIHZvaWQgdXBk
YXRlTm93UGxheWluZ0luZm8oKTsKIAogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYpIGZpbmFsOwpAQCAtNzAsNyArNzIsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBi
b29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Vz
c2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZp
bmFsOworICAgIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbkNhblByb2R1Y2VB
dWRpb0NoYW5nZWQoKSBmaW5hbDsKIApAQCAtMTA1LDcgKzEwNyw3IEBAIHByaXZhdGU6CiAgICAg
ZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgeyBOQU4gfTsKICAgICBN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5mb1VuaXF1ZUlk
ZW50aWZpZXI7CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX25vd1BsYXlpbmdVcGRh
dGVUYXNrUXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNrUXVldWU7CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBtX3JlbW90ZUNvbW1h
bmRMaXN0ZW5lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTeXN0ZW1TbGVlcExpc3RlbmVy
PiBtX3N5c3RlbVNsZWVwTGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5k
ZXggMGZiNzllYmI5MmVhNGNhNmE1YmEwNDA0YzVhNmEyZmQ5ZTZiNGJiZi4uNzViMTZiNTFmNzY3
YTJiYTUzZjVlZTA3OWUxNTJlYmMyNzQ2N2Q2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtMTM0LDEwICsxMzQsMjAgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAgICAgcHJvdmlkZVBy
ZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCk7CiB9CiAKLXZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKK3ZvaWQgTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoT3B0aW9u
YWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+IHNlc3Npb24pCiB7Ci0gICAgaWYgKCFt
X25vd1BsYXlpbmdVcGRhdGVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0gICAgICAgIG1f
bm93UGxheWluZ1VwZGF0ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQoJk1lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8sIHRoaXMpKTsKKyAgICBtX3Rh
c2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgJnNlc3Npb25dICgpIG11dGFibGUgeworICAgICAg
ICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgICAgICBpZiAoc2Vzc2lvbi5oYXNWYWx1ZSgp
KSB7CisgICAgICAgICAgICBpZiAoc2Vzc2lvbi52YWx1ZSgpKQorICAgICAgICAgICAgICAgIHNl
c3Npb24udmFsdWUoKS0+dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNl
c3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgp
OworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKQEAgLTE0NSwxMyArMTU1LDEzIEBAIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlCiAgICAgaWYg
KCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhz
ZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NoZWR1bGVVcGRhdGVOb3dQ
bGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyh7IG1ha2VXZWFr
UHRyKCZzZXNzaW9uKSB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZv
cm1NZWRpYVNlc3Npb24mKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25E
aWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7Ci0g
ICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyh7IG1ha2VXZWFrUHRyKCZzZXNzaW9uKSB9KTsKIH0KIAogdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Np
b24pCkBAIC0xNzQsNyArMTg0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJl
bW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgICAgIG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBzY2hlZHVsZVVwZGF0
ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKHsgbWFr
ZVdlYWtQdHIoJnNlc3Npb24pIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2V0Q3VycmVudFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0x
ODgsMjMgKzE5OCwzMCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2V0Q3VycmVu
dFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYgc2Vzc2lvbiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBkZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nKQogewogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lv
bldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKTsK
LSAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9PSBEZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nOjpObykgeworCisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soWyZzZXNz
aW9uXSB7CisgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAg
IH0pOworCisgICAgaWYgKGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcgPT0gRGVsYXlDYWxs
aW5nVXBkYXRlTm93UGxheWluZzo6Tm8pCiAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7
Ci0gICAgICAgIHJldHVybjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAg
ICAgIH0pOwogICAgIH0KLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAK
IHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkpOwotICAgIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoeyBtYWtl
V2Vha1B0cigmc2Vzc2lvbikgfSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIHNjaGVk
dWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNs
ZWFyTm93UGxheWluZ0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQppbmRleCA0NWJkNTRiNGMx
YmVmOWE4ZDA2NWE4YTVlNTcxNDkxNmI5NWM2OTY2Li5lMWVjNzg2NmYzOTc5MDQ5Y2I4MDEzNWVi
ZTJlN2Y4YTgzMmQyNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpAQCAtNjgsNyArNjgsNyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnJlc2V0UmVzdHJpY3Rpb25zKCkKIAogICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlc2V0UmVzdHJpY3Rpb25zKCk7CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpyZXNldFJlc3RyaWN0aW9ucygpOwogCiAgICAgaWYgKHJhbVNpemUoKSA8IHN5c3RlbU1lbW9y
eVJlcXVpcmVkRm9yVmlkZW9JbkJhY2tncm91bmRUYWJzKSB7CiAgICAgICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgInJlc3RyaWN0aW5nIHZpZGVvIGluIGJhY2tncm91bmQgdGFicyBiZWNh
dXNlIHN5c3RlbSBtZW1vcnkgPSAiLCByYW1TaXplKCkpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpCiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewotICAgIGlmICghUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCisg
ICAgaWYgKCFNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFj
ayhzZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFD
Q0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFVc2FnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyNjcwMTYxYzU1
NTNhYTBlMDY4ZGVjN2FjMzViZTM4ZmEzOTA0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKQEAgLTAsMCArMSwyNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE1lZGlhVXNhZ2VJbmZv
IHsKKyAgICBVUkwgbWVkaWFVUkw7CisgICAgYm9vbCBpc1BsYXlpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5TaG93
Tm93UGxheWluZ0NvbnRyb2xzIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIGlzSW5BY3RpdmVEb2N1bWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBp
c0Z1bGxzY3JlZW4geyBmYWxzZSB9OworICAgIGJvb2wgaXNNdXRlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1Zp
ZGVvIHsgZmFsc2UgfTsKKyAgICBib29sIGlzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFz
VmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wg
aGFzUmVuZGVyZXIgeyBmYWxzZSB9OworICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0
dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgcGxheWJhY2tQZXJtaXR0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIHBhZ2VFeHBsaWNpdGx5QWxsb3dz
RWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNGdWxs
c2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRB
dXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlIHsgZmFsc2UgfTsKKyAg
ICBib29sIGlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9E
dWVUb0xvd1Bvd2VyTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWly
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyB7
IGZhbHNlIH07CisgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgeyBmYWxzZSB9
OworICAgIGJvb2wgb3V0c2lkZU9mRnVsbHNjcmVlbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IE1lZGlhVXNhZ2VJbmZvJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtZWRpYVVSTCA9PSBvdGhlci5tZWRpYVVSTAorICAgICAgICAgICAgJiYgaXNQbGF5aW5nID09
IG90aGVyLmlzUGxheWluZworICAgICAgICAgICAgJiYgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9
PSBvdGhlci5jYW5TaG93Q29udHJvbHNNYW5hZ2VyCisgICAgICAgICAgICAmJiBjYW5TaG93Tm93
UGxheWluZ0NvbnRyb2xzID09IG90aGVyLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMKKyAgICAg
ICAgICAgICYmIGlzU3VzcGVuZGVkID09IG90aGVyLmlzU3VzcGVuZGVkCisgICAgICAgICAgICAm
JiBpc0luQWN0aXZlRG9jdW1lbnQgPT0gb3RoZXIuaXNJbkFjdGl2ZURvY3VtZW50CisgICAgICAg
ICAgICAmJiBpc0Z1bGxzY3JlZW4gPT0gb3RoZXIuaXNGdWxsc2NyZWVuCisgICAgICAgICAgICAm
JiBpc011dGVkID09IG90aGVyLmlzTXV0ZWQKKyAgICAgICAgICAgICYmIGlzTWVkaWFEb2N1bWVu
dEluTWFpbkZyYW1lID09IG90aGVyLmlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lCisgICAgICAg
ICAgICAmJiBpc1ZpZGVvID09IG90aGVyLmlzVmlkZW8KKyAgICAgICAgICAgICYmIGlzQXVkaW8g
PT0gb3RoZXIuaXNBdWRpbworICAgICAgICAgICAgJiYgaGFzQXVkaW8gPT0gb3RoZXIuaGFzQXVk
aW8KKyAgICAgICAgICAgICYmIGhhc1ZpZGVvID09IG90aGVyLmhhc1ZpZGVvCisgICAgICAgICAg
ICAmJiBoYXNSZW5kZXJlciA9PSBvdGhlci5oYXNSZW5kZXJlcgorICAgICAgICAgICAgJiYgYXVk
aW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlID09IG90aGVyLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2Vz
dHVyZQorICAgICAgICAgICAgJiYgdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlID09IG90aGVyLnVz
ZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZQorICAgICAgICAgICAgJiYgaXNFbGVtZW50UmVjdE1vc3Rs
eUluTWFpbkZyYW1lID09IG90aGVyLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZQorICAg
ICAgICAgICAgJiYgcGxheWJhY2tQZXJtaXR0ZWQgPT0gb3RoZXIucGxheWJhY2tQZXJtaXR0ZWQK
KyAgICAgICAgICAgICYmIHBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkID09IG90aGVyLnBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkCisgICAgICAgICAgICAmJiBpc01lZGlhRG9jdW1lbnRBbmRO
b3RPd25lckVsZW1lbnQgPT0gb3RoZXIuaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50
CisgICAgICAgICAgICAmJiBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5s
aW5lID09IG90aGVyLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUK
KyAgICAgICAgICAgICYmIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkID09IG90aGVyLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkCisgICAgICAgICAgICAmJiBoYXNIYWRVc2Vy
SW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNl
ckdlc3R1cmUgPT0gb3RoZXIuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNT
aG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlCisgICAgICAgICAgICAmJiBpc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSA9PSBvdGhlci5pc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZQorICAgICAgICAgICAg
JiYgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPT0gb3Ro
ZXIuaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAg
ICAgICAgICYmIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSA9PSBvdGhlci5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVl
VG9Mb3dQb3dlck1vZGUKKyAgICAgICAgICAgICYmIG5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSBv
dGhlci5ub1VzZXJHZXN0dXJlUmVxdWlyZWQKKyAgICAgICAgICAgICYmIHJlcXVpcmVzUGxheWJh
Y2tBbmRJc05vdFBsYXlpbmcgPT0gb3RoZXIucmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWlu
ZworICAgICAgICAgICAgJiYgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nID09IG90aGVyLmhh
c0V2ZXJOb3RpZmllZEFib3V0UGxheWluZworICAgICAgICAgICAgJiYgb3V0c2lkZU9mRnVsbHNj
cmVlbiA9PSBvdGhlci5vdXRzaWRlT2ZGdWxsc2NyZWVuCisgICAgICAgICAgICAmJiBpc0xhcmdl
RW5vdWdoRm9yTWFpbkNvbnRlbnQgPT0gb3RoZXIuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNZWRpYVVzYWdlSW5mbyBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhVXNh
Z2VJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
aW5saW5lIHZvaWQgTWVkaWFVc2FnZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbWVkaWFVUkw7CisgICAgZW5jb2RlciA8PCBpc1BsYXlpbmc7
CisgICAgZW5jb2RlciA8PCBjYW5TaG93Q29udHJvbHNNYW5hZ2VyOworICAgIGVuY29kZXIgPDwg
Y2FuU2hvd05vd1BsYXlpbmdDb250cm9sczsKKyAgICBlbmNvZGVyIDw8IGlzU3VzcGVuZGVkOwor
ICAgIGVuY29kZXIgPDwgaXNJbkFjdGl2ZURvY3VtZW50OworICAgIGVuY29kZXIgPDwgaXNGdWxs
c2NyZWVuOworICAgIGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICBlbmNvZGVyIDw8IGlzTWVkaWFE
b2N1bWVudEluTWFpbkZyYW1lOworICAgIGVuY29kZXIgPDwgaXNWaWRlbzsKKyAgICBlbmNvZGVy
IDw8IGlzQXVkaW87CisgICAgZW5jb2RlciA8PCBoYXNWaWRlbzsKKyAgICBlbmNvZGVyIDw8IGhh
c0F1ZGlvOworICAgIGVuY29kZXIgPDwgaGFzUmVuZGVyZXI7CisgICAgZW5jb2RlciA8PCBhdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgZW5jb2RlciA8PCB1c2VySGFzUGxheWVkQXVk
aW9CZWZvcmU7CisgICAgZW5jb2RlciA8PCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7
CisgICAgZW5jb2RlciA8PCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICBlbmNvZGVyIDw8IHBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkOworICAgIGVuY29kZXIgPDwgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50OworICAgIGVuY29kZXIgPDwgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVt
ZW50VG9BdXRvcGxheUlubGluZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOworICAgIGVuY29kZXIgPDwg
aGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFy
Yml0cmFyeVVzZXJHZXN0dXJlOworICAgIGVuY29kZXIgPDwgaXNWaWRlb0FuZFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgZW5jb2RlciA8PCBpc0F1ZGlvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZTsKKyAgICBlbmNvZGVyIDw8IGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsKKyAgICBl
bmNvZGVyIDw8IG5vVXNlckdlc3R1cmVSZXF1aXJlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVz
UGxheWJhY2tBbmRJc05vdFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBoYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgIGVu
Y29kZXIgPDwgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBpbmxpbmUgT3B0aW9uYWw8TWVkaWFVc2FnZUluZm8+IE1lZGlhVXNhZ2VJbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBNZWRpYVVzYWdlSW5mbyBpbmZvOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1lZGlhVVJMKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1BsYXlpbmcpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNhblNob3dDb250
cm9sc01hbmFnZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMpKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU3VzcGVuZGVkKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0luQWN0aXZlRG9j
dW1lbnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLmlzRnVsbHNjcmVlbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaXNNdXRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW8pKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzQXVk
aW8pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lmhhc1ZpZGVvKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5oYXNBdWRpbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaGFzUmVuZGVyZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSkpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBsYXliYWNrUGVy
bWl0dGVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJF
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5yZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCkpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzSGFkVXNl
ckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVz
ZXJHZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNB
dWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSkpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubm9Vc2VyR2VzdHVyZVJlcXVp
cmVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5m
by5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlp
bmcpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm91dHNpZGVPZkZ1bGxzY3JlZW4pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLmlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5
ZTU1NTkzOTljODE4ZjUxZDM3Y2RjOTk5YWIuLmVlOTc0MWM4ODQxNzMwY2FlYzZiMTM0MzM4ZGRh
MjdmM2I0MTk0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw2
ICsxMjYsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUg
Ik1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisj
aW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgiCkBAIC00MjIzLDYgKzQyMjQsNTMgQEAgSW50ZXJuYWxzOjpNZWRpYVNlc3Npb25TdGF0ZSBJ
bnRlcm5hbHM6Om1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW0KIH0KICNl
bmRpZgogCitFeGNlcHRpb25PcjxJbnRlcm5hbHM6Ok1lZGlhVXNhZ2VTdGF0ZT4gSW50ZXJuYWxz
OjptZWRpYVVzYWdlU3RhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyNp
ZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorICAgIGF1dG8gaW5mbyA9
IGVsZW1lbnQubWVkaWFTZXNzaW9uKCkubWVkaWFVc2FnZUluZm8oKTsKKyAgICBpZiAoIWluZm8p
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAg
cmV0dXJuIHsgeyBpbmZvLnZhbHVlKCkubWVkaWFVUkwuc3RyaW5nKCksCisgICAgICAgIGluZm8u
dmFsdWUoKS5pc1BsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5jYW5TaG93Q29udHJvbHNN
YW5hZ2VyLAorICAgICAgICBpbmZvLnZhbHVlKCkuY2FuU2hvd05vd1BsYXlpbmdDb250cm9scywK
KyAgICAgICAgaW5mby52YWx1ZSgpLmlzU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCku
aXNJbkFjdGl2ZURvY3VtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNGdWxsc2NyZWVuLAor
ICAgICAgICBpbmZvLnZhbHVlKCkuaXNNdXRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTWVk
aWFEb2N1bWVudEluTWFpbkZyYW1lLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNWaWRlbywKKyAg
ICAgICAgaW5mby52YWx1ZSgpLmlzQXVkaW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNWaWRl
bywKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc0F1ZGlvLAorICAgICAgICBpbmZvLnZhbHVlKCku
aGFzUmVuZGVyZXIsCisgICAgICAgIGluZm8udmFsdWUoKS5hdWRpb0VsZW1lbnRXaXRoVXNlckdl
c3R1cmUsCisgICAgICAgIGluZm8udmFsdWUoKS51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUsCisg
ICAgICAgIGluZm8udmFsdWUoKS5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsCisgICAg
ICAgIGluZm8udmFsdWUoKS5wbGF5YmFja1Blcm1pdHRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgp
LnBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNNZWRp
YURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50LAorICAgICAgICBpbmZvLnZhbHVlKCkucGFnZUV4
cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSwKKyAgICAgICAgaW5mby52YWx1
ZSgpLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVy
bWl0dGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVp
cmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLAorICAgICAg
ICBpbmZvLnZhbHVlKCkuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVD
aGFuZ2UsCisgICAgICAgIGluZm8udmFsdWUoKS5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVy
ZUZvckF1ZGlvUmF0ZUNoYW5nZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSwKKyAgICAgICAgaW5mby52
YWx1ZSgpLm5vVXNlckdlc3R1cmVSZXF1aXJlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLnJlcXVp
cmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNFdmVy
Tm90aWZpZWRBYm91dFBsYXlpbmcsCisgICAgICAgIGluZm8udmFsdWUoKS5vdXRzaWRlT2ZGdWxs
c2NyZWVuLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
LAorICAgIH0gfTsKKworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworI2VuZGlmCit9CisKKwogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAKIHZvaWQgSW50ZXJuYWxzOjpzZXRN
b2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCBlbmFibGVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZWRlYWJhY2FlN2MxYjUzOWZjMDM1MmYzNzk1ZDhj
MWNjN2FmNmUxMC4uNzZkOGFjZjk3ZmRlMTFlMzkzOTQ3ZDVmY2VlYTI3ZWMyMjkxOTBjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04MTQsNiArODE0LDQxIEBAIHB1YmxpYzoK
ICAgICB9OwogICAgIEV4Y2VwdGlvbk9yPE5vd1BsYXlpbmdTdGF0ZT4gbm93UGxheWluZ1N0YXRl
KCkgY29uc3Q7CiAKKyAgICBzdHJ1Y3QgTWVkaWFVc2FnZVN0YXRlIHsKKyAgICAgICAgU3RyaW5n
IG1lZGlhVVJMOworICAgICAgICBib29sIGlzUGxheWluZzsKKyAgICAgICAgYm9vbCBjYW5TaG93
Q29udHJvbHNNYW5hZ2VyOworICAgICAgICBib29sIGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM7
CisgICAgICAgIGJvb2wgaXNTdXNwZW5kZWQ7CisgICAgICAgIGJvb2wgaXNJbkFjdGl2ZURvY3Vt
ZW50OworICAgICAgICBib29sIGlzRnVsbHNjcmVlbjsKKyAgICAgICAgYm9vbCBpc011dGVkOwor
ICAgICAgICBib29sIGlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lOworICAgICAgICBib29sIGlz
VmlkZW87CisgICAgICAgIGJvb2wgaXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNWaWRlbzsKKyAg
ICAgICAgYm9vbCBoYXNBdWRpbzsKKyAgICAgICAgYm9vbCBoYXNSZW5kZXJlcjsKKyAgICAgICAg
Ym9vbCBhdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgICAgIGJvb2wgdXNlckhhc1Bs
YXllZEF1ZGlvQmVmb3JlOworICAgICAgICBib29sIGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5G
cmFtZTsKKyAgICAgICAgYm9vbCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICAgICAgYm9vbCBwYWdl
TWVkaWFQbGF5YmFja1N1c3BlbmRlZDsKKyAgICAgICAgYm9vbCBpc01lZGlhRG9jdW1lbnRBbmRO
b3RPd25lckVsZW1lbnQ7CisgICAgICAgIGJvb2wgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50
VG9BdXRvcGxheUlubGluZTsKKyAgICAgICAgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICAgICAgYm9vbCBoYXNIYWRV
c2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5
VXNlckdlc3R1cmU7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2U7CisgICAgICAgIGJvb2wgaXNWaWRlb0FuZFJlcXVpcmVz
VXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOworICAgICAgICBib29sIG5vVXNl
ckdlc3R1cmVSZXF1aXJlZDsKKyAgICAgICAgYm9vbCByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQ
bGF5aW5nOworICAgICAgICBib29sIGhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZzsKKyAgICAg
ICAgYm9vbCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgICAgICBib29sIGlzTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudDsKKyAgICB9OworICAgIEV4Y2VwdGlvbk9yPE1lZGlhVXNhZ2VTdGF0ZT4g
bWVkaWFVc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmKSBjb25zdDsKKwogI2lmIEVOQUJMRShW
SURFTykKICAgICB1c2luZyBQbGF5YmFja0NvbnRyb2xzUHVycG9zZSA9IE1lZGlhRWxlbWVudFNl
c3Npb246OlBsYXliYWNrQ29udHJvbHNQdXJwb3NlOwogICAgIFJlZlB0cjxIVE1MTWVkaWFFbGVt
ZW50PiBiZXN0TWVkaWFFbGVtZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFBs
YXliYWNrQ29udHJvbHNQdXJwb3NlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCA0MzE5NTJlOTY1ZjdlMThjNGY1YjU3NTNhZmI1Mjg0Nzc0YjI2ZDNlLi5kMThlZWIwM2I4
N2JkNzEyMjYwYTUyZGY5NDM2ODVlNTFmZjI1YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0xMTMsNiArMTEzLDQ0IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewog
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB1bmlxdWVJZGVudGlmaWVyOwogfTsKIAorWworICAgIEV4
cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAorICAgIENvbmRpdGlvbmFsPVZJ
REVPLAorICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IE1lZGlhVXNhZ2VT
dGF0ZSB7CisgICAgRE9NU3RyaW5nIG1lZGlhVVJMOworICAgIGJvb2xlYW4gaXNQbGF5aW5nOwor
ICAgIGJvb2xlYW4gY2FuU2hvd0NvbnRyb2xzTWFuYWdlcjsKKyAgICBib29sZWFuIGNhblNob3dO
b3dQbGF5aW5nQ29udHJvbHM7CisgICAgYm9vbGVhbiBpc1N1c3BlbmRlZDsKKyAgICBib29sZWFu
IGlzSW5BY3RpdmVEb2N1bWVudDsKKyAgICBib29sZWFuIGlzRnVsbHNjcmVlbjsKKyAgICBib29s
ZWFuIGlzTXV0ZWQ7CisgICAgYm9vbGVhbiBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTsKKyAg
ICBib29sZWFuIGlzVmlkZW87CisgICAgYm9vbGVhbiBpc0F1ZGlvOworICAgIGJvb2xlYW4gaGFz
VmlkZW87CisgICAgYm9vbGVhbiBoYXNBdWRpbzsKKyAgICBib29sZWFuIGhhc1JlbmRlcmVyOwor
ICAgIGJvb2xlYW4gYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOworICAgIGJvb2xlYW4gdXNl
ckhhc1BsYXllZEF1ZGlvQmVmb3JlOworICAgIGJvb2xlYW4gaXNFbGVtZW50UmVjdE1vc3RseUlu
TWFpbkZyYW1lOworICAgIGJvb2xlYW4gcGxheWJhY2tQZXJtaXR0ZWQ7CisgICAgYm9vbGVhbiBw
YWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZDsKKyAgICBib29sZWFuIGlzTWVkaWFEb2N1bWVudEFu
ZE5vdE93bmVyRWxlbWVudDsKKyAgICBib29sZWFuIHBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVu
dFRvQXV0b3BsYXlJbmxpbmU7CisgICAgYm9vbGVhbiByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZDsKKyAgICBib29sZWFuIGhhc0hhZFVz
ZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlV
c2VyR2VzdHVyZTsKKyAgICBib29sZWFuIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
VmlkZW9SYXRlQ2hhbmdlOworICAgIGJvb2xlYW4gaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1
cmVGb3JBdWRpb1JhdGVDaGFuZ2U7CisgICAgYm9vbGVhbiBpc1ZpZGVvQW5kUmVxdWlyZXNVc2Vy
R2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGU7CisgICAgYm9vbGVhbiBub1VzZXJHZXN0
dXJlUmVxdWlyZWQ7CisgICAgYm9vbGVhbiByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5n
OworICAgIGJvb2xlYW4gaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOworICAgIGJvb2xlYW4g
b3V0c2lkZU9mRnVsbHNjcmVlbjsKKyAgICBib29sZWFuIGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29u
dGVudDsKK307CisKIFsKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9S
VCwKICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKQEAgLTc5NSw2ICs4MzMsOCBAQCBlbnVtIENv
bXBvc2l0aW5nUG9saWN5IHsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIEhUTUxNZWRpYUVsZW1l
bnQgYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihQbGF5
YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIE1l
ZGlhU2Vzc2lvblN0YXRlIG1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVu
dCk7CiAKKyAgICBbQ29uZGl0aW9uYWw9VklERU8sIE1heVRocm93RXhjZXB0aW9uXSBNZWRpYVVz
YWdlU3RhdGUgbWVkaWFVc2FnZVN0YXRlKEhUTUxNZWRpYUVsZW1lbnQgZWxlbWVudCk7CisKICAg
ICBET01TdHJpbmcgb25nb2luZ0xvYWRzRGVzY3JpcHRpb25zKCk7CiAgICAgdm9pZCBzZXRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA3YzljNTQxNWU3NDA5OGQ4
NWNjYjVhMDM2ZTViYjFiMmYwYWQ5ODFhLi42ODU2NDMwNjFiY2RkOTdmMzE3YzUzZGE4M2E2YzFl
NDU4ODRkNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTIxMiw2ICsyMTIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXInLAog
ICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UG9p
bnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IGQzODRjZTU2NWM3ODRjMTRlOTFhZmQ4OTYwN2M3NTM0OGFiYjc1Y2QuLjFhZTFkNzFl
MTI3NTI1ODIzN2I3ZWE5MTZhMDQ1ZjMzYWEyMDhjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNDQyLDYg
KzQ0Miw3IEBAIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViUGFnZUluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCiBVSVByb2Nlc3MvSW5zcGVjdG9yL0FnZW50cy9JbnNwZWN0b3JCcm93c2VyQWdlbnQuY3Bw
CiAKIFVJUHJvY2Vzcy9NZWRpYS9BdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5LmNw
cAorVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcAogCiBVSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
IFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAppbmRleCBmOTMyM2ZiOTM5NjA5OGE5OGRmOTZmNmJkNjJkMDE2MmQ2ZGY4Y2M4Li5m
NGE4N2M0NTIyZmJkNjUxNTZkZmM5ZGRkNzc0YmEwODNlNjdmMDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CkBAIC01MDQsNiArNTA0LDggQEAgVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGll
bnQubW0KIFVJUHJvY2Vzcy9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCiBVSVBy
b2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCiAKK1VJUHJvY2Vzcy9NZWRpYS9jb2Nv
YS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tCisKIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVBy
b3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5jcHAKIAogVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCAzOTRiZjkxOTM5Nzg3
YTc2YmYxNzNlMzE5ZGMyMmJiNjIyMzI5N2IwLi4wYTNiMzhiZTRhODBiNWY2NjJhZWQwMjExZDYx
MWM5MTgzODZiYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNTAsNiArNTAsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUv
VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiTWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTM2MCw0ICszNjQsMjkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNz
VG9QcmVmZXJlbmNlU2VydmljZSgpCiAjZW5kaWYKIH0KIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSB8fCBQTEFURk9STShNQUMpCitNZWRpYVVzYWdlTWFuYWdlciYgV2ViUGFnZVByb3h5Ojpt
ZWRpYVVzYWdlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX21lZGlhVXNhZ2VNYW5hZ2VyKQorICAg
ICAgICBtX21lZGlhVXNhZ2VNYW5hZ2VyID0gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpOwor
CisgICAgcmV0dXJuICptX21lZGlhVXNhZ2VNYW5hZ2VyOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50
aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBV
UkwmIHBhZ2VVUkwpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5hZGRNZWRpYVNlc3Npb24o
aWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5Ojp1cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJ
bmZvJiBpbmZvKQoreworICAgIG1lZGlhVXNhZ2VNYW5hZ2VyKCkudXBkYXRlTWVkaWFVc2FnZShp
ZGVudGlmaWVyLCBpbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZU1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5yZW1vdmVNZWRpYVNlc3Npb24oaWRlbnRp
Zmllcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDY1MTIzNWJjOTg2MGU4NjI2NjkyOTc2NDNkNzZjZDAzMmQyNjk5ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSAmJiAhUExBVEZPUk0oTUFDKQorc3RkOjp1bmlxdWVfcHRyPE1lZGlhVXNhZ2VNYW5hZ2Vy
PiBNZWRpYVVzYWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxN
ZWRpYVVzYWdlTWFuYWdlcj4oKTsKK30KKyNlbmRpZgorCit2b2lkIE1lZGlhVXNhZ2VNYW5hZ2Vy
OjogcmVzZXQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2Fn
ZU1hbmFnZXI6OmFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRpZmllciwgY29uc3QgVVJMJiBw
YWdlVVJMKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1h
bmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVVz
YWdlTWFuYWdlcjo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJiBtZWRpYVVzYWdl
SW5mbykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2Fn
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjdjYTFkYzU3N2IzNTc5MGRkZTIzMzg4MWNlODZlN2M4Y2Q5ODk1
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlh
VXNhZ2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVVzYWdlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVVzYWdlTWFuYWdl
ciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdlTWFuYWdlcj4gY3JlYXRlKCk7CisKKyAgICBNZWRpYVVz
YWdlTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5NZWRpYVVzYWdlTWFuYWdlcigp
ID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9p
ZCBhZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiAvKiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8p
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllcik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8m
KTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2Nv
Y29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTkzMDhhMGU3
YzY0NGMxMjFkZjQxMzk5NTY3OTEzYzcxNDJjZjIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oCkBA
IC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisKKyNpbmNsdWRlICJNZWRpYVVzYWdlTWFu
YWdlci5oIgorCitPQkpDX0NMQVNTIFVTVmlkZW9Vc2FnZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EgOiBwdWJsaWMgTWVkaWFVc2FnZU1hbmFn
ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIE1lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYSgpOworCisgICAgdm9pZCByZXNldCgpIGZpbmFsOworICAgIHZvaWQgYWRkTWVkaWFT
ZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IFVSTCYpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpIGZpbmFs
OworICAgIHZvaWQgcmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50
aWZpZXIpIGZpbmFsOworCitwcml2YXRlOgorCisgICAgc3RydWN0IFNlc3Npb25NZWRpYVVzYWdl
IHsKKyAgICAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgICAgIFNl
c3Npb25NZWRpYVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCisg
ICAgICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgICAgICAgICAgLCBtX2J1
bmRsZUlkZW50aWZpZXIoYnVuZGxlSWRlbnRpZmllcikKKyAgICAgICAgICAgICwgbV9wYWdlVVJM
KHBhZ2VVUkwpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgICAgICBTdHJpbmcgbV9idW5kbGVJ
ZGVudGlmaWVyOworICAgICAgICBVUkwgbV9wYWdlVVJMOworICAgICAgICBPcHRpb25hbDxXZWJD
b3JlOjpNZWRpYVVzYWdlSW5mbz4gbV9tZWRpYVVzYWdlSW5mbzsKKyAgICAgICAgUmV0YWluUHRy
PFVTVmlkZW9Vc2FnZT4gbV91c2FnZVRyYWNrZXI7CisgICAgfTsKKworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFNlc3Npb25NZWRp
YVVzYWdlPj4gbV9tZWRpYVNlc3Npb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNh
Z2VNYW5hZ2VyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNiY2NiZWI3YjIyMjMyNDU2YWNkZTBjNTU1
Nzg5ZWFmMGU1Mzc0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KQEAgLTAsMCArMSwxNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2EuaCIKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMp
CisKKyNpbXBvcnQgPHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaD4KKworTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KKworQGludGVyZmFjZSBVU1ZpZGVvVXNhZ2UgOiBOU09iamVjdAor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnVuZGxlSWRlbnRpZmllcjooTlNTdHJpbmcgKilidW5k
bGVJZGVudGlmaWVyIFVSTDooTlNVUkwgKil1cmwgbWVkaWFVUkw6KE5TVVJMICopbWVkaWFVUkwg
TlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKKy0gKHZvaWQpc3RvcDsKKy0gKHZvaWQpcmVzdGFy
dDsKKy0gKHZvaWQpdXBkYXRlVmlkZW9NZXRhZGF0YTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICos
IGlkPiAqKXZpZGVvTWV0YWRhdGE7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBQQUw7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworc3RhdGljIGJvb2wgdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpCit7CisgICAg
cmV0dXJuIChQQUw6OmlzVXNhZ2VUcmFja2luZ0ZyYW1ld29ya0F2YWlsYWJsZSgpICYmIFBBTDo6
Z2V0VVNWaWRlb1VzYWdlQ2xhc3MoKSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdl
TWFuYWdlcj4gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VV
bmlxdWU8TWVkaWFVc2FnZU1hbmFnZXJDb2NvYT4oKTsKK30KKworTWVkaWFVc2FnZU1hbmFnZXJD
b2NvYTo6fk1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EoKQoreworICAgIHJlc2V0KCk7Cit9CisKK3Zv
aWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVzZXQoKQoreworICAgIGZvciAoYXV0byYgc2Vz
c2lvbiA6IG1fbWVkaWFTZXNzaW9ucy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+
bV91c2FnZVRyYWNrZXIpIHsKKyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBz
dG9wXTsKKyAgICAgICAgICAgIHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBtX21lZGlhU2Vzc2lvbnMuY2xlYXIoKTsKK30KKwordm9pZCBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hOjphZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIs
IGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWVkaWFTZXNz
aW9ucy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6U2Vzc2lvbk1lZGlhVXNhZ2U+KGlkZW50aWZpZXIsIGJ1
bmRsZUlkZW50aWZpZXIsIHBhZ2VVUkwpOworICAgIH0pOworICAgIEFTU0VSVF9VTlVTRUQoYWRk
UmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYTo6cmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlk
ZW50aWZpZXIpKTsKKyAgICBtX21lZGlhU2Vzc2lvbnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQor
Cit2b2lkIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OnVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29yZTo6
TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVz
YWdlSW5mbyYgbWVkaWFVc2FnZUluZm8pCit7CisgICAgQVNTRVJUKG1fbWVkaWFTZXNzaW9ucy5j
b250YWlucyhpZGVudGlmaWVyKSk7CisgICAgYXV0byBzZXNzaW9uID0gbV9tZWRpYVNlc3Npb25z
LmdldChpZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghdXNhZ2VUcmFja2luZ0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mbykgeworICAgICAgICBpZiAoc2Vzc2lvbi0+
bV9tZWRpYVVzYWdlSW5mbyA9PSBtZWRpYVVzYWdlSW5mbykKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBpZiAoc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgJiYgc2Vzc2lvbi0+bV9tZWRp
YVVzYWdlSW5mby0+bWVkaWFVUkwgIT0gbWVkaWFVc2FnZUluZm8ubWVkaWFVUkwpIHsKKyAgICAg
ICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBzdG9wXTsKKyAgICAgICAgICAgIHNlc3Np
b24tPm1fdXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
ICghc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIpIHsKKyAgICAgICAgaWYgKCFtZWRpYVVzYWdlSW5m
by5pc1BsYXlpbmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgc2Vzc2lvbi0+bV91
c2FnZVRyYWNrZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jVVNWaWRlb1VzYWdlSW5zdGFuY2UoKSBp
bml0V2l0aEJ1bmRsZUlkZW50aWZpZXI6c2Vzc2lvbi0+bV9idW5kbGVJZGVudGlmaWVyIFVSTDoo
TlNVUkwgKilzZXNzaW9uLT5tX3BhZ2VVUkwgbWVkaWFVUkw6KE5TVVJMICopbWVkaWFVc2FnZUlu
Zm8ubWVkaWFVUkxdKTsKKyAgICAgICAgQVNTRVJUKHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyKTsK
KyAgICB9CisKKyAgICBpZiAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mbyAmJiBzZXNzaW9uLT5t
X21lZGlhVXNhZ2VJbmZvLT5pc1BsYXlpbmcgIT0gbWVkaWFVc2FnZUluZm8uaXNQbGF5aW5nKSB7
CisgICAgICAgIGlmIChtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpCisgICAgICAgICAgICBbc2Vz
c2lvbi0+bV91c2FnZVRyYWNrZXIgcmVzdGFydF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBzdG9wXTsKKyAgICB9CisgICAgc2Vzc2lvbi0+bV9t
ZWRpYVVzYWdlSW5mbyA9IG1lZGlhVXNhZ2VJbmZvOworCisgICAgTlNEaWN0aW9uYXJ5PE5TU3Ry
aW5nICosIGlkPiAqbWV0YWRhdGEgPSBAeworICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5T
aG93Q29udHJvbHNNYW5hZ2VyOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmNhblNob3dD
b250cm9sc01hbmFnZXIpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Tm93UGxh
eWluZ0NvbnRyb2xzOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmNhblNob3dOb3dQbGF5
aW5nQ29udHJvbHMpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc1N1c3BlbmRlZDogQChz
ZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc1N1c3BlbmRlZCksCisgICAgICAgIFVTVmlkZW9N
ZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudDogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZv
LT5pc0luQWN0aXZlRG9jdW1lbnQpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc0Z1bGxz
Y3JlZW46IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNGdWxsc2NyZWVuKSwKKyAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZDogQChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZv
LT5pc011dGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50SW5N
YWluRnJhbWU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNNZWRpYURvY3VtZW50SW5N
YWluRnJhbWUpLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvOiBAKHNlc3Npb24t
Pm1fbWVkaWFVc2FnZUluZm8tPmlzVmlkZW8pLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c0F1ZGlvOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmlzQXVkaW8pLAorICAgICAgICBV
U1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvOiBAKCFzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5o
YXNWaWRlbyksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW86IEAoIXNlc3Npb24t
Pm1fbWVkaWFVc2FnZUluZm8tPmhhc0F1ZGlvKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5
UmVuZGVyZXI6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aGFzUmVuZGVyZXIpLAorICAg
ICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmU6IEAoc2Vz
c2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+YXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlKSwKKyAg
ICAgICAgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlOiBAKHNlc3Np
b24tPm1fbWVkaWFVc2FnZUluZm8tPnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSksCisgICAgICAg
IFVTVmlkZW9NZXRhZGF0YUtleUlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZTogQChzZXNz
aW9uLT5tX21lZGlhVXNhZ2VJbmZvLT5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUpLAor
ICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZDogQChzZXNzaW9uLT5t
X21lZGlhVXNhZ2VJbmZvLT5wbGF5YmFja1Blcm1pdHRlZCksCisgICAgICAgIFVTVmlkZW9NZXRh
ZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2Fn
ZUluZm8tPnBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFk
YXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50OiBAKHNlc3Npb24tPm1fbWVk
aWFVc2FnZUluZm8tPmlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCksCisgICAgICAg
IFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJ
bmxpbmU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+cGFnZUV4cGxpY2l0bHlBbGxvd3NF
bGVtZW50VG9BdXRvcGxheUlubGluZSksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVp
cmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOiBA
KHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkKSwKKyAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZv
ckFyYml0cmFyeVVzZXJHZXN0dXJlOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8tPmhhc0hh
ZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJh
cnlVc2VyR2VzdHVyZSksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlOiBAKHNlc3Npb24tPm1fbWVkaWFVc2Fn
ZUluZm8tPmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlKSwK
KyAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JBdWRpb1JhdGVDaGFuZ2U6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNBdWRpb0Fu
ZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpLAorICAgICAgICBVU1ZpZGVv
TWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQ
b3dlck1vZGU6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNWaWRlb0FuZFJlcXVpcmVz
VXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKSwKKyAgICAgICAgVVNWaWRlb01l
dGFkYXRhS2V5Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUlu
Zm8tPm5vVXNlckdlc3R1cmVSZXF1aXJlZCksCisgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVJl
cXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmc6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5m
by0+cmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyksCisgICAgICAgIFVTVmlkZW9NZXRh
ZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZzogQChzZXNzaW9uLT5tX21lZGlhVXNh
Z2VJbmZvLT5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcpLAorICAgICAgICBVU1ZpZGVvTWV0
YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuOiBAKHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8t
Pm91dHNpZGVPZkZ1bGxzY3JlZW4pLAorICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdl
RW5vdWdoRm9yTWFpbkNvbnRlbnQ6IEAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+aXNMYXJn
ZUVub3VnaEZvck1haW5Db250ZW50KSwKKyAgICB9OworCisgICAgW3Nlc3Npb24tPm1fdXNhZ2VU
cmFja2VyIHVwZGF0ZVZpZGVvTWV0YWRhdGE6bWV0YWRhdGFdOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShN
QUMpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA0MDc0MDJiMjM3
ZDQ0ODkxNzZiMzY5ZjQxMTRhZGI0NzhhZGIyMzBjLi41YWI1YzkwZjBmYWFiYjE0ODM3Y2NjN2E0
ZWI2ZDYzNWM4NjJjMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiTmZjU2VydmljZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yVHJhbnNwb3J0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9N
b2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2NhbENvbm5lY3Rpb24ubW0KaW5kZXggNTY3MTI1NTRi
NmY2MmI4NjAxMzBiNjczNzdlM2Y0MzM2YWJjODIwYy4uNmYwY2I5OWFhYjFlOTNkNWVmZjRkNDhj
ZDMyMjkxOWNjYzQxNjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlv
bi5tbQpAQCAtMjksNyArMjksOSBAQAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKICNpbXBvcnQg
PFNlY3VyaXR5L1NlY0l0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KKyNpbXBv
cnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3Rm
L3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBjOTdlMGFlNzk1YTkx
NzdiYjNmNTZkMGQwMWRhOTYxM2FhZGYyYzUwLi5mZTQ1NzM0NzVhNDI1YjQ1NzU3YjliOGIyM2M2
ODQ3NDVhNjdjY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI3OCw2ICsyNzgsMTAgQEAKICNpbmNsdWRlICJEYXRhRGV0ZWN0aW9uUmVzdWx0LmgiCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisjaW5j
bHVkZSAiTWVkaWFVc2FnZU1hbmFnZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGFnZVByb3h5QWRkaXRpb25z
Lmg+CiAjZWxzZQpAQCAtNzQ2Miw2ICs3NDY2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNl
dFN0YXRlKFJlc2V0U3RhdGVSZWFzb24gcmVzZXRTdGF0ZVJlYXNvbikKICAgICB9CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgaWYgKG1f
bWVkaWFVc2FnZU1hbmFnZXIpCisgICAgICAgIG1fbWVkaWFVc2FnZU1hbmFnZXItPnJlc2V0KCk7
CisjZW5kaWYKKwogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXKQogICAgIGlm
IChyZXNldFN0YXRlUmVhc29uICE9IFJlc2V0U3RhdGVSZWFzb246Ok5hdmlnYXRpb25Td2FwKQog
ICAgICAgICBtX2NvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbiA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI4YTc2ZmRlMjAyNzRjMDQ4YWQwMjc2
YmMwZDljMWU3MDM4OTdkNGUuLmI3YmY2YzU4NGUzYjMwNmY3MGU2ODEyMGM2ZGQwM2RjMjhkMTUw
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjcsNiArMTY3
LDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmlj
ZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMp
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25JZGVudGlmaWVyLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGVudFdvcmxkOwpA
QCAtMjM3LDYgKzI0MSw3IEBAIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogc3RydWN0IEds
b2JhbFdpbmRvd0lkZW50aWZpZXI7CiBzdHJ1Y3QgTGlua0ljb247CiBzdHJ1Y3QgTWVkaWFTdHJl
YW1SZXF1ZXN0Oworc3RydWN0IE1lZGlhVXNhZ2VJbmZvOwogc3RydWN0IE1vY2tXZWJBdXRoZW50
aWNhdGlvbkNvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uOwogc3RydWN0
IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTI3NSw2ICsyODAsNyBAQCBjbGFzcyBBdWRpb1Nlc3Np
b25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OwogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKIGNsYXNz
IEVkaXRhYmxlSW1hZ2VDb250cm9sbGVyOwogY2xhc3MgR2FtZXBhZERhdGE7CitjbGFzcyBNZWRp
YVVzYWdlTWFuYWdlcjsKIGNsYXNzIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDsKIGNsYXNzIE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50OwpAQCAtMTcyOCw2
ICsxNzM0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtRGlkU2VsZWN0SXRlbUZyb21B
Y3RpdmVDb250ZXh0TWVudShjb25zdCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgTWVkaWFV
c2FnZU1hbmFnZXImIG1lZGlhVXNhZ2VNYW5hZ2VyKCk7CisgICAgdm9pZCBhZGRNZWRpYVVzYWdl
TWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiAvKiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pOwor
ICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVk
aWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKTsKKyAg
ICB2b2lkIHJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Np
b25JZGVudGlmaWVyKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdl
Q2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYp
OwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yMzUzLDYgKzIzNjYsMTAgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBtX3ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8
fCBQTEFURk9STShNQUMpCisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhVXNhZ2VNYW5hZ2VyPiBt
X21lZGlhVXNhZ2VNYW5hZ2VyOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OklucHV0TW9kZT4gbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdl
OwogICAgIFRyYW5zYWN0aW9uSUQgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRp
ZENvbW1pdExvYWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggZjMzYjJlMzRiZThhNWJjYzEzODFmYzEwMWNiOGIxYzVkNTlhM2M5
NS4uYWI2MzY2NjBjYzVlMGQ1ODg3YzczNWQ5YWZiNjZjZjliZWExNzliYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTg3LDQg
KzU4NywxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRGlkRmluZFRleHRN
YW5pcHVsYXRpb25JdGVtcyhWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6Ok1hbmlwdWxhdGlvbkl0ZW0+IGl0ZW1zKQogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
IHx8IFBMQVRGT1JNKE1BQykKKyAgICBBZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgYnVuZGxlSWRlbnRp
ZmllciwgVVJMIHBhZ2VVUkwpOworICAgIFVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0
YXRlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lZGlhVXNhZ2VJbmZvIGluZm8pOworICAgIFJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2Vy
U2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpOworI2Vu
ZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGUyNjNkMWMxNWQwYmNjNWE3MGY0OWZlMmQ0MjMxYTg3MDIxYjU3OTYuLjQ5ZWE0
ZTFlMjJiYzM4MTIyODAwNTU2Nzc1ZTNiYjg3ZjFmYjczYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjE1NSw2ICsyMTU1LDEwIEBA
CiAJCTA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDc5MjMxNDcyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
OTIzMTRFMjM5RDVGNTMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5NEI0QUIyNDQ1MUJCOTAwMDFCOUM0
IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzk0
QjRBQzI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWVkaWFVc2FnZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5
NEI0QUUyNDQ1MjRCMDAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMDc5NEI0QUYyNDQ1MkEyQzAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwN0E1RUJCOTFDN0JBNDNFMDBCOUNBNjkgLyogV0tGcmFtZUhhbmRs
ZVJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0ZyYW1lSGFu
ZGxlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBNUVCQkExQzdCQTQz
RTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1MTksNiArNTUyMywyNSBAQAogCQkJcGF0aCA9
IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMDc5NEI0QTkyNDQ1
MUJCOTAwMDFCOUM0IC8qIE1lZGlhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQkwNzk0QjRBQTI0NDUxQkI5MDAwMUI5QzQgLyogY29jb2EgKi8sCisJCQkJ
MDc5NEI0QUUyNDQ1MjRCMDAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmNwcCAqLywKKwkJ
CQkwNzk0QjRBQzI0NDUxQkI5MDAwMUI5QzQgLyogTWVkaWFVc2FnZU1hbmFnZXIuaCAqLywKKwkJ
CSk7CisJCQlwYXRoID0gTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owor
CQkwNzk0QjRBQTI0NDUxQkI5MDAwMUI5QzQgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTA3OTRCNEFGMjQ0NTJBMkMwMDAxQjlDNCAvKiBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hLmggKi8sCisJCQkJMDc5NEI0QUIyNDQ1MUJCOTAwMDFCOUM0
IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IGNvY29h
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJMDdDNzVDMTcyMzk5QTNEQjAw
ODhFNjVCIC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKQEAgLTg4NTUsNiArODg3OCw3IEBACiAJCQkJMkRBOTQ0QTgxODg0RTlBQjAwRUQ4NkRCIC8q
IGlvcyAqLywKIAkJCQlCQzExMUIxODExMkY1RkI0MDAzMzdCQUIgLyogTGF1bmNoZXIgKi8sCiAJ
CQkJQkNDRjA4NUMxMTNGM0I3NTAwQzY1MEM1IC8qIG1hYyAqLywKKwkJCQkwNzk0QjRBOTI0NDUx
QkI5MDAwMUI5QzQgLyogTWVkaWEgKi8sCiAJCQkJQ0Q0NTcwRDgyNDQ0Q0ExNzAwQTNEQ0VCIC8q
IE1lZGlhICovLAogCQkJCTUxMENDN0U3MTYxMzhFNzIwMEQwM0VEMyAvKiBOZXR3b3JrICovLAog
CQkJCTMxQTJFQzQwMTQ4OTk3MzcwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25zICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAppbmRleCA1NDNkZTIzZGE4OWUxYjc0ZGJhOTdhYTFhMzk1M2YyY2Y2OWE0
ZDFjLi5mMGYyZTRhYTYwMmQwMGQwMDFkNjU3NDlhMDFmYWEzYmUzODhjY2JmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtMTAwOCw5ICsxMDA4LDI1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZp
ZGVvCiB7CiAgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5leGl0VmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CiB9Ci0KICNlbmRpZgogCisjaWYg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFBMQVRGT1JNKE1BQykKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFn
ZVVSTCkKK3sKKyAgICBtX3BhZ2UuYWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKGlkZW50aWZp
ZXIsIGJ1bmRsZUlkZW50aWZpZXIsIHBhZ2VVUkwpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBNZWRpYVVzYWdlSW5mbyYgdXNhZ2UpCit7CisgICAgbV9w
YWdlLnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKGlkZW50aWZpZXIsIHVzYWdl
KTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9wYWdlLnJl
bW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihpZGVudGlmaWVyKTsKK30KKyNlbmRpZiAvLyBQ
TEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9F
bGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSB0YXJnZXRNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE4NTkzMWM3MTA2ZmNi
NDYwMWNjY2RjOWQ1MjM2NTQ2MDhjODY2ODcuLjk1ZDNmM2JmNDA5ODE4NzdmOWFjNGU1NDY2MTE1
ZTJkZjllNzZjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI3MCw2ICsyNzAsMTIgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUND
QVRBTFlTVCkgfHwgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgYWRkTWVkaWFVc2FnZU1hbmFnZXJT
ZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgLyog
YnVuZGxlSWRlbnRpZmllciAqLywgY29uc3QgVVJMJiAvKiBwYWdlVVJMICovKSBmaW5hbDsKKyAg
ICB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZvJikgZmluYWw7
CisgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uSWRlbnRpZmllcikgZmluYWw7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggZDQzY2E3N2U5NDI5MGY4NTVhNDMyMzZjOTVmMDMzN2FiMzMxOTUwYy4uMDNlZWJlNDZl
YTVjNjkxZDVmMzg5NDMzOThlYzhjMzBlZTBmZGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcwNjIsNiArNzA2MiwyMyBAQCBib29sIFdl
YlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlIHB1cnBv
c2UpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8
IFBMQVRGT1JNKE1BQykKK3ZvaWQgV2ViUGFnZTo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
KE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpBZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllciwgYnVuZGxl
SWRlbnRpZmllciwgcGFnZVVSTCkpOworfQorCit2b2lkIFdlYlBhZ2U6OnVwZGF0ZU1lZGlhVXNh
Z2VNYW5hZ2VyU2Vzc2lvblN0YXRlKE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwg
Y29uc3QgTWVkaWFVc2FnZUluZm8mIHVzYWdlKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6VXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoaWRlbnRpZmllciwg
dXNhZ2UpKTsKK30KKwordm9pZCBXZWJQYWdlOjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Np
b24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKGlkZW50aWZp
ZXIpKTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZPUk0oTUFD
KQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBkMGVk
OWMwMDc5ZmU1YTg0ZmVjMWVmMTQ2Zjk4ZjY5YjJmNWViYmM3Li5iZThlMWFjMGUzNmQ2MWE2MDBl
Y2Y5NDBjZTkzMWI0NDllNzRlZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0xMzUsNiArMTM1LDEwIEBAIHR5cGVkZWYgc3RydWN0IF9BdGtPYmpl
Y3QgQXRrT2JqZWN0OwogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9QbGF0Zm9ybUdlc3R1cmVF
dmVudE1hYy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgUExBVEZP
Uk0oTUFDKQorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oPgorI2Vu
ZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJEeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0yMDgs
NiArMjEyLDcgQEAgc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllcjsKIHN0cnVjdCBHbG9iYWxX
aW5kb3dJZGVudGlmaWVyOwogc3RydWN0IEhpZ2hsaWdodDsKIHN0cnVjdCBLZXlwcmVzc0NvbW1h
bmQ7CitzdHJ1Y3QgTWVkaWFVc2FnZUluZm87CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50SW5m
bzsKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdS
ZXN1bHQ7CkBAIC0xMzA3LDcgKzEzMTIsMTMgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNJbkFw
cEJyb3dzZXJQcml2YWN5UXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0luQXBwQnJvd3Nl
clByaXZhY3lRdWlya3M7IH0KICAgICAKICAgICBib29sIHNob3VsZFVzZVJlbW90ZVJlbmRlcmlu
Z0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlKTsKLSAgICAKKworI2lmIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKSB8fCBQTEFURk9STShNQUMpCisgICAgdm9pZCBhZGRNZWRpYVVzYWdlTWFuYWdl
clNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiAv
KiBidW5kbGVJZGVudGlmaWVyICovLCBjb25zdCBVUkwmIC8qIHBhZ2VVUkwgKi8pOworICAgIHZv
aWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKTsKKyAgICB2b2lk
IHJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396586</attachid>
            <date>2020-04-15 16:23:59 -0700</date>
            <delta_ts>2020-04-15 21:33:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210518-20200415162358.patch</filename>
            <type>text/plain</type>
            <size>118777</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwMzk0YjdiZTViNWJiMDE4YjRlZmJj
Yzk4NWY1Yjc4ZGEyMjY4NmQuLmNhZmNiYTc0Y2IzMzA2NDBjMTJkZTRlZGQ2NTQ0ODgzNTgzNTBk
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBVcGRhdGUgU2NyZWVuVGltZSBh
cyBwbGF5YmFjayBzdGF0ZSBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA1MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxMTgxMDky
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgRGVmaW5lIEhBVkVfTUVESUFfVVNBR0VfRlJBTUVXT1JLIGFuZCBFTkFCTEVfTUVESUFfVVNB
R0UKKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRvcHQgaW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBm
b3IgTWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZTg2NjczZmVmMTM3MjdkZGUxZTViYWI5NGMxMGMwMGVjYmJm
YWY2OC4uZmEwM2M3ZjIxZTc5NDk3YmEzZDAwNGExNTNjODMxM2NhNjdiMjM4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDY1IEBACisyMDIwLTA0LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxh
eWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBtZWRp
YS9tZWRpYS11c2FnZS1zdGF0ZS5odG1sCisgICAgICAgIAorICAgICAgICBQYXNzIG1lZGlhIGVs
ZW1lbnQgc3RhdGUgdG8gdGhlIFVJIHByb2Nlc3Mgd2hlbmV2ZXIgaXQgY2hhbmdlcy4KKworICAg
ICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIg
Y29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUVsZW1l
bnRTZXNzaW9uOjpNZWRpYUVsZW1lbnRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
RWxlbWVudFNlc3Npb246On5NZWRpYUVsZW1lbnRTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQpOgorICAgICAg
ICAqIGh0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFkZE1lZGlhVXNhZ2VNYW5h
Z2VyU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnVwZGF0ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhU2Vzc2lvbjo6dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6bWVkaWFTZXNzaW9uSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6dXBkYXRl
Tm93UGxheWluZ0luZm9JZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25EaWRFbmRSZW1v
dGVTY3J1YmJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5h
Z2VyOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6
OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpyZW1vdmVTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVu
dENoYXJhY3RlcmlzdGljc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNjaGVkdWxlVXBkYXRlTm93UGxheWlu
Z0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Np
b25NYW5hZ2VySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlP
Uzo6cmVzZXRSZXN0cmljdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFu
YWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVVzYWdlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
VXNhZ2VJbmZvOjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNh
Z2VJbmZvOjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVXNhZ2VJ
bmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFVc2FnZUluZm86OmRl
Y29kZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpzZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjptZWRpYVVzYWdlU3RhdGUgY29uc3QpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIw
LTA0LTE0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRvcHQg
aW50ZXJmYWNlIEFWQXVkaW9Sb3V0aW5nQXJiaXRlciBmb3IgTWFjCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpp
bmRleCAzYTNlMjZlMDIyMTE2OWYxMWEyZThkYjY2ODZlNjU2ZTMxN2MxYjM0Li5jNmY1M2U4YTM1
NTU2MzQ5MjFkMDAxYWJmNzU3NThhZmE2MGVjMzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMC0wNC0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0
YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxMDUxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29mdCBsaW5rIHRoZSBVc2Fn
ZVRyYWNraW5nIGZyYW1ld29yay4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaDogQWRk
ZWQuCisgICAgICAgICogcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5tbTogQWRkZWQu
CisKIDIwMjAtMDQtMTQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZG9wdCBpbnRlcmZhY2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNDZkM2ExMmRjZDMwOWI5NDhhZDhjNzExN2EwYzFlNTBhOWIwMWFhNC4uZjcyMmNkNGFiOGY2
ZDExMDAxMDliNDJiZTU5MjJhZTgxNTc3MTUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAor
MjAyMC0wNC0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWFuYWdlciB0aGF0IGdldHMgbWVkaWEg
ZWxlbWVudCBzdGF0ZSBjaGFuZ2VzLCBhbmQgYSBDb2NvYS1zcGVjaWZpYworICAgICAgICBpbXBs
ZW1lbnRhdGlvbiB0aGF0IHBhc3NlcyB0aGF0IHN0YXRlIHRvIFNjcmVlblRpbWUuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptZWRp
YVVzYWdlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVkaWFV
c2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRh
dGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OnJlc2V0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXI6OmFkZE1lZGlhU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyOjpyZW1vdmVNZWRpYVNlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlcjo6dXBkYXRlTWVkaWFVc2FnZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjpTZXNzaW9uTWVk
aWFVc2FnZTo6U2Vzc2lvbk1lZGlhVXNhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYS9j
b2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
dXNhZ2VUcmFja2luZ0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5h
Z2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjp+
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2E6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJDb2Nv
YTo6YWRkTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJD
b2NvYTo6cmVtb3ZlTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFVc2FnZU1h
bmFnZXJDb2NvYTo6dXBkYXRlTWVkaWFVc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2Vy
U2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZW1vdmVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphZGRNZWRpYVVzYWdlTWFuYWdl
clNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVNZWRpYVVzYWdlTWFu
YWdlclNlc3Npb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlbW92ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKwogMjAyMC0wNC0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjU5ODk4KTogVGFicyBvY2Nhc2lvbmFsbHkgZ28g
YmxhbmsgYW5kIGdldCBzdHVjayB0aGF0IHdheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2Nv
YS5oCmluZGV4IDhhZWZkYTY4NDE3Njk4ZWY1OWFkZmFhODliOGNiMDU3YWViZjAzZjEuLjU1NDI0
M2Y0NjI0NTdmYjcxMmVkNGM4ZjZhY2QzZWM3ODVjYWY5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUVuYWJsZUNvY29hLmgKQEAgLTI4OCwzICsyODgsNyBAQAogI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNjAwKQogI2RlZmluZSBFTkFC
TEVfUk9VVElOR19BUkJJVFJBVElPTiAxCiAjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNjAwKSB8fCAoUExBVEZPUk0o
TUFDQ0FUQUxZU1QpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE0MDAw
MCkKKyNkZWZpbmUgRU5BQkxFX01FRElBX1VTQUdFIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUu
aAppbmRleCAzNzEwMjVjZTNmMzdhOWFjMGE5MmFiYmQ5MmY3MmJlNGVmMWI4NmY4Li5jZjM2ZTA5
YmQ5NzI1ZWVkODA4ZDdlM2E4NTdlNGRiYzc5N2M5NDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApA
QCAtNjczLDMgKzY3Myw3IEBACiAjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDApCiAjZGVmaW5lIEhBVkVfQVZBVURJT19ST1VUSU5H
X0FSQklURVIgMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTYwMCkgfHwgKFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCisjZGVmaW5lIEhB
VkVfTUVESUFfVVNBR0VfRlJBTUVXT1JLIDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXgg
Njk3MDdkMTEyMmVkZTA4OGY5ZGY3YThlNjQyYzg4YzgzYmJkNDdkZS4uYjk5OWNjMmQ5MDUxMjgz
MDlkY2IxMDUwYjc4YjllNzVjZTI1NDM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMTU4LDYg
KzExNTgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyRW51bXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFVc2FnZUluZm8uaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1z
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xTaGltcy5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzBlMmFiMmMwODEx
YmVmMmY3MjU1NDI3ZWVkODY0YjMyYjQxNjM4Yi4uZmZlOGRlZmQ2MWFlNjVlM2EzNGMwNjMzYmQ5
NGM1OTkwMWM3NWNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjEsNiArMjEsOCBAQAogLyogRW5kIFBCWEFnZ3JlZ2F0ZVRh
cmdldCBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisJCTA3
NjExREI2MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjExREI0MjQzRkE1QkUw
MEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCAqLzsgfTsKKwkJMDc2MTFEQjcyNDNG
QTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjExREI1MjQzRkE1QkYwMEQ4MDcwNCAv
KiBVc2FnZVRyYWNraW5nU29mdExpbmsubW0gKi87IH07CiAJCTA3N0U4N0IxMjI2QTQ2MDIwMEEy
QUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5k
YXRpb25Tb2Z0TGluay5tbSAqLzsgfTsKIAkJMDc3RTg3QjIyMjZBNDYwMzAwQTJBRkYwIC8qIEFW
Rm91bmRhdGlvblNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzdFODdCMDIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExp
bmsuaCAqLzsgfTsKIAkJMEMwMENGRDQxRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlhVGltZUFWRm91
bmRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEMwMENGRDIxRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5oICovOyB9
OwpAQCAtMTkwLDYgKzE5Miw4IEBACiAvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisJCTA3NjExREI0
MjQzRkE1QkUwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTA3NjExREI1MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNr
aW5nU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBV
c2FnZVRyYWNraW5nU29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
N0U4N0FGMjI2QTQ2MDIwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFWRm91bmRhdGlvblNvZnRMaW5rLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzdFODdCMDIyNkE0NjAyMDBBMkFGRjAg
LyogQVZGb3VuZGF0aW9uU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVZGb3VuZGF0aW9uU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEMwMENGRDExRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlhVGltZUFWRm91bmRhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWVBVkZvdW5kYXRpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI1LDYgKzYyOSw4IEBACiAJCQkJ
Q0RBQ0IzNUYyMzg3M0U0ODAwMThEN0NFIC8qIE1lZGlhVG9vbGJveFNvZnRMaW5rLmggKi8sCiAJ
CQkJQTFGNjNDOUQyMUE0REJGNzAwNkZCNDNCIC8qIFBhc3NLaXRTb2Z0TGluay5oICovLAogCQkJ
CUExRjYzQzlFMjFBNERCRjcwMDZGQjQzQiAvKiBQYXNzS2l0U29mdExpbmsubW0gKi8sCisJCQkJ
MDc2MTFEQjQyNDNGQTVCRTAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oICovLAor
CQkJCTA3NjExREI1MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsubW0g
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTg0NSw2ICs4NTEsNyBAQAogCQkJCTJFMTM0MkNDMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtp
dFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkyMjFGNDNBNEM3MDAyRUFDMDIg
LyogVUlLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTQ3MUYzQkVCNDkwMERCQzMx
NyAvKiBVUkxGb3JtYXR0aW5nU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQkwNzYxMURCNjI0M0ZB
NUJGMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwQzJEQTE1OTFGM0JFQjQ5MDBEQkMzMTcgLyogV2ViRmlsdGVyRXZhbHVhdG9yU1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBMTA4MjZGOTFGNTc2MjkyMDA0NzcyQUMgLyogV2ViUGFuZWwuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKQEAgLTk2NCw2ICs5NzEsNyBAQAogCQkJCUEzQUI2RTU3MUYz
RDFEREIwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUEzQUI2RTY1MUYzRDIxN0YwMDlDMTRCMSAvKiBTeXN0ZW1TbGVlcExpc3RlbmVyTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkUxMzQyQ0QyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29m
dExpbmsubW0gaW4gU291cmNlcyAqLywKKwkJCQkwNzYxMURCNzI0M0ZBNUJGMDBEODA3MDQgLyog
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwODI2RkExRjU3
NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YzY2OTgwZDM0ZmY3ZTA2MGM3MDUxMmRmZGVjM2I4YzEzNGRkM2ViCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaApA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBIQVZFKE1F
RElBX1VTQUdFX0ZSQU1FV09SSykKKworI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisKK1NP
RlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcpOworCitTT0ZU
X0xJTktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIFVTVmlkZW9Vc2FnZSk7CisjZGVmaW5lIF9BWFNJ
c29sYXRlZFRyZWVNb2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSBQQUw6OmNhbkxvYWRfbGliQWNjZXNz
aWJpbGl0eV9fQVhTSXNvbGF0ZWRUcmVlTW9kZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNo
b3dDb250cm9sc01hbmFnZXIsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtl
eUNhblNob3dDb250cm9sc01hbmFnZXIgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0
YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5hZ2VyKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Q2Fu
U2hvd05vd1BsYXlpbmdDb250cm9scywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFk
YXRhS2V5Q2FuU2hvd05vd1BsYXlpbmdDb250cm9scyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VT
VmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMoKQorU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0
YWRhdGFLZXlJc1N1c3BlbmRlZCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRh
S2V5SXNTdXNwZW5kZWQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJ
c1N1c3BlbmRlZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFjdGl2ZURvY3VtZW50IFBB
TDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFjdGl2ZURvY3VtZW50
KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQorI2RlZmlu
ZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc0Z1bGxzY3JlZW4gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19V
U1ZpZGVvTWV0YWRhdGFLZXlJc0Z1bGxzY3JlZW4oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc011
dGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkIFBBTDo6
Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCgpCitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lLCBOU1N0cmluZyAqKQorI2RlZmlu
ZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSBQQUw6OmdldF9V
c2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1l
KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNW
aWRlb01ldGFkYXRhS2V5SXNBdWRpbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRh
ZGF0YUtleUlzQXVkaW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNl
ckdlc3R1cmUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxl
bWVudFdpdGhVc2VyR2VzdHVyZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVVz
ZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFk
YXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNW
aWRlb01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlKCkKK1NPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lLCBOU1N0cmluZyAqKQorI2RlZmlu
ZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgUEFMOjpn
ZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5N
YWluRnJhbWUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb0F1ZGlvLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlOb0F1ZGlvIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNW
aWRlb01ldGFkYXRhS2V5Tm9BdWRpbygpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNrUGVy
bWl0dGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Bl
cm1pdHRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBsYXliYWNr
UGVybWl0dGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlhUGxheWJhY2tTdXNwZW5k
ZWQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UGFn
ZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9j
dW1lbnRBbmROb3RPd25lckVsZW1lbnQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRh
ZGF0YUtleUlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCBQQUw6OmdldF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVu
dCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0
b3BsYXlJbmxpbmUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VF
eHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgUEFMOjpnZXRfVXNhZ2VUcmFj
a2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9w
bGF5SW5saW5lKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlk
ZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQsIE5TU3RyaW5nICopCisjZGVmaW5l
IFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRG
dWxsc2NyZWVuTm90UGVybWl0dGVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQ
ZXJtaXR0ZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRR
dWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUsIE5TU3Ry
aW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUhhc0hhZFVzZXJJbnRlcmFjdGlvbkFu
ZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUhhc0hhZFVzZXJJbnRlcmFjdGlv
bkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlk
ZW9SYXRlQ2hhbmdlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yVmlkZW9SYXRlQ2hhbmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVp
cmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UsIE5TU3RyaW5nICopCisjZGVmaW5lIFVT
VmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRl
Q2hhbmdlIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0Fu
ZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UoKQorU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1v
ZGUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSBQQUw6OmdldF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
VmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1
cmVSZXF1aXJlZCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5Tm9Vc2Vy
R2VzdHVyZVJlcXVpcmVkIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
SEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQbGF5
YmFja0FuZElzTm90UGxheWluZywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRh
S2V5UmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyBQQUw6OmdldF9Vc2FnZVRyYWNraW5n
X1VTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcoKQorU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBV
U1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3RyaW5nICop
CisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZyBQ
QUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFi
b3V0UGxheWluZygpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4sIE5T
U3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU91dHNpZGVPZkZ1bGxzY3JlZW4g
UEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2Ny
ZWVuKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlbywgTlNTdHJpbmcgKikKKyNkZWZpbmUg
VVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9N
ZXRhZGF0YUtleUlzVmlkZW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlciwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIgUEFMOjpnZXRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRf
TUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtl
eU5vVmlkZW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW8g
UEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvKCkKK1NPRlRf
TElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50LCBOU1N0cmluZyAqKQor
I2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQgUEFM
OjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQoKQorCisjZW5kaWYgLy8gSEFWRShNRURJQV9VU0FHRV9GUkFNRVdPUkspCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5r
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY4ODczMGVjNzc4ZTlkYjhlODZkODVkMTY5Y2I4YmYzMmQ2M2I4MTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJh
Y2tpbmdTb2Z0TGluay5tbQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworI2lmIEhBVkUoTUVE
SUFfVVNBR0VfRlJBTUVXT1JLKQorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFBBTF9FWFBPUlQpOworCitTT0ZU
X0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9Vc2FnZSwgUEFMX0VYUE9SVCk7CisKK1NPRlRfTElOS19DT05TVEFOVF9N
QVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5Q2FuU2hvd0NvbnRyb2xzTWFuYWdlciwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd05vd1BsYXlpbmdDb250
cm9scywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFk
YXRhS2V5SXNTdXNwZW5kZWQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcs
IFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCwgTlNTdHJpbmcqLCBQQUxfRVhQ
T1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuLCBOU1N0
cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc011
dGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpbywgTlNTdHJpbmcqLCBQQUxf
RVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0
aFVzZXJHZXN0dXJlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZvcmUsIE5TU3RyaW5nKiwgUEFMX0VY
UE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRWxlbWVudFJlY3RNb3N0
bHlJbk1haW5GcmFtZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5Tm9BdWRpbywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQsIE5TU3RyaW5nKiwgUEFM
X0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXli
YWNrU3VzcGVuZGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQsIE5TU3RyaW5n
KiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBs
aWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUsIE5TU3RyaW5nKiwgUEFMX0VYUE9S
VCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkLCBOU1N0cmluZyosIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJh
Y3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1
cmUsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlLCBOU1N0
cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0F1
ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSwgTlNTdHJpbmcqLCBQ
QUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJl
cXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmluZyosIFBB
TF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJl
UmVxdWlyZWQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9N
ZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcsIE5TU3RyaW5nKiwgUEFM
X0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmll
ZEFib3V0UGxheWluZywgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNW
aWRlb01ldGFkYXRhS2V5T3V0c2lkZU9mRnVsbHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlbywgTlNTdHJpbmcqLCBQ
QUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhf
RVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIsIE5T
U3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5v
VmlkZW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRh
ZGF0YUtleUlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JU
KTsKKworI2VuZGlmIC8vIEhBVkUoTUVESUFfVVNBR0VfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1Y2U1OGI1
YWI4YzY5YjdmMjJkODJkYTY0ZDI0NmEzMTc5MWYxZDIuLmY0ZDE3YzIwMTg3ODUxN2FkZjlhMzJk
NWE3ZDljZjRlMTYyYjBkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMiw2ICsxMzIsNyBAQAogCQkwNzUzODYwMzE0NDg5
RTk4MDBCNzg0NTIgLyogQ2FjaGVkVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzUzODYwMTE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVk
VGV4dFRyYWNrLmggKi87IH07CiAJCTA3NTRBNUVBMjE1RUEzQjgwMDJEM0E5OSAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDc1NEE1RTgyMTVFQTNCNzAwMkQzQTk5IC8qIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VGYWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMDc1N0IxM0UyMTRBRTc5OTAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzU3QjEzQzIxNEFFNzk3MDA3
OTRCMEQgLyogVmlkZW9QcmVzZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFVc2FnZUlu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjEx
REI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NjM4QTk5MTg4NDQ4NzIwMEUxNUEx
QiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNz
aW9uTWFuYWdlcklPUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTA3NjM4QTlBMTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2Vy
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc2
MzhBOTgxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gKi87IH07
CiAJCTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Njk3MDg0MTQ2M0FEODcw
MEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNwcCAqLzsgfTsKQEAgLTU1NzAsNiArNTU3MSw3IEBA
CiAJCTA3NTRBNUU4MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9y
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZU1lZGlhU291cmNl
RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU0QTVFQjIxNUVBREYz
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzU3QjEzQzIxNEFFNzk3MDA3OTRCMEQgLyog
VmlkZW9QcmVzZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9QcmVz
ZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc2MTFEQjgyNDNGQjc1QzAwRDgw
NzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhVXNhZ2VJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NjM4QTk3
MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2MzhBOTgxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vz
c2lvbk1hbmFnZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0VHJhY2tMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1MzU2LDYgKzI1MzU4LDcgQEAKIAkJCQkwNzlGNUU0QjBG
M0JFQkVBMDA1RTA3ODIgLyogTWVkaWFQbGF5ZXJQcml2YXRlLmggKi8sCiAJCQkJQ0Q2NDFFQjEx
ODE4RjVFRDAwRUU0QzQxIC8qIE1lZGlhU291cmNlUHJpdmF0ZS5oICovLAogCQkJCUNEREMxRTc5
MThBOTUyRjMwMDI3QTlENCAvKiBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQuaCAqLywKKwkJCQkw
NzYxMURCODI0M0ZCNzVDMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCAqLywKIAkJCQkwN0I5
M0ZGQjIzQjkyQUFCMDAzNkY4RUEgLyogTUlNRVR5cGVDYWNoZS5jcHAgKi8sCiAJCQkJMDdCOTNG
RjkyM0I5MkFBQTAwMzZGOEVBIC8qIE1JTUVUeXBlQ2FjaGUuaCAqLywKIAkJCQkzMTRCRTNBNDFC
MzEwM0ZCMDAxNDE5ODIgLyogTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKQEAgLTMx
OTExLDYgKzMxOTE0LDcgQEAKIAkJCQkwN0ZGREU2OTE4MUFFRDQyMDA3MkQ0MDkgLyogTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMkNDMEI3MURGRkQxNTgw
MDRDMEY5RiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
QzFDMEUyMUJGQjYwMDEwMEJEMjI1NiAvKiBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTA3NjExREMxMjQ0MEU1OUIwMEQ4MDcwNCAvKiBNZWRpYVVz
YWdlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFFMUJBQzMxQkQ4MDY0RTAwNTVEODFGIC8q
IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Ix
NkMxODA5NzlDM0JEMDA0Njc3NDEgLyogTWVtb3J5Q2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJzb3IuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggMTAxZDE3Y2M5
ODI2MmI1YThhYzViZDRjM2NmYmU2MzBhOTk3ZmE5Ni4uZWUzYzQ5MmYwZmRkNDkxYzI5OWVhOGRm
ODkxYzcxMzc4ZGEwZTYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC00NTksNyArNDU5LDYgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1f
bG9nZ2VyKCZkb2N1bWVudC5sb2dnZXIoKSkKICAgICAsIG1fbG9nSWRlbnRpZmllcih1bmlxdWVM
b2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKLSAgICAsIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcihN
ZWRpYVNlc3Npb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIGFsbE1lZGlhRWxlbWVu
dHMoKS5hZGQodGhpcyk7CiAKQEAgLTc1MDUsNyArNzUwNCw3IEBAIFN0cmluZyBIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVNlc3Npb25UaXRsZSgpIGNvbnN0CiAKIE1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRlbnRpZmllcigpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcjsKKyAgICByZXR1cm4gbV9t
ZWRpYVNlc3Npb24tPm1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKTsKIH0KIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpkaWRSZWNlaXZlUmVtb3RlQ29udHJvbENvbW1hbmQoUGxhdGZvcm1NZWRpYVNl
c3Npb246OlJlbW90ZUNvbnRyb2xDb21tYW5kVHlwZSBjb21tYW5kLCBjb25zdCBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbjo6UmVtb3RlQ29tbWFuZEFyZ3VtZW50KiBhcmd1bWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggMWE3MjlmNDA5MWFjZGZjZjc2NWMwYmY1Njkx
NjYyNWMyNWEyM2ZkZC4uNTlhNzYwN2UzNzFkMmEwZjI4ODQzOWM5NTgwOGJlOTVkMDNiMWU1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTExOTcsNyArMTE5Nyw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9wbGF5aW5nT25TZWNvbmRTY3JlZW4geyBmYWxzZSB9OwogICAgIGJv
b2wgbV9yZW1vdmVkQmVoYXZpb3JSZXN0cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUgeyBm
YWxzZSB9OwotICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgbV9tZWRpYVNlc3Npb25JZGVudGlm
aWVyOwogfTsKIAogU3RyaW5nIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKEhUTUxNZWRpYUVs
ZW1lbnQ6OkF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRWxlbWVudFNlc3Npb24uY3BwCmluZGV4IGM2YzlhOWVlMWI3MWYxY2FiMTRkMThjMDA5
NWJkOWZmZWFkNDVlNDAuLmFkZjE3NDYyYTQxZGEwNWM4MzNlZDk0Yzg3MzUxMmEyYjFmOGZmZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmNwcApAQCAtNDAs
NiArNDAsNyBAQAogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhVXNhZ2VJ
bmZvLmgiCiAjaW5jbHVkZSAiTm93UGxheWluZ0luZm8uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCkBAIC0xMTksNiArMTIwLDE4
IEBAIE1lZGlhRWxlbWVudFNlc3Npb246Ok1lZGlhRWxlbWVudFNlc3Npb24oSFRNTE1lZGlhRWxl
bWVudCYgZWxlbWVudCkKICAgICAsIG1fbG9nSWRlbnRpZmllcihlbGVtZW50LmxvZ0lkZW50aWZp
ZXIoKSkKICNlbmRpZgogeworI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICBpZiAoYXV0byBw
YWdlID0gbV9lbGVtZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5hZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRp
ZmllcigpLCBtX2VsZW1lbnQuc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCksIG1fZWxlbWVu
dC5kb2N1bWVudCgpLnVybCgpKTsKKyNlbmRpZgorfQorCitNZWRpYUVsZW1lbnRTZXNzaW9uOjp+
TWVkaWFFbGVtZW50U2Vzc2lvbigpCit7CisjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQorICAgIGlm
IChhdXRvIHBhZ2UgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5wYWdlKCkpCisgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihtZWRpYVNl
c3Npb25JZGVudGlmaWVyKCkpOworI2VuZGlmCiB9CiAKIHZvaWQgTWVkaWFFbGVtZW50U2Vzc2lv
bjo6cmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtOTk4LDYgKzEw
MTEsNjMgQEAgT3B0aW9uYWw8Tm93UGxheWluZ0luZm8+IE1lZGlhRWxlbWVudFNlc3Npb246Om5v
d1BsYXlpbmdJbmZvKCkgY29uc3QKICAgICByZXR1cm4gTm93UGxheWluZ0luZm8geyBtX2VsZW1l
bnQubWVkaWFTZXNzaW9uVGl0bGUoKSwgbV9lbGVtZW50LnNvdXJjZUFwcGxpY2F0aW9uSWRlbnRp
ZmllcigpLCBkdXJhdGlvbiwgY3VycmVudFRpbWUsIHN1cHBvcnRzU2Vla2luZywgbV9lbGVtZW50
Lm1lZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIoKSwgaXNQbGF5aW5nLCBhbGxvd3NOb3dQbGF5
aW5nQ29udHJvbHNWaXNpYmlsaXR5IH07CiB9CiAKK3ZvaWQgTWVkaWFFbGVtZW50U2Vzc2lvbjo6
dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpCit7CisgICAgYXV0byYgZG9jdW1lbnQgPSBtX2Vs
ZW1lbnQuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZnVsbHNjcmVlbkVsZW1l
bnQgPSBtX2VsZW1lbnQuZG9jdW1lbnQoKS5mdWxsc2NyZWVuTWFuYWdlcigpLmN1cnJlbnRGdWxs
c2NyZWVuRWxlbWVudCgpOworICAgIGJvb2wgaXNBdWRpbyA9IGNsaWVudCgpLnByZXNlbnRhdGlv
blR5cGUoKSA9PSBNZWRpYVR5cGU6OkF1ZGlvOworICAgIGJvb2wgaXNWaWRlbyA9IGNsaWVudCgp
LnByZXNlbnRhdGlvblR5cGUoKSA9PSBNZWRpYVR5cGU6OlZpZGVvOworICAgIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlID0gZG9jdW1lbnQucHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yTWVkaWEo
KTsKKyAgICBib29sIGlzUGxheWluZyA9IG1fZWxlbWVudC5pc1BsYXlpbmcoKTsKKworICAgIE1l
ZGlhVXNhZ2VJbmZvIHVzYWdlID0gIHsKKyAgICAgICAgbV9lbGVtZW50LmN1cnJlbnRTcmMoKSwK
KyAgICAgICAgc3RhdGUoKSA9PSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxheWluZywKKyAgICAg
ICAgY2FuU2hvd0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZTo6Q29udHJv
bHNNYW5hZ2VyKSwKKyAgICAgICAgIXBhZ2UtPmlzVmlzaWJsZUFuZEFjdGl2ZSgpLAorICAgICAg
ICBtX2VsZW1lbnQuaXNTdXNwZW5kZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmluQWN0aXZlRG9j
dW1lbnQoKSwKKyAgICAgICAgbV9lbGVtZW50LmlzRnVsbHNjcmVlbigpLAorICAgICAgICBtX2Vs
ZW1lbnQubXV0ZWQoKSwKKyAgICAgICAgbV9lbGVtZW50LmRvY3VtZW50KCkuaXNNZWRpYURvY3Vt
ZW50KCkgJiYgKG1fZWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCkgJiYgbV9lbGVtZW50LmRvY3Vt
ZW50KCkuZnJhbWUoKS0+aXNNYWluRnJhbWUoKSksCisgICAgICAgIGlzVmlkZW8sCisgICAgICAg
IGlzQXVkaW8sCisgICAgICAgIG1fZWxlbWVudC5oYXNWaWRlbygpLAorICAgICAgICBtX2VsZW1l
bnQuaGFzQXVkaW8oKSwKKyAgICAgICAgbV9lbGVtZW50LnJlbmRlcmVyKCksCisgICAgICAgIGlz
QXVkaW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVUb0NvbnRy
b2xDb250cm9sc01hbmFnZXIpICYmICFwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgIG1f
ZWxlbWVudC5oYXNBdWRpbygpICYmIGlzUGxheWluZyAmJiBhbGxvd3NQbGF5YmFja0NvbnRyb2xz
Rm9yQXV0b3BsYXlpbmdBdWRpbygpLCAvLyB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmUKKyAgICAg
ICAgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKG1fZWxlbWVudCksCisgICAgICAgICEh
cGxheWJhY2tQZXJtaXR0ZWQoKSwKKyAgICAgICAgcGFnZS0+bWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkKCksCisgICAgICAgIGRvY3VtZW50LmlzTWVkaWFEb2N1bWVudCgpICYmICFkb2N1bWVudC5v
d25lckVsZW1lbnQoKSwKKyAgICAgICAgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRv
cGxheUlubGluZShtX2VsZW1lbnQpLAorICAgICAgICByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrKCkgJiYgIWZ1bGxzY3JlZW5QZXJtaXR0ZWQoKSwKKyAgICAgICAgZG9jdW1lbnQu
aGFzSGFkVXNlckludGVyYWN0aW9uKCkgJiYgZG9jdW1lbnQucXVpcmtzKCkuc2hvdWxkQXV0b3Bs
YXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSgpLAorICAgICAgICBpc1ZpZGVvICYmIGhhc0JlaGF2
aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlKSAmJiAh
cHJvY2Vzc2luZ1VzZXJHZXN0dXJlLAorICAgICAgICBpc0F1ZGlvICYmIGhhc0JlaGF2aW9yUmVz
dHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKSAmJiAhcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlICYmICFtX2VsZW1lbnQubXV0ZWQoKSAmJiBtX2VsZW1lbnQudm9sdW1l
KCksCisgICAgICAgIGlzVmlkZW8gJiYgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNl
ckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlLAorICAgICAgICAhaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlVXNlckdlc3R1cmVU
b0NvbnRyb2xDb250cm9sc01hbmFnZXIpIHx8IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwKKyAgICAg
ICAgaGFzQmVoYXZpb3JSZXN0cmljdGlvbihSZXF1aXJlUGxheWJhY2tUb0NvbnRyb2xDb250cm9s
c01hbmFnZXIpICYmICFpc1BsYXlpbmcsCisgICAgICAgIG1fZWxlbWVudC5oYXNFdmVyTm90aWZp
ZWRBYm91dFBsYXlpbmcoKSwKKyAgICAgICAgZnVsbHNjcmVlbkVsZW1lbnQgJiYgIW1fZWxlbWVu
dC5pc0Rlc2NlbmRhbnRPZigqZnVsbHNjcmVlbkVsZW1lbnQpLAorICAgICAgICBpc0xhcmdlRW5v
dWdoRm9yTWFpbkNvbnRlbnQoTWVkaWFTZXNzaW9uTWFpbkNvbnRlbnRQdXJwb3NlOjpNZWRpYUNv
bnRyb2xzKSwKKyAgICB9OworCisgICAgaWYgKG1fbWVkaWFVc2FnZUluZm8gJiYgKm1fbWVkaWFV
c2FnZUluZm8gPT0gdXNhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWVkaWFVc2FnZUlu
Zm8gPSBXVEZNb3ZlKHVzYWdlKTsKKworI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS51cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZSht
ZWRpYVNlc3Npb25JZGVudGlmaWVyKCksICptX21lZGlhVXNhZ2VJbmZvKTsKKyNlbmRpZgorfQor
CiBTdHJpbmcgY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcoY29uc3QgTWVkaWFQbGF5YmFja0Rl
bmlhbFJlYXNvbiBlbnVtZXJhdGlvblZhbHVlKQogewogICAgIHN0YXRpYyBjb25zdCBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHZhbHVlc1tdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uaAppbmRleCAxY2QyYzhhMGRjN2FlZWRkNzFlNzg2Njg3YzgzZWZkMDdkYjk3
ZDFjLi4yNGExZGQ1YmFlMjFlOWVmNTcxZTRmMjc0YWU2M2U1ZjMyN2VkYTQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5j
bHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIlN1Y2Nlc3NPci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01Nyw3ICs1
OCw3IEBAIGNsYXNzIE1lZGlhRWxlbWVudFNlc3Npb24gZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1N
ZWRpYVNlc3Npb24KICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBNZWRpYUVsZW1lbnRTZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmKTsKLSAgICB2aXJ0
dWFsIH5NZWRpYUVsZW1lbnRTZXNzaW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfk1lZGlh
RWxlbWVudFNlc3Npb24oKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1l
bnQmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJXaXRoRG9jdW1lbnQoRG9jdW1lbnQmKTsKQEAgLTE1
OSw2ICsxNjAsOSBAQCBwdWJsaWM6CiAKICAgICBPcHRpb25hbDxOb3dQbGF5aW5nSW5mbz4gbm93
UGxheWluZ0luZm8oKSBjb25zdCBmaW5hbDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBk
YXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIGZpbmFsOworICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJ
bmZvPiBtZWRpYVVzYWdlSW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFVc2FnZUluZm87IH0K
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KICAgICBjb25zdCBj
aGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTWVkaWFFbGVtZW50U2Vz
c2lvbiI7IH0KQEAgLTE4OCw2ICsxOTIsOCBAQCBwcml2YXRlOgogICAgIEhUTUxNZWRpYUVsZW1l
bnQmIG1fZWxlbWVudDsKICAgICBCZWhhdmlvclJlc3RyaWN0aW9ucyBtX3Jlc3RyaWN0aW9uczsK
IAorICAgIE9wdGlvbmFsPE1lZGlhVXNhZ2VJbmZvPiBtX21lZGlhVXNhZ2VJbmZvOworCiAgICAg
Ym9vbCBtX2VsZW1lbnRJc0hpZGRlblVudGlsVmlzaWJsZUluVmlld3BvcnQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9lbGVtZW50SXNIaWRkZW5CZWNhdXNlSXRXYXNSZW1vdmVkRnJvbURPTSB7IGZh
bHNlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDNlOTg1YTg5MDA4MDk0
OWNjNTdmMmE4NTdkZDZkZjVkYjliYjQ4MTguLjc1OGQzYzY2YzM0MDMzMjMxNDU5NDU1YmI0ZWU4
MTdhMTIzNGUzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNjgsNiArNjgs
MTEgQEAgY2xhc3MgV0FLUmVzcG9uZGVyOwogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9VU0FHRSkKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiTWVkaWFVc2FnZUluZm8uaCIKKyNlbmRpZgorCiBPQkpDX0NMQVNTIE5TUmVzcG9uZGVyOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNTYsNiArMzYxLDEyIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpIHsgfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCisgICAgdmlydHVhbCB2b2lkIGFkZE1lZGlhVXNhZ2VN
YW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBVUkwmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNz
aW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgTWVkaWFVc2FnZUluZm8mKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKE1lZGlh
U2Vzc2lvbklkZW50aWZpZXIpIHsgfQorI2VuZGlmCisKICAgICB2aXJ0dWFsIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhU
TUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXli
YWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5jcHAKaW5kZXggMTg1M2ExMjFjYWIyMjc2
MGYxMWYyMjkzMGRmODkyNGM3ODg1NzRkNi4uOGU3ZjhjMTJiZTk1ZWVmYWE3NzA0MzYwMDMyMTA2
YTViZTk4OTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L1BsYXRmb3JtTWVkaWFTZXNzaW9uLmNwcApAQCAtMTE2LDYgKzExNiw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4gUGxhdGZvcm1NZWRpYVNlc3Npb246OmNyZWF0ZShQ
bGF0Zm9ybU1lZGlhCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UGxhdGZvcm1NZWRpYVNlc3Npb24o
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyJiBtYW5hZ2VyLCBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bkNsaWVudCYgY2xpZW50KQogICAgIDogbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQog
ICAgICwgbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9tZWRpYVNlc3Npb25JZGVudGlmaWVyKE1l
ZGlhU2Vzc2lvbklkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiAgICAgLCBtX3N0YXRlKElkbGUpCiAg
ICAgLCBtX3N0YXRlVG9SZXN0b3JlKElkbGUpCiAgICAgLCBtX25vdGlmeWluZ0NsaWVudChmYWxz
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVk
aWFTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbi5oCmluZGV4IDkzMDg1YjBkNDI3YWViZTg0MTBlNWQwNzE5MzhhYjA2MDE0NDFhY2Eu
LjQ2ODUxMmM0OTc3NjlhYjFmZjlhZDEzMjlmM2UwM2Y0OWQ4MTk5OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJEb2N1bWVudElkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CkBAIC0xODgsNiArMTg5LDkgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0
dWFsIE9wdGlvbmFsPE5vd1BsYXlpbmdJbmZvPiBub3dQbGF5aW5nSW5mbygpIGNvbnN0OworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCkgeyB9CisKKyAgICBNZWRp
YVNlc3Npb25JZGVudGlmaWVyIG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXI7IH0KIAogcHJvdGVjdGVkOgogICAgIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlciYsIFBsYXRmb3JtTWVkaWFT
ZXNzaW9uQ2xpZW50Jik7CkBAIC0yMDAsNiArMjA0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQ
dHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX21hbmFnZXI7CiAgICAgUGxhdGZvcm1N
ZWRpYVNlc3Npb25DbGllbnQmIG1fY2xpZW50OworICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIg
bV9tZWRpYVNlc3Npb25JZGVudGlmaWVyOwogICAgIFN0YXRlIG1fc3RhdGU7CiAgICAgU3RhdGUg
bV9zdGF0ZVRvUmVzdG9yZTsKICAgICBJbnRlcnJ1cHRpb25UeXBlIG1faW50ZXJydXB0aW9uVHlw
ZSB7IE5vSW50ZXJydXB0aW9uIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAppbmRleCAxMzc1
NzUwNTU3Y2YzMDc4MGExOWRjOWYxMWUwNzU5YjQxOGFjZDZmLi5hYmNlYjY0MmMzNWNiYmFjMjM0
MjRkMDQzY2M5NGI4Mzk2YmViZGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKQEAgLTY2
LDcgKzY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4g
UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpjcmVhdGUKIHZvaWQgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5nSW5mb0lmTmVjZXNzYXJ5KCkKIHsKICAgICBp
ZiAoYXV0byBleGlzdGluZ01hbmFnZXIgPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNo
YXJlZE1hbmFnZXJJZkV4aXN0cygpKQotICAgICAgICBleGlzdGluZ01hbmFnZXItPnNjaGVkdWxl
VXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICAgICAgZXhpc3RpbmdNYW5hZ2VyLT5zY2hlZHVs
ZVVwZGF0ZVNlc3Npb25TdGF0dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaAppbmRleCAzOTViM2NhNjBkODJmZjJiMTg5NDFlNjk2YzAzNTNmMThlYzljMzIwLi5j
NzI4ZDg2ZTNmMjA5YzIyYmE0ZWIxZWJkZDIxNGJhOWExNTNlZTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZVVwZGF0ZVNlc3Npb25TdGF0dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lv
bj4+KSB7IH0KICAgICBib29sIGhhcyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlKSBj
b25zdDsKICAgICBpbnQgY291bnQoUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSkgY29u
c3Q7CiAgICAgYm9vbCBhY3RpdmVBdWRpb1Nlc3Npb25SZXF1aXJlZCgpIGNvbnN0OwpAQCAtMTE0
LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uV2lsbEVuZFBs
YXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWlu
Zyk7CiAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25TdGF0ZUNoYW5nZWQoUGxhdGZvcm1NZWRpYVNl
c3Npb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhj
b25zdCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lv
bkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIHsgfTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vz
c2lvbiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdl
ZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCmluZGV4IDVkNmIxM2E4YTA5ODFkM2Fk
ZjU4ODFiMzgwNDVlY2UyNGI4ZGNjYmIuLjMyYWNlMWFkNDIyMGM5OWM5M2U3NDIzNjVlNzIyYTcz
OWIwZGRhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29h
L01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCkBAIC02MCw4ICs2MCwxMCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJOb3dQbGF5aW5n
SW5mbygpOwogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE5vd1BsYXlpbmdJbmZv
KGJvb2wgc2V0QXNOb3dQbGF5aW5nQXBwbGljYXRpb24sIGNvbnN0IE5vd1BsYXlpbmdJbmZvJik7
CiAKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVNZWRpYVVzYWdlKFBsYXRm
b3JtTWVkaWFTZXNzaW9uJik7CisKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0
YXR1cyhPcHRpb25hbDxXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uPj4pIGZpbmFsOwogICAg
IHZvaWQgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKIAogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwpAQCAtNzAsNyArNzIsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbiYpIGZpbmFsOworICAgIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0aWNz
Q2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbkNh
blByb2R1Y2VBdWRpb0NoYW5nZWQoKSBmaW5hbDsKIApAQCAtMTA1LDcgKzEwNyw3IEBAIHByaXZh
dGU6CiAgICAgZG91YmxlIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nRWxhcHNlZFRpbWUgeyBOQU4g
fTsKICAgICBNZWRpYVNlc3Npb25JZGVudGlmaWVyIG1fbGFzdFVwZGF0ZWROb3dQbGF5aW5nSW5m
b1VuaXF1ZUlkZW50aWZpZXI7CiAKLSAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVyPiBtX25vd1Bs
YXlpbmdVcGRhdGVUYXNrUXVldWU7CisgICAgR2VuZXJpY1Rhc2tRdWV1ZTxUaW1lcj4gbV90YXNr
UXVldWU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQ29tbWFuZExpc3RlbmVyPiBtX3Jl
bW90ZUNvbW1hbmRMaXN0ZW5lcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UEFMOjpTeXN0ZW1TbGVl
cExpc3RlbmVyPiBtX3N5c3RlbVNsZWVwTGlzdGVuZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EubW0KaW5kZXggMGZiNzllYmI5MmVhNGNhNmE1YmEwNDA0YzVhNmEyZmQ5ZTZiNGJiZi4uY2Vm
MzE3YWIzMDI2NjQxYWZjOWE4NGU0MGU3MmJiZWI2Zjg5M2FkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQpAQCAtMTM0LDEwICsxMzQsMjAgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2E6OnByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCgpCiAgICAg
cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCk7CiB9CiAKLXZvaWQg
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkK
K3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoT3B0aW9uYWw8V2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+IHNlc3Npb24pCiB7Ci0g
ICAgaWYgKCFtX25vd1BsYXlpbmdVcGRhdGVUYXNrUXVldWUuaGFzUGVuZGluZ1Rhc2tzKCkpCi0g
ICAgICAgIG1fbm93UGxheWluZ1VwZGF0ZVRhc2tRdWV1ZS5lbnF1ZXVlVGFzayhzdGQ6OmJpbmQo
Jk1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8sIHRoaXMpKTsK
KyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbdGhpcywgc2Vzc2lvbl0gKCkgbXV0YWJsZSB7
CisgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgICAgIGlmIChzZXNzaW9uLmhh
c1ZhbHVlKCkpIHsKKyAgICAgICAgICAgIGlmIChzZXNzaW9uKQorICAgICAgICAgICAgICAgIHNl
c3Npb24udmFsdWUoKS0+dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZm9yRWFjaFNlc3Npb24oW10gKGF1dG8mIHNl
c3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgp
OworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogYm9vbCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lv
bikKQEAgLTE0NSwxMyArMTU1LDEzIEBAIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlCiAgICAgaWYg
KCFQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhz
ZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc2NoZWR1bGVVcGRhdGVOb3dQ
bGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vzc2lvblN0YXR1cyh7IG1ha2VXZWFr
UHRyKCZzZXNzaW9uKSB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZv
cm1NZWRpYVNlc3Npb24mKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25E
aWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7Ci0g
ICAgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlVXBkYXRlU2Vz
c2lvblN0YXR1cyh7IG1ha2VXZWFrUHRyKCZzZXNzaW9uKSB9KTsKIH0KIAogdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OmFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Np
b24pCkBAIC0xNzQsNyArMTg0LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJl
bW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiAgICAgICAgIG1fYXVk
aW9IYXJkd2FyZUxpc3RlbmVyID0gbnVsbHB0cjsKICAgICB9CiAKLSAgICBzY2hlZHVsZVVwZGF0
ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgc2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKHsgbWFr
ZVdlYWtQdHIoJnNlc3Npb24pIH0pOwogfQogCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YTo6c2V0Q3VycmVudFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0x
ODgsMjMgKzE5OCwzMCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2V0Q3VycmVu
dFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lv
biYgc2Vzc2lvbiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyBkZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nKQogewogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lv
bldpbGxFbmRQbGF5YmFjayhzZXNzaW9uLCBkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKTsK
LSAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9PSBEZWxheUNhbGxpbmdVcGRh
dGVOb3dQbGF5aW5nOjpObykgeworCisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soWyZzZXNz
aW9uXSB7CisgICAgICAgIHNlc3Npb24udXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAg
IH0pOworCisgICAgaWYgKGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcgPT0gRGVsYXlDYWxs
aW5nVXBkYXRlTm93UGxheWluZzo6Tm8pCiAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7
Ci0gICAgICAgIHJldHVybjsKKyAgICBlbHNlIHsKKyAgICAgICAgbV90YXNrUXVldWUuZW5xdWV1
ZVRhc2soW3RoaXNdIHsKKyAgICAgICAgICAgIHVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAg
ICAgIH0pOwogICAgIH0KLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CiB9CiAK
IHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFu
Z2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgc2Vzc2lvbi5sb2dJZGVudGlmaWVyKCkpOwotICAgIHNjaGVkdWxlVXBkYXRl
Tm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0dXMoeyBtYWtl
V2Vha1B0cigmc2Vzc2lvbikgfSk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyOjpzZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwotICAgIHNjaGVk
dWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVVwZGF0ZVNlc3Npb25TdGF0
dXMoV1RGOjpudWxsb3B0KTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNs
ZWFyTm93UGxheWluZ0luZm8oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQppbmRleCA0NWJkNTRiNGMx
YmVmOWE4ZDA2NWE4YTVlNTcxNDkxNmI5NWM2OTY2Li5lMWVjNzg2NmYzOTc5MDQ5Y2I4MDEzNWVi
ZTJlN2Y4YTgzMmQyNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpAQCAtNjgsNyArNjgsNyBA
QCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnJlc2V0UmVzdHJpY3Rpb25zKCkKIAogICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXI6OnJlc2V0UmVzdHJpY3Rpb25zKCk7CisgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpyZXNldFJlc3RyaWN0aW9ucygpOwogCiAgICAgaWYgKHJhbVNpemUoKSA8IHN5c3RlbU1lbW9y
eVJlcXVpcmVkRm9yVmlkZW9JbkJhY2tncm91bmRUYWJzKSB7CiAgICAgICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgInJlc3RyaWN0aW5nIHZpZGVvIGluIGJhY2tncm91bmQgdGFicyBiZWNh
dXNlIHN5c3RlbSBtZW1vcnkgPSAiLCByYW1TaXplKCkpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZv
aWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJ
RCgpCiAKIGJvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQogewotICAgIGlmICghUGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCisg
ICAgaWYgKCFNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFj
ayhzZXNzaW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFD
Q0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFVc2FnZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEyNjcwMTYxYzU1
NTNhYTBlMDY4ZGVjN2FjMzViZTM4ZmEzOTA0NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgKQEAgLTAsMCArMSwyNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE1lZGlhVXNhZ2VJbmZv
IHsKKyAgICBVUkwgbWVkaWFVUkw7CisgICAgYm9vbCBpc1BsYXlpbmcgeyBmYWxzZSB9OworICAg
IGJvb2wgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5TaG93
Tm93UGxheWluZ0NvbnRyb2xzIHsgZmFsc2UgfTsKKyAgICBib29sIGlzU3VzcGVuZGVkIHsgZmFs
c2UgfTsKKyAgICBib29sIGlzSW5BY3RpdmVEb2N1bWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBp
c0Z1bGxzY3JlZW4geyBmYWxzZSB9OworICAgIGJvb2wgaXNNdXRlZCB7IGZhbHNlIH07CisgICAg
Ym9vbCBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1Zp
ZGVvIHsgZmFsc2UgfTsKKyAgICBib29sIGlzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFz
VmlkZW8geyBmYWxzZSB9OworICAgIGJvb2wgaGFzQXVkaW8geyBmYWxzZSB9OworICAgIGJvb2wg
aGFzUmVuZGVyZXIgeyBmYWxzZSB9OworICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0
dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUgeyBmYWxzZSB9Owor
ICAgIGJvb2wgcGxheWJhY2tQZXJtaXR0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50IHsgZmFsc2UgfTsKKyAgICBib29sIHBhZ2VFeHBsaWNpdGx5QWxsb3dz
RWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNGdWxs
c2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRB
dXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBib29sIGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlIHsgZmFsc2UgfTsKKyAg
ICBib29sIGlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9E
dWVUb0xvd1Bvd2VyTW9kZSB7IGZhbHNlIH07CisgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWly
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgcmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyB7
IGZhbHNlIH07CisgICAgYm9vbCBoYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgeyBmYWxzZSB9
OworICAgIGJvb2wgb3V0c2lkZU9mRnVsbHNjcmVlbiB7IGZhbHNlIH07CisgICAgYm9vbCBpc0xh
cmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQgeyBmYWxzZSB9OworCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IE1lZGlhVXNhZ2VJbmZvJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtZWRpYVVSTCA9PSBvdGhlci5tZWRpYVVSTAorICAgICAgICAgICAgJiYgaXNQbGF5aW5nID09
IG90aGVyLmlzUGxheWluZworICAgICAgICAgICAgJiYgY2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9
PSBvdGhlci5jYW5TaG93Q29udHJvbHNNYW5hZ2VyCisgICAgICAgICAgICAmJiBjYW5TaG93Tm93
UGxheWluZ0NvbnRyb2xzID09IG90aGVyLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMKKyAgICAg
ICAgICAgICYmIGlzU3VzcGVuZGVkID09IG90aGVyLmlzU3VzcGVuZGVkCisgICAgICAgICAgICAm
JiBpc0luQWN0aXZlRG9jdW1lbnQgPT0gb3RoZXIuaXNJbkFjdGl2ZURvY3VtZW50CisgICAgICAg
ICAgICAmJiBpc0Z1bGxzY3JlZW4gPT0gb3RoZXIuaXNGdWxsc2NyZWVuCisgICAgICAgICAgICAm
JiBpc011dGVkID09IG90aGVyLmlzTXV0ZWQKKyAgICAgICAgICAgICYmIGlzTWVkaWFEb2N1bWVu
dEluTWFpbkZyYW1lID09IG90aGVyLmlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lCisgICAgICAg
ICAgICAmJiBpc1ZpZGVvID09IG90aGVyLmlzVmlkZW8KKyAgICAgICAgICAgICYmIGlzQXVkaW8g
PT0gb3RoZXIuaXNBdWRpbworICAgICAgICAgICAgJiYgaGFzQXVkaW8gPT0gb3RoZXIuaGFzQXVk
aW8KKyAgICAgICAgICAgICYmIGhhc1ZpZGVvID09IG90aGVyLmhhc1ZpZGVvCisgICAgICAgICAg
ICAmJiBoYXNSZW5kZXJlciA9PSBvdGhlci5oYXNSZW5kZXJlcgorICAgICAgICAgICAgJiYgYXVk
aW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlID09IG90aGVyLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2Vz
dHVyZQorICAgICAgICAgICAgJiYgdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlID09IG90aGVyLnVz
ZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZQorICAgICAgICAgICAgJiYgaXNFbGVtZW50UmVjdE1vc3Rs
eUluTWFpbkZyYW1lID09IG90aGVyLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZQorICAg
ICAgICAgICAgJiYgcGxheWJhY2tQZXJtaXR0ZWQgPT0gb3RoZXIucGxheWJhY2tQZXJtaXR0ZWQK
KyAgICAgICAgICAgICYmIHBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkID09IG90aGVyLnBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkCisgICAgICAgICAgICAmJiBpc01lZGlhRG9jdW1lbnRBbmRO
b3RPd25lckVsZW1lbnQgPT0gb3RoZXIuaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50
CisgICAgICAgICAgICAmJiBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5s
aW5lID09IG90aGVyLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUK
KyAgICAgICAgICAgICYmIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkID09IG90aGVyLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkCisgICAgICAgICAgICAmJiBoYXNIYWRVc2Vy
SW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNl
ckdlc3R1cmUgPT0gb3RoZXIuaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNT
aG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlCisgICAgICAgICAgICAmJiBpc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSA9PSBvdGhlci5pc1Zp
ZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZQorICAgICAgICAgICAg
JiYgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPT0gb3Ro
ZXIuaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UKKyAgICAg
ICAgICAgICYmIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bv
d2VyTW9kZSA9PSBvdGhlci5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVl
VG9Mb3dQb3dlck1vZGUKKyAgICAgICAgICAgICYmIG5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSBv
dGhlci5ub1VzZXJHZXN0dXJlUmVxdWlyZWQKKyAgICAgICAgICAgICYmIHJlcXVpcmVzUGxheWJh
Y2tBbmRJc05vdFBsYXlpbmcgPT0gb3RoZXIucmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWlu
ZworICAgICAgICAgICAgJiYgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nID09IG90aGVyLmhh
c0V2ZXJOb3RpZmllZEFib3V0UGxheWluZworICAgICAgICAgICAgJiYgb3V0c2lkZU9mRnVsbHNj
cmVlbiA9PSBvdGhlci5vdXRzaWRlT2ZGdWxsc2NyZWVuCisgICAgICAgICAgICAmJiBpc0xhcmdl
RW5vdWdoRm9yTWFpbkNvbnRlbnQgPT0gb3RoZXIuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBNZWRpYVVzYWdlSW5mbyBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICB9
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE1lZGlhVXNh
Z2VJbmZvPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4g
aW5saW5lIHZvaWQgTWVkaWFVc2FnZUluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgbWVkaWFVUkw7CisgICAgZW5jb2RlciA8PCBpc1BsYXlpbmc7
CisgICAgZW5jb2RlciA8PCBjYW5TaG93Q29udHJvbHNNYW5hZ2VyOworICAgIGVuY29kZXIgPDwg
Y2FuU2hvd05vd1BsYXlpbmdDb250cm9sczsKKyAgICBlbmNvZGVyIDw8IGlzU3VzcGVuZGVkOwor
ICAgIGVuY29kZXIgPDwgaXNJbkFjdGl2ZURvY3VtZW50OworICAgIGVuY29kZXIgPDwgaXNGdWxs
c2NyZWVuOworICAgIGVuY29kZXIgPDwgaXNNdXRlZDsKKyAgICBlbmNvZGVyIDw8IGlzTWVkaWFE
b2N1bWVudEluTWFpbkZyYW1lOworICAgIGVuY29kZXIgPDwgaXNWaWRlbzsKKyAgICBlbmNvZGVy
IDw8IGlzQXVkaW87CisgICAgZW5jb2RlciA8PCBoYXNWaWRlbzsKKyAgICBlbmNvZGVyIDw8IGhh
c0F1ZGlvOworICAgIGVuY29kZXIgPDwgaGFzUmVuZGVyZXI7CisgICAgZW5jb2RlciA8PCBhdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgZW5jb2RlciA8PCB1c2VySGFzUGxheWVkQXVk
aW9CZWZvcmU7CisgICAgZW5jb2RlciA8PCBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7
CisgICAgZW5jb2RlciA8PCBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICBlbmNvZGVyIDw8IHBhZ2VN
ZWRpYVBsYXliYWNrU3VzcGVuZGVkOworICAgIGVuY29kZXIgPDwgaXNNZWRpYURvY3VtZW50QW5k
Tm90T3duZXJFbGVtZW50OworICAgIGVuY29kZXIgPDwgcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVt
ZW50VG9BdXRvcGxheUlubGluZTsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOworICAgIGVuY29kZXIgPDwg
aGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFy
Yml0cmFyeVVzZXJHZXN0dXJlOworICAgIGVuY29kZXIgPDwgaXNWaWRlb0FuZFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2U7CisgICAgZW5jb2RlciA8PCBpc0F1ZGlvQW5kUmVx
dWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZTsKKyAgICBlbmNvZGVyIDw8IGlzVmlk
ZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsKKyAgICBl
bmNvZGVyIDw8IG5vVXNlckdlc3R1cmVSZXF1aXJlZDsKKyAgICBlbmNvZGVyIDw8IHJlcXVpcmVz
UGxheWJhY2tBbmRJc05vdFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBoYXNFdmVyTm90aWZpZWRB
Ym91dFBsYXlpbmc7CisgICAgZW5jb2RlciA8PCBvdXRzaWRlT2ZGdWxsc2NyZWVuOworICAgIGVu
Y29kZXIgPDwgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBpbmxpbmUgT3B0aW9uYWw8TWVkaWFVc2FnZUluZm8+IE1lZGlhVXNhZ2VJbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBNZWRpYVVzYWdlSW5mbyBpbmZvOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1lZGlhVVJMKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1BsYXlpbmcpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmNhblNob3dDb250
cm9sc01hbmFnZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMpKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzU3VzcGVuZGVkKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0luQWN0aXZlRG9j
dW1lbnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLmlzRnVsbHNjcmVlbikpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaXNNdXRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW8pKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzQXVk
aW8pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lmhhc1ZpZGVvKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5oYXNBdWRpbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGluZm8uaGFzUmVuZGVyZXIpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSkpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8udXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUpKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLnBsYXliYWNrUGVy
bWl0dGVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJF
bGVtZW50KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5yZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCkpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzSGFkVXNl
ckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVz
ZXJHZXN0dXJlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSkp
CisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNB
dWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UpKQorICAgICAgICBy
ZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSkpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubm9Vc2VyR2VzdHVyZVJlcXVp
cmVkKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5m
by5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlp
bmcpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm91dHNpZGVPZkZ1bGxzY3JlZW4pKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLmlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCkpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICByZXR1cm4gaW5mbzsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5
ZTU1NTkzOTljODE4ZjUxZDM3Y2RjOTk5YWIuLjNhZTA2ZjMxMTdlOWMzNGQ2ZGY2ZmViMTZmYTIx
MTFjZjZkMjAzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEsNiAr
MSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNiw2
ICsxMjYsNyBAQAogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUg
Ik1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCisj
aW5jbHVkZSAiTWVkaWFVc2FnZUluZm8uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2lu
Y2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29h
LmgiCkBAIC00MDY2LDYgKzQwNjcsMTIgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE1lZGlhRWxlbWVu
dFJlc3RyaWN0aW9ucyhIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50LCBTdHJpbmdWaWUKICAgICAg
ICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYUVsZW1lbnRTZXNzaW9uOjpJbnZpc2libGVBdXRv
cGxheU5vdFBlcm1pdHRlZDsKICAgICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAib3ZlcnJpZGV1c2VyZ2VzdHVyZXJlcXVpcmVtZW50Zm9y
bWFpbmNvbnRlbnQiKSkKICAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYUVsZW1lbnRT
ZXNzaW9uOjpPdmVycmlkZVVzZXJHZXN0dXJlUmVxdWlyZW1lbnRGb3JNYWluQ29udGVudDsKKyAg
ICAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlc3RyaWN0aW9uU3RyaW5n
LCAicmVxdWlyZXVzZXJnZXN0dXJldG9jb250cm9sY29udHJvbHNtYW5hZ2VyIikpCisgICAgICAg
ICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0
dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyOworICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UocmVzdHJpY3Rpb25TdHJpbmcsICJyZXF1aXJlcGxheWJhY2tUb2NvbnRy
b2xjb250cm9sc21hbmFnZXIiKSkKKyAgICAgICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYUVs
ZW1lbnRTZXNzaW9uOjpSZXF1aXJlUGxheWJhY2tUb0NvbnRyb2xDb250cm9sc01hbmFnZXI7Cisg
ICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZXN0cmljdGlvblN0cmlu
ZywgInJlcXVpcmV1c2VyZ2VzdHVyZWZvcnZpZGVvZHVldG9sb3dwb3dlcm1vZGUiKSkKKyAgICAg
ICAgICAgIHJlc3RyaWN0aW9ucyB8PSBNZWRpYUVsZW1lbnRTZXNzaW9uOjpSZXF1aXJlVXNlckdl
c3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOwogICAgIH0KICAgICBlbGVtZW50Lm1lZGlh
U2Vzc2lvbigpLmFkZEJlaGF2aW9yUmVzdHJpY3Rpb24ocmVzdHJpY3Rpb25zKTsKIH0KQEAgLTQy
MjMsNiArNDIzMCw1NCBAQCBJbnRlcm5hbHM6Ok1lZGlhU2Vzc2lvblN0YXRlIEludGVybmFsczo6
bWVkaWFTZXNzaW9uU3RhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbQogfQogI2VuZGlmCiAKK0V4
Y2VwdGlvbk9yPEludGVybmFsczo6TWVkaWFVc2FnZVN0YXRlPiBJbnRlcm5hbHM6Om1lZGlhVXNh
Z2VTdGF0ZShIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICBlbGVtZW50Lm1lZGlhU2Vzc2lvbigpLnVwZGF0ZU1lZGlhVXNhZ2VJZkNoYW5n
ZWQoKTsKKyAgICBhdXRvIGluZm8gPSBlbGVtZW50Lm1lZGlhU2Vzc2lvbigpLm1lZGlhVXNhZ2VJ
bmZvKCk7CisgICAgaWYgKCFpbmZvKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3Vw
cG9ydGVkRXJyb3IgfTsKKworICAgIHJldHVybiB7IHsgaW5mby52YWx1ZSgpLm1lZGlhVVJMLnN0
cmluZygpLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNQbGF5aW5nLAorICAgICAgICBpbmZvLnZh
bHVlKCkuY2FuU2hvd0NvbnRyb2xzTWFuYWdlciwKKyAgICAgICAgaW5mby52YWx1ZSgpLmNhblNo
b3dOb3dQbGF5aW5nQ29udHJvbHMsCisgICAgICAgIGluZm8udmFsdWUoKS5pc1N1c3BlbmRlZCwK
KyAgICAgICAgaW5mby52YWx1ZSgpLmlzSW5BY3RpdmVEb2N1bWVudCwKKyAgICAgICAgaW5mby52
YWx1ZSgpLmlzRnVsbHNjcmVlbiwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTXV0ZWQsCisgICAg
ICAgIGluZm8udmFsdWUoKS5pc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSwKKyAgICAgICAgaW5m
by52YWx1ZSgpLmlzVmlkZW8sCisgICAgICAgIGluZm8udmFsdWUoKS5pc0F1ZGlvLAorICAgICAg
ICBpbmZvLnZhbHVlKCkuaGFzVmlkZW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNBdWRpbywK
KyAgICAgICAgaW5mby52YWx1ZSgpLmhhc1JlbmRlcmVyLAorICAgICAgICBpbmZvLnZhbHVlKCku
YXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLAorICAgICAgICBpbmZvLnZhbHVlKCkudXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNFbGVtZW50UmVjdE1v
c3RseUluTWFpbkZyYW1lLAorICAgICAgICBpbmZvLnZhbHVlKCkucGxheWJhY2tQZXJtaXR0ZWQs
CisgICAgICAgIGluZm8udmFsdWUoKS5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwKKyAgICAg
ICAgaW5mby52YWx1ZSgpLmlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCwKKyAgICAg
ICAgaW5mby52YWx1ZSgpLnBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxp
bmUsCisgICAgICAgIGluZm8udmFsdWUoKS5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXli
YWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCwKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc0hh
ZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJh
cnlVc2VyR2VzdHVyZSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzVmlkZW9BbmRSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNBdWRp
b0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UsCisgICAgICAgIGluZm8u
dmFsdWUoKS5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dl
ck1vZGUsCisgICAgICAgIGluZm8udmFsdWUoKS5ub1VzZXJHZXN0dXJlUmVxdWlyZWQsCisgICAg
ICAgIGluZm8udmFsdWUoKS5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nLAorICAgICAg
ICBpbmZvLnZhbHVlKCkuaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nLAorICAgICAgICBpbmZv
LnZhbHVlKCkub3V0c2lkZU9mRnVsbHNjcmVlbiwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzTGFy
Z2VFbm91Z2hGb3JNYWluQ29udGVudCwKKyAgICB9IH07CisKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGVsZW1lbnQpOworICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKyNlbmRpZgorfQorCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQog
CiB2b2lkIEludGVybmFsczo6c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVk
KGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVkZWFiYWNh
ZTdjMWI1MzlmYzAzNTJmMzc5NWQ4YzFjYzdhZjZlMTAuLjc2ZDhhY2Y5N2ZkZTExZTM5Mzk0N2Q1
ZmNlZWEyN2VjMjI5MTkwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODE0
LDYgKzgxNCw0MSBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBFeGNlcHRpb25PcjxOb3dQbGF5aW5n
U3RhdGU+IG5vd1BsYXlpbmdTdGF0ZSgpIGNvbnN0OwogCisgICAgc3RydWN0IE1lZGlhVXNhZ2VT
dGF0ZSB7CisgICAgICAgIFN0cmluZyBtZWRpYVVSTDsKKyAgICAgICAgYm9vbCBpc1BsYXlpbmc7
CisgICAgICAgIGJvb2wgY2FuU2hvd0NvbnRyb2xzTWFuYWdlcjsKKyAgICAgICAgYm9vbCBjYW5T
aG93Tm93UGxheWluZ0NvbnRyb2xzOworICAgICAgICBib29sIGlzU3VzcGVuZGVkOworICAgICAg
ICBib29sIGlzSW5BY3RpdmVEb2N1bWVudDsKKyAgICAgICAgYm9vbCBpc0Z1bGxzY3JlZW47Cisg
ICAgICAgIGJvb2wgaXNNdXRlZDsKKyAgICAgICAgYm9vbCBpc01lZGlhRG9jdW1lbnRJbk1haW5G
cmFtZTsKKyAgICAgICAgYm9vbCBpc1ZpZGVvOworICAgICAgICBib29sIGlzQXVkaW87CisgICAg
ICAgIGJvb2wgaGFzVmlkZW87CisgICAgICAgIGJvb2wgaGFzQXVkaW87CisgICAgICAgIGJvb2wg
aGFzUmVuZGVyZXI7CisgICAgICAgIGJvb2wgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOwor
ICAgICAgICBib29sIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTsKKyAgICAgICAgYm9vbCBpc0Vs
ZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7CisgICAgICAgIGJvb2wgcGxheWJhY2tQZXJtaXR0
ZWQ7CisgICAgICAgIGJvb2wgcGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQ7CisgICAgICAgIGJv
b2wgaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50OworICAgICAgICBib29sIHBhZ2VF
eHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmU7CisgICAgICAgIGJvb2wgcmVx
dWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ7
CisgICAgICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91
bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlOworICAgICAgICBib29sIGlzVmlkZW9B
bmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlOworICAgICAgICBib29sIGlz
QXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlOworICAgICAgICBi
b29sIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9k
ZTsKKyAgICAgICAgYm9vbCBub1VzZXJHZXN0dXJlUmVxdWlyZWQ7CisgICAgICAgIGJvb2wgcmVx
dWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZzsKKyAgICAgICAgYm9vbCBoYXNFdmVyTm90aWZp
ZWRBYm91dFBsYXlpbmc7CisgICAgICAgIGJvb2wgb3V0c2lkZU9mRnVsbHNjcmVlbjsKKyAgICAg
ICAgYm9vbCBpc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQ7CisgICAgfTsKKyAgICBFeGNlcHRp
b25PcjxNZWRpYVVzYWdlU3RhdGU+IG1lZGlhVXNhZ2VTdGF0ZShIVE1MTWVkaWFFbGVtZW50Jikg
Y29uc3Q7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdXNpbmcgUGxheWJhY2tDb250cm9sc1B1
cnBvc2UgPSBNZWRpYUVsZW1lbnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZTsKICAg
ICBSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gYmVzdE1lZGlhRWxlbWVudEZvclNob3dpbmdQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcihQbGF5YmFja0NvbnRyb2xzUHVycG9zZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDMxOTUyZTk2NWY3ZTE4YzRmNWI1NzUzYWZiNTI4
NDc3NGIyNmQzZS4uZDE4ZWViMDNiODdiZDcxMjI2MGE1MmRmOTQzNjg1ZTUxZmYyNWM2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTEzLDYgKzExMyw0NCBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdW5pcXVlSWRlbnRp
ZmllcjsKIH07CiAKK1sKKyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9S
VCwKKyAgICBDb25kaXRpb25hbD1WSURFTywKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10g
ZGljdGlvbmFyeSBNZWRpYVVzYWdlU3RhdGUgeworICAgIERPTVN0cmluZyBtZWRpYVVSTDsKKyAg
ICBib29sZWFuIGlzUGxheWluZzsKKyAgICBib29sZWFuIGNhblNob3dDb250cm9sc01hbmFnZXI7
CisgICAgYm9vbGVhbiBjYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzOworICAgIGJvb2xlYW4gaXNT
dXNwZW5kZWQ7CisgICAgYm9vbGVhbiBpc0luQWN0aXZlRG9jdW1lbnQ7CisgICAgYm9vbGVhbiBp
c0Z1bGxzY3JlZW47CisgICAgYm9vbGVhbiBpc011dGVkOworICAgIGJvb2xlYW4gaXNNZWRpYURv
Y3VtZW50SW5NYWluRnJhbWU7CisgICAgYm9vbGVhbiBpc1ZpZGVvOworICAgIGJvb2xlYW4gaXNB
dWRpbzsKKyAgICBib29sZWFuIGhhc1ZpZGVvOworICAgIGJvb2xlYW4gaGFzQXVkaW87CisgICAg
Ym9vbGVhbiBoYXNSZW5kZXJlcjsKKyAgICBib29sZWFuIGF1ZGlvRWxlbWVudFdpdGhVc2VyR2Vz
dHVyZTsKKyAgICBib29sZWFuIHVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZTsKKyAgICBib29sZWFu
IGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZTsKKyAgICBib29sZWFuIHBsYXliYWNrUGVy
bWl0dGVkOworICAgIGJvb2xlYW4gcGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQ7CisgICAgYm9v
bGVhbiBpc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQ7CisgICAgYm9vbGVhbiBwYWdl
RXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lOworICAgIGJvb2xlYW4gcmVx
dWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQ7
CisgICAgYm9vbGVhbiBoYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3Vs
ZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmU7CisgICAgYm9vbGVhbiBpc1ZpZGVvQW5k
UmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZTsKKyAgICBib29sZWFuIGlzQXVk
aW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlOworICAgIGJvb2xlYW4g
aXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOwor
ICAgIGJvb2xlYW4gbm9Vc2VyR2VzdHVyZVJlcXVpcmVkOworICAgIGJvb2xlYW4gcmVxdWlyZXNQ
bGF5YmFja0FuZElzTm90UGxheWluZzsKKyAgICBib29sZWFuIGhhc0V2ZXJOb3RpZmllZEFib3V0
UGxheWluZzsKKyAgICBib29sZWFuIG91dHNpZGVPZkZ1bGxzY3JlZW47CisgICAgYm9vbGVhbiBp
c0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQ7Cit9OworCiBbCiAgICAgRXhwb3J0TWFjcm89V0VC
Q09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCiAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCkBAIC03
OTUsNiArODMzLDggQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgW0NvbmRpdGlvbmFs
PVZJREVPXSBIVE1MTWVkaWFFbGVtZW50IGJlc3RNZWRpYUVsZW1lbnRGb3JTaG93aW5nUGxheWJh
Y2tDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1cnBvc2UgcHVycG9zZSk7CiAgICAg
W0NvbmRpdGlvbmFsPVZJREVPXSBNZWRpYVNlc3Npb25TdGF0ZSBtZWRpYVNlc3Npb25TdGF0ZShI
VE1MTWVkaWFFbGVtZW50IGVsZW1lbnQpOwogCisgICAgW0NvbmRpdGlvbmFsPVZJREVPLCBNYXlU
aHJvd0V4Y2VwdGlvbl0gTWVkaWFVc2FnZVN0YXRlIG1lZGlhVXNhZ2VTdGF0ZShIVE1MTWVkaWFF
bGVtZW50IGVsZW1lbnQpOworCiAgICAgRE9NU3RyaW5nIG9uZ29pbmdMb2Fkc0Rlc2NyaXB0aW9u
cygpOwogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChi
b29sZWFuIHZhbHVlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggN2M5YzU0MTVlNzQwOThkODVjY2I1YTAzNmU1YmIxYjJmMGFkOTgxYS4uNjg1NjQzMDYx
YmNkZDk3ZjMxN2M1M2RhODNhNmMxZTQ1ODg0ZDQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMTIsNiArMjEyLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fu
bm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkMzg0Y2U1NjVjNzg0YzE0ZTkxYWZkODk2MDdj
NzUzNDhhYmI3NWNkLi4xYWUxZDcxZTEyNzUyNTgyMzdiN2VhOTE2YTA0NWYzM2FhMjA4YzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKQEAgLTQ0Miw2ICs0NDIsNyBAQCBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYlBh
Z2VJbnNwZWN0b3JDb250cm9sbGVyLmNwcAogVUlQcm9jZXNzL0luc3BlY3Rvci9BZ2VudHMvSW5z
cGVjdG9yQnJvd3NlckFnZW50LmNwcAogCiBVSVByb2Nlc3MvTWVkaWEvQXVkaW9TZXNzaW9uUm91
dGluZ0FyYml0cmF0b3JQcm94eS5jcHAKK1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdl
ci5jcHAKIAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZjkzMjNmYjkzOTYwOThhOThkZjk2
ZjZiZDYyZDAxNjJkNmRmOGNjOC4uZjRhODdjNDUyMmZiZDY1MTU2ZGZjOWRkZDc3NGJhMDgzZTY3
ZjA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTA0LDYgKzUwNCw4IEBAIFVJUHJvY2Vz
cy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCiBVSVByb2Nlc3MvbWFjL1dLVGV4dElucHV0V2lu
ZG93Q29udHJvbGxlci5tbQogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQog
CitVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQorCiBVSVBy
b2Nlc3MvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHkuY3BwCiAKIFVJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0KaW5kZXggMzk0YmY5MTkzOTc4N2E3NmJmMTczZTMxOWRjMjJiYjYyMjMyOTdiMC4uMTBmODFi
MmRmMDFmMzJjZTIzNjk1YWZjYTc0YmY5YTA1M2NmNGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTUwLDYgKzUwLDEw
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCisjaW5jbHVkZSAiTWVkaWFVc2FnZU1hbmFnZXJD
b2NvYS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTM2MCw0ICszNjQsMjkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNj
ZXNzVG9QcmVmZXJlbmNlU2VydmljZSgpCiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShNRURJQV9V
U0FHRSkKK01lZGlhVXNhZ2VNYW5hZ2VyJiBXZWJQYWdlUHJveHk6Om1lZGlhVXNhZ2VNYW5hZ2Vy
KCkKK3sKKyAgICBpZiAoIW1fbWVkaWFVc2FnZU1hbmFnZXIpCisgICAgICAgIG1fbWVkaWFVc2Fn
ZU1hbmFnZXIgPSBNZWRpYVVzYWdlTWFuYWdlcjo6Y3JlYXRlKCk7CisKKyAgICByZXR1cm4gKm1f
bWVkaWFVc2FnZU1hbmFnZXI7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRNZWRpYVVzYWdl
TWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sK
KyAgICBtZWRpYVVzYWdlTWFuYWdlcigpLmFkZE1lZGlhU2Vzc2lvbihpZGVudGlmaWVyLCBidW5k
bGVJZGVudGlmaWVyLCBwYWdlVVJMKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZU1l
ZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mIGluZm8pCit7Cisg
ICAgbWVkaWFVc2FnZU1hbmFnZXIoKS51cGRhdGVNZWRpYVVzYWdlKGlkZW50aWZpZXIsIGluZm8p
OworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBtZWRp
YVVzYWdlTWFuYWdlcigpLnJlbW92ZU1lZGlhU2Vzc2lvbihpZGVudGlmaWVyKTsKK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGUwNGUwZmM3ZDM3
ODNmNjQyNWM0ZjcxZDViOTE5YzRhMTRkZjllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNjQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFVc2Fn
ZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKworI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiAhSEFWRShN
RURJQV9VU0FHRV9GUkFNRVdPUkspCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFVc2FnZU1hbmFnZXI+
IE1lZGlhVXNhZ2VNYW5hZ2VyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPE1l
ZGlhVXNhZ2VNYW5hZ2VyPigpOworfQorI2VuZGlmCisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXI6
OiByZXNldCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVVzYWdl
TWFuYWdlcjo6YWRkTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBh
Z2VVUkwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRpYVVzYWdlTWFu
YWdlcjo6cmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIg
aWRlbnRpZmllcikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1lZGlhVXNh
Z2VNYW5hZ2VyOjp1cGRhdGVNZWRpYVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mIG1lZGlhVXNhZ2VJ
bmZvKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VTQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvTWVkaWFVc2FnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdmZmNiMmNh
ZmZkNTU5ZTQzNTYzMmRhY2RmNGIwYTYzNThkYTAwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YVVzYWdlSW5mby5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBNZWRpYVVzYWdlTWFuYWdlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdlTWFu
YWdlcj4gY3JlYXRlKCk7CisKKyAgICBNZWRpYVVzYWdlTWFuYWdlcigpID0gZGVmYXVsdDsKKyAg
ICB2aXJ0dWFsIH5NZWRpYVVzYWdlTWFuYWdlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6
TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJik7CisgICAg
dmlydHVhbCB2b2lkIHJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVu
dGlmaWVyKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpOworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVk
aWFVc2FnZU1hbmFnZXJDb2NvYS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29j
b2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0ZTg3YmZiNTdiYjU2YjBm
MzhkMjliMWQyYTZjOWI0Zjg5ODNhM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9NZWRpYVVzYWdlTWFuYWdlckNvY29hLmgKQEAgLTAsMCAr
MSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKE1FRElBX1VT
QUdFKQorCisjaW5jbHVkZSAiTWVkaWFVc2FnZU1hbmFnZXIuaCIKKworT0JKQ19DTEFTUyBVU1Zp
ZGVvVXNhZ2U7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYVVzYWdlTWFuYWdl
ckNvY29hIDogcHVibGljIE1lZGlhVXNhZ2VNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBNZWRpYVVzYWdlTWFuYWdlckNvY29hKCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgfk1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EoKTsKKworICAgIHZvaWQgcmVz
ZXQoKSBmaW5hbDsKKyAgICB2b2lkIGFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Np
b25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwmKSBmaW5hbDsKKyAgICB2b2lk
IHVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZU1lZGlhU2Vz
c2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyKSBmaW5hbDsKKworcHJpdmF0ZToK
KworICAgIHN0cnVjdCBTZXNzaW9uTWVkaWFVc2FnZSB7CisgICAgICAgIFdURl9NQUtFX1NUUlVD
VF9GQVNUX0FMTE9DQVRFRDsKKworICAgICAgICBTZXNzaW9uTWVkaWFVc2FnZShXZWJDb3JlOjpN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRl
bnRpZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQorICAgICAgICAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKKyAgICAgICAgICAgICwgbV9idW5kbGVJZGVudGlmaWVyKGJ1bmRsZUlkZW50
aWZpZXIpCisgICAgICAgICAgICAsIG1fcGFnZVVSTChwYWdlVVJMKQorICAgICAgICB7CisgICAg
ICAgIH0KKworICAgICAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKKyAgICAgICAgU3RyaW5nIG1fYnVuZGxlSWRlbnRpZmllcjsKKyAgICAgICAgVVJMIG1f
cGFnZVVSTDsKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFVc2FnZUluZm8+IG1fbWVk
aWFVc2FnZUluZm87CisgICAgICAgIFJldGFpblB0cjxVU1ZpZGVvVXNhZ2U+IG1fdXNhZ2VUcmFj
a2VyOworICAgIH07CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxTZXNzaW9uTWVkaWFVc2FnZT4+IG1fbWVkaWFTZXNzaW9uczsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1VT
QUdFKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9jb2NvYS9N
ZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEv
Y29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmNkMDcwMTMxZWMw
MzY3NmEyZmE1YjI0ZGNmNDM4ZWY5NjVlOGQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbQpAQCAt
MCwwICsxLDIwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQorCisj
aW1wb3J0IDxwYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmg+CisKK05TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCisKK0BpbnRlcmZhY2UgVVNWaWRlb1VzYWdlIDogTlNPYmplY3QKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEJ1bmRsZUlkZW50aWZpZXI6KE5TU3RyaW5nICopYnVuZGxlSWRl
bnRpZmllciBVUkw6KE5TVVJMICopdXJsIG1lZGlhVVJMOihOU1VSTCAqKW1lZGlhVVJMIE5TX0RF
U0lHTkFURURfSU5JVElBTElaRVI7CistICh2b2lkKXN0b3A7CistICh2b2lkKXJlc3RhcnQ7Cist
ICh2b2lkKXVwZGF0ZVZpZGVvTWV0YWRhdGE6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4g
Kil2aWRlb01ldGFkYXRhOworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworbmFtZXNw
YWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK3N0YXRpYyBib29sIHVzYWdlVHJhY2tpbmdBdmFpbGFibGUoKQoreworICAgIHN0YXRp
YyBib29sIGF2YWlsYWJsZTsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsK
KyAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgWyZdICgpIHsKKyAgICAgICAgYXZhaWxhYmxl
ID0gUEFMOjppc1VzYWdlVHJhY2tpbmdGcmFtZXdvcmtBdmFpbGFibGUoKQorICAgICAgICAgICAg
JiYgUEFMOjpnZXRVU1ZpZGVvVXNhZ2VDbGFzcygpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxv
YWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5hZ2Vy
KCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRh
ZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMoKQorICAgICAgICAgICAgJiYgUEFMOjpj
YW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQoKQorICAg
ICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
SXNJbkFjdGl2ZURvY3VtZW50KCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbigpCisgICAgICAgICAgICAmJiBQ
QUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkKCkKKyAg
ICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtl
eUlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9h
ZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW8oKQorICAgICAgICAgICAg
JiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVt
ZW50V2l0aFVzZXJHZXN0dXJlKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRy
YWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSgpCisgICAg
ICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJ
c0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5M
b2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9BdWRpbygpCisgICAgICAgICAg
ICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFj
a1Blcm1pdHRlZCgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19V
U1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCgpCisgICAgICAgICAg
ICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlh
RG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2Fk
X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVt
ZW50VG9BdXRvcGxheUlubGluZSgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXli
YWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxv
YWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25B
bmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKQor
ICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRh
S2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UoKQorICAg
ICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UoKQorICAgICAg
ICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNW
aWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlKCkKKyAg
ICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtl
eU5vVXNlckdlc3R1cmVSZXF1aXJlZCgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5
aW5nKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9N
ZXRhZGF0YUtleUhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZygpCisgICAgICAgICAgICAmJiBQ
QUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxs
c2NyZWVuKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlk
ZW9NZXRhZGF0YUtleUlzVmlkZW8oKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdl
VHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIoKQorICAgICAgICAgICAgJiYgUEFM
OjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9WaWRlbygpCisgICAg
ICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJ
c0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQoKTsKKyAgICB9KTsKKworICAgIHJldHVybiBhdmFp
bGFibGU7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxNZWRpYVVzYWdlTWFuYWdlcj4gTWVkaWFVc2Fn
ZU1hbmFnZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFVc2FnZU1h
bmFnZXJDb2NvYT4oKTsKK30KKworTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6fk1lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2EoKQoreworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYTo6cmVzZXQoKQoreworICAgIGZvciAoYXV0byYgc2Vzc2lvbiA6IG1fbWVkaWFTZXNz
aW9ucy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIpIHsK
KyAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBzdG9wXTsKKyAgICAgICAgICAg
IHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKyAg
ICBtX21lZGlhU2Vzc2lvbnMuY2xlYXIoKTsKK30KKwordm9pZCBNZWRpYVVzYWdlTWFuYWdlckNv
Y29hOjphZGRNZWRpYVNlc3Npb24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVS
TCkKK3sKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fbWVkaWFTZXNzaW9ucy5lbnN1cmUoaWRlbnRp
ZmllciwgWyZdIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFVc2FnZU1hbmFnZXJD
b2NvYTo6U2Vzc2lvbk1lZGlhVXNhZ2U+KGlkZW50aWZpZXIsIGJ1bmRsZUlkZW50aWZpZXIsIHBh
Z2VVUkwpOworICAgIH0pOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQu
aXNOZXdFbnRyeSk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6cmVtb3ZlTWVk
aWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICBBU1NFUlQobV9tZWRpYVNlc3Npb25zLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBt
X21lZGlhU2Vzc2lvbnMucmVtb3ZlKGlkZW50aWZpZXIpOworfQorCit2b2lkIE1lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2E6OnVwZGF0ZU1lZGlhVXNhZ2UoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYgbWVkaWFVc2Fn
ZUluZm8pCit7CisgICAgQVNTRVJUKG1fbWVkaWFTZXNzaW9ucy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgYXV0byBzZXNzaW9uID0gbV9tZWRpYVNlc3Npb25zLmdldChpZGVudGlmaWVyKTsK
KyAgICBpZiAoIXNlc3Npb24pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghdXNhZ2VUcmFj
a2luZ0F2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBAdHJ5IHsKKworICAgICAg
ICBpZiAoc2Vzc2lvbi0+bV9tZWRpYVVzYWdlSW5mbykgeworICAgICAgICAgICAgaWYgKHNlc3Np
b24tPm1fbWVkaWFVc2FnZUluZm8gPT0gbWVkaWFVc2FnZUluZm8pCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBpZiAoc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgJiYgc2Vz
c2lvbi0+bV9tZWRpYVVzYWdlSW5mby0+bWVkaWFVUkwgIT0gbWVkaWFVc2FnZUluZm8ubWVkaWFV
UkwpIHsKKyAgICAgICAgICAgICAgICBbc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgc3RvcF07Cisg
ICAgICAgICAgICAgICAgc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgPSBudWxscHRyOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFzZXNzaW9uLT5tX3VzYWdlVHJhY2tl
cikgeworICAgICAgICAgICAgaWYgKCFtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciA9
IGFkb3B0TlMoW1BBTDo6YWxsb2NVU1ZpZGVvVXNhZ2VJbnN0YW5jZSgpIGluaXRXaXRoQnVuZGxl
SWRlbnRpZmllcjpzZXNzaW9uLT5tX2J1bmRsZUlkZW50aWZpZXIgVVJMOihOU1VSTCAqKXNlc3Np
b24tPm1fcGFnZVVSTCBtZWRpYVVSTDooTlNVUkwgKiltZWRpYVVzYWdlSW5mby5tZWRpYVVSTF0p
OworICAgICAgICAgICAgQVNTRVJUKHNlc3Npb24tPm1fdXNhZ2VUcmFja2VyKTsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChzZXNzaW9uLT5tX21lZGlhVXNhZ2VJbmZvICYmIHNlc3Npb24tPm1f
bWVkaWFVc2FnZUluZm8tPmlzUGxheWluZyAhPSBtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpIHsK
KyAgICAgICAgICAgIGlmIChtZWRpYVVzYWdlSW5mby5pc1BsYXlpbmcpCisgICAgICAgICAgICAg
ICAgW3Nlc3Npb24tPm1fdXNhZ2VUcmFja2VyIHJlc3RhcnRdOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIFtzZXNzaW9uLT5tX3VzYWdlVHJhY2tlciBzdG9wXTsKKyAgICAgICAg
fQorCisgICAgICAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKm1ldGFkYXRhID0gQHsK
KyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dDb250cm9sc01hbmFnZXI6IEAo
bWVkaWFVc2FnZUluZm8uY2FuU2hvd0NvbnRyb2xzTWFuYWdlciksCisgICAgICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlDYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzOiBAKG1lZGlhVXNhZ2VJbmZv
LmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRh
S2V5SXNTdXNwZW5kZWQ6IEAobWVkaWFVc2FnZUluZm8uaXNTdXNwZW5kZWQpLAorICAgICAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5SXNJbkFjdGl2ZURvY3VtZW50OiBAKG1lZGlhVXNhZ2VJbmZv
LmlzSW5BY3RpdmVEb2N1bWVudCksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc0Z1
bGxzY3JlZW46IEAobWVkaWFVc2FnZUluZm8uaXNGdWxsc2NyZWVuKSwKKyAgICAgICAgICAgIFVT
VmlkZW9NZXRhZGF0YUtleUlzTXV0ZWQ6IEAobWVkaWFVc2FnZUluZm8uaXNNdXRlZCksCisgICAg
ICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTogQCht
ZWRpYVVzYWdlSW5mby5pc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSksCisgICAgICAgICAgICBV
U1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvOiBAKG1lZGlhVXNhZ2VJbmZvLmlzVmlkZW8pLAorICAg
ICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpbzogQChtZWRpYVVzYWdlSW5mby5pc0F1
ZGlvKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW86IEAoIW1lZGlhVXNh
Z2VJbmZvLmhhc1ZpZGVvKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW86
IEAoIW1lZGlhVXNhZ2VJbmZvLmhhc0F1ZGlvKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0
YUtleVJlbmRlcmVyOiBAKG1lZGlhVXNhZ2VJbmZvLmhhc1JlbmRlcmVyKSwKKyAgICAgICAgICAg
IFVTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZTogQChtZWRpYVVz
YWdlSW5mby5hdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUpLAorICAgICAgICAgICAgVVNWaWRl
b01ldGFkYXRhS2V5VXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlOiBAKG1lZGlhVXNhZ2VJbmZvLnVz
ZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU6IEAobWVkaWFVc2FnZUluZm8uaXNFbGVtZW50
UmVjdE1vc3RseUluTWFpbkZyYW1lKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVBs
YXliYWNrUGVybWl0dGVkOiBAKG1lZGlhVXNhZ2VJbmZvLnBsYXliYWNrUGVybWl0dGVkKSwKKyAg
ICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkOiBA
KG1lZGlhVXNhZ2VJbmZvLnBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkKSwKKyAgICAgICAgICAg
IFVTVmlkZW9NZXRhZGF0YUtleUlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudDogQCht
ZWRpYVVzYWdlSW5mby5pc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQpLAorICAgICAg
ICAgICAgVVNWaWRlb01ldGFkYXRhS2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRv
cGxheUlubGluZTogQChtZWRpYVVzYWdlSW5mby5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRU
b0F1dG9wbGF5SW5saW5lKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVz
RnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkOiBAKG1l
ZGlhVXNhZ2VJbmZvLnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2Ny
ZWVuTm90UGVybWl0dGVkKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUhhc0hhZFVz
ZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlV
c2VyR2VzdHVyZTogQChtZWRpYVVzYWdlSW5mby5oYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWly
a3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUpLAorICAgICAg
ICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JW
aWRlb1JhdGVDaGFuZ2U6IEAobWVkaWFVc2FnZUluZm8uaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5
SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2U6IEAobWVkaWFV
c2FnZUluZm8uaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2Up
LAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlOiBAKG1lZGlhVXNhZ2VJbmZvLmlzVmlkZW9B
bmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSksCisgICAgICAg
ICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQ6IEAobWVkaWFVc2Fn
ZUluZm8ubm9Vc2VyR2VzdHVyZVJlcXVpcmVkKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0
YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmc6IEAobWVkaWFVc2FnZUluZm8ucmVx
dWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZyksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRh
dGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmc6IEAobWVkaWFVc2FnZUluZm8uaGFzRXZl
ck5vdGlmaWVkQWJvdXRQbGF5aW5nKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleU91
dHNpZGVPZkZ1bGxzY3JlZW46IEAobWVkaWFVc2FnZUluZm8ub3V0c2lkZU9mRnVsbHNjcmVlbiks
CisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRl
bnQ6IEAobWVkaWFVc2FnZUluZm8uaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KSwKKyAgICAg
ICAgfTsKKworICAgICAgICBbc2Vzc2lvbi0+bV91c2FnZVRyYWNrZXIgdXBkYXRlVmlkZW9NZXRh
ZGF0YTptZXRhZGF0YV07CisgICAgICAgIHNlc3Npb24tPm1fbWVkaWFVc2FnZUluZm8gPSBtZWRp
YVVzYWdlSW5mbzsKKworICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJNZWRpYVVzYWdlTWFuYWdlckNvY29hOjp1cGRhdGVNZWRpYVVz
YWdlIGNhdWdodCBleGNlcHRpb24hIik7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRvck1hbmFnZXIuY3BwCmluZGV4IDQwNzQwMmIyMzdkNDQ4OTE3NmIzNjlmNDExNGFkYjQ3OGFk
YjIzMGMuLjVhYjVjOTBmMGZhYWJiMTQ4MzdjY2M3YTRlYjZkNjM1Yzg2MmMxZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJOZmNTZXJ2aWNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1Ymxp
Y0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xv
Y2FsQ29ubmVjdGlvbi5tbQppbmRleCA1NjcxMjU1NGI2ZjYyYjg2MDEzMGI2NzM3N2UzZjQzMzZh
YmM4MjBjLi42ZjBjYjk5YWFiMWU5M2Q1ZWZmNGQ0OGNkMzIyOTE5Y2NjNDE2MTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tM
b2NhbENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0yOSw3ICsyOSw5IEBACiAj
aWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBv
cnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGM5N2UwYWU3OTVhOTE3N2JiM2Y1NmQwZDAxZGE5NjEzYWFkZjJj
NTAuLjMyMDFhN2JiMjZkMjlhNzQwZDVhOTllOTJjMTE1ZTFmYjJlZDgxYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc4LDYgKzI3OCwxMCBAQAogI2lu
Y2x1ZGUgIkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElB
X1VTQUdFKQorI2luY2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgiCisjZW5kaWYKKwogI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQ
cm94eUFkZGl0aW9ucy5oPgogI2Vsc2UKQEAgLTc0NjIsNiArNzQ2NiwxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAg
ICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCisgICAgaWYgKG1fbWVkaWFV
c2FnZU1hbmFnZXIpCisgICAgICAgIG1fbWVkaWFVc2FnZU1hbmFnZXItPnJlc2V0KCk7CisjZW5k
aWYKKwogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXKQogICAgIGlmIChyZXNl
dFN0YXRlUmVhc29uICE9IFJlc2V0U3RhdGVSZWFzb246Ok5hdmlnYXRpb25Td2FwKQogICAgICAg
ICBtX2NvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI4YTc2ZmRlMjAyNzRjMDQ4YWQwMjc2YmMwZDlj
MWU3MDM4OTdkNGUuLjc2ZGUxYzhmMTgxNjRlYWM4NzhhZTJiMjJjNDMxYWRiZTk3NjM1OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjcsNiArMTY3LDEwIEBA
IGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
U2Vzc2lvbklkZW50aWZpZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0
dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CkBAIC0yMzcsNiArMjQxLDcgQEAgc3RydWN0
IEZpbGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgR2xvYmFsV2luZG93SWRlbnRpZmllcjsKIHN0
cnVjdCBMaW5rSWNvbjsKIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Q7CitzdHJ1Y3QgTWVkaWFV
c2FnZUluZm87CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0
cnVjdCBQcmV3YXJtSW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAt
Mjc1LDYgKzI4MCw3IEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXI7
CiBjbGFzcyBHYW1lcGFkRGF0YTsKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyOwogY2xhc3MgTmF0
aXZlV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNz
IE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0xNzI4LDYgKzE3MzQsMTMgQEAgcHVibGljOgogICAg
IHZvaWQgcGxhdGZvcm1EaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdl
YkNvbnRleHRNZW51SXRlbURhdGEmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1VTQUdF
KQorICAgIE1lZGlhVXNhZ2VNYW5hZ2VyJiBtZWRpYVVzYWdlTWFuYWdlcigpOworICAgIHZvaWQg
YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYpOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2Fn
ZU1hbmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhVXNhZ2VN
YW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyKTsKKyNlbmRpZgor
CiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5
JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0
aWFsaXplKCk7CkBAIC0yMzUzLDYgKzIzNjYsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFV
c2FnZU1hbmFnZXI+IG1fbWVkaWFVc2FnZU1hbmFnZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW5wdXRNb2RlPiBtX3BlbmRpbmdJ
bnB1dE1vZGVDaGFuZ2U7CiAgICAgVHJhbnNhY3Rpb25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZEFmdGVyRGlkQ29tbWl0TG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmMzNiMmUzNGJlOGE1YmNjMTM4MWZjMTAx
Y2I4YjFjNWQ1OWEzYzk1Li41NjlkNjM3OTZhNDFkYmE3NWU2YmExOWEzMGQ5MjFlZDljODYwNzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC01ODcsNCArNTg3LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAg
ICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4gaXRlbXMpCiAKKyNpZiBFTkFCTEUo
TUVESUFfVVNBR0UpCisgICAgQWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIs
IFVSTCBwYWdlVVJMKTsKKyAgICBVcGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShX
ZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpNZWRpYVVzYWdlSW5mbyBpbmZvKTsKKyAgICBSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Np
b24oV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyNlbmRpZgor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBlMjYzZDFjMTVkMGJjYzVhNzBmNDlmZTJkNDIzMWE4NzAyMWI1Nzk2Li40OWVhNGUxZTIy
YmMzODEyMjgwMDU1Njc3NWUzYmI4N2YxZmI3M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxNTUsNiArMjE1NSwxMCBAQAogCQkw
NzkyMzE0NjIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3OTIzMTQ3MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0
RTIzOUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFCMjQ0NTFCQjkwMDAxQjlDNCAvKiBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5NEI0QUMy
NDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhVXNhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFF
MjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBNZWRpYVVzYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3OTRCNEFGMjQ0NTJBMkMwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlckNvY29hLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJl
Zi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5
Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdC
MUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NTE5LDYgKzU1MjMsMjUgQEAKIAkJCXBhdGggPSBtZWRp
YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTA3OTRCNEE5MjQ0NTFCQjkw
MDAxQjlDNCAvKiBNZWRpYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJMDc5NEI0QUEyNDQ1MUJCOTAwMDFCOUM0IC8qIGNvY29hICovLAorCQkJCTA3OTRC
NEFFMjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5jcHAgKi8sCisJCQkJMDc5
NEI0QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmggKi8sCisJCQkpOwor
CQkJcGF0aCA9IE1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMDc5
NEI0QUEyNDQ1MUJCOTAwMDFCOUM0IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQkwNzk0QjRBRjI0NDUyQTJDMDAwMUI5QzQgLyogTWVkaWFV
c2FnZU1hbmFnZXJDb2NvYS5oICovLAorCQkJCTA3OTRCNEFCMjQ0NTFCQjkwMDAxQjlDNCAvKiBN
ZWRpYVVzYWdlTWFuYWdlckNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1
QiAvKiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC04ODU1LDYgKzg4NzgsNyBAQAogCQkJCTJEQTk0NEE4MTg4NEU5QUIwMEVEODZEQiAvKiBpb3Mg
Ki8sCiAJCQkJQkMxMTFCMTgxMTJGNUZCNDAwMzM3QkFCIC8qIExhdW5jaGVyICovLAogCQkJCUJD
Q0YwODVDMTEzRjNCNzUwMEM2NTBDNSAvKiBtYWMgKi8sCisJCQkJMDc5NEI0QTkyNDQ1MUJCOTAw
MDFCOUM0IC8qIE1lZGlhICovLAogCQkJCUNENDU3MEQ4MjQ0NENBMTcwMEEzRENFQiAvKiBNZWRp
YSAqLywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkz
MUEyRUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKaW5kZXggNTQzZGUyM2RhODllMWI3NGRiYTk3YWExYTM5NTNmMmNmNjlhNGQxYy4u
Yjg5Nzc1ZWZiNGJiZjI5MmQyYjVjMzFmY2U3MDZiYjljMWIzNDRiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKQEAgLTEwMDgsOSArMTAwOCwyNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhp
dFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlbwog
ewogICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQotCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShNRURJQV9VU0FHRSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZWRpYVVzYWdlTWFuYWdl
clNlc3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGJ1bmRsZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBtX3BhZ2UuYWRk
TWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKGlkZW50aWZpZXIsIGJ1bmRsZUlkZW50aWZpZXIsIHBh
Z2VVUkwpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2FnZU1hbmFn
ZXJTZXNzaW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBN
ZWRpYVVzYWdlSW5mbyYgdXNhZ2UpCit7CisgICAgbV9wYWdlLnVwZGF0ZU1lZGlhVXNhZ2VNYW5h
Z2VyU2Vzc2lvblN0YXRlKGlkZW50aWZpZXIsIHVzYWdlKTsKK30KKwordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpCit7CisgICAgbV9wYWdlLnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbihpZGVudGlmaWVyKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfVVNBR0UpCisKICNp
ZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
YTg1OTMxYzcxMDZmY2I0NjAxY2NjZGM5ZDUyMzY1NDYwOGM4NjY4Ny4uYmQ4M2NkZTJiZmExY2Fl
MjM3Y2M4NTRkOGIxNWRhMzgwN2VlN2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjcwLDYg
KzI3MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lv
bihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBV
UkwmKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRl
KFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNh
Z2VJbmZvJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24o
V2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcikgZmluYWw7CisjZW5kaWYKKwogI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQg
ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSkgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggZDQzY2E3N2U5NDI5MGY4NTVhNDMyMzZjOTVmMDMzN2FiMzMx
OTUwYy4uMmY2MTdmNzAxMWJjNTA1MmYxM2YyOGNiZDhiZWYwNzk1NzJiY2JlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcwNjIsNiArNzA2
MiwyMyBAQCBib29sIFdlYlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJp
bmdQdXJwb3NlIHB1cnBvc2UpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKE1F
RElBX1VTQUdFKQordm9pZCBXZWJQYWdlOjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVk
aWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50
aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihpZGVudGlmaWVyLCBidW5kbGVJZGVu
dGlmaWVyLCBwYWdlVVJMKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlTWVkaWFVc2FnZU1h
bmFnZXJTZXNzaW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBNZWRpYVVzYWdlSW5mbyYgdXNhZ2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpVcGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShpZGVudGlmaWVyLCB1c2Fn
ZSkpOworfQorCit2b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllcikp
OworfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDBlZDljMDA3OWZlNWE4NGZlYzFlZjE0NmY5
OGY2OWIyZjVlYmJjNy4uODdlYjJkYzcxMTI0ZjBiNjkxZTZiMTQxNDBjYWNiNzBhYTgxMzIxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTM1LDYg
KzEzNSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0IEF0a09iamVjdDsKICNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvUGxhdGZvcm1HZXN0dXJlRXZlbnRNYWMuaD4KICNlbmRpZgogCisj
aWYgRU5BQkxFKE1FRElBX1VTQUdFKQorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSWRl
bnRpZmllci5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJEeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0
aW9uLmg+CkBAIC0yMDgsNiArMjEyLDcgQEAgc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllcjsK
IHN0cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOwogc3RydWN0IEhpZ2hsaWdodDsKIHN0cnVj
dCBLZXlwcmVzc0NvbW1hbmQ7CitzdHJ1Y3QgTWVkaWFVc2FnZUluZm87CiBzdHJ1Y3QgUHJvbWlz
ZWRBdHRhY2htZW50SW5mbzsKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczsKIHN0cnVj
dCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CkBAIC0xMzA3LDcgKzEzMTIsMTMgQEAgcHVibGljOgogICAg
IGJvb2wgbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9u
ZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3M7IH0KICAgICAKICAgICBib29sIHNob3VsZFVz
ZVJlbW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlKTsKLSAgICAKKwor
I2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vz
c2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBVUkwmKTsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJ
bmZvJik7CisgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6
TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMDA3YTRiYWYyNjdhMzRhMzg1MTMwNTg2NmY0NmEzMzEzMDAyZmNjYi4uOTM2MDU1
OGRlMjNmOThkNjI4MWM2Njg0YTkzMDJhMDliNjA1Yjc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA0LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJhY2sgc3RhdGUgY2hhbmdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLXVzYWdlLXN0YXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtdXNhZ2Utc3RhdGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAg
bmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKwogMjAy
MC0wNC0xNCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdIEdhcmRlbmluZywgdXBkYXRlIGV4cGVjdGF0aW9ucyBhZnRlciByMjYwMDYyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDA1OTg0Y2M1NTFjYzQ0YjVkZmI0ZTVlMjczYTc2ZTgyMDcxMTMzYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXVzYWdlLXN0YXRlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDY2IEBACisKK1Rlc3QgbWVkaWFVc2FnZVN0YXRlLgorCitSVU4oaW50ZXJu
YWxzLnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyh2aWRlbywgIlJlcXVpcmVVc2VyR2VzdHVy
ZUZvckF1ZGlvUmF0ZUNoYW5nZSxSZXF1aXJlVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2Us
UmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyIikpCitFVkVOVChjYW5w
bGF5dGhyb3VnaCkKKworKiogQ2hlY2sgc3RhdGUgYmVmb3JlIHBsYXliYWNrLgorRVhQRUNURUQg
KHVzYWdlLm1lZGlhVVJMLmluZGV4T2YoJ2NvbnRlbnQvdGVzdC5tcDQnKSA+ICctMScpIE9LCitF
WFBFQ1RFRCAodXNhZ2UuaXNQbGF5aW5nID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2Uu
Y2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmNh
blNob3dOb3dQbGF5aW5nQ29udHJvbHMgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5p
c1N1c3BlbmRlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzSW5BY3RpdmVEb2N1
bWVudCA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaXNGdWxsc2NyZWVuID09ICdmYWxz
ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaXNNdXRlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQg
KHVzYWdlLmlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lID09ICdmYWxzZScpIE9LCitFWFBFQ1RF
RCAodXNhZ2UuaXNWaWRlbyA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaXNBdWRpbyA9
PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmhhc1ZpZGVvID09ICd0cnVlJykgT0sKK0VY
UEVDVEVEICh1c2FnZS5oYXNBdWRpbyA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaGFz
UmVuZGVyZXIgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVzYWdlLmF1ZGlvRWxlbWVudFdpdGhV
c2VyR2VzdHVyZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLnVzZXJIYXNQbGF5ZWRB
dWRpb0JlZm9yZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzRWxlbWVudFJlY3RN
b3N0bHlJbk1haW5GcmFtZSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UucGxheWJhY2tQ
ZXJtaXR0ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5wYWdlTWVkaWFQbGF5YmFj
a1N1c3BlbmRlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzTWVkaWFEb2N1bWVu
dEFuZE5vdE93bmVyRWxlbWVudCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLnBhZ2VF
eHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUgPT0gJ2ZhbHNlJykgT0sKK0VY
UEVDVEVEICh1c2FnZS5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNj
cmVlbk5vdFBlcm1pdHRlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmhhc0hhZFVz
ZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlV
c2VyR2VzdHVyZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzVmlkZW9BbmRSZXF1
aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlID09ICd0cnVlJykgT0sKK0VYUEVDVEVE
ICh1c2FnZS5pc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSA9
PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVz
YWdlLm5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdl
LnJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVE
ICh1c2FnZS5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgPT0gJ2ZhbHNlJykgT0sKK0VYUEVD
VEVEICh1c2FnZS5vdXRzaWRlT2ZGdWxsc2NyZWVuID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAo
dXNhZ2UuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50ID09ICdmYWxzZScpIE9LCisKKyoqIE11
dGUgdmlkZW8uCitSVU4odmlkZW8ubXV0ZWQgPSB0cnVlKQorRVhQRUNURUQgKHVzYWdlLmlzTXV0
ZWQgPT0gJ3RydWUnKSBPSworCisqKiBVbm11dGUgdmlkZW8uCitSVU4odmlkZW8ubXV0ZWQgPSBm
YWxzZSkKK0VYUEVDVEVEICh1c2FnZS5pc011dGVkID09ICdmYWxzZScpIE9LCisKKyoqIFRyeSB0
byBwbGF5IHdpdGhvdXQgdXNlciBnZXN0dXJlLCBzaG91bGQgcmVqZWN0IGFuZCBzdGF0ZSBzaG91
bGQgbm90IGNoYW5nZS4KK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCitFWFBFQ1RFRCAo
dXNhZ2UuaXNQbGF5aW5nID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuY2FuU2hvd0Nv
bnRyb2xzTWFuYWdlciA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLnVzZXJIYXNQbGF5
ZWRBdWRpb0JlZm9yZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLnBsYXliYWNrUGVy
bWl0dGVkID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaXNWaWRlb0FuZFJlcXVpcmVz
VXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVz
YWdlLm5vVXNlckdlc3R1cmVSZXF1aXJlZCA9PSAnZmFsc2UnKSBPSworCisqKiBUcnkgdG8gcGxh
eSB3aXRob3V0IHVzZXIgZ2VzdHVyZSwgc2hvdWxkIHN1Y2NlZWQgYW5kIHN0YXRlIHNob3VsZCBj
aGFuZ2UuCitFVkVOVChwbGF5aW5nKQorRVhQRUNURUQgKHVzYWdlLmlzUGxheWluZyA9PSAndHJ1
ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuY2FuU2hvd0NvbnRyb2xzTWFuYWdlciA9PSAndHJ1ZScp
IE9LCitFWFBFQ1RFRCAodXNhZ2UudXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlID09ICd0cnVlJykg
T0sKK0VYUEVDVEVEICh1c2FnZS5wbGF5YmFja1Blcm1pdHRlZCA9PSAndHJ1ZScpIE9LCitFWFBF
Q1RFRCAodXNhZ2UuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFu
Z2UgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5ub1VzZXJHZXN0dXJlUmVxdWlyZWQg
PT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtdXNhZ2Utc3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXVzYWdl
LXN0YXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgxOThjNjQyNjNkMjI4ZDQzZDdhZGRlZjNlNTdmNmM4
MGE3MjQ4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXVzYWdl
LXN0YXRlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8c2NyaXB0IHNyYz0nbWVkaWEtZmlsZS5qcyc+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQg
c3JjPSd2aWRlby10ZXN0LmpzJz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKworICAgICAg
ICAgICAgbGV0IHVzYWdlOworICAgICAgICAgICAgbGV0IHZpZGVvVVJMOworCisgICAgICAgICAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKworICAg
ICAgICAgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgICAg
ICBmYWlsVGVzdChgPGJyPlRoaXMgdGVzdCByZXF1aXJlcyBpbnRlcm5hbHMhYCk7CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBmaW5kTWVkaWFFbGVtZW50KCk7CisKKyAgICAgICAgICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1cmVGb3JB
dWRpb1JhdGVDaGFuZ2UsUmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlLFJlcXVp
cmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlciIpJyk7CisKKyAgICAgICAgICAg
ICAgICB2aWRlb1VSTCA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpOwor
ICAgICAgICAgICAgICAgIHZpZGVvLnNyYyA9IHZpZGVvVVJMOworCisgICAgICAgICAgICAgICAg
YXdhaXQgd2FpdEZvcih2aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7CisKKyAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj4qKiBDaGVjayBzdGF0ZSBiZWZvcmUgcGxheWJhY2suIikKKyAg
ICAgICAgICAgICAgICB1c2FnZSA9IGludGVybmFscy5tZWRpYVVzYWdlU3RhdGUodmlkZW8pOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZChgdXNhZ2UubWVkaWFVUkwuaW5kZXhPZignJHt2
aWRlb1VSTH0nKWAsIC0xLCAnPicpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNh
Z2UuaXNQbGF5aW5nJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNh
Z2UuY2FuU2hvd0NvbnRyb2xzTWFuYWdlcicsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3VzYWdlLmNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMnLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc1N1c3BlbmRlZCcsIGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzSW5BY3RpdmVEb2N1bWVudCcsIHRy
dWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNGdWxsc2NyZWVuJywg
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNNdXRlZCcsIGZh
bHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzTWVkaWFEb2N1bWVu
dEluTWFpbkZyYW1lJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNh
Z2UuaXNWaWRlbycsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2Uu
aXNBdWRpbycsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmhh
c1ZpZGVvJywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5oYXNB
dWRpbycsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaGFzUmVu
ZGVyZXInLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmF1ZGlv
RWxlbWVudFdpdGhVc2VyR2VzdHVyZScsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3VzYWdlLnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZScsIGZhbHNlKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFt
ZScsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UucGxheWJhY2tQ
ZXJtaXR0ZWQnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5w
YWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3VzYWdlLmlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCcsIGZhbHNl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnBhZ2VFeHBsaWNpdGx5QWxs
b3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCd1c2FnZS5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVs
bHNjcmVlbk5vdFBlcm1pdHRlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ3VzYWdlLmhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0
b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZScsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9S
YXRlQ2hhbmdlJywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5p
c0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZScsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzVmlkZW9BbmRSZXF1aXJlc1Vz
ZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZScsIGZhbHNlKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLm5vVXNlckdlc3R1cmVSZXF1aXJlZCcsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnJlcXVpcmVzUGxheWJhY2tBbmRJ
c05vdFBsYXlpbmcnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2Fn
ZS5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCd1c2FnZS5vdXRzaWRlT2ZGdWxsc2NyZWVuJywgZmFsc2UpOworICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50
JywgZmFsc2UpOworCisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogTXV0ZSB2
aWRlby4iKQorICAgICAgICAgICAgICAgIHJ1bigndmlkZW8ubXV0ZWQgPSB0cnVlJyk7CisgICAg
ICAgICAgICAgICAgdXNhZ2UgPSBpbnRlcm5hbHMubWVkaWFVc2FnZVN0YXRlKHZpZGVvKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzTXV0ZWQnLCB0cnVlKTsKKworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFVubXV0ZSB2aWRlby4iKQorICAgICAg
ICAgICAgICAgIHJ1bigndmlkZW8ubXV0ZWQgPSBmYWxzZScpOworICAgICAgICAgICAgICAgIHVz
YWdlID0gaW50ZXJuYWxzLm1lZGlhVXNhZ2VTdGF0ZSh2aWRlbyk7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCd1c2FnZS5pc011dGVkJywgZmFsc2UpOworCisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHBsYXkgd2l0aG91dCB1c2VyIGdlc3R1cmUsIHNo
b3VsZCByZWplY3QgYW5kIHN0YXRlIHNob3VsZCBub3QgY2hhbmdlLiIpCisgICAgICAgICAgICAg
ICAgYXdhaXQgc2hvdWxkUmVqZWN0KHZpZGVvLnBsYXkoKSk7CisKKyAgICAgICAgICAgICAgICB1
c2FnZSA9IGludGVybmFscy5tZWRpYVVzYWdlU3RhdGUodmlkZW8pOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNQbGF5aW5nJywgZmFsc2UpOworICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgndXNhZ2UuY2FuU2hvd0NvbnRyb2xzTWFuYWdlcicsIGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9y
ZScsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnBsYXliYWNr
UGVybWl0dGVkJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2Uu
aXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UnLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLm5vVXNlckdlc3R1cmVSZXF1aXJl
ZCcsIGZhbHNlKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0
byBwbGF5IHdpdGhvdXQgdXNlciBnZXN0dXJlLCBzaG91bGQgc3VjY2VlZCBhbmQgc3RhdGUgc2hv
dWxkIGNoYW5nZS4iKQorICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCgpID0+IHsgCisg
ICAgICAgICAgICAgICAgICAgIHZpZGVvLnBsYXkoKTsgCisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2aWRlbywgJ3BsYXlpbmcnKTsKKworICAgICAg
ICAgICAgICAgIHVzYWdlID0gaW50ZXJuYWxzLm1lZGlhVXNhZ2VTdGF0ZSh2aWRlbyk7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc1BsYXlpbmcnLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmNhblNob3dDb250cm9sc01hbmFnZXInLCB0
cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnVzZXJIYXNQbGF5ZWRB
dWRpb0JlZm9yZScsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2Uu
cGxheWJhY2tQZXJtaXR0ZWQnLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3VzYWdlLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlJywg
ZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2Uubm9Vc2VyR2VzdHVy
ZVJlcXVpcmVkJywgdHJ1ZSk7CisKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IG1lZGlhVXNh
Z2VTdGF0ZS48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZDZjZjgwNzY1YTMzY2Q2ZGZlNDJmNzVlN2U4MzY2
YmQzMjRjZjE3Li4wM2Q3NGUzNjcxZDg1MjY4MzJjODA0MDhiZmQxM2UyMDg3NjI3YmI3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE2Miw2ICsxMTYy
LDkgQEAgZmFzdC9sYXllcnMvcHJldmVudC1oaXQtdGVzdC1kdXJpbmctbGF5b3V0Lmh0bWwgWyBT
a2lwIF0KICMgVGhpcyBpcyBhIE1hYyBzcGVjaWZpYyBmZWF0dXJlCiB3ZWJraXQub3JnL2IvMTY4
NDY2IGh0dHAvdGVzdHMvc2VjdXJpdHkvYnlwYXNzaW5nLWNvcnMtY2hlY2tzLWZvci1leHRlbnNp
b24tdXJscy5odG1sIFsgU2tpcCBdCiAKKyMgQ3VycmVudGx5IGVuYWJsZWQgb24gTWFjIG9ubHkK
K21lZGlhL21lZGlhLXVzYWdlLXN0YXRlLmh0bWwgWyBTa2lwIF0KKwogIyBObyBzdXBwb3J0IGZv
ciBXZWJHUFUgeWV0CiB3ZWJraXQub3JnL2IvMTkxMDA1IHdlYmdwdS8gWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xOTEwMDUgaW5zcGVjdG9yL2NhbnZhcy9jcmVhdGUtY29udGV4dC13ZWJncHUuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyMzA2MjkxNTNiNDhjYzZmNzhlZTA5M2JjZTE3ZDIxZGNiZTliOTI0Li42NzAxYzA3NDQ2NmZi
NzgwNjY1MzNjNTc2NGJmZWYzOTUzM2E0MGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTE2Niw2ICsxMTY2LDkgQEAgbWVkaWEvdHJhY2svdHJhY2st
aW4tYmFuZC1jdWVzLWFkZGVkLW9uY2UuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXQKICMgU2NyZWVu
IG9ic2N1cmVkIGJ5IG9wYXF1ZSBsYXllcjoKICNtZWRpYS92aWRlby1mcmFtZS1hY2N1cmF0ZS1z
ZWVrLmh0bWwgWyBGYWlsdXJlIF0KIAorIyBDdXJyZW50bHkgZW5hYmxlZCBvbiBNYWMgb25seQor
bWVkaWEvbWVkaWEtdXNhZ2Utc3RhdGUuaHRtbCBbIFNraXAgXQorCiAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAgIEVuZCBNZWRpYSBGYWlsdXJl
cyAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFkM2ZkZjU0
ZGM2ZTA5YjQ3N2YzYzZmZTlmZDIwNDVkMTdmOGRiZmEuLjIxNmJkNzk3N2U3MmE1MmJkMDJiYTZl
NDVjZDhhMzljZDc3NWQ2YWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0
YXRpb25zCkBAIC03MzUsNiArNzM1LDkgQEAgd2Via2l0Lm9yZy9iLzIxMDI2MiBmYXN0L3NlbGVj
dG9ycy90ZXh0LWZpZWxkLXNlbGVjdGlvbi10ZXh0LXNoYWRvdy5odG1sIFsgSW1hZ2UKIAogd2Vi
a2l0Lm9yZy9iLzIxMDI2MyBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L291dC1vZi1mbG93
LXBvc2l0aW9uZWQtbGluZS1icmVha3MuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCisjIEN1
cnJlbnRseSBlbmFibGVkIG9uIE1hYyBvbmx5CittZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS5odG1s
IFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDMuIFVOUkVT
T0xWRUQgVEVTVFMKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396616</attachid>
            <date>2020-04-15 21:33:33 -0700</date>
            <delta_ts>2020-04-16 06:36:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210518-20200415213332.patch</filename>
            <type>text/plain</type>
            <size>119396</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGUwMzk0YjdiZTViNWJiMDE4YjRlZmJj
Yzk4NWY1Yjc4ZGEyMjY4NmQuLjk5NmE1ZDE0YzIyNDllZmM5MTRjMzFkMjcxNzg4YjVhYjBkZDBj
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMTUgIEVyaWMgQ2FybHNvbiAgPGVyaWMu
Y2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW21hY09TXSBVcGRhdGUgU2NyZWVuVGltZSBh
cyBwbGF5YmFjayBzdGF0ZSBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTA1MTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYxMTgxMDky
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKyAgICAgICAgCisgICAgICAgIERl
ZmluZSBIQVZFX01FRElBX1VTQUdFX0ZSQU1FV09SSyBhbmQgRU5BQkxFX01FRElBX1VTQUdFCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oOgorICAgICAgICAqIHd0Zi9QbGF0
Zm9ybUhhdmUuaDoKKwogMjAyMC0wNC0xNCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkb3B0IGludGVyZmFjZSBBVkF1ZGlvUm91dGluZ0FyYml0ZXIgZm9yIE1h
YwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGU4NjY3M2ZlZjEzNzI3ZGRlMWU1YmFiOTRjMTBjMDBlY2JiZmFmNjgu
LjY5MzMwYzE0MzRkNzIzMzIzMmY3ZjEwYjYwNGVlMDc0MDBlOTZhZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw2NSBAQAorMjAyMC0wNC0xNSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVwZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNr
IHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL21lZGlhLXVz
YWdlLXN0YXRlLmh0bWwKKyAgICAgICAgCisgICAgICAgIFBhc3MgbWVkaWEgZWxlbWVudCBzdGF0
ZSB0byB0aGUgVUkgcHJvY2VzcyB3aGVuZXZlciBpdCBjaGFuZ2VzLgorCisgICAgICAgICogSGVh
ZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9uVW5pcXVlSWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9NZWRpYUVs
ZW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRWxlbWVudFNlc3Npb246
Ok1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50U2Vz
c2lvbjo6fk1lZGlhRWxlbWVudFNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVt
ZW50U2Vzc2lvbjo6dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCk6CisgICAgICAgICogaHRtbC9N
ZWRpYUVsZW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2FnZU1hbmFn
ZXJTZXNzaW9uU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpyZW1vdmVN
ZWRpYVVzYWdlTWFuYWdlclNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRm
b3JtTWVkaWFTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNz
aW9uOjp1cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFTZXNzaW9uOjptZWRpYVNlc3Npb25JZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjp1cGRhdGVOb3dQbGF5aW5n
SW5mb0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlcjo6c2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNjaGVk
dWxlVXBkYXRlTm93UGxheWluZ0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2NoZWR1bGVVcGRhdGVTZXNzaW9uU3RhdHVz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldp
bGxCZWdpblBsYXliYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYTo6c2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJlbW92ZVNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6Y2xpZW50Q2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2E6OnNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5nSW5mbyk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpyZXNldFJl
c3RyaWN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhVXNhZ2VJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFVc2FnZUluZm86
Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFVc2FnZUluZm86Om9w
ZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFVc2FnZUluZm86OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbzo6ZGVjb2RlKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnNldE1lZGlhRWxlbWVudFJlc3RyaWN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1lZGlhVXNhZ2VTdGF0ZSBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDQtMTQgIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBpbnRlcmZhY2Ug
QVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDNhM2Uy
NmUwMjIxMTY5ZjExYTJlOGRiNjY4NmU2NTZlMzE3YzFiMzQuLjQ0NmJiZmU1NWFhNzJmYzJlMjE5
Y2E4OGY3NmVmOThiZjA5MTA4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA
CisyMDIwLTA0LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJhY2sgc3RhdGUgY2hhbmdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBKZXIgTm9ibGUuCisKKyAgICAgICAgU29mdCBsaW5rIHRoZSBVc2FnZVRyYWNraW5nIGZyYW1l
d29yay4KKworICAgICAgICAqIFBBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICog
cGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5tbTogQWRkZWQuCisKIDIwMjAtMDQtMTQg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBpbnRlcmZh
Y2UgQVZBdWRpb1JvdXRpbmdBcmJpdGVyIGZvciBNYWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDZkM2ExMmRjZDMw
OWI5NDhhZDhjNzExN2EwYzFlNTBhOWIwMWFhNC4uYWM1YmY3OGRhMWQwOWY3Mzg4ODM1ZTAzNGNl
OTkxOTQ5MjZjN2MxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAyMC0wNC0xNSAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIFVw
ZGF0ZSBTY3JlZW5UaW1lIGFzIHBsYXliYWNrIHN0YXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDUxOAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjExODEwOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisg
ICAgICAgIEFkZCBhIG1hbmFnZXIgdGhhdCBnZXRzIG1lZGlhIGVsZW1lbnQgc3RhdGUgY2hhbmdl
cywgYW5kIGEgQ29jb2Etc3BlY2lmaWMKKyAgICAgICAgaW1wbGVtZW50YXRpb24gdGhhdCBwYXNz
ZXMgdGhhdCBzdGF0ZSB0byBTY3JlZW5UaW1lLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFVc2FnZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJT
ZXNzaW9uU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlbW92ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhL01lZGlhVXNh
Z2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2Vy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhVXNhZ2VNYW5hZ2VyOjphZGRNZWRpYVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVVzYWdlTWFuYWdlcjo6cmVtb3ZlTWVkaWFTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFVc2FnZU1hbmFnZXI6OnVwZGF0ZU1lZGlhVXNhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
ZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTWVk
aWEvY29jb2EvTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6U2Vzc2lvbk1lZGlhVXNhZ2U6OlNlc3Npb25NZWRp
YVVzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OnVzYWdlVHJhY2tpbmdBdmFpbGFi
bGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6fk1lZGlhVXNhZ2VNYW5hZ2VyQ29j
b2EpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVVzYWdlTWFuYWdlckNvY29hOjpyZXNldCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OmFkZE1lZGlhU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OnJlbW92ZU1lZGlhU2Vz
c2lvbik6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OnVwZGF0ZU1l
ZGlhVXNhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdG9yTWFuYWdlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50Ojp1cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVtb3ZlTWVkaWFVc2FnZU1hbmFnZXJTZXNz
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjAtMDQtMTQg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI1OTg5OCk6IFRhYnMgb2NjYXNpb25hbGx5IGdvIGJsYW5rIGFuZCBnZXQgc3R1Y2sg
dGhhdCB3YXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2Eu
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29jb2EuaAppbmRleCA4YWVmZGE2ODQx
NzY5OGVmNTlhZGZhYTg5YjhjYjA1N2FlYmYwM2YxLi41NTQyNDNmNDYyNDU3ZmI3MTJlZDRjOGY2
YWNkM2VjNzg1Y2FmOTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJs
ZUNvY29hLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCkBAIC0y
ODgsMyArMjg4LDcgQEAKICNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTYwMCkKICNkZWZpbmUgRU5BQkxFX1JPVVRJTkdfQVJCSVRSQVRJ
T04gMQogI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTYwMCkgfHwgKFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAwMDApCisjZGVmaW5lIEVOQUJMRV9N
RURJQV9VU0FHRSAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggMzcxMDI1Y2UzZjM3
YTlhYzBhOTJhYmJkOTJmNzJiZTRlZjFiODZmOC4uY2YzNmUwOWJkOTcyNWVlZDgwOGQ3ZTNhODU3
ZTRkYmM3OTdjOTQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTY3MywzICs2NzMsNyBAQAog
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNjAwKQogI2RlZmluZSBIQVZFX0FWQVVESU9fUk9VVElOR19BUkJJVEVSIDEKICNlbmRpZgor
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDE2MDApIHx8IChQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTQwMDAwKQorI2RlZmluZSBIQVZFX01FRElBX1VTQUdFX0ZSQU1F
V09SSyAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDY5NzA3ZDExMjJlZGUwODhmOWRm
N2E4ZTY0MmM4OGM4M2JiZDQ3ZGUuLmI5OTljYzJkOTA1MTI4MzA5ZGNiMTA1MGI3OGI5ZTc1Y2Uy
NTQzOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTE1OCw2ICsxMTU4LDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllckVudW1zLmgKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhVXNhZ2VJbmZvLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvT3BlbkdMU2hpbXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMwZTJhYjJjMDgxMWJlZjJmNzI1NTQyN2VlZDg2NGIz
MmI0MTYzOGIuLmZmZThkZWZkNjFhZTY1ZTNhMzRjMDYzM2JkOTRjNTk5MDFjNzVjYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIxLDYgKzIxLDggQEAKIC8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwNzYxMURCNjI0M0ZBNUJGMDBEODA3
MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYxMURCNDI0M0ZBNUJFMDBEODA3MDQgLyogVXNhZ2VUcmFj
a2luZ1NvZnRMaW5rLmggKi87IH07CisJCTA3NjExREI3MjQzRkE1QkYwMEQ4MDcwNCAvKiBVc2Fn
ZVRyYWNraW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzYxMURCNTI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRM
aW5rLm1tICovOyB9OwogCQkwNzdFODdCMTIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9u
U29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzdFODdBRjIyNkE0NjAyMDBBMkFGRjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsubW0gKi87
IH07CiAJCTA3N0U4N0IyMjI2QTQ2MDMwMEEyQUZGMCAvKiBBVkZvdW5kYXRpb25Tb2Z0TGluay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc3RTg3QjAy
MjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLmggKi87IH07CiAJCTBDMDBD
RkQ0MUY2OENFNDYwMEFBQzI2RCAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBDMDBDRkQyMUY2OENFNDYwMEFB
QzI2RCAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAqLzsgfTsKQEAgLTE5MCw2ICsxOTIsOCBA
QAogLyogRW5kIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBC
WEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCQkwNzYxMURCNDI0M0ZBNUJFMDBEODA3MDQgLyog
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFVzYWdlVHJhY2tpbmdTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzYxMURCNTI0M0ZBNUJGMDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNhZ2VUcmFja2luZ1NvZnRMaW5r
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzdFODdBRjIyNkE0NjAyMDBBMkFG
RjAgLyogQVZGb3VuZGF0aW9uU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBVkZvdW5kYXRpb25Tb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc3RTg3QjAyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRM
aW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFWRm91bmRhdGlvblNvZnRM
aW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBDMDBDRkQxMUY2OENFNDYwMEFB
QzI2RCAvKiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lQVZGb3VuZGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTYyNSw2ICs2MjksOCBAQAogCQkJCUNEQUNCMzVGMjM4NzNFNDgwMDE4
RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5oICovLAogCQkJCUExRjYzQzlEMjFBNERCRjcw
MDZGQjQzQiAvKiBQYXNzS2l0U29mdExpbmsuaCAqLywKIAkJCQlBMUY2M0M5RTIxQTREQkY3MDA2
RkI0M0IgLyogUGFzc0tpdFNvZnRMaW5rLm1tICovLAorCQkJCTA3NjExREI0MjQzRkE1QkUwMEQ4
MDcwNCAvKiBVc2FnZVRyYWNraW5nU29mdExpbmsuaCAqLywKKwkJCQkwNzYxMURCNTI0M0ZBNUJG
MDBEODA3MDQgLyogVXNhZ2VUcmFja2luZ1NvZnRMaW5rLm1tICovLAogCQkJKTsKIAkJCXBhdGgg
PSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04NDUsNiArODUxLDcgQEAK
IAkJCQkyRTEzNDJDQzIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEM1QUY5MjIxRjQzQTRDNzAwMkVBQzAyIC8qIFVJS2l0U1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwQzJEQTE0NzFGM0JFQjQ5MDBEQkMzMTcgLyogVVJMRm9ybWF0dGluZ1NQ
SS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDc2MTFEQjYyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdl
VHJhY2tpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEMyREExNTkxRjNCRUI0OTAw
REJDMzE3IC8qIFdlYkZpbHRlckV2YWx1YXRvclNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEw
ODI2RjkxRjU3NjI5MjAwNDc3MkFDIC8qIFdlYlBhbmVsLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CkBAIC05NjQsNiArOTcxLDcgQEAKIAkJCQlBM0FCNkU1NzFGM0QxRERCMDA5QzE0QjEgLyogU3lz
dGVtU2xlZXBMaXN0ZW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBM0FCNkU2NTFGM0QyMTdG
MDA5QzE0QjEgLyogU3lzdGVtU2xlZXBMaXN0ZW5lck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTJFMTM0MkNEMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtpdFNvZnRMaW5rLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMDc2MTFEQjcyNDNGQTVCRjAwRDgwNzA0IC8qIFVzYWdlVHJhY2tpbmdTb2Z0TGlu
ay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMDgyNkZBMUY1NzYyOTIwMDQ3NzJBQyAvKiBXZWJQ
YW5lbC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9Vc2FnZVRyYWNraW5nU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
VXNhZ2VUcmFja2luZ1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM2Njk4MGQzNGZmN2UwNjBjNzA1
MTJkZmRlYzNiOGMxMzRkZDNlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvVXNhZ2VUcmFja2luZ1NvZnRMaW5rLmgKQEAgLTAsMCArMSw5NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShNRURJQV9VU0FHRV9GUkFNRVdPUksp
CisKKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoUEFMLCBVU1ZpZGVvVXNhZ2UpOworI2RlZmluZSBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0
aW9uSXNBdmFpbGFibGUgUEFMOjpjYW5Mb2FkX2xpYkFjY2Vzc2liaWxpdHlfX0FYU0lzb2xhdGVk
VHJlZU1vZGUKKworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBV
c2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5hZ2VyLCBO
U1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5TaG93Q29udHJvbHNNYW5h
Z2VyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd0NvbnRy
b2xzTWFuYWdlcigpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJv
bHMsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5
aW5nQ29udHJvbHMgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlDYW5T
aG93Tm93UGxheWluZ0NvbnRyb2xzKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
SEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQs
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkIFBBTDo6
Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNTdXNwZW5kZWQoKQorU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlJc0luQWN0aXZlRG9jdW1lbnQsIE5TU3RyaW5nICopCisjZGVmaW5lIFVT
VmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCBQQUw6OmdldF9Vc2FnZVRyYWNraW5n
X1VTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1bWVudCgpCitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5
SXNGdWxsc2NyZWVuIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNG
dWxsc2NyZWVuKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcgKikKKyNk
ZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VT
VmlkZW9NZXRhZGF0YUtleUlzTXV0ZWQoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9j
dW1lbnRJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5
SXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVv
TWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSgpCitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleUlzQXVkaW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVk
aW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0F1ZGlvKCkKK1NP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywg
VVNWaWRlb01ldGFkYXRhS2V5QXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlLCBOU1N0cmluZyAq
KQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1cmUg
UEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRo
VXNlckdlc3R1cmUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZv
cmUsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRB
dWRpb0JlZm9yZSBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVVzZXJI
YXNQbGF5ZWRBdWRpb0JlZm9yZSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hF
QURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzRWxlbWVudFJlY3RN
b3N0bHlJbk1haW5GcmFtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5
SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNW
aWRlb01ldGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKCkKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5Tm9BdWRpbywgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRh
S2V5Tm9BdWRpbyBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vQXVk
aW8oKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRy
YWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCwgTlNTdHJpbmcgKikK
KyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5UGxheWJhY2tQZXJtaXR0ZWQgUEFMOjpnZXRfVXNh
Z2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZCgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCBQQUw6Omdl
dF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBhZ2VNZWRpYVBsYXliYWNrU3VzcGVu
ZGVkKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VU
cmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVt
ZW50LCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1l
bnRBbmROb3RPd25lckVsZW1lbnQgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlJc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQoKQorU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRh
dGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lLCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1l
bnRUb0F1dG9wbGF5SW5saW5lIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRh
S2V5UGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSgpCitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2Ny
ZWVuTm90UGVybWl0dGVkLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlS
ZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRl
ZCBQQUw6OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzRnVsbHNj
cmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90UGVybWl0dGVkKCkKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRl
b01ldGFkYXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRB
dXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1Zp
ZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3Vs
ZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19V
U1ZpZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1No
b3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUoKQorU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFL
ZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2UgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0
YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSgp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc0F1
ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSBQQUw6OmdldF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yQXVkaW9SYXRlQ2hhbmdlKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVB
REVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlb0FuZFJlcXVp
cmVzVXNlckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLCBOU1N0cmluZyAqKQorI2Rl
ZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZp
ZGVvRHVlVG9Mb3dQb3dlck1vZGUgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRh
dGFLZXlJc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1v
ZGUoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRy
YWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQsIE5TU3RyaW5n
ICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1aXJlZCBQQUw6
OmdldF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vVXNlckdlc3R1cmVSZXF1aXJl
ZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcs
IE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleVJlcXVpcmVzUGxheWJhY2tB
bmRJc05vdFBsYXlpbmcgUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlS
ZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SGFz
RXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nLCBOU1N0cmluZyAqKQorI2RlZmluZSBVU1ZpZGVvTWV0
YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcgUEFMOjpnZXRfVXNhZ2VUcmFja2lu
Z19VU1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcoKQorU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1Zp
ZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuLCBOU1N0cmluZyAqKQorI2RlZmluZSBV
U1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuIFBBTDo6Z2V0X1VzYWdlVHJhY2tp
bmdfVVNWaWRlb01ldGFkYXRhS2V5T3V0c2lkZU9mRnVsbHNjcmVlbigpCitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRh
ZGF0YUtleUlzVmlkZW8sIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlkZW9NZXRhZGF0YUtleUlz
VmlkZW8gUEFMOjpnZXRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvKCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5UmVuZGVyZXIsIE5TU3RyaW5nICopCisjZGVmaW5lIFVTVmlk
ZW9NZXRhZGF0YUtleVJlbmRlcmVyIFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFk
YXRhS2V5UmVuZGVyZXIoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIo
UEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyAq
KQorI2RlZmluZSBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvIFBBTDo6Z2V0X1VzYWdlVHJhY2tp
bmdfVVNWaWRlb01ldGFkYXRhS2V5Tm9WaWRlbygpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUxfRk9SX0hFQURFUihQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzTGFy
Z2VFbm91Z2hGb3JNYWluQ29udGVudCwgTlNTdHJpbmcgKikKKyNkZWZpbmUgVVNWaWRlb01ldGFk
YXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50IFBBTDo6Z2V0X1VzYWdlVHJhY2tpbmdf
VVNWaWRlb01ldGFkYXRhS2V5SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCkKKworI2VuZGlm
IC8vIEhBVkUoTUVESUFfVVNBR0VfRlJBTUVXT1JLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODg3
MzBlYzc3OGU5ZGI4ZTg2ZDg1ZDE2OWNiOGJmMzJkNjNiODEwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9Vc2FnZVRyYWNraW5nU29mdExpbmsubW0KQEAg
LTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2ltcG9y
dCA8d3RmL1NvZnRMaW5raW5nLmg+CisKKyNpZiBIQVZFKE1FRElBX1VTQUdFX0ZSQU1FV09SSykK
KworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBVc2FnZVRyYWNraW5nLCBQQUxfRVhQT1JUKTsKKworU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VS
Q0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvVXNhZ2Us
IFBBTF9FWFBPUlQpOworCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUNhblNob3dD
b250cm9sc01hbmFnZXIsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVT
VmlkZW9NZXRhZGF0YUtleUNhblNob3dOb3dQbGF5aW5nQ29udHJvbHMsIE5TU3RyaW5nKiwgUEFM
X0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VY
UE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkLCBO
U1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJ
c0luQWN0aXZlRG9jdW1lbnQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcs
IFVTVmlkZW9NZXRhZGF0YUtleUlzRnVsbHNjcmVlbiwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCwgTlNTdHJpbmcqLCBQQUxf
RVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURvY3VtZW50
SW5NYWluRnJhbWUsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRf
TUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlk
ZW9NZXRhZGF0YUtleUlzQXVkaW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tp
bmcsIFVTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSwgTlNTdHJp
bmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5VXNlckhh
c1BsYXllZEF1ZGlvQmVmb3JlLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5n
LCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUsIE5TU3Ry
aW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU5vQXVk
aW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0
YUtleVBsYXliYWNrUGVybWl0dGVkLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZCwgTlNTdHJp
bmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRp
YURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50LCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2Fn
ZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRU
b0F1dG9wbGF5SW5saW5lLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBV
U1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVs
bHNjcmVlbk5vdFBlcm1pdHRlZCwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFja2lu
ZywgVVNWaWRlb01ldGFkYXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFp
bnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlLCBOU1N0cmluZyosIFBBTF9F
WFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc1ZpZGVvQW5kUmVxdWly
ZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
VXNhZ2VUcmFja2luZywgVVNWaWRlb01ldGFkYXRhS2V5SXNBdWRpb0FuZFJlcXVpcmVzVXNlckdl
c3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9y
VmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSwgTlNTdHJpbmcqLCBQQUxfRVhQT1JUKTsKK1NPRlRfTElO
S19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgVXNhZ2VUcmFj
a2luZywgVVNWaWRlb01ldGFkYXRhS2V5Tm9Vc2VyR2VzdHVyZVJlcXVpcmVkLCBOU1N0cmluZyos
IFBBTF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1Bs
YXliYWNrQW5kSXNOb3RQbGF5aW5nLCBOU1N0cmluZyosIFBBTF9FWFBPUlQpOworU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBVc2FnZVRyYWNr
aW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcsIE5TU3Ry
aW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleU91dHNp
ZGVPZkZ1bGxzY3JlZW4sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJhY2tpbmcsIFVT
VmlkZW9NZXRhZGF0YUtleUlzVmlkZW8sIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CitTT0ZUX0xJ
TktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIFVzYWdlVHJh
Y2tpbmcsIFVTVmlkZW9NZXRhZGF0YUtleVJlbmRlcmVyLCBOU1N0cmluZyosIFBBTF9FWFBPUlQp
OworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFM
LCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlOb1ZpZGVvLCBOU1N0cmluZyosIFBB
TF9FWFBPUlQpOworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBVc2FnZVRyYWNraW5nLCBVU1ZpZGVvTWV0YWRhdGFLZXlJc0xhcmdlRW5vdWdo
Rm9yTWFpbkNvbnRlbnQsIE5TU3RyaW5nKiwgUEFMX0VYUE9SVCk7CisKKyNlbmRpZiAvLyBIQVZF
KE1FRElBX1VTQUdFX0ZSQU1FV09SSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWNlNThiNWFiOGM2OWI3ZjIyZDgyZGE2NGQy
NDZhMzE3OTFmMWQyLi5mNGQxN2MyMDE4Nzg1MTdhZGY5YTMyZDVhN2Q5Y2Y0ZTE2MmIwZDY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzIsNiArMTMyLDcgQEAKIAkJMDc1Mzg2MDMxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hl
ZFRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDc1Mzg2MDExNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5oICovOyB9Owog
CQkwNzU0QTVFQTIxNUVBM0I4MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3Rvcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NTRBNUU4
MjE1RUEzQjcwMDJEM0E5OSAvKiBSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTA3NTdCMTNFMjE0QUU3
OTkwMDc5NEIwRCAvKiBWaWRlb1ByZXNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMDc2
MTFEQzEyNDQwRTU5QjAwRDgwNzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzYxMURCODI0M0ZCNzVDMDBEODA3MDQg
LyogTWVkaWFVc2FnZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwNzYzOEE5OTE4ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDc2MzhBOTcxODg0NDg3MjAwRTE1QTFCIC8qIE1lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzYzOEE5QTE4
ODQ0ODcyMDBFMTVBMUIgLyogTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3NjM4QTk4MTg4NDQ4NzIwMEUxNUEx
QiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICovOyB9OwogCQkwNzY5NzA4NjE0NjNBRDg3
MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzY5NzA4NDE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNr
TGlzdC5jcHAgKi87IH07CkBAIC01NTcwLDYgKzU1NzEsNyBAQAogCQkwNzU0QTVFODIxNUVBM0I3
MDAyRDNBOTkgLyogUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc1NEE1RUIyMTVFQURGMzAwMkQzQTk5IC8qIFJlYWx0aW1l
TWVkaWFTb3VyY2VGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDc1N0IxM0MyMTRBRTc5NzAwNzk0QjBEIC8qIFZpZGVvUHJlc2V0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvUHJlc2V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA3NjExREI4MjQzRkI3NUMwMEQ4MDcwNCAvKiBNZWRpYVVzYWdlSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVVzYWdlSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzYzOEE5NzE4ODQ0ODcyMDBFMTVBMUIgLyog
TWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA3NjM4QTk4MTg4NDQ4NzIwMEUxNUExQiAvKiBNZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTZXNzaW9uTWFuYWdl
cklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc2OTcwODQxNDYzQUQ4NzAw
RjUwMkNGIC8qIFRleHRUcmFja0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dFRyYWNrTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNTM1Niw2ICsyNTM1OCw3IEBACiAJCQkJMDc5RjVFNEIwRjNCRUJFQTAwNUUwNzgyIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZS5oICovLAogCQkJCUNENjQxRUIxMTgxOEY1RUQwMEVFNEM0MSAvKiBN
ZWRpYVNvdXJjZVByaXZhdGUuaCAqLywKIAkJCQlDRERDMUU3OTE4QTk1MkYzMDAyN0E5RDQgLyog
TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50LmggKi8sCisJCQkJMDc2MTFEQjgyNDNGQjc1QzAwRDgw
NzA0IC8qIE1lZGlhVXNhZ2VJbmZvLmggKi8sCiAJCQkJMDdCOTNGRkIyM0I5MkFBQjAwMzZGOEVB
IC8qIE1JTUVUeXBlQ2FjaGUuY3BwICovLAogCQkJCTA3QjkzRkY5MjNCOTJBQUEwMDM2RjhFQSAv
KiBNSU1FVHlwZUNhY2hlLmggKi8sCiAJCQkJMzE0QkUzQTQxQjMxMDNGQjAwMTQxOTgyIC8qIE5h
bWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCkBAIC0zMTkxMSw2ICszMTkxNCw3IEBACiAJ
CQkJMDdGRkRFNjkxODFBRUQ0MjAwNzJENDA5IC8qIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzJDQzBCNzFERkZEMTU4MDA0QzBGOUYgLyogTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0MxQzBFMjFCRkI2MDAxMDBCRDIy
NTYgLyogTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwNzYxMURDMTI0NDBFNTlCMDBEODA3MDQgLyogTWVkaWFVc2FnZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxRTFCQUMzMUJEODA2NEUwMDU1RDgxRiAvKiBNZW1vcnlCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMTgwOTc5QzNCRDAwNDY3NzQx
IC8qIE1lbW9yeUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAw
RDVGMDEgLyogTWVtb3J5Q3Vyc29yLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDEwMWQxN2NjOTgyNjJiNWE4YWM1YmQ0YzNjZmJl
NjMwYTk5N2ZhOTYuLmVlM2M0OTJmMGZkZDQ5MWMyOTllYThkZjg5MWM3MTM3OGRhMGU2MmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDU5LDcgKzQ1OSw2
IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtCiAgICAgLCBtX2xvZ2dlcigmZG9jdW1lbnQubG9n
Z2VyKCkpCiAgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2Vu
ZGlmCi0gICAgLCBtX21lZGlhU2Vzc2lvbklkZW50aWZpZXIoTWVkaWFTZXNzaW9uSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKSkKIHsKICAgICBhbGxNZWRpYUVsZW1lbnRzKCkuYWRkKHRoaXMpOwogCkBA
IC03NTA1LDcgKzc1MDQsNyBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFTZXNzaW9u
VGl0bGUoKSBjb25zdAogCiBNZWRpYVNlc3Npb25JZGVudGlmaWVyIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhU2Vzc2lvblVuaXF1ZUlkZW50aWZpZXIoKSBjb25zdAogewotICAgIHJldHVybiBtX21l
ZGlhU2Vzc2lvbklkZW50aWZpZXI7CisgICAgcmV0dXJuIG1fbWVkaWFTZXNzaW9uLT5tZWRpYVNl
c3Npb25JZGVudGlmaWVyKCk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6ZGlkUmVjZWl2
ZVJlbW90ZUNvbnRyb2xDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9s
Q29tbWFuZFR5cGUgY29tbWFuZCwgY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb246OlJlbW90ZUNv
bW1hbmRBcmd1bWVudCogYXJndW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDFhNzI5ZjQwOTFhY2RmY2Y3NjVjMGJmNTY5MTY2MjVjMjVhMjNmZGQuLjU5YTc2
MDdlMzcxZDJhMGYyODg0MzljOTU4MDhiZTk1ZDAzYjFlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0xMTk3LDcgKzExOTcsNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxh
eWluZ09uU2Vjb25kU2NyZWVuIHsgZmFsc2UgfTsKICAgICBib29sIG1fcmVtb3ZlZEJlaGF2aW9y
UmVzdHJpY3Rpb25zQWZ0ZXJGaXJzdFVzZXJHZXN0dXJlIHsgZmFsc2UgfTsKLSAgICBNZWRpYVNl
c3Npb25JZGVudGlmaWVyIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcjsKIH07CiAKIFN0cmluZyBj
b252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhIVE1MTWVkaWFFbGVtZW50OjpBdXRvcGxheUV2ZW50
UGxheWJhY2tTdGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRWxl
bWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmNwcAppbmRleCBjNmM5YTllZTFiNzFmMWNhYjE0ZDE4YzAwOTViZDlmZmVhZDQ1ZTQwLi5jMjIy
YzIxM2Y3ZDk4OTllZThlZWM3YTM0ZjY2NzdhMWE5ZDYwODBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRWxlbWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFFbGVtZW50U2Vzc2lvbi5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVVzYWdlSW5mby5oIgogI2luY2x1ZGUgIk5v
d1BsYXlpbmdJbmZvLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlci5oIgpAQCAtMTE5LDYgKzEyMCwxOCBAQCBNZWRpYUVsZW1lbnRTZXNz
aW9uOjpNZWRpYUVsZW1lbnRTZXNzaW9uKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiAgICAg
LCBtX2xvZ0lkZW50aWZpZXIoZWxlbWVudC5sb2dJZGVudGlmaWVyKCkpCiAjZW5kaWYKIHsKKyNp
ZiBFTkFCTEUoTUVESUFfVVNBR0UpCisgICAgaWYgKGF1dG8gcGFnZSA9IG1fZWxlbWVudC5kb2N1
bWVudCgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRkTWVkaWFV
c2FnZU1hbmFnZXJTZXNzaW9uKG1lZGlhU2Vzc2lvbklkZW50aWZpZXIoKSwgbV9lbGVtZW50LnNv
dXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpLCBtX2VsZW1lbnQuZG9jdW1lbnQoKS51cmwoKSk7
CisjZW5kaWYKK30KKworTWVkaWFFbGVtZW50U2Vzc2lvbjo6fk1lZGlhRWxlbWVudFNlc3Npb24o
KQoreworI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICBpZiAoYXV0byBwYWdlID0gbV9lbGVt
ZW50LmRvY3VtZW50KCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5y
ZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24obWVkaWFTZXNzaW9uSWRlbnRpZmllcigpKTsK
KyNlbmRpZgogfQogCiB2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnJlZ2lzdGVyV2l0aERvY3Vt
ZW50KERvY3VtZW50JiBkb2N1bWVudCkKQEAgLTk5OCw2ICsxMDExLDYzIEBAIE9wdGlvbmFsPE5v
d1BsYXlpbmdJbmZvPiBNZWRpYUVsZW1lbnRTZXNzaW9uOjpub3dQbGF5aW5nSW5mbygpIGNvbnN0
CiAgICAgcmV0dXJuIE5vd1BsYXlpbmdJbmZvIHsgbV9lbGVtZW50Lm1lZGlhU2Vzc2lvblRpdGxl
KCksIG1fZWxlbWVudC5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSwgZHVyYXRpb24sIGN1
cnJlbnRUaW1lLCBzdXBwb3J0c1NlZWtpbmcsIG1fZWxlbWVudC5tZWRpYVNlc3Npb25VbmlxdWVJ
ZGVudGlmaWVyKCksIGlzUGxheWluZywgYWxsb3dzTm93UGxheWluZ0NvbnRyb2xzVmlzaWJpbGl0
eSB9OwogfQogCit2b2lkIE1lZGlhRWxlbWVudFNlc3Npb246OnVwZGF0ZU1lZGlhVXNhZ2VJZkNo
YW5nZWQoKQoreworICAgIGF1dG8mIGRvY3VtZW50ID0gbV9lbGVtZW50LmRvY3VtZW50KCk7Cisg
ICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8qIGZ1bGxzY3JlZW5FbGVtZW50ID0gZG9jdW1lbnQuZnVsbHNj
cmVlbk1hbmFnZXIoKS5jdXJyZW50RnVsbHNjcmVlbkVsZW1lbnQoKTsKKyAgICBib29sIGlzQXVk
aW8gPSBjbGllbnQoKS5wcmVzZW50YXRpb25UeXBlKCkgPT0gTWVkaWFUeXBlOjpBdWRpbzsKKyAg
ICBib29sIGlzVmlkZW8gPSBjbGllbnQoKS5wcmVzZW50YXRpb25UeXBlKCkgPT0gTWVkaWFUeXBl
OjpWaWRlbzsKKyAgICBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IGRvY3VtZW50LnByb2Nl
c3NpbmdVc2VyR2VzdHVyZUZvck1lZGlhKCk7CisgICAgYm9vbCBpc1BsYXlpbmcgPSBtX2VsZW1l
bnQuaXNQbGF5aW5nKCk7CisKKyAgICBNZWRpYVVzYWdlSW5mbyB1c2FnZSA9ICB7CisgICAgICAg
IG1fZWxlbWVudC5jdXJyZW50U3JjKCksCisgICAgICAgIHN0YXRlKCkgPT0gUGxhdGZvcm1NZWRp
YVNlc3Npb246OlBsYXlpbmcsCisgICAgICAgIGNhblNob3dDb250cm9sc01hbmFnZXIoUGxheWJh
Y2tDb250cm9sc1B1cnBvc2U6OkNvbnRyb2xzTWFuYWdlciksCisgICAgICAgICFwYWdlLT5pc1Zp
c2libGVBbmRBY3RpdmUoKSwKKyAgICAgICAgbV9lbGVtZW50LmlzU3VzcGVuZGVkKCksCisgICAg
ICAgIG1fZWxlbWVudC5pbkFjdGl2ZURvY3VtZW50KCksCisgICAgICAgIG1fZWxlbWVudC5pc0Z1
bGxzY3JlZW4oKSwKKyAgICAgICAgbV9lbGVtZW50Lm11dGVkKCksCisgICAgICAgIGRvY3VtZW50
LmlzTWVkaWFEb2N1bWVudCgpICYmIChkb2N1bWVudC5mcmFtZSgpICYmIGRvY3VtZW50LmZyYW1l
KCktPmlzTWFpbkZyYW1lKCkpLAorICAgICAgICBpc1ZpZGVvLAorICAgICAgICBpc0F1ZGlvLAor
ICAgICAgICBtX2VsZW1lbnQuaGFzVmlkZW8oKSwKKyAgICAgICAgbV9lbGVtZW50Lmhhc0F1ZGlv
KCksCisgICAgICAgIG1fZWxlbWVudC5yZW5kZXJlcigpLAorICAgICAgICBpc0F1ZGlvICYmIGhh
c0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29udHJvbHNN
YW5hZ2VyKSAmJiAhcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLAorICAgICAgICBtX2VsZW1lbnQuaGFz
QXVkaW8oKSAmJiBpc1BsYXlpbmcgJiYgYWxsb3dzUGxheWJhY2tDb250cm9sc0ZvckF1dG9wbGF5
aW5nQXVkaW8oKSwgLy8gdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlCisgICAgICAgIGlzRWxlbWVu
dFJlY3RNb3N0bHlJbk1haW5GcmFtZShtX2VsZW1lbnQpLAorICAgICAgICAhIXBsYXliYWNrUGVy
bWl0dGVkKCksCisgICAgICAgIHBhZ2UtPm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCgpLAorICAg
ICAgICBkb2N1bWVudC5pc01lZGlhRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQub3duZXJFbGVtZW50
KCksCisgICAgICAgIHBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmUo
bV9lbGVtZW50KSwKKyAgICAgICAgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygp
ICYmICFmdWxsc2NyZWVuUGVybWl0dGVkKCksCisgICAgICAgIGRvY3VtZW50Lmhhc0hhZFVzZXJJ
bnRlcmFjdGlvbigpICYmIGRvY3VtZW50LnF1aXJrcygpLnNob3VsZEF1dG9wbGF5Rm9yQXJiaXRy
YXJ5VXNlckdlc3R1cmUoKSwKKyAgICAgICAgaXNWaWRlbyAmJiBoYXNCZWhhdmlvclJlc3RyaWN0
aW9uKFJlcXVpcmVVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSkgJiYgIXByb2Nlc3NpbmdV
c2VyR2VzdHVyZSwKKyAgICAgICAgaXNBdWRpbyAmJiBoYXNCZWhhdmlvclJlc3RyaWN0aW9uKFJl
cXVpcmVVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNoYW5nZSkgJiYgIXByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSAmJiAhbV9lbGVtZW50Lm11dGVkKCkgJiYgbV9lbGVtZW50LnZvbHVtZSgpLAorICAgICAg
ICBpc1ZpZGVvICYmIGhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlRm9y
VmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSkgJiYgIXByb2Nlc3NpbmdVc2VyR2VzdHVyZSwKKyAgICAg
ICAgIWhhc0JlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0dXJlVG9Db250cm9sQ29u
dHJvbHNNYW5hZ2VyKSB8fCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsCisgICAgICAgIGhhc0JlaGF2
aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVBsYXliYWNrVG9Db250cm9sQ29udHJvbHNNYW5hZ2VyKSAm
JiAhaXNQbGF5aW5nLAorICAgICAgICBtX2VsZW1lbnQuaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5
aW5nKCksCisgICAgICAgIGZ1bGxzY3JlZW5FbGVtZW50ICYmICFtX2VsZW1lbnQuaXNEZXNjZW5k
YW50T2YoKmZ1bGxzY3JlZW5FbGVtZW50KSwKKyAgICAgICAgaXNMYXJnZUVub3VnaEZvck1haW5D
b250ZW50KE1lZGlhU2Vzc2lvbk1haW5Db250ZW50UHVycG9zZTo6TWVkaWFDb250cm9scyksCisg
ICAgfTsKKworICAgIGlmIChtX21lZGlhVXNhZ2VJbmZvICYmICptX21lZGlhVXNhZ2VJbmZvID09
IHVzYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21lZGlhVXNhZ2VJbmZvID0gV1RGTW92
ZSh1c2FnZSk7CisKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCisgICAgcGFnZS0+Y2hyb21lKCku
Y2xpZW50KCkudXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uU3RhdGUobWVkaWFTZXNzaW9u
SWRlbnRpZmllcigpLCAqbV9tZWRpYVVzYWdlSW5mbyk7CisjZW5kaWYKK30KKwogU3RyaW5nIGNv
bnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKGNvbnN0IE1lZGlhUGxheWJhY2tEZW5pYWxSZWFzb24g
ZW51bWVyYXRpb25WYWx1ZSkKIHsKICAgICBzdGF0aWMgY29uc3QgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2YWx1ZXNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFF
bGVtZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9u
LmgKaW5kZXggMWNkMmM4YTBkYzdhZWVkZDcxZTc4NjY4N2M4M2VmZDA3ZGI5N2QxYy4uMjRhMWRk
NWJhZTIxZTllZjU3MWU0ZjI3NGFlNjNlNWYzMjdlZGE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9NZWRpYUVsZW1lbnRTZXNzaW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1l
ZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIk1lZGlh
VXNhZ2VJbmZvLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNlc3Npb24uaCIKICNpbmNsdWRl
ICJTdWNjZXNzT3IuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNTcsNyArNTgsNyBAQCBjbGFz
cyBNZWRpYUVsZW1lbnRTZXNzaW9uIGZpbmFsIDogcHVibGljIFBsYXRmb3JtTWVkaWFTZXNzaW9u
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVk
aWFFbGVtZW50U2Vzc2lvbihIVE1MTWVkaWFFbGVtZW50Jik7Ci0gICAgdmlydHVhbCB+TWVkaWFF
bGVtZW50U2Vzc2lvbigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5NZWRpYUVsZW1lbnRTZXNz
aW9uKCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50Jik7CiAgICAg
dm9pZCB1bnJlZ2lzdGVyV2l0aERvY3VtZW50KERvY3VtZW50Jik7CkBAIC0xNTksNiArMTYwLDkg
QEAgcHVibGljOgogCiAgICAgT3B0aW9uYWw8Tm93UGxheWluZ0luZm8+IG5vd1BsYXlpbmdJbmZv
KCkgY29uc3QgZmluYWw7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZU1lZGlhVXNh
Z2VJZkNoYW5nZWQoKSBmaW5hbDsKKyAgICBPcHRpb25hbDxNZWRpYVVzYWdlSW5mbz4gbWVkaWFV
c2FnZUluZm8oKSBjb25zdCB7IHJldHVybiBtX21lZGlhVXNhZ2VJbmZvOyB9CisKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xh
c3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1lZGlhRWxlbWVudFNlc3Npb24iOyB9CkBA
IC0xODgsNiArMTkyLDggQEAgcHJpdmF0ZToKICAgICBIVE1MTWVkaWFFbGVtZW50JiBtX2VsZW1l
bnQ7CiAgICAgQmVoYXZpb3JSZXN0cmljdGlvbnMgbV9yZXN0cmljdGlvbnM7CiAKKyAgICBPcHRp
b25hbDxNZWRpYVVzYWdlSW5mbz4gbV9tZWRpYVVzYWdlSW5mbzsKKwogICAgIGJvb2wgbV9lbGVt
ZW50SXNIaWRkZW5VbnRpbFZpc2libGVJblZpZXdwb3J0IHsgZmFsc2UgfTsKICAgICBib29sIG1f
ZWxlbWVudElzSGlkZGVuQmVjYXVzZUl0V2FzUmVtb3ZlZEZyb21ET00geyBmYWxzZSB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzZTk4NWE4OTAwODA5NDljYzU3ZjJhODU3
ZGQ2ZGY1ZGI5YmI0ODE4Li43NThkM2M2NmMzNDAzMzIzMTQ1OTQ1NWJiNGVlODE3YTEyMzRlM2I0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTY4LDYgKzY4LDExIEBAIGNsYXNz
IFdBS1Jlc3BvbmRlcjsKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0Up
CisjaW5jbHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIk1lZGlhVXNh
Z2VJbmZvLmgiCisjZW5kaWYKKwogT0JKQ19DTEFTUyBOU1Jlc3BvbmRlcjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzU2LDYgKzM2MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KE1FRElBX1VTQUdFKQorICAgIHZpcnR1YWwgdm9pZCBhZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Np
b24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKE1l
ZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IE1lZGlhVXNhZ2VJbmZvJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVu
dGlmaWVyKSB7IH0KKyNlbmRpZgorCiAgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVt
ZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0
dXJuIGZhbHNlOyB9IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
UGxhdGZvcm1NZWRpYVNlc3Npb24uY3BwCmluZGV4IDE4NTNhMTIxY2FiMjI3NjBmMTFmMjI5MzBk
Zjg5MjRjNzg4NTc0ZDYuLjhlN2Y4YzEyYmU5NWVlZmFhNzcwNDM2MDAzMjEwNmE1YmU5ODk5OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1l
ZGlhU2Vzc2lvbi5jcHAKQEAgLTExNiw2ICsxMTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb24+IFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRp
YQogUGxhdGZvcm1NZWRpYVNlc3Npb246OlBsYXRmb3JtTWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVk
aWFTZXNzaW9uTWFuYWdlciYgbWFuYWdlciwgUGxhdGZvcm1NZWRpYVNlc3Npb25DbGllbnQmIGNs
aWVudCkKICAgICA6IG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKICAgICAsIG1fY2xp
ZW50KGNsaWVudCkKKyAgICAsIG1fbWVkaWFTZXNzaW9uSWRlbnRpZmllcihNZWRpYVNlc3Npb25J
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogICAgICwgbV9zdGF0ZShJZGxlKQogICAgICwgbV9zdGF0
ZVRvUmVzdG9yZShJZGxlKQogICAgICwgbV9ub3RpZnlpbmdDbGllbnQoZmFsc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb24uaApp
bmRleCA5MzA4NWIwZDQyN2FlYmU4NDEwZTVkMDcxOTM4YWIwNjAxNDQxYWNhLi40Njg1MTJjNDk3
NzY5YWIxZmY5YWQxMzI5ZjNlMDNmNDlkODE5OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiTWVkaWFTZXNzaW9uSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtMTg4LDYgKzE4OSw5IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgdmlydHVhbCBPcHRpb25h
bDxOb3dQbGF5aW5nSW5mbz4gbm93UGxheWluZ0luZm8oKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpIHsgfQorCisgICAgTWVkaWFTZXNzaW9uSWRl
bnRpZmllciBtZWRpYVNlc3Npb25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNl
c3Npb25JZGVudGlmaWVyOyB9CiAKIHByb3RlY3RlZDoKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bihQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXImLCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbkNsaWVu
dCYpOwpAQCAtMjAwLDYgKzIwNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWFrUHRyPFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcj4gbV9tYW5hZ2VyOwogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9u
Q2xpZW50JiBtX2NsaWVudDsKKyAgICBNZWRpYVNlc3Npb25JZGVudGlmaWVyIG1fbWVkaWFTZXNz
aW9uSWRlbnRpZmllcjsKICAgICBTdGF0ZSBtX3N0YXRlOwogICAgIFN0YXRlIG1fc3RhdGVUb1Jl
c3RvcmU7CiAgICAgSW50ZXJydXB0aW9uVHlwZSBtX2ludGVycnVwdGlvblR5cGUgeyBOb0ludGVy
cnVwdGlvbiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAKaW5kZXggMTM3NTc1MDU1N2NmMzA3
ODBhMTlkYzlmMTFlMDc1OWI0MThhY2Q2Zi4uZDhhNzVmMjhkZDMxNThiYjA0YTczMzliYjA2MDQ2
MThhN2RjNDY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjYsNyArNjYsNyBA
QCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OmNyZWF0ZQogdm9pZCBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvSWZOZWNlc3NhcnkoKQogewogICAgIGlmIChhdXRvIGV4
aXN0aW5nTWFuYWdlciA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cklmRXhpc3RzKCkpCi0gICAgICAgIGV4aXN0aW5nTWFuYWdlci0+c2NoZWR1bGVVcGRhdGVOb3dQ
bGF5aW5nSW5mbygpOworICAgICAgICBleGlzdGluZ01hbmFnZXItPnNjaGVkdWxlU2Vzc2lvblN0
YXR1c1VwZGF0ZSgpOwogfQogCiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDM5NWIzY2E2
MGQ4MmZmMmIxODk0MWU2OTZjMDM1M2YxOGVjOWMzMjAuLmM2NmQ0ODcwOGRjYWY5MzkyODQ5Mjdh
M2I4ZTg2MzE3YzBiYzFiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNyArNTks
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIo
KSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5n
SW5mbygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRhdGUo
KSB7IH0KKwogICAgIGJvb2wgaGFzKFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGUpIGNv
bnN0OwogICAgIGludCBjb3VudChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVkaWFUeXBlKSBjb25z
dDsKICAgICBib29sIGFjdGl2ZUF1ZGlvU2Vzc2lvblJlcXVpcmVkKCkgY29uc3Q7CkBAIC0xMTQs
NyArMTE1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25XaWxsRW5kUGxh
eWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mLCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5n
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvblN0YXRlQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vz
c2lvbiYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKGNv
bnN0IFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgeyB9OworICAgIHZpcnR1YWwgdm9pZCBzZXNzaW9u
RGlkRW5kUmVtb3RlU2NydWJiaW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgeyB9OwogICAgIHZp
cnR1YWwgdm9pZCBjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNz
aW9uJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNlc3Npb25DYW5Qcm9kdWNlQXVkaW9DaGFuZ2Vk
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Y29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgKaW5kZXggNWQ2YjEzYThhMDk4MWQzYWRm
NTg4MWIzODA0NWVjZTI0YjhkY2NiYi4uNzYzOTlmZjY0YzU1NWI5NmQ3MGQ2Y2I2ZTI0NDA1MDZj
YzkwMDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYwLDggKzYwLDEwIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhck5vd1BsYXlpbmdJbmZvKCk7CiAg
ICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Tm93UGxheWluZ0luZm8oYm9vbCBzZXRB
c05vd1BsYXlpbmdBcHBsaWNhdGlvbiwgY29uc3QgTm93UGxheWluZ0luZm8mKTsKIAorICAgIHN0
YXRpYyBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2UoUGxhdGZvcm1NZWRpYVNl
c3Npb24mKTsKKwogcHJvdGVjdGVkOgotICAgIHZvaWQgc2NoZWR1bGVVcGRhdGVOb3dQbGF5aW5n
SW5mbygpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCkgZmlu
YWw7CiAgICAgdm9pZCB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOwogCiAgICAgdm9pZCByZW1vdmVT
ZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CkBAIC03MCw3ICs3Miw3IEBAIHBy
b3RlY3RlZDoKIAogICAgIGJvb2wgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVk
aWFTZXNzaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBs
YXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZykgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKGNvbnN0IFBsYXRmb3Jt
TWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAgdm9pZCBzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJi
aW5nKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CiAgICAgdm9pZCBjbGllbnRDaGFyYWN0
ZXJpc3RpY3NDaGFuZ2VkKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CiAgICAgdm9pZCBz
ZXNzaW9uQ2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpIGZpbmFsOwogCkBAIC0xMDUsNyArMTA3LDcg
QEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9sYXN0VXBkYXRlZE5vd1BsYXlpbmdFbGFwc2VkVGlt
ZSB7IE5BTiB9OwogICAgIE1lZGlhU2Vzc2lvbklkZW50aWZpZXIgbV9sYXN0VXBkYXRlZE5vd1Bs
YXlpbmdJbmZvVW5pcXVlSWRlbnRpZmllcjsKIAotICAgIEdlbmVyaWNUYXNrUXVldWU8VGltZXI+
IG1fbm93UGxheWluZ1VwZGF0ZVRhc2tRdWV1ZTsKKyAgICBHZW5lcmljVGFza1F1ZXVlPFRpbWVy
PiBtX3Rhc2tRdWV1ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVDb21tYW5kTGlzdGVu
ZXI+IG1fcmVtb3RlQ29tbWFuZExpc3RlbmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQQUw6OlN5
c3RlbVNsZWVwTGlzdGVuZXI+IG1fc3lzdGVtU2xlZXBMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQppbmRleCAwZmI3OWViYjkyZWE0Y2E2YTViYTA0MDRjNWE2YTJmZDllNmI0
YmJmLi43NzdkNWQ2Yjc5MWQzNDhkNDQwOTYyNTM4MWQ0ZDEzMjlmMGIyMDMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTM0LDEwICsxMzQsMTUgQEAgdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnByZXBhcmVUb1NlbmRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dCgpCiAgICAgcHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCk7CiB9
CiAKLXZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVVwZGF0ZU5vd1BsYXlp
bmdJbmZvKCkKK3ZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzY2hlZHVsZVNlc3Npb25T
dGF0dXNVcGRhdGUoKQogewotICAgIGlmICghbV9ub3dQbGF5aW5nVXBkYXRlVGFza1F1ZXVlLmhh
c1BlbmRpbmdUYXNrcygpKQotICAgICAgICBtX25vd1BsYXlpbmdVcGRhdGVUYXNrUXVldWUuZW5x
dWV1ZVRhc2soc3RkOjpiaW5kKCZNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1Bs
YXlpbmdJbmZvLCB0aGlzKSk7CisgICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soW3RoaXNdICgp
IG11dGFibGUgeworICAgICAgICB1cGRhdGVOb3dQbGF5aW5nSW5mbygpOworCisgICAgICAgIGZv
ckVhY2hTZXNzaW9uKFtdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnVw
ZGF0ZU1lZGlhVXNhZ2VJZkNoYW5nZWQoKTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKIGJv
b2wgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxh
dGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0xNDUsMTMgKzE1MCwxMyBAQCBib29sIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3Jt
TWVkaWFTZXNzaW9uJiBzZQogICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpz
ZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVNlc3Np
b25TdGF0dXNVcGRhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZv
cm1NZWRpYVNlc3Npb24mKQordm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnNlc3Npb25E
aWRFbmRSZW1vdGVTY3J1YmJpbmcoUGxhdGZvcm1NZWRpYVNlc3Npb24mKQogewotICAgIHNjaGVk
dWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICBzY2hlZHVsZVNlc3Npb25TdGF0dXNVcGRh
dGUoKTsKIH0KIAogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmFkZFNlc3Npb24oUGxh
dGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCkBAIC0xNzQsNyArMTc5LDcgQEAgdm9pZCBNZWRp
YVNlc3Npb25NYW5hZ2VyQ29jb2E6OnJlbW92ZVNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24m
IHNlc3Npb24pCiAgICAgICAgIG1fYXVkaW9IYXJkd2FyZUxpc3RlbmVyID0gbnVsbHB0cjsKICAg
ICB9CiAKLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7CisgICAgc2NoZWR1bGVT
ZXNzaW9uU3RhdHVzVXBkYXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
OjpzZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKQEAgLTE4
OCwyMyArMTkzLDMwIEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXRDdXJyZW50
U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKIHZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9u
JiBzZXNzaW9uLCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nIGRlbGF5Q2FsbGluZ1VwZGF0
ZU5vd1BsYXlpbmcpCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrKHNlc3Npb24sIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwot
ICAgIGlmIChkZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nID09IERlbGF5Q2FsbGluZ1VwZGF0
ZU5vd1BsYXlpbmc6Ok5vKSB7CisKKyAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVlVGFzayhbJnNlc3Np
b25dIHsKKyAgICAgICAgc2Vzc2lvbi51cGRhdGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCk7CisgICAg
fSk7CisKKyAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9PSBEZWxheUNhbGxp
bmdVcGRhdGVOb3dQbGF5aW5nOjpObykKICAgICAgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsK
LSAgICAgICAgcmV0dXJuOworICAgIGVsc2UgeworICAgICAgICBtX3Rhc2tRdWV1ZS5lbnF1ZXVl
VGFzayhbdGhpc10geworICAgICAgICAgICAgdXBkYXRlTm93UGxheWluZ0luZm8oKTsKKyAgICAg
ICAgfSk7CiAgICAgfQotICAgIHNjaGVkdWxlVXBkYXRlTm93UGxheWluZ0luZm8oKTsKIH0KIAog
dm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OmNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5n
ZWQoUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24pCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCBzZXNzaW9uLmxvZ0lkZW50aWZpZXIoKSk7Ci0gICAgc2NoZWR1bGVVcGRhdGVO
b3dQbGF5aW5nSW5mbygpOworICAgIHNjaGVkdWxlU2Vzc2lvblN0YXR1c1VwZGF0ZSgpOwogfQog
CiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYTo6c2Vzc2lvbkNhblByb2R1Y2VBdWRpb0No
YW5nZWQoKQogewogICAgIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbkNhblBy
b2R1Y2VBdWRpb0NoYW5nZWQoKTsKLSAgICBzY2hlZHVsZVVwZGF0ZU5vd1BsYXlpbmdJbmZvKCk7
CisgICAgc2NoZWR1bGVTZXNzaW9uU3RhdHVzVXBkYXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpjbGVhck5vd1BsYXlpbmdJbmZvKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW0KaW5kZXggNDViZDU0YjRjMWJlZjlhOGQwNjVhOGE1ZTU3MTQ5MTZiOTVjNjk2Ni4uZTFlYzc4
NjZmMzk3OTA0OWNiODAxMzVlYmUyZTdmOGE4MzJkMjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1Mu
bW0KQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpyZXNldFJl
c3RyaWN0aW9ucygpCiAKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpyZXNldFJlc3RyaWN0aW9ucygpOworICAgIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYTo6cmVzZXRSZXN0cmljdGlvbnMoKTsKIAogICAgIGlmIChyYW1T
aXplKCkgPCBzeXN0ZW1NZW1vcnlSZXF1aXJlZEZvclZpZGVvSW5CYWNrZ3JvdW5kVGFicykgewog
ICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJyZXN0cmljdGluZyB2aWRlbyBpbiBi
YWNrZ3JvdW5kIHRhYnMgYmVjYXVzZSBzeXN0ZW0gbWVtb3J5ID0gIiwgcmFtU2l6ZSgpKTsKQEAg
LTEyMiw3ICsxMjIsNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQcmVz
ZW50aW5nQXBwbGljYXRpb25QSUQoKQogCiBib29sIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNl
c3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYgc2Vzc2lvbikKIHsK
LSAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2Vzc2lvbldpbGxCZWdpblBs
YXliYWNrKHNlc3Npb24pKQorICAgIGlmICghTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNz
aW9uV2lsbEJlZ2luUGxheWJhY2soc2Vzc2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRP
UikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhVXNhZ2VJbmZvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5mby5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZhMjY3MDE2MWM1NTUzYWEwZTA2OGRlYzdhYzM1YmUzOGZhMzkwNDcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVVzYWdlSW5m
by5oCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJNZWRpYVNlc3Npb25JZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBNZWRpYVVzYWdlSW5mbyB7CisgICAgVVJMIG1lZGlhVVJMOworICAgIGJvb2wgaXNQbGF5
aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIGNhblNob3dDb250cm9sc01hbmFnZXIgeyBmYWxzZSB9
OworICAgIGJvb2wgY2FuU2hvd05vd1BsYXlpbmdDb250cm9scyB7IGZhbHNlIH07CisgICAgYm9v
bCBpc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0luQWN0aXZlRG9jdW1lbnQgeyBm
YWxzZSB9OworICAgIGJvb2wgaXNGdWxsc2NyZWVuIHsgZmFsc2UgfTsKKyAgICBib29sIGlzTXV0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNNZWRpYURvY3VtZW50SW5NYWluRnJhbWUgeyBmYWxz
ZSB9OworICAgIGJvb2wgaXNWaWRlbyB7IGZhbHNlIH07CisgICAgYm9vbCBpc0F1ZGlvIHsgZmFs
c2UgfTsKKyAgICBib29sIGhhc1ZpZGVvIHsgZmFsc2UgfTsKKyAgICBib29sIGhhc0F1ZGlvIHsg
ZmFsc2UgfTsKKyAgICBib29sIGhhc1JlbmRlcmVyIHsgZmFsc2UgfTsKKyAgICBib29sIGF1ZGlv
RWxlbWVudFdpdGhVc2VyR2VzdHVyZSB7IGZhbHNlIH07CisgICAgYm9vbCB1c2VySGFzUGxheWVk
QXVkaW9CZWZvcmUgeyBmYWxzZSB9OworICAgIGJvb2wgaXNFbGVtZW50UmVjdE1vc3RseUluTWFp
bkZyYW1lIHsgZmFsc2UgfTsKKyAgICBib29sIHBsYXliYWNrUGVybWl0dGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIHBhZ2VNZWRpYVBsYXliYWNrU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29s
IGlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCB7IGZhbHNlIH07CisgICAgYm9vbCBw
YWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lIHsgZmFsc2UgfTsKKyAg
ICBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxsc2NyZWVuTm90
UGVybWl0dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1
aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSB7IGZhbHNl
IH07CisgICAgYm9vbCBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNo
YW5nZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZv
ckF1ZGlvUmF0ZUNoYW5nZSB7IGZhbHNlIH07CisgICAgYm9vbCBpc1ZpZGVvQW5kUmVxdWlyZXNV
c2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUgeyBmYWxzZSB9OworICAgIGJvb2wg
bm9Vc2VyR2VzdHVyZVJlcXVpcmVkIHsgZmFsc2UgfTsKKyAgICBib29sIHJlcXVpcmVzUGxheWJh
Y2tBbmRJc05vdFBsYXlpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgaGFzRXZlck5vdGlmaWVkQWJv
dXRQbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG91dHNpZGVPZkZ1bGxzY3JlZW4geyBmYWxz
ZSB9OworICAgIGJvb2wgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50IHsgZmFsc2UgfTsKKwor
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNZWRpYVVzYWdlSW5mbyYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbWVkaWFVUkwgPT0gb3RoZXIubWVkaWFVUkwKKyAgICAgICAg
ICAgICYmIGlzUGxheWluZyA9PSBvdGhlci5pc1BsYXlpbmcKKyAgICAgICAgICAgICYmIGNhblNo
b3dDb250cm9sc01hbmFnZXIgPT0gb3RoZXIuY2FuU2hvd0NvbnRyb2xzTWFuYWdlcgorICAgICAg
ICAgICAgJiYgY2FuU2hvd05vd1BsYXlpbmdDb250cm9scyA9PSBvdGhlci5jYW5TaG93Tm93UGxh
eWluZ0NvbnRyb2xzCisgICAgICAgICAgICAmJiBpc1N1c3BlbmRlZCA9PSBvdGhlci5pc1N1c3Bl
bmRlZAorICAgICAgICAgICAgJiYgaXNJbkFjdGl2ZURvY3VtZW50ID09IG90aGVyLmlzSW5BY3Rp
dmVEb2N1bWVudAorICAgICAgICAgICAgJiYgaXNGdWxsc2NyZWVuID09IG90aGVyLmlzRnVsbHNj
cmVlbgorICAgICAgICAgICAgJiYgaXNNdXRlZCA9PSBvdGhlci5pc011dGVkCisgICAgICAgICAg
ICAmJiBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSA9PSBvdGhlci5pc01lZGlhRG9jdW1lbnRJ
bk1haW5GcmFtZQorICAgICAgICAgICAgJiYgaXNWaWRlbyA9PSBvdGhlci5pc1ZpZGVvCisgICAg
ICAgICAgICAmJiBpc0F1ZGlvID09IG90aGVyLmlzQXVkaW8KKyAgICAgICAgICAgICYmIGhhc0F1
ZGlvID09IG90aGVyLmhhc0F1ZGlvCisgICAgICAgICAgICAmJiBoYXNWaWRlbyA9PSBvdGhlci5o
YXNWaWRlbworICAgICAgICAgICAgJiYgaGFzUmVuZGVyZXIgPT0gb3RoZXIuaGFzUmVuZGVyZXIK
KyAgICAgICAgICAgICYmIGF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSA9PSBvdGhlci5hdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmUKKyAgICAgICAgICAgICYmIHVzZXJIYXNQbGF5ZWRBdWRp
b0JlZm9yZSA9PSBvdGhlci51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUKKyAgICAgICAgICAgICYm
IGlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSA9PSBvdGhlci5pc0VsZW1lbnRSZWN0TW9z
dGx5SW5NYWluRnJhbWUKKyAgICAgICAgICAgICYmIHBsYXliYWNrUGVybWl0dGVkID09IG90aGVy
LnBsYXliYWNrUGVybWl0dGVkCisgICAgICAgICAgICAmJiBwYWdlTWVkaWFQbGF5YmFja1N1c3Bl
bmRlZCA9PSBvdGhlci5wYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZAorICAgICAgICAgICAgJiYg
aXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50ID09IG90aGVyLmlzTWVkaWFEb2N1bWVu
dEFuZE5vdE93bmVyRWxlbWVudAorICAgICAgICAgICAgJiYgcGFnZUV4cGxpY2l0bHlBbGxvd3NF
bGVtZW50VG9BdXRvcGxheUlubGluZSA9PSBvdGhlci5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1l
bnRUb0F1dG9wbGF5SW5saW5lCisgICAgICAgICAgICAmJiByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JW
aWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCA9PSBvdGhlci5yZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZAorICAgICAg
ICAgICAgJiYgaGFzSGFkVXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRv
cGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlID09IG90aGVyLmhhc0hhZFVzZXJJbnRlcmFjdGlv
bkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZQor
ICAgICAgICAgICAgJiYgaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVD
aGFuZ2UgPT0gb3RoZXIuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVD
aGFuZ2UKKyAgICAgICAgICAgICYmIGlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlID09IG90aGVyLmlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlCisgICAgICAgICAgICAmJiBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVy
ZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUgPT0gb3RoZXIuaXNWaWRlb0FuZFJlcXVpcmVzVXNl
ckdlc3R1cmVGb3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlCisgICAgICAgICAgICAmJiBub1VzZXJH
ZXN0dXJlUmVxdWlyZWQgPT0gb3RoZXIubm9Vc2VyR2VzdHVyZVJlcXVpcmVkCisgICAgICAgICAg
ICAmJiByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nID09IG90aGVyLnJlcXVpcmVzUGxh
eWJhY2tBbmRJc05vdFBsYXlpbmcKKyAgICAgICAgICAgICYmIGhhc0V2ZXJOb3RpZmllZEFib3V0
UGxheWluZyA9PSBvdGhlci5oYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcKKyAgICAgICAgICAg
ICYmIG91dHNpZGVPZkZ1bGxzY3JlZW4gPT0gb3RoZXIub3V0c2lkZU9mRnVsbHNjcmVlbgorICAg
ICAgICAgICAgJiYgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50ID09IG90aGVyLmlzTGFyZ2VF
bm91Z2hGb3JNYWluQ29udGVudDsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3Qg
TWVkaWFVc2FnZUluZm8gb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISgqdGhp
cyA9PSBvdGhlcik7CisgICAgfQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxNZWRpYVVzYWdlSW5mbz4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IGlubGluZSB2b2lkIE1lZGlhVXNhZ2VJbmZvOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1lZGlhVVJMOworICAgIGVu
Y29kZXIgPDwgaXNQbGF5aW5nOworICAgIGVuY29kZXIgPDwgY2FuU2hvd0NvbnRyb2xzTWFuYWdl
cjsKKyAgICBlbmNvZGVyIDw8IGNhblNob3dOb3dQbGF5aW5nQ29udHJvbHM7CisgICAgZW5jb2Rl
ciA8PCBpc1N1c3BlbmRlZDsKKyAgICBlbmNvZGVyIDw8IGlzSW5BY3RpdmVEb2N1bWVudDsKKyAg
ICBlbmNvZGVyIDw8IGlzRnVsbHNjcmVlbjsKKyAgICBlbmNvZGVyIDw8IGlzTXV0ZWQ7CisgICAg
ZW5jb2RlciA8PCBpc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZTsKKyAgICBlbmNvZGVyIDw8IGlz
VmlkZW87CisgICAgZW5jb2RlciA8PCBpc0F1ZGlvOworICAgIGVuY29kZXIgPDwgaGFzVmlkZW87
CisgICAgZW5jb2RlciA8PCBoYXNBdWRpbzsKKyAgICBlbmNvZGVyIDw8IGhhc1JlbmRlcmVyOwor
ICAgIGVuY29kZXIgPDwgYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJlOworICAgIGVuY29kZXIg
PDwgdXNlckhhc1BsYXllZEF1ZGlvQmVmb3JlOworICAgIGVuY29kZXIgPDwgaXNFbGVtZW50UmVj
dE1vc3RseUluTWFpbkZyYW1lOworICAgIGVuY29kZXIgPDwgcGxheWJhY2tQZXJtaXR0ZWQ7Cisg
ICAgZW5jb2RlciA8PCBwYWdlTWVkaWFQbGF5YmFja1N1c3BlbmRlZDsKKyAgICBlbmNvZGVyIDw8
IGlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudDsKKyAgICBlbmNvZGVyIDw8IHBhZ2VF
eHBsaWNpdGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmU7CisgICAgZW5jb2RlciA8PCBy
ZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRl
ZDsKKyAgICBlbmNvZGVyIDw8IGhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5z
U2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZTsKKyAgICBlbmNvZGVyIDw8IGlz
VmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlOworICAgIGVuY29k
ZXIgPDwgaXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2U7Cisg
ICAgZW5jb2RlciA8PCBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9M
b3dQb3dlck1vZGU7CisgICAgZW5jb2RlciA8PCBub1VzZXJHZXN0dXJlUmVxdWlyZWQ7CisgICAg
ZW5jb2RlciA8PCByZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nOworICAgIGVuY29kZXIg
PDwgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOworICAgIGVuY29kZXIgPDwgb3V0c2lkZU9m
RnVsbHNjcmVlbjsKKyAgICBlbmNvZGVyIDw8IGlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudDsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gaW5saW5lIE9wdGlvbmFsPE1lZGlhVXNhZ2VJ
bmZvPiBNZWRpYVVzYWdlSW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgTWVk
aWFVc2FnZUluZm8gaW5mbzsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tZWRpYVVS
TCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8u
aXNQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5jYW5TaG93Q29udHJvbHNNYW5hZ2VyKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5jYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzKSkK
KyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc1N1
c3BlbmRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8uaXNJbkFjdGl2ZURvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0Z1bGxzY3JlZW4pKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzTXV0ZWQpKQorICAgICAgICByZXR1
cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzTWVkaWFEb2N1bWVudElu
TWFpbkZyYW1lKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5pc1ZpZGVvKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaW5mby5pc0F1ZGlvKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaW5mby5oYXNWaWRlbykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzQXVkaW8pKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmhhc1JlbmRlcmVyKSkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5hdWRpb0VsZW1lbnRX
aXRoVXNlckdlc3R1cmUpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSkpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNFbGVtZW50UmVjdE1vc3RseUlu
TWFpbkZyYW1lKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaW5mby5wbGF5YmFja1Blcm1pdHRlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ucGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLmlzTWVkaWFE
b2N1bWVudEFuZE5vdE93bmVyRWxlbWVudCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ucGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRv
cGxheUlubGluZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGluZm8ucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5O
b3RQZXJtaXR0ZWQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLmhhc0hhZFVzZXJJbnRlcmFjdGlvbkFuZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0
b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZSkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb1JhdGVDaGFuZ2UpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShpbmZvLmlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRl
Q2hhbmdlKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aW5mby5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1v
ZGUpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm5vVXNlckdlc3R1cmVSZXF1aXJlZCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGluZm8ucmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxheWluZykpCisg
ICAgICAgIHJldHVybiB7IH07CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8uaGFzRXZl
ck5vdGlmaWVkQWJvdXRQbGF5aW5nKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoaW5mby5vdXRzaWRlT2ZGdWxsc2NyZWVuKSkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5pc0xhcmdlRW5vdWdoRm9yTWFp
bkNvbnRlbnQpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIGluZm87Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApp
bmRleCBlNzgxZjM3NGYyOTUwOWU1NTU5Mzk5YzgxOGY1MWQzN2NkYzk5OWFiLi4zYWUwNmYzMTE3
ZTljMzRkNmRmNmZlYjE2ZmEyMTExY2Y2ZDIwM2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0xMjYsNiArMTI2LDcgQEAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFjay5oIgorI2luY2x1ZGUgIk1lZGlhVXNhZ2VJbmZvLmgiCiAjaW5jbHVkZSAi
TWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJNZW1vcnlJbmZvLmgiCiAjaW5jbHVkZSAiTW9ja0F1
ZGlvRGVzdGluYXRpb25Db2NvYS5oIgpAQCAtNDA2Niw2ICs0MDY3LDEyIEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXRNZWRpYUVsZW1lbnRSZXN0cmljdGlvbnMoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVu
dCwgU3RyaW5nVmllCiAgICAgICAgICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFFbGVtZW50U2Vz
c2lvbjo6SW52aXNpYmxlQXV0b3BsYXlOb3RQZXJtaXR0ZWQ7CiAgICAgICAgIGlmIChlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZXN0cmljdGlvblN0cmluZywgIm92ZXJyaWRldXNlcmdl
c3R1cmVyZXF1aXJlbWVudGZvcm1haW5jb250ZW50IikpCiAgICAgICAgICAgICByZXN0cmljdGlv
bnMgfD0gTWVkaWFFbGVtZW50U2Vzc2lvbjo6T3ZlcnJpZGVVc2VyR2VzdHVyZVJlcXVpcmVtZW50
Rm9yTWFpbkNvbnRlbnQ7CisgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShyZXN0cmljdGlvblN0cmluZywgInJlcXVpcmV1c2VyZ2VzdHVyZXRvY29udHJvbGNvbnRyb2xz
bWFuYWdlciIpKQorICAgICAgICAgICAgcmVzdHJpY3Rpb25zIHw9IE1lZGlhRWxlbWVudFNlc3Np
b246OlJlcXVpcmVVc2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlcjsKKyAgICAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlc3RyaWN0aW9uU3RyaW5nLCAicmVx
dWlyZXBsYXliYWNrVG9jb250cm9sY29udHJvbHNtYW5hZ2VyIikpCisgICAgICAgICAgICByZXN0
cmljdGlvbnMgfD0gTWVkaWFFbGVtZW50U2Vzc2lvbjo6UmVxdWlyZVBsYXliYWNrVG9Db250cm9s
Q29udHJvbHNNYW5hZ2VyOworICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UocmVzdHJpY3Rpb25TdHJpbmcsICJyZXF1aXJldXNlcmdlc3R1cmVmb3J2aWRlb2R1ZXRvbG93
cG93ZXJtb2RlIikpCisgICAgICAgICAgICByZXN0cmljdGlvbnMgfD0gTWVkaWFFbGVtZW50U2Vz
c2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTsKICAgICB9
CiAgICAgZWxlbWVudC5tZWRpYVNlc3Npb24oKS5hZGRCZWhhdmlvclJlc3RyaWN0aW9uKHJlc3Ry
aWN0aW9ucyk7CiB9CkBAIC00MjIzLDYgKzQyMzAsNTQgQEAgSW50ZXJuYWxzOjpNZWRpYVNlc3Np
b25TdGF0ZSBJbnRlcm5hbHM6Om1lZGlhU2Vzc2lvblN0YXRlKEhUTUxNZWRpYUVsZW1lbnQmIGVs
ZW0KIH0KICNlbmRpZgogCitFeGNlcHRpb25PcjxJbnRlcm5hbHM6Ok1lZGlhVXNhZ2VTdGF0ZT4g
SW50ZXJuYWxzOjptZWRpYVVzYWdlU3RhdGUoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgZWxlbWVudC5tZWRpYVNlc3Npb24oKS51cGRh
dGVNZWRpYVVzYWdlSWZDaGFuZ2VkKCk7CisgICAgYXV0byBpbmZvID0gZWxlbWVudC5tZWRpYVNl
c3Npb24oKS5tZWRpYVVzYWdlSW5mbygpOworICAgIGlmICghaW5mbykKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisKKyAgICByZXR1cm4geyB7IGluZm8u
dmFsdWUoKS5tZWRpYVVSTC5zdHJpbmcoKSwKKyAgICAgICAgaW5mby52YWx1ZSgpLmlzUGxheWlu
ZywKKyAgICAgICAgaW5mby52YWx1ZSgpLmNhblNob3dDb250cm9sc01hbmFnZXIsCisgICAgICAg
IGluZm8udmFsdWUoKS5jYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzLAorICAgICAgICBpbmZvLnZh
bHVlKCkuaXNTdXNwZW5kZWQsCisgICAgICAgIGluZm8udmFsdWUoKS5pc0luQWN0aXZlRG9jdW1l
bnQsCisgICAgICAgIGluZm8udmFsdWUoKS5pc0Z1bGxzY3JlZW4sCisgICAgICAgIGluZm8udmFs
dWUoKS5pc011dGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNNZWRpYURvY3VtZW50SW5NYWlu
RnJhbWUsCisgICAgICAgIGluZm8udmFsdWUoKS5pc1ZpZGVvLAorICAgICAgICBpbmZvLnZhbHVl
KCkuaXNBdWRpbywKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc1ZpZGVvLAorICAgICAgICBpbmZv
LnZhbHVlKCkuaGFzQXVkaW8sCisgICAgICAgIGluZm8udmFsdWUoKS5oYXNSZW5kZXJlciwKKyAg
ICAgICAgaW5mby52YWx1ZSgpLmF1ZGlvRWxlbWVudFdpdGhVc2VyR2VzdHVyZSwKKyAgICAgICAg
aW5mby52YWx1ZSgpLnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSwKKyAgICAgICAgaW5mby52YWx1
ZSgpLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSwKKyAgICAgICAgaW5mby52YWx1ZSgp
LnBsYXliYWNrUGVybWl0dGVkLAorICAgICAgICBpbmZvLnZhbHVlKCkucGFnZU1lZGlhUGxheWJh
Y2tTdXNwZW5kZWQsCisgICAgICAgIGluZm8udmFsdWUoKS5pc01lZGlhRG9jdW1lbnRBbmROb3RP
d25lckVsZW1lbnQsCisgICAgICAgIGluZm8udmFsdWUoKS5wYWdlRXhwbGljaXRseUFsbG93c0Vs
ZW1lbnRUb0F1dG9wbGF5SW5saW5lLAorICAgICAgICBpbmZvLnZhbHVlKCkucmVxdWlyZXNGdWxs
c2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQsCisgICAgICAg
IGluZm8udmFsdWUoKS5oYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3Vs
ZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmUsCisgICAgICAgIGluZm8udmFsdWUoKS5p
c1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSwKKyAgICAgICAg
aW5mby52YWx1ZSgpLmlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hh
bmdlLAorICAgICAgICBpbmZvLnZhbHVlKCkuaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVG
b3JWaWRlb0R1ZVRvTG93UG93ZXJNb2RlLAorICAgICAgICBpbmZvLnZhbHVlKCkubm9Vc2VyR2Vz
dHVyZVJlcXVpcmVkLAorICAgICAgICBpbmZvLnZhbHVlKCkucmVxdWlyZXNQbGF5YmFja0FuZElz
Tm90UGxheWluZywKKyAgICAgICAgaW5mby52YWx1ZSgpLmhhc0V2ZXJOb3RpZmllZEFib3V0UGxh
eWluZywKKyAgICAgICAgaW5mby52YWx1ZSgpLm91dHNpZGVPZkZ1bGxzY3JlZW4sCisgICAgICAg
IGluZm8udmFsdWUoKS5pc0xhcmdlRW5vdWdoRm9yTWFpbkNvbnRlbnQsCisgICAgfSB9OworCisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbGVtZW50KTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CisjZW5kaWYKK30KKworCiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKIAogdm9pZCBJbnRlcm5hbHM6OnNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyRW5hYmxlZChib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAppbmRleCBlZGVhYmFjYWU3YzFiNTM5ZmMwMzUyZjM3OTVkOGMxY2M3YWY2ZTEwLi43NmQ4
YWNmOTdmZGUxMWUzOTM5NDdkNWZjZWVhMjdlYzIyOTE5MGM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTgxNCw2ICs4MTQsNDEgQEAgcHVibGljOgogICAgIH07CiAgICAgRXhj
ZXB0aW9uT3I8Tm93UGxheWluZ1N0YXRlPiBub3dQbGF5aW5nU3RhdGUoKSBjb25zdDsKIAorICAg
IHN0cnVjdCBNZWRpYVVzYWdlU3RhdGUgeworICAgICAgICBTdHJpbmcgbWVkaWFVUkw7CisgICAg
ICAgIGJvb2wgaXNQbGF5aW5nOworICAgICAgICBib29sIGNhblNob3dDb250cm9sc01hbmFnZXI7
CisgICAgICAgIGJvb2wgY2FuU2hvd05vd1BsYXlpbmdDb250cm9sczsKKyAgICAgICAgYm9vbCBp
c1N1c3BlbmRlZDsKKyAgICAgICAgYm9vbCBpc0luQWN0aXZlRG9jdW1lbnQ7CisgICAgICAgIGJv
b2wgaXNGdWxsc2NyZWVuOworICAgICAgICBib29sIGlzTXV0ZWQ7CisgICAgICAgIGJvb2wgaXNN
ZWRpYURvY3VtZW50SW5NYWluRnJhbWU7CisgICAgICAgIGJvb2wgaXNWaWRlbzsKKyAgICAgICAg
Ym9vbCBpc0F1ZGlvOworICAgICAgICBib29sIGhhc1ZpZGVvOworICAgICAgICBib29sIGhhc0F1
ZGlvOworICAgICAgICBib29sIGhhc1JlbmRlcmVyOworICAgICAgICBib29sIGF1ZGlvRWxlbWVu
dFdpdGhVc2VyR2VzdHVyZTsKKyAgICAgICAgYm9vbCB1c2VySGFzUGxheWVkQXVkaW9CZWZvcmU7
CisgICAgICAgIGJvb2wgaXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lOworICAgICAgICBi
b29sIHBsYXliYWNrUGVybWl0dGVkOworICAgICAgICBib29sIHBhZ2VNZWRpYVBsYXliYWNrU3Vz
cGVuZGVkOworICAgICAgICBib29sIGlzTWVkaWFEb2N1bWVudEFuZE5vdE93bmVyRWxlbWVudDsK
KyAgICAgICAgYm9vbCBwYWdlRXhwbGljaXRseUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5l
OworICAgICAgICBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkOworICAgICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbkFu
ZFF1aXJrc0NvbnRhaW5zU2hvdWxkQXV0b3BsYXlGb3JBcmJpdHJhcnlVc2VyR2VzdHVyZTsKKyAg
ICAgICAgYm9vbCBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5n
ZTsKKyAgICAgICAgYm9vbCBpc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0
ZUNoYW5nZTsKKyAgICAgICAgYm9vbCBpc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZp
ZGVvRHVlVG9Mb3dQb3dlck1vZGU7CisgICAgICAgIGJvb2wgbm9Vc2VyR2VzdHVyZVJlcXVpcmVk
OworICAgICAgICBib29sIHJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmc7CisgICAgICAg
IGJvb2wgaGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOworICAgICAgICBib29sIG91dHNpZGVP
ZkZ1bGxzY3JlZW47CisgICAgICAgIGJvb2wgaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50Owor
ICAgIH07CisgICAgRXhjZXB0aW9uT3I8TWVkaWFVc2FnZVN0YXRlPiBtZWRpYVVzYWdlU3RhdGUo
SFRNTE1lZGlhRWxlbWVudCYpIGNvbnN0OworCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHVzaW5n
IFBsYXliYWNrQ29udHJvbHNQdXJwb3NlID0gTWVkaWFFbGVtZW50U2Vzc2lvbjo6UGxheWJhY2tD
b250cm9sc1B1cnBvc2U7CiAgICAgUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGJlc3RNZWRpYUVs
ZW1lbnRGb3JTaG93aW5nUGxheWJhY2tDb250cm9sc01hbmFnZXIoUGxheWJhY2tDb250cm9sc1B1
cnBvc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDQzMTk1MmU5NjVm
N2UxOGM0ZjViNTc1M2FmYjUyODQ3NzRiMjZkM2UuLmQxOGVlYjAzYjg3YmQ3MTIyNjBhNTJkZjk0
MzY4NWU1MWZmMjVjNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTEx
Myw2ICsxMTMsNDQgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgdW5zaWduZWQgbG9u
ZyBsb25nIHVuaXF1ZUlkZW50aWZpZXI7CiB9OwogCitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQsCisgICAgQ29uZGl0aW9uYWw9VklERU8sCisgICAgSlNHZW5l
cmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgTWVkaWFVc2FnZVN0YXRlIHsKKyAgICBET01T
dHJpbmcgbWVkaWFVUkw7CisgICAgYm9vbGVhbiBpc1BsYXlpbmc7CisgICAgYm9vbGVhbiBjYW5T
aG93Q29udHJvbHNNYW5hZ2VyOworICAgIGJvb2xlYW4gY2FuU2hvd05vd1BsYXlpbmdDb250cm9s
czsKKyAgICBib29sZWFuIGlzU3VzcGVuZGVkOworICAgIGJvb2xlYW4gaXNJbkFjdGl2ZURvY3Vt
ZW50OworICAgIGJvb2xlYW4gaXNGdWxsc2NyZWVuOworICAgIGJvb2xlYW4gaXNNdXRlZDsKKyAg
ICBib29sZWFuIGlzTWVkaWFEb2N1bWVudEluTWFpbkZyYW1lOworICAgIGJvb2xlYW4gaXNWaWRl
bzsKKyAgICBib29sZWFuIGlzQXVkaW87CisgICAgYm9vbGVhbiBoYXNWaWRlbzsKKyAgICBib29s
ZWFuIGhhc0F1ZGlvOworICAgIGJvb2xlYW4gaGFzUmVuZGVyZXI7CisgICAgYm9vbGVhbiBhdWRp
b0VsZW1lbnRXaXRoVXNlckdlc3R1cmU7CisgICAgYm9vbGVhbiB1c2VySGFzUGxheWVkQXVkaW9C
ZWZvcmU7CisgICAgYm9vbGVhbiBpc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWU7CisgICAg
Ym9vbGVhbiBwbGF5YmFja1Blcm1pdHRlZDsKKyAgICBib29sZWFuIHBhZ2VNZWRpYVBsYXliYWNr
U3VzcGVuZGVkOworICAgIGJvb2xlYW4gaXNNZWRpYURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50
OworICAgIGJvb2xlYW4gcGFnZUV4cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGlu
ZTsKKyAgICBib29sZWFuIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2tBbmRGdWxs
c2NyZWVuTm90UGVybWl0dGVkOworICAgIGJvb2xlYW4gaGFzSGFkVXNlckludGVyYWN0aW9uQW5k
UXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlOworICAg
IGJvb2xlYW4gaXNWaWRlb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JWaWRlb1JhdGVDaGFuZ2U7
CisgICAgYm9vbGVhbiBpc0F1ZGlvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvckF1ZGlvUmF0ZUNo
YW5nZTsKKyAgICBib29sZWFuIGlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9E
dWVUb0xvd1Bvd2VyTW9kZTsKKyAgICBib29sZWFuIG5vVXNlckdlc3R1cmVSZXF1aXJlZDsKKyAg
ICBib29sZWFuIHJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmc7CisgICAgYm9vbGVhbiBo
YXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmc7CisgICAgYm9vbGVhbiBvdXRzaWRlT2ZGdWxsc2Ny
ZWVuOworICAgIGJvb2xlYW4gaXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50OworfTsKKwogWwog
ICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAogICAgIEpTR2VuZXJh
dGVUb0pTT2JqZWN0LApAQCAtNzk1LDYgKzgzMyw4IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kg
ewogICAgIFtDb25kaXRpb25hbD1WSURFT10gSFRNTE1lZGlhRWxlbWVudCBiZXN0TWVkaWFFbGVt
ZW50Rm9yU2hvd2luZ1BsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFBsYXliYWNrQ29udHJvbHNQdXJw
b3NlIHB1cnBvc2UpOwogICAgIFtDb25kaXRpb25hbD1WSURFT10gTWVkaWFTZXNzaW9uU3RhdGUg
bWVkaWFTZXNzaW9uU3RhdGUoSFRNTE1lZGlhRWxlbWVudCBlbGVtZW50KTsKIAorICAgIFtDb25k
aXRpb25hbD1WSURFTywgTWF5VGhyb3dFeGNlcHRpb25dIE1lZGlhVXNhZ2VTdGF0ZSBtZWRpYVVz
YWdlU3RhdGUoSFRNTE1lZGlhRWxlbWVudCBlbGVtZW50KTsKKwogICAgIERPTVN0cmluZyBvbmdv
aW5nTG9hZHNEZXNjcmlwdGlvbnMoKTsKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljc0VuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDdjOWM1NDE1ZTc0MDk4ZDg1Y2NiNWEwMzZlNWJiMWIy
ZjBhZDk4MWEuLjY4NTY0MzA2MWJjZGQ5N2YzMTdjNTNkYTgzYTZjMWU0NTg4NGQ0MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjEyLDYgKzIxMiw3IEBA
IGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkxpYldlYlJUQ1NvY2tldElkZW50aWZpZXInLAorICAg
ICAgICAnV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAg
ICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggZDM4NGNlNTY1
Yzc4NGMxNGU5MWFmZDg5NjA3Yzc1MzQ4YWJiNzVjZC4uMWFlMWQ3MWUxMjc1MjU4MjM3YjdlYTkx
NmEwNDVmMzNhYTIwOGMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC00NDIsNiArNDQyLDcgQEAgVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJQYWdlSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKIFVJUHJvY2Vzcy9J
bnNwZWN0b3IvQWdlbnRzL0luc3BlY3RvckJyb3dzZXJBZ2VudC5jcHAKIAogVUlQcm9jZXNzL01l
ZGlhL0F1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHkuY3BwCitVSVByb2Nlc3MvTWVk
aWEvTWVkaWFVc2FnZU1hbmFnZXIuY3BwCiAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGY5
MzIzZmI5Mzk2MDk4YTk4ZGY5NmY2YmQ2MmQwMTYyZDZkZjhjYzguLmY0YTg3YzQ1MjJmYmQ2NTE1
NmRmYzlkZGQ3NzRiYTA4M2U2N2YwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTUwNCw2
ICs1MDQsOCBAQCBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQogVUlQcm9jZXNz
L21hYy9XS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9tYWMvV0tWaWV3
TGF5b3V0U3RyYXRlZ3kubW0KIAorVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2EubW0KKwogVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmNwcAogCiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luSW5mb1N0b3JlTWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDM5NGJmOTE5Mzk3ODdhNzZiZjE3M2UzMTlkYzIy
YmI2MjIzMjk3YjAuLjEwZjgxYjJkZjAxZjMyY2UyMzY5NWFmY2E3NGJmOWEwNTNjZjRhOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCkBAIC01MCw2ICs1MCwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQorI2luY2x1ZGUg
Ik1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0zNjAsNCArMzY0LDI5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpncmFudEFjY2Vzc1RvUHJlZmVyZW5jZVNlcnZpY2UoKQogI2VuZGlmCiB9CiAK
KyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCitNZWRpYVVzYWdlTWFuYWdlciYgV2ViUGFnZVByb3h5
OjptZWRpYVVzYWdlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX21lZGlhVXNhZ2VNYW5hZ2VyKQor
ICAgICAgICBtX21lZGlhVXNhZ2VNYW5hZ2VyID0gTWVkaWFVc2FnZU1hbmFnZXI6OmNyZWF0ZSgp
OworCisgICAgcmV0dXJuICptX21lZGlhVXNhZ2VNYW5hZ2VyOworfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6YWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25z
dCBVUkwmIHBhZ2VVUkwpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5hZGRNZWRpYVNlc3Np
b24oaWRlbnRpZmllciwgYnVuZGxlSWRlbnRpZmllciwgcGFnZVVSTCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojp1cGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJDb3JlOjpN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNh
Z2VJbmZvJiBpbmZvKQoreworICAgIG1lZGlhVXNhZ2VNYW5hZ2VyKCkudXBkYXRlTWVkaWFVc2Fn
ZShpZGVudGlmaWVyLCBpbmZvKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnJlbW92ZU1lZGlh
VXNhZ2VNYW5hZ2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50
aWZpZXIpCit7CisgICAgbWVkaWFVc2FnZU1hbmFnZXIoKS5yZW1vdmVNZWRpYVNlc3Npb24oaWRl
bnRpZmllcik7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNzhlMDRlMGZjN2QzNzgzZjY0MjVjNGY3MWQ1YjkxOWM0YTE0ZGY5ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0Up
CisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCisjaWYgIUhBVkUoTUVESUFfVVNBR0VfRlJBTUVXT1JLKQorc3RkOjp1bmlxdWVfcHRy
PE1lZGlhVXNhZ2VNYW5hZ2VyPiBNZWRpYVVzYWdlTWFuYWdlcjo6Y3JlYXRlKCkKK3sKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVVzYWdlTWFuYWdlcj4oKTsKK30KKyNlbmRpZgorCit2b2lk
IE1lZGlhVXNhZ2VNYW5hZ2VyOjogcmVzZXQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXI6OmFkZE1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgYnVuZGxlSWRlbnRp
ZmllciwgY29uc3QgVVJMJiBwYWdlVVJMKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXI6OnJlbW92ZU1lZGlhU2Vzc2lvbihXZWJDb3JlOjpNZWRp
YVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBNZWRpYVVzYWdlTWFuYWdlcjo6dXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpN
ZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNh
Z2VJbmZvJiBtZWRpYVVzYWdlSW5mbykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM3ZmZjYjJjYWZmZDU1OWU0MzU2MzJkYWNkZjRiMGE2MzU4ZGEwMGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYS9NZWRpYVVzYWdlTWFu
YWdlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFVc2FnZUluZm8uaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFVc2FnZU1hbmFnZXIgeworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFVc2FnZU1hbmFnZXI+IGNyZWF0ZSgpOworCisgICAgTWVkaWFVc2FnZU1hbmFn
ZXIoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+TWVkaWFVc2FnZU1hbmFnZXIoKSA9IGRlZmF1
bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTWVk
aWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFVSTCYpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVNZWRpYVNlc3Npb24oV2ViQ29y
ZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcik7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU1lZGlh
VXNhZ2UoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVk
aWFVc2FnZUluZm8mKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNzk1YTBlNGE3MGJmODVlNWExNGU5NDA0Y2MyNzFkNjlmZjhmYTQ5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2EvTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKworI2luY2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgi
CisKK09CSkNfQ0xBU1MgVVNWaWRlb1VzYWdlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYSA6IHB1YmxpYyBNZWRpYVVzYWdlTWFuYWdlciB7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgTWVkaWFVc2FnZU1hbmFn
ZXJDb2NvYSgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5NZWRpYVVzYWdlTWFuYWdlckNvY29h
KCk7CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNldCgpIGZpbmFsOworICAgIHZvaWQgYWRkTWVk
aWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFVSTCYpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZShXZWJDb3JlOjpN
ZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbyYpIGZp
bmFsOworICAgIHZvaWQgcmVtb3ZlTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklk
ZW50aWZpZXIpIGZpbmFsOworCisgICAgc3RydWN0IFNlc3Npb25NZWRpYVVzYWdlIHsKKyAgICAg
ICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworCisgICAgICAgIFNlc3Npb25NZWRp
YVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCisgICAgICAgICAg
ICA6IGlkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICAgICAgICAgICwgYnVuZGxlSWRlbnRpZmll
cihidW5kbGVJZGVudGlmaWVyKQorICAgICAgICAgICAgLCBwYWdlVVJMKHBhZ2VVUkwpCisgICAg
ICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZp
ZXIgaWRlbnRpZmllcjsKKyAgICAgICAgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXI7CisgICAgICAg
IFVSTCBwYWdlVVJMOworICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpNZWRpYVVzYWdlSW5mbz4g
bWVkaWFVc2FnZUluZm87CisgICAgICAgIFJldGFpblB0cjxVU1ZpZGVvVXNhZ2U+IHVzYWdlVHJh
Y2tlcjsKKyAgICB9OworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8U2Vzc2lvbk1lZGlhVXNhZ2U+PiBtX21lZGlhU2Vzc2lvbnM7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9V
U0FHRSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWEvY29jb2Ev
TWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
L2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM0OGExODY4NjNm
OTI1MmQ0Njg3MjBjMjFmZGQ3ZWM3NmFlMjk5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhL2NvY29hL01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EubW0KQEAg
LTAsMCArMSwyMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
Ik1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaCIKKworI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKwor
I2ltcG9ydCA8cGFsL2NvY29hL1VzYWdlVHJhY2tpbmdTb2Z0TGluay5oPgorCitOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgorCitAaW50ZXJmYWNlIFVTVmlkZW9Vc2FnZSA6IE5TT2JqZWN0CistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhCdW5kbGVJZGVudGlmaWVyOihOU1N0cmluZyAqKWJ1bmRsZUlk
ZW50aWZpZXIgVVJMOihOU1VSTCAqKXVybCBtZWRpYVVSTDooTlNVUkwgKiltZWRpYVVSTCBOU19E
RVNJR05BVEVEX0lOSVRJQUxJWkVSOworLSAodm9pZClzdG9wOworLSAodm9pZClyZXN0YXJ0Owor
LSAodm9pZCl1cGRhdGVWaWRlb01ldGFkYXRhOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+
ICopdmlkZW9NZXRhZGF0YTsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitzdGF0aWMgYm9vbCB1c2FnZVRyYWNraW5nQXZhaWxhYmxlKCkKK3sKKyAgICBzdGF0
aWMgYm9vbCBhdmFpbGFibGU7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7
CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFsmXSAoKSB7CisgICAgICAgIGF2YWlsYWJs
ZSA9IFBBTDo6aXNVc2FnZVRyYWNraW5nRnJhbWV3b3JrQXZhaWxhYmxlKCkKKyAgICAgICAgICAg
ICYmIFBBTDo6Z2V0VVNWaWRlb1VzYWdlQ2xhc3MoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5M
b2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd0NvbnRyb2xzTWFuYWdl
cigpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0
YWRhdGFLZXlDYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzKCkKKyAgICAgICAgICAgICYmIFBBTDo6
Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkKCkKKyAg
ICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtl
eUlzSW5BY3RpdmVEb2N1bWVudCgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0Z1bGxzY3JlZW4oKQorICAgICAgICAgICAgJiYg
UEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNNdXRlZCgpCisg
ICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFL
ZXlJc01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxv
YWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlJc0F1ZGlvKCkKKyAgICAgICAgICAg
ICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUF1ZGlvRWxl
bWVudFdpdGhVc2VyR2VzdHVyZSgpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VU
cmFja2luZ19VU1ZpZGVvTWV0YWRhdGFLZXlVc2VySGFzUGxheWVkQXVkaW9CZWZvcmUoKQorICAg
ICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2Fu
TG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vQXVkaW8oKQorICAgICAgICAg
ICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UGxheWJh
Y2tQZXJtaXR0ZWQoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdf
VVNWaWRlb01ldGFkYXRhS2V5UGFnZU1lZGlhUGxheWJhY2tTdXNwZW5kZWQoKQorICAgICAgICAg
ICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRp
YURvY3VtZW50QW5kTm90T3duZXJFbGVtZW50KCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9h
ZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNpdGx5QWxsb3dzRWxl
bWVudFRvQXV0b3BsYXlJbmxpbmUoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdl
VHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5
YmFja0FuZEZ1bGxzY3JlZW5Ob3RQZXJtaXR0ZWQoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5M
b2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5SGFzSGFkVXNlckludGVyYWN0aW9u
QW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFyeVVzZXJHZXN0dXJlKCkK
KyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0
YUtleUlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlKCkKKyAg
ICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtl
eUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKCkKKyAgICAg
ICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleUlz
VmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZSgpCisg
ICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVvTWV0YWRhdGFL
ZXlOb1VzZXJHZXN0dXJlUmVxdWlyZWQoKQorICAgICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1Vz
YWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5UmVxdWlyZXNQbGF5YmFja0FuZElzTm90UGxh
eWluZygpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1ZpZGVv
TWV0YWRhdGFLZXlIYXNFdmVyTm90aWZpZWRBYm91dFBsYXlpbmcoKQorICAgICAgICAgICAgJiYg
UEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5T3V0c2lkZU9mRnVs
bHNjcmVlbigpCisgICAgICAgICAgICAmJiBQQUw6OmNhbkxvYWRfVXNhZ2VUcmFja2luZ19VU1Zp
ZGVvTWV0YWRhdGFLZXlJc1ZpZGVvKCkKKyAgICAgICAgICAgICYmIFBBTDo6Y2FuTG9hZF9Vc2Fn
ZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleVJlbmRlcmVyKCkKKyAgICAgICAgICAgICYmIFBB
TDo6Y2FuTG9hZF9Vc2FnZVRyYWNraW5nX1VTVmlkZW9NZXRhZGF0YUtleU5vVmlkZW8oKQorICAg
ICAgICAgICAgJiYgUEFMOjpjYW5Mb2FkX1VzYWdlVHJhY2tpbmdfVVNWaWRlb01ldGFkYXRhS2V5
SXNMYXJnZUVub3VnaEZvck1haW5Db250ZW50KCk7CisgICAgfSk7CisKKyAgICByZXR1cm4gYXZh
aWxhYmxlOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFVc2FnZU1hbmFnZXI+IE1lZGlhVXNh
Z2VNYW5hZ2VyOjpjcmVhdGUoKQoreworICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhVXNhZ2VN
YW5hZ2VyQ29jb2E+KCk7Cit9CisKK01lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6On5NZWRpYVVzYWdl
TWFuYWdlckNvY29hKCkKK3sKKyAgICByZXNldCgpOworfQorCit2b2lkIE1lZGlhVXNhZ2VNYW5h
Z2VyQ29jb2E6OnJlc2V0KCkKK3sKKyAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBtX21lZGlhU2Vz
c2lvbnMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHNlc3Npb24tPnVzYWdlVHJhY2tlcikgewor
ICAgICAgICAgICAgW3Nlc3Npb24tPnVzYWdlVHJhY2tlciBzdG9wXTsKKyAgICAgICAgICAgIHNl
c3Npb24tPnVzYWdlVHJhY2tlciA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgbV9t
ZWRpYVNlc3Npb25zLmNsZWFyKCk7Cit9CisKK3ZvaWQgTWVkaWFVc2FnZU1hbmFnZXJDb2NvYTo6
YWRkTWVkaWFTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBidW5kbGVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHBhZ2VVUkwpCit7
CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX21lZGlhU2Vzc2lvbnMuZW5zdXJlKGlkZW50aWZpZXIs
IFsmXSB7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6
OlNlc3Npb25NZWRpYVVzYWdlPihpZGVudGlmaWVyLCBidW5kbGVJZGVudGlmaWVyLCBwYWdlVVJM
KTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOworfQorCit2b2lkIE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2E6OnJlbW92ZU1lZGlhU2Vz
c2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
QVNTRVJUKG1fbWVkaWFTZXNzaW9ucy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9tZWRp
YVNlc3Npb25zLnJlbW92ZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBNZWRpYVVzYWdlTWFuYWdl
ckNvY29hOjp1cGRhdGVNZWRpYVVzYWdlKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIg
aWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mIG1lZGlhVXNhZ2VJbmZv
KQoreworICAgIEFTU0VSVChtX21lZGlhU2Vzc2lvbnMuY29udGFpbnMoaWRlbnRpZmllcikpOwor
ICAgIGF1dG8gc2Vzc2lvbiA9IG1fbWVkaWFTZXNzaW9ucy5nZXQoaWRlbnRpZmllcik7CisgICAg
aWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXVzYWdlVHJhY2tpbmdB
dmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQHRyeSB7CisKKyAgICAgICAgaWYg
KHNlc3Npb24tPm1lZGlhVXNhZ2VJbmZvKSB7CisgICAgICAgICAgICBpZiAoc2Vzc2lvbi0+bWVk
aWFVc2FnZUluZm8gPT0gbWVkaWFVc2FnZUluZm8pCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICBpZiAoc2Vzc2lvbi0+dXNhZ2VUcmFja2VyICYmIHNlc3Npb24tPm1lZGlh
VXNhZ2VJbmZvLT5tZWRpYVVSTCAhPSBtZWRpYVVzYWdlSW5mby5tZWRpYVVSTCkgeworICAgICAg
ICAgICAgICAgIFtzZXNzaW9uLT51c2FnZVRyYWNrZXIgc3RvcF07CisgICAgICAgICAgICAgICAg
c2Vzc2lvbi0+dXNhZ2VUcmFja2VyID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIGlmICghc2Vzc2lvbi0+dXNhZ2VUcmFja2VyKSB7CisgICAgICAgICAgICBp
ZiAoIW1lZGlhVXNhZ2VJbmZvLmlzUGxheWluZykKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIHNlc3Npb24tPnVzYWdlVHJhY2tlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NV
U1ZpZGVvVXNhZ2VJbnN0YW5jZSgpIGluaXRXaXRoQnVuZGxlSWRlbnRpZmllcjpzZXNzaW9uLT5i
dW5kbGVJZGVudGlmaWVyIFVSTDooTlNVUkwgKilzZXNzaW9uLT5wYWdlVVJMIG1lZGlhVVJMOihO
U1VSTCAqKW1lZGlhVXNhZ2VJbmZvLm1lZGlhVVJMXSk7CisgICAgICAgICAgICBBU1NFUlQoc2Vz
c2lvbi0+dXNhZ2VUcmFja2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzZXNzaW9uLT5t
ZWRpYVVzYWdlSW5mbyAmJiBzZXNzaW9uLT5tZWRpYVVzYWdlSW5mby0+aXNQbGF5aW5nICE9IG1l
ZGlhVXNhZ2VJbmZvLmlzUGxheWluZykgeworICAgICAgICAgICAgaWYgKG1lZGlhVXNhZ2VJbmZv
LmlzUGxheWluZykKKyAgICAgICAgICAgICAgICBbc2Vzc2lvbi0+dXNhZ2VUcmFja2VyIHJlc3Rh
cnRdOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIFtzZXNzaW9uLT51c2FnZVRy
YWNrZXIgc3RvcF07CisgICAgICAgIH0KKworICAgICAgICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcg
KiwgaWQ+ICptZXRhZGF0YSA9IEB7CisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlDYW5T
aG93Q29udHJvbHNNYW5hZ2VyOiBAKG1lZGlhVXNhZ2VJbmZvLmNhblNob3dDb250cm9sc01hbmFn
ZXIpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5Q2FuU2hvd05vd1BsYXlpbmdDb250
cm9sczogQChtZWRpYVVzYWdlSW5mby5jYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzKSwKKyAgICAg
ICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzU3VzcGVuZGVkOiBAKG1lZGlhVXNhZ2VJbmZvLmlz
U3VzcGVuZGVkKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzSW5BY3RpdmVEb2N1
bWVudDogQChtZWRpYVVzYWdlSW5mby5pc0luQWN0aXZlRG9jdW1lbnQpLAorICAgICAgICAgICAg
VVNWaWRlb01ldGFkYXRhS2V5SXNGdWxsc2NyZWVuOiBAKG1lZGlhVXNhZ2VJbmZvLmlzRnVsbHNj
cmVlbiksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc011dGVkOiBAKG1lZGlhVXNh
Z2VJbmZvLmlzTXV0ZWQpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNNZWRpYURv
Y3VtZW50SW5NYWluRnJhbWU6IEAobWVkaWFVc2FnZUluZm8uaXNNZWRpYURvY3VtZW50SW5NYWlu
RnJhbWUpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNWaWRlbzogQChtZWRpYVVz
YWdlSW5mby5pc1ZpZGVvKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW86
IEAobWVkaWFVc2FnZUluZm8uaXNBdWRpbyksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFL
ZXlOb1ZpZGVvOiBAKCFtZWRpYVVzYWdlSW5mby5oYXNWaWRlbyksCisgICAgICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlOb0F1ZGlvOiBAKCFtZWRpYVVzYWdlSW5mby5oYXNBdWRpbyksCisgICAg
ICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZW5kZXJlcjogQChtZWRpYVVzYWdlSW5mby5oYXNS
ZW5kZXJlciksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlBdWRpb0VsZW1lbnRXaXRo
VXNlckdlc3R1cmU6IEAobWVkaWFVc2FnZUluZm8uYXVkaW9FbGVtZW50V2l0aFVzZXJHZXN0dXJl
KSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9y
ZTogQChtZWRpYVVzYWdlSW5mby51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUpLAorICAgICAgICAg
ICAgVVNWaWRlb01ldGFkYXRhS2V5SXNFbGVtZW50UmVjdE1vc3RseUluTWFpbkZyYW1lOiBAKG1l
ZGlhVXNhZ2VJbmZvLmlzRWxlbWVudFJlY3RNb3N0bHlJbk1haW5GcmFtZSksCisgICAgICAgICAg
ICBVU1ZpZGVvTWV0YWRhdGFLZXlQbGF5YmFja1Blcm1pdHRlZDogQChtZWRpYVVzYWdlSW5mby5w
bGF5YmFja1Blcm1pdHRlZCksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlQYWdlTWVk
aWFQbGF5YmFja1N1c3BlbmRlZDogQChtZWRpYVVzYWdlSW5mby5wYWdlTWVkaWFQbGF5YmFja1N1
c3BlbmRlZCksCisgICAgICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlJc01lZGlhRG9jdW1lbnRB
bmROb3RPd25lckVsZW1lbnQ6IEAobWVkaWFVc2FnZUluZm8uaXNNZWRpYURvY3VtZW50QW5kTm90
T3duZXJFbGVtZW50KSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleVBhZ2VFeHBsaWNp
dGx5QWxsb3dzRWxlbWVudFRvQXV0b3BsYXlJbmxpbmU6IEAobWVkaWFVc2FnZUluZm8ucGFnZUV4
cGxpY2l0bHlBbGxvd3NFbGVtZW50VG9BdXRvcGxheUlubGluZSksCisgICAgICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlSZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrQW5kRnVsbHNj
cmVlbk5vdFBlcm1pdHRlZDogQChtZWRpYVVzYWdlSW5mby5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JW
aWRlb1BsYXliYWNrQW5kRnVsbHNjcmVlbk5vdFBlcm1pdHRlZCksCisgICAgICAgICAgICBVU1Zp
ZGVvTWV0YWRhdGFLZXlIYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3Vs
ZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1cmU6IEAobWVkaWFVc2FnZUluZm8uaGFzSGFk
VXNlckludGVyYWN0aW9uQW5kUXVpcmtzQ29udGFpbnNTaG91bGRBdXRvcGxheUZvckFyYml0cmFy
eVVzZXJHZXN0dXJlKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzVmlkZW9BbmRS
ZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlOiBAKG1lZGlhVXNhZ2VJbmZvLmlz
VmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlKSwKKyAgICAgICAg
ICAgIFVTVmlkZW9NZXRhZGF0YUtleUlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yQXVk
aW9SYXRlQ2hhbmdlOiBAKG1lZGlhVXNhZ2VJbmZvLmlzQXVkaW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yQXVkaW9SYXRlQ2hhbmdlKSwKKyAgICAgICAgICAgIFVTVmlkZW9NZXRhZGF0YUtleUlz
VmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9EdWVUb0xvd1Bvd2VyTW9kZTogQCht
ZWRpYVVzYWdlSW5mby5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvRHVlVG9M
b3dQb3dlck1vZGUpLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5Tm9Vc2VyR2VzdHVy
ZVJlcXVpcmVkOiBAKG1lZGlhVXNhZ2VJbmZvLm5vVXNlckdlc3R1cmVSZXF1aXJlZCksCisgICAg
ICAgICAgICBVU1ZpZGVvTWV0YWRhdGFLZXlSZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5aW5n
OiBAKG1lZGlhVXNhZ2VJbmZvLnJlcXVpcmVzUGxheWJhY2tBbmRJc05vdFBsYXlpbmcpLAorICAg
ICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nOiBA
KG1lZGlhVXNhZ2VJbmZvLmhhc0V2ZXJOb3RpZmllZEFib3V0UGxheWluZyksCisgICAgICAgICAg
ICBVU1ZpZGVvTWV0YWRhdGFLZXlPdXRzaWRlT2ZGdWxsc2NyZWVuOiBAKG1lZGlhVXNhZ2VJbmZv
Lm91dHNpZGVPZkZ1bGxzY3JlZW4pLAorICAgICAgICAgICAgVVNWaWRlb01ldGFkYXRhS2V5SXNM
YXJnZUVub3VnaEZvck1haW5Db250ZW50OiBAKG1lZGlhVXNhZ2VJbmZvLmlzTGFyZ2VFbm91Z2hG
b3JNYWluQ29udGVudCksCisgICAgICAgIH07CisKKyAgICAgICAgW3Nlc3Npb24tPnVzYWdlVHJh
Y2tlciB1cGRhdGVWaWRlb01ldGFkYXRhOm1ldGFkYXRhXTsKKyAgICAgICAgc2Vzc2lvbi0+bWVk
aWFVc2FnZUluZm8gPSBtZWRpYVVzYWdlSW5mbzsKKworICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9u
ICpleGNlcHRpb24pIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJNZWRpYVVzYWdlTWFuYWdlckNv
Y29hOjp1cGRhdGVNZWRpYVVzYWdlIGNhdWdodCBleGNlcHRpb246ICVAIiwgW1tleGNlcHRpb24g
cmVhc29uXSBVVEY4U3RyaW5nXSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuY3BwCmluZGV4IDQwNzQwMmIyMzdkNDQ4OTE3NmIzNjlmNDExNGFkYjQ3OGFkYjIz
MGMuLjVhYjVjOTBmMGZhYWJiMTQ4MzdjY2M3YTRlYjZkNjM1Yzg2MmMxZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJO
ZmNTZXJ2aWNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2FsQ29ubmVjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL01vY2svTW9ja0xvY2Fs
Q29ubmVjdGlvbi5tbQppbmRleCA1NjcxMjU1NGI2ZjYyYjg2MDEzMGI2NzM3N2UzZjQzMzZhYmM4
MjBjLi42ZjBjYjk5YWFiMWU5M2Q1ZWZmNGQ0OGNkMzIyOTE5Y2NjNDE2MTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Nb2NrL01vY2tMb2Nh
bENvbm5lY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vTW9jay9Nb2NrTG9jYWxDb25uZWN0aW9uLm1tCkBAIC0yOSw3ICsyOSw5IEBACiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKIAogI2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRXhjZXB0aW9uRGF0YS5oPgorI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQg
PHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+CiAj
aW1wb3J0IDx3dGYvdGV4dC9CYXNlNjQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IGM5N2UwYWU3OTVhOTE3N2JiM2Y1NmQwZDAxZGE5NjEzYWFkZjJjNTAu
LjMyMDFhN2JiMjZkMjlhNzQwZDVhOTllOTJjMTE1ZTFmYjJlZDgxYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc4LDYgKzI3OCwxMCBAQAogI2luY2x1
ZGUgIkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1VT
QUdFKQorI2luY2x1ZGUgIk1lZGlhVXNhZ2VNYW5hZ2VyLmgiCisjZW5kaWYKKwogI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCiAjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dlYlBhZ2VQcm94
eUFkZGl0aW9ucy5oPgogI2Vsc2UKQEAgLTc0NjIsNiArNzQ2NiwxMSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uIHJlc2V0U3RhdGVSZWFzb24pCiAgICAg
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCisgICAgaWYgKG1fbWVkaWFVc2Fn
ZU1hbmFnZXIpCisgICAgICAgIG1fbWVkaWFVc2FnZU1hbmFnZXItPnJlc2V0KCk7CisjZW5kaWYK
KwogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXKQogICAgIGlmIChyZXNldFN0
YXRlUmVhc29uICE9IFJlc2V0U3RhdGVSZWFzb246Ok5hdmlnYXRpb25Td2FwKQogICAgICAgICBt
X2NvbnRleHRJREZvclZpc2liaWxpdHlQcm9wYWdhdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI4YTc2ZmRlMjAyNzRjMDQ4YWQwMjc2YmMwZDljMWU3
MDM4OTdkNGUuLjc2ZGUxYzhmMTgxNjRlYWM4NzhhZTJiMjJjNDMxYWRiZTk3NjM1OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjcsNiArMTY3LDEwIEBAIGNs
YXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2Vz
c2lvbklkZW50aWZpZXIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFj
aG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CkBAIC0yMzcsNiArMjQxLDcgQEAgc3RydWN0IEZp
bGVDaG9vc2VyU2V0dGluZ3M7CiBzdHJ1Y3QgR2xvYmFsV2luZG93SWRlbnRpZmllcjsKIHN0cnVj
dCBMaW5rSWNvbjsKIHN0cnVjdCBNZWRpYVN0cmVhbVJlcXVlc3Q7CitzdHJ1Y3QgTWVkaWFVc2Fn
ZUluZm87CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKIHN0cnVj
dCBQcmV3YXJtSW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwpAQCAtMjc1
LDYgKzI4MCw3IEBAIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7CiBj
bGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgRWRpdGFibGVJbWFnZUNvbnRyb2xsZXI7CiBj
bGFzcyBHYW1lcGFkRGF0YTsKK2NsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyOwogY2xhc3MgTmF0aXZl
V2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5h
dGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0xNzI4LDYgKzE3MzQsMTMgQEAgcHVibGljOgogICAgIHZv
aWQgcGxhdGZvcm1EaWRTZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNv
bnRleHRNZW51SXRlbURhdGEmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQor
ICAgIE1lZGlhVXNhZ2VNYW5hZ2VyJiBtZWRpYVVzYWdlTWFuYWdlcigpOworICAgIHZvaWQgYWRk
TWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYpOworICAgIHZvaWQgdXBkYXRlTWVkaWFVc2FnZU1h
bmFnZXJTZXNzaW9uU3RhdGUoV2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFVc2FnZUluZm8mKTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhVXNhZ2VNYW5h
Z2VyU2Vzc2lvbihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyKTsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5Jiwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CkBAIC0yMzUzLDYgKzIzNjYsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5PiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFVc2Fn
ZU1hbmFnZXI+IG1fbWVkaWFVc2FnZU1hbmFnZXI7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW5wdXRNb2RlPiBtX3BlbmRpbmdJbnB1
dE1vZGVDaGFuZ2U7CiAgICAgVHJhbnNhY3Rpb25JRCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZEFmdGVyRGlkQ29tbWl0TG9hZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmMzNiMmUzNGJlOGE1YmNjMTM4MWZjMTAxY2I4
YjFjNWQ1OWEzYzk1Li41NjlkNjM3OTZhNDFkYmE3NWU2YmExOWEzMGQ5MjFlZDljODYwNzI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC01ODcsNCArNTg3LDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBE
aWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW1zKFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0
aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uSXRlbT4gaXRlbXMpCiAKKyNpZiBFTkFCTEUoTUVE
SUFfVVNBR0UpCisgICAgQWRkTWVkaWFVc2FnZU1hbmFnZXJTZXNzaW9uKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIFVS
TCBwYWdlVVJMKTsKKyAgICBVcGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShXZWJD
b3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYVVzYWdlSW5mbyBpbmZvKTsKKyAgICBSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24o
V2ViQ29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyKTsKKyNlbmRpZgorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBlMjYzZDFjMTVkMGJjYzVhNzBmNDlmZTJkNDIzMWE4NzAyMWI1Nzk2Li40OWVhNGUxZTIyYmMz
ODEyMjgwMDU1Njc3NWUzYmI4N2YxZmI3M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxNTUsNiArMjE1NSwxMCBAQAogCQkwNzky
MzE0NjIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3
OTIzMTQ3MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzkyMzE0RTIz
OUQ1RjUzMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFCMjQ0NTFCQjkwMDAxQjlDNCAvKiBNZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFVc2FnZU1h
bmFnZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc5NEI0QUMyNDQ1
MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VXNhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3OTRCNEFFMjQ0
NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYVVzYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3
OTRCNEFGMjQ0NTJBMkMwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlckNvY29hLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lZGlhVXNhZ2VNYW5hZ2VyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdBNUVCQjkxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZUhhbmRsZVJlZi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTVFQkJBMUM3QkE0M0UwMEI5Q0E2
OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRnJhbWVIYW5kbGVSZWYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdCMUQw
NEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC01NTE5LDYgKzU1MjMsMjUgQEAKIAkJCXBhdGggPSBtZWRpYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTA3OTRCNEE5MjQ0NTFCQjkwMDAx
QjlDNCAvKiBNZWRpYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAo
CisJCQkJMDc5NEI0QUEyNDQ1MUJCOTAwMDFCOUM0IC8qIGNvY29hICovLAorCQkJCTA3OTRCNEFF
MjQ0NTI0QjAwMDAxQjlDNCAvKiBNZWRpYVVzYWdlTWFuYWdlci5jcHAgKi8sCisJCQkJMDc5NEI0
QUMyNDQ1MUJCOTAwMDFCOUM0IC8qIE1lZGlhVXNhZ2VNYW5hZ2VyLmggKi8sCisJCQkpOworCQkJ
cGF0aCA9IE1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJMDc5NEI0
QUEyNDQ1MUJCOTAwMDFCOUM0IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkwNzk0QjRBRjI0NDUyQTJDMDAwMUI5QzQgLyogTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5oICovLAorCQkJCTA3OTRCNEFCMjQ0NTFCQjkwMDAxQjlDNCAvKiBNZWRp
YVVzYWdlTWFuYWdlckNvY29hLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTA3Qzc1QzE3MjM5OUEzREIwMDg4RTY1QiAv
KiBtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04
ODU1LDYgKzg4NzgsNyBAQAogCQkJCTJEQTk0NEE4MTg4NEU5QUIwMEVEODZEQiAvKiBpb3MgKi8s
CiAJCQkJQkMxMTFCMTgxMTJGNUZCNDAwMzM3QkFCIC8qIExhdW5jaGVyICovLAogCQkJCUJDQ0Yw
ODVDMTEzRjNCNzUwMEM2NTBDNSAvKiBtYWMgKi8sCisJCQkJMDc5NEI0QTkyNDQ1MUJCOTAwMDFC
OUM0IC8qIE1lZGlhICovLAogCQkJCUNENDU3MEQ4MjQ0NENBMTcwMEEzRENFQiAvKiBNZWRpYSAq
LywKIAkJCQk1MTBDQzdFNzE2MTM4RTcyMDBEMDNFRDMgLyogTmV0d29yayAqLywKIAkJCQkzMUEy
RUM0MDE0ODk5NzM3MDA4MTBENzEgLyogTm90aWZpY2F0aW9ucyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggNTQzZGUyM2RhODllMWI3NGRiYTk3YWExYTM5NTNmMmNmNjlhNGQxYy4uYjg5
Nzc1ZWZiNGJiZjI5MmQyYjVjMzFmY2U3MDZiYjljMWIzNDRiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTEwMDgsOSArMTAwOCwyNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlbwogewog
ICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQotCiAjZW5kaWYKIAorI2lmIEVOQUJMRShN
RURJQV9VU0FHRSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZWRpYVVzYWdlTWFuYWdlclNl
c3Npb24oTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBtX3BhZ2UuYWRkTWVk
aWFVc2FnZU1hbmFnZXJTZXNzaW9uKGlkZW50aWZpZXIsIGJ1bmRsZUlkZW50aWZpZXIsIHBhZ2VV
UkwpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6dXBkYXRlTWVkaWFVc2FnZU1hbmFnZXJT
ZXNzaW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBNZWRp
YVVzYWdlSW5mbyYgdXNhZ2UpCit7CisgICAgbV9wYWdlLnVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2Vy
U2Vzc2lvblN0YXRlKGlkZW50aWZpZXIsIHVzYWdlKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRpYVNlc3Npb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCit7CisgICAgbV9wYWdlLnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lv
bihpZGVudGlmaWVyKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfVVNBR0UpCisKICNpZiBQ
TEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9u
KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTg1
OTMxYzcxMDZmY2I0NjAxY2NjZGM5ZDUyMzY1NDYwOGM4NjY4Ny4uYmQ4M2NkZTJiZmExY2FlMjM3
Y2M4NTRkOGIxNWRhMzgwN2VlN2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjcwLDYgKzI3
MCwxMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShNRURJQV9VU0FHRSkKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihX
ZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBVUkwm
KSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJ
bmZvJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uSWRlbnRpZmllcikgZmluYWw7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIHZvaWQgZXhp
dFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZDQzY2E3N2U5NDI5MGY4NTVhNDMyMzZjOTVmMDMzN2FiMzMxOTUw
Yy4uMmY2MTdmNzAxMWJjNTA1MmYxM2YyOGNiZDhiZWYwNzk1NzJiY2JlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcwNjIsNiArNzA2Miwy
MyBAQCBib29sIFdlYlBhZ2U6OnNob3VsZFVzZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQ
dXJwb3NlIHB1cnBvc2UpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKE1FRElB
X1VTQUdFKQordm9pZCBXZWJQYWdlOjphZGRNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oTWVkaWFT
ZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGJ1bmRsZUlkZW50aWZp
ZXIsIGNvbnN0IFVSTCYgcGFnZVVSTCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihpZGVudGlmaWVyLCBidW5kbGVJZGVudGlm
aWVyLCBwYWdlVVJMKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6dXBkYXRlTWVkaWFVc2FnZU1hbmFn
ZXJTZXNzaW9uU3RhdGUoTWVkaWFTZXNzaW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBN
ZWRpYVVzYWdlSW5mbyYgdXNhZ2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpVcGRhdGVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb25TdGF0ZShpZGVudGlmaWVyLCB1c2FnZSkp
OworfQorCit2b2lkIFdlYlBhZ2U6OnJlbW92ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvbihNZWRp
YVNlc3Npb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oaWRlbnRpZmllcikpOwor
fQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9VU0FHRSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZDBlZDljMDA3OWZlNWE4NGZlYzFlZjE0NmY5OGY2
OWIyZjVlYmJjNy4uODdlYjJkYzcxMTI0ZjBiNjkxZTZiMTQxNDBjYWNiNzBhYTgxMzIxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTM1LDYgKzEz
NSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0IEF0a09iamVjdDsKICNpbmNsdWRlIDxX
ZWJLaXRBZGRpdGlvbnMvUGxhdGZvcm1HZXN0dXJlRXZlbnRNYWMuaD4KICNlbmRpZgogCisjaWYg
RU5BQkxFKE1FRElBX1VTQUdFKQorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uSWRlbnRp
Zmllci5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJEeW5hbWlj
Vmlld3BvcnRTaXplVXBkYXRlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9u
Lmg+CkBAIC0yMDgsNiArMjEyLDcgQEAgc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllcjsKIHN0
cnVjdCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyOwogc3RydWN0IEhpZ2hsaWdodDsKIHN0cnVjdCBL
ZXlwcmVzc0NvbW1hbmQ7CitzdHJ1Y3QgTWVkaWFVc2FnZUluZm87CiBzdHJ1Y3QgUHJvbWlzZWRB
dHRhY2htZW50SW5mbzsKIHN0cnVjdCBSdW5KYXZhU2NyaXB0UGFyYW1ldGVyczsKIHN0cnVjdCBU
ZXh0Q2hlY2tpbmdSZXN1bHQ7CkBAIC0xMzA3LDcgKzEzMTIsMTMgQEAgcHVibGljOgogICAgIGJv
b2wgbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9uZWVk
c0luQXBwQnJvd3NlclByaXZhY3lRdWlya3M7IH0KICAgICAKICAgICBib29sIHNob3VsZFVzZVJl
bW90ZVJlbmRlcmluZ0ZvcihXZWJDb3JlOjpSZW5kZXJpbmdQdXJwb3NlKTsKLSAgICAKKworI2lm
IEVOQUJMRShNRURJQV9VU0FHRSkKKyAgICB2b2lkIGFkZE1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lv
bihXZWJDb3JlOjpNZWRpYVNlc3Npb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBV
UkwmKTsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhVXNhZ2VNYW5hZ2VyU2Vzc2lvblN0YXRlKFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhVXNhZ2VJbmZv
Jik7CisgICAgdm9pZCByZW1vdmVNZWRpYVVzYWdlTWFuYWdlclNlc3Npb24oV2ViQ29yZTo6TWVk
aWFTZXNzaW9uSWRlbnRpZmllcik7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMDA3YTRiYWYyNjdhMzRhMzg1MTMwNTg2NmY0NmEzMzEzMDAyZmNjYi4uZmNkY2M0ZjNl
ZTdiYzdkZmM5ZjczZDdjMTVlYmQwMGZmYmE1NmNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIwLTA0LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIFttYWNPU10gVXBkYXRlIFNjcmVlblRpbWUgYXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTE4MTA5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBK
ZXIgTm9ibGUuCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXVzYWdlLXN0YXRlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0
LgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczogRGl0dG8uCisKIDIwMjAtMDQtMTQg
IERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBH
YXJkZW5pbmcsIHVwZGF0ZSBleHBlY3RhdGlvbnMgYWZ0ZXIgcjI2MDA2MgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtdXNhZ2Utc3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvbWVkaWEtdXNhZ2Utc3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
NTk4NGNjNTUxY2M0NGI1ZGZiNGU1ZTI3M2E3NmU4MjA3MTEzM2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw2NiBAQAorCitUZXN0IG1lZGlhVXNhZ2VTdGF0ZS4KKworUlVOKGludGVybmFscy5zZXRN
ZWRpYUVsZW1lbnRSZXN0cmljdGlvbnModmlkZW8sICJSZXF1aXJlVXNlckdlc3R1cmVGb3JBdWRp
b1JhdGVDaGFuZ2UsUmVxdWlyZVVzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlLFJlcXVpcmVV
c2VyR2VzdHVyZVRvQ29udHJvbENvbnRyb2xzTWFuYWdlciIpKQorRVZFTlQoY2FucGxheXRocm91
Z2gpCisKKyoqIENoZWNrIHN0YXRlIGJlZm9yZSBwbGF5YmFjay4KK0VYUEVDVEVEICh1c2FnZS5t
ZWRpYVVSTC5pbmRleE9mKCdjb250ZW50L3Rlc3QubXA0JykgPiAnLTEnKSBPSworRVhQRUNURUQg
KHVzYWdlLmlzUGxheWluZyA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmNhblNob3dD
b250cm9sc01hbmFnZXIgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5jYW5TaG93Tm93
UGxheWluZ0NvbnRyb2xzID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UuaXNTdXNwZW5k
ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5pc0luQWN0aXZlRG9jdW1lbnQgPT0g
J3RydWUnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSwor
RVhQRUNURUQgKHVzYWdlLmlzTXV0ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5p
c01lZGlhRG9jdW1lbnRJbk1haW5GcmFtZSA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdl
LmlzVmlkZW8gPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzQXVkaW8gPT0gJ2ZhbHNl
JykgT0sKK0VYUEVDVEVEICh1c2FnZS5oYXNWaWRlbyA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAo
dXNhZ2UuaGFzQXVkaW8gPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVzYWdlLmhhc1JlbmRlcmVy
ID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5hdWRpb0VsZW1lbnRXaXRoVXNlckdlc3R1
cmUgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS51c2VySGFzUGxheWVkQXVkaW9CZWZv
cmUgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5pc0VsZW1lbnRSZWN0TW9zdGx5SW5N
YWluRnJhbWUgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVzYWdlLnBsYXliYWNrUGVybWl0dGVk
ID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2UucGFnZU1lZGlhUGxheWJhY2tTdXNwZW5k
ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5pc01lZGlhRG9jdW1lbnRBbmROb3RP
d25lckVsZW1lbnQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5wYWdlRXhwbGljaXRs
eUFsbG93c0VsZW1lbnRUb0F1dG9wbGF5SW5saW5lID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAo
dXNhZ2UucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5Ob3RQ
ZXJtaXR0ZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5oYXNIYWRVc2VySW50ZXJh
Y3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9yQXJiaXRyYXJ5VXNlckdlc3R1
cmUgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5pc1ZpZGVvQW5kUmVxdWlyZXNVc2Vy
R2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodXNhZ2Uu
aXNBdWRpb0FuZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UgPT0gJ2ZhbHNl
JykgT0sKK0VYUEVDVEVEICh1c2FnZS5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZp
ZGVvRHVlVG9Mb3dQb3dlck1vZGUgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5ub1Vz
ZXJHZXN0dXJlUmVxdWlyZWQgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5yZXF1aXJl
c1BsYXliYWNrQW5kSXNOb3RQbGF5aW5nID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2Uu
aGFzRXZlck5vdGlmaWVkQWJvdXRQbGF5aW5nID09ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodXNh
Z2Uub3V0c2lkZU9mRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlz
TGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCA9PSAnZmFsc2UnKSBPSworCisqKiBNdXRlIHZpZGVv
LgorUlVOKHZpZGVvLm11dGVkID0gdHJ1ZSkKK0VYUEVDVEVEICh1c2FnZS5pc011dGVkID09ICd0
cnVlJykgT0sKKworKiogVW5tdXRlIHZpZGVvLgorUlVOKHZpZGVvLm11dGVkID0gZmFsc2UpCitF
WFBFQ1RFRCAodXNhZ2UuaXNNdXRlZCA9PSAnZmFsc2UnKSBPSworCisqKiBUcnkgdG8gcGxheSB3
aXRob3V0IHVzZXIgZ2VzdHVyZSwgc2hvdWxkIHJlamVjdCBhbmQgc3RhdGUgc2hvdWxkIG5vdCBj
aGFuZ2UuCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworRVhQRUNURUQgKHVzYWdlLmlz
UGxheWluZyA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmNhblNob3dDb250cm9sc01h
bmFnZXIgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS51c2VySGFzUGxheWVkQXVkaW9C
ZWZvcmUgPT0gJ2ZhbHNlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5wbGF5YmFja1Blcm1pdHRlZCA9
PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKHVzYWdlLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0
dXJlRm9yVmlkZW9SYXRlQ2hhbmdlID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh1c2FnZS5ub1Vz
ZXJHZXN0dXJlUmVxdWlyZWQgPT0gJ2ZhbHNlJykgT0sKKworKiogVHJ5IHRvIHBsYXkgd2l0aG91
dCB1c2VyIGdlc3R1cmUsIHNob3VsZCBzdWNjZWVkIGFuZCBzdGF0ZSBzaG91bGQgY2hhbmdlLgor
RVZFTlQocGxheWluZykKK0VYUEVDVEVEICh1c2FnZS5pc1BsYXlpbmcgPT0gJ3RydWUnKSBPSwor
RVhQRUNURUQgKHVzYWdlLmNhblNob3dDb250cm9sc01hbmFnZXIgPT0gJ3RydWUnKSBPSworRVhQ
RUNURUQgKHVzYWdlLnVzZXJIYXNQbGF5ZWRBdWRpb0JlZm9yZSA9PSAndHJ1ZScpIE9LCitFWFBF
Q1RFRCAodXNhZ2UucGxheWJhY2tQZXJtaXR0ZWQgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKHVz
YWdlLmlzVmlkZW9BbmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlID09ICdm
YWxzZScpIE9LCitFWFBFQ1RFRCAodXNhZ2Uubm9Vc2VyR2VzdHVyZVJlcXVpcmVkID09ICd0cnVl
JykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LXVzYWdlLXN0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU4MTk4YzY0MjYzZDIyOGQ0M2Q3YWRkZWYzZTU3ZjZjODBhNzI0ODYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS11c2FnZS1zdGF0ZS5o
dG1sCkBAIC0wLDAgKzEsMTA0IEBACis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9J21lZGlhLWZpbGUuanMnPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0ndmlk
ZW8tdGVzdC5qcyc+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAgICAgICAgIGxl
dCB1c2FnZTsKKyAgICAgICAgICAgIGxldCB2aWRlb1VSTDsKKworICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisKKyAgICAgICAgICAg
ICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFpbFRl
c3QoYDxicj5UaGlzIHRlc3QgcmVxdWlyZXMgaW50ZXJuYWxzIWApOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluZE1l
ZGlhRWxlbWVudCgpOworCisgICAgICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0TWVkaWFF
bGVtZW50UmVzdHJpY3Rpb25zKHZpZGVvLCAiUmVxdWlyZVVzZXJHZXN0dXJlRm9yQXVkaW9SYXRl
Q2hhbmdlLFJlcXVpcmVVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZSxSZXF1aXJlVXNlckdl
c3R1cmVUb0NvbnRyb2xDb250cm9sc01hbmFnZXIiKScpOworCisgICAgICAgICAgICAgICAgdmlk
ZW9VUkwgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKTsKKyAgICAgICAg
ICAgICAgICB2aWRlby5zcmMgPSB2aWRlb1VSTDsKKworICAgICAgICAgICAgICAgIGF3YWl0IHdh
aXRGb3IodmlkZW8sICdjYW5wbGF5dGhyb3VnaCcpOworCisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogQ2hlY2sgc3RhdGUgYmVmb3JlIHBsYXliYWNrLiIpCisgICAgICAgICAg
ICAgICAgdXNhZ2UgPSBpbnRlcm5hbHMubWVkaWFVc2FnZVN0YXRlKHZpZGVvKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoYHVzYWdlLm1lZGlhVVJMLmluZGV4T2YoJyR7dmlkZW9VUkx9
JylgLCAtMSwgJz4nKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzUGxh
eWluZycsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmNhblNo
b3dDb250cm9sc01hbmFnZXInLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCd1c2FnZS5jYW5TaG93Tm93UGxheWluZ0NvbnRyb2xzJywgZmFsc2UpOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNTdXNwZW5kZWQnLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc0luQWN0aXZlRG9jdW1lbnQnLCB0cnVlKTsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzRnVsbHNjcmVlbicsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzTXV0ZWQnLCBmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc01lZGlhRG9jdW1lbnRJbk1haW5G
cmFtZScsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzVmlk
ZW8nLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzQXVkaW8n
LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5oYXNWaWRlbycs
IHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaGFzQXVkaW8nLCB0
cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmhhc1JlbmRlcmVyJywg
dHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5hdWRpb0VsZW1lbnRX
aXRoVXNlckdlc3R1cmUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1
c2FnZS51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCd1c2FnZS5pc0VsZW1lbnRSZWN0TW9zdGx5SW5NYWluRnJhbWUnLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnBsYXliYWNrUGVybWl0dGVk
JywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UucGFnZU1lZGlh
UGxheWJhY2tTdXNwZW5kZWQnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCd1c2FnZS5pc01lZGlhRG9jdW1lbnRBbmROb3RPd25lckVsZW1lbnQnLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5wYWdlRXhwbGljaXRseUFsbG93c0VsZW1l
bnRUb0F1dG9wbGF5SW5saW5lJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndXNhZ2UucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFja0FuZEZ1bGxzY3JlZW5O
b3RQZXJtaXR0ZWQnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2Fn
ZS5oYXNIYWRVc2VySW50ZXJhY3Rpb25BbmRRdWlya3NDb250YWluc1Nob3VsZEF1dG9wbGF5Rm9y
QXJiaXRyYXJ5VXNlckdlc3R1cmUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCd1c2FnZS5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5n
ZScsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNBdWRpb0Fu
ZFJlcXVpcmVzVXNlckdlc3R1cmVGb3JBdWRpb1JhdGVDaGFuZ2UnLCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVy
ZUZvclZpZGVvRHVlVG9Mb3dQb3dlck1vZGUnLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCd1c2FnZS5ub1VzZXJHZXN0dXJlUmVxdWlyZWQnLCBmYWxzZSk7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5yZXF1aXJlc1BsYXliYWNrQW5kSXNOb3RQbGF5
aW5nJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaGFzRXZl
ck5vdGlmaWVkQWJvdXRQbGF5aW5nJywgZmFsc2UpOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgndXNhZ2Uub3V0c2lkZU9mRnVsbHNjcmVlbicsIGZhbHNlKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzTGFyZ2VFbm91Z2hGb3JNYWluQ29udGVudCcsIGZhbHNl
KTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIE11dGUgdmlkZW8uIikK
KyAgICAgICAgICAgICAgICBydW4oJ3ZpZGVvLm11dGVkID0gdHJ1ZScpOworICAgICAgICAgICAg
ICAgIHVzYWdlID0gaW50ZXJuYWxzLm1lZGlhVXNhZ2VTdGF0ZSh2aWRlbyk7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5pc011dGVkJywgdHJ1ZSk7CisKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBVbm11dGUgdmlkZW8uIikKKyAgICAgICAgICAgICAg
ICBydW4oJ3ZpZGVvLm11dGVkID0gZmFsc2UnKTsKKyAgICAgICAgICAgICAgICB1c2FnZSA9IGlu
dGVybmFscy5tZWRpYVVzYWdlU3RhdGUodmlkZW8pOworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgndXNhZ2UuaXNNdXRlZCcsIGZhbHNlKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVX
cml0ZSgiPGJyPioqIFRyeSB0byBwbGF5IHdpdGhvdXQgdXNlciBnZXN0dXJlLCBzaG91bGQgcmVq
ZWN0IGFuZCBzdGF0ZSBzaG91bGQgbm90IGNoYW5nZS4iKQorICAgICAgICAgICAgICAgIGF3YWl0
IHNob3VsZFJlamVjdCh2aWRlby5wbGF5KCkpOworCisgICAgICAgICAgICAgICAgdXNhZ2UgPSBp
bnRlcm5hbHMubWVkaWFVc2FnZVN0YXRlKHZpZGVvKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3VzYWdlLmlzUGxheWluZycsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3VzYWdlLmNhblNob3dDb250cm9sc01hbmFnZXInLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS51c2VySGFzUGxheWVkQXVkaW9CZWZvcmUnLCBmYWxz
ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5wbGF5YmFja1Blcm1pdHRl
ZCcsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLmlzVmlkZW9B
bmRSZXF1aXJlc1VzZXJHZXN0dXJlRm9yVmlkZW9SYXRlQ2hhbmdlJywgdHJ1ZSk7CisgICAgICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5ub1VzZXJHZXN0dXJlUmVxdWlyZWQnLCBmYWxz
ZSk7CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gcGxheSB3
aXRob3V0IHVzZXIgZ2VzdHVyZSwgc2hvdWxkIHN1Y2NlZWQgYW5kIHN0YXRlIHNob3VsZCBjaGFu
Z2UuIikKKyAgICAgICAgICAgICAgICBydW5XaXRoS2V5RG93bigoKSA9PiB7IAorICAgICAgICAg
ICAgICAgICAgICB2aWRlby5wbGF5KCk7IAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIGF3YWl0IHdhaXRGb3IodmlkZW8sICdwbGF5aW5nJyk7CisKKyAgICAgICAgICAgICAg
ICB1c2FnZSA9IGludGVybmFscy5tZWRpYVVzYWdlU3RhdGUodmlkZW8pOworICAgICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgndXNhZ2UuaXNQbGF5aW5nJywgdHJ1ZSk7CisgICAgICAgICAgICAg
ICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5jYW5TaG93Q29udHJvbHNNYW5hZ2VyJywgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS51c2VySGFzUGxheWVkQXVkaW9CZWZv
cmUnLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLnBsYXliYWNr
UGVybWl0dGVkJywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd1c2FnZS5p
c1ZpZGVvQW5kUmVxdWlyZXNVc2VyR2VzdHVyZUZvclZpZGVvUmF0ZUNoYW5nZScsIGZhbHNlKTsK
KyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3VzYWdlLm5vVXNlckdlc3R1cmVSZXF1aXJl
ZCcsIHRydWUpOworCisgICAgICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8
dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKyAgICAgICAgPHA+VGVzdCBtZWRpYVVzYWdlU3RhdGUu
PC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMmQ2Y2Y4MDc2NWEzM2NkNmRmZTQyZjc1ZTdlODM2NmJkMzI0Y2Yx
Ny4uMDNkNzRlMzY3MWQ4NTI2ODMyYzgwNDA4YmZkMTNlMjA4NzYyN2JiNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNjIsNiArMTE2Miw5IEBAIGZh
c3QvbGF5ZXJzL3ByZXZlbnQtaGl0LXRlc3QtZHVyaW5nLWxheW91dC5odG1sIFsgU2tpcCBdCiAj
IFRoaXMgaXMgYSBNYWMgc3BlY2lmaWMgZmVhdHVyZQogd2Via2l0Lm9yZy9iLzE2ODQ2NiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2J5cGFzc2luZy1jb3JzLWNoZWNrcy1mb3ItZXh0ZW5zaW9uLXVybHMu
aHRtbCBbIFNraXAgXQogCisjIEN1cnJlbnRseSBlbmFibGVkIG9uIE1hYyBvbmx5CittZWRpYS9t
ZWRpYS11c2FnZS1zdGF0ZS5odG1sIFsgU2tpcCBdCisKICMgTm8gc3VwcG9ydCBmb3IgV2ViR1BV
IHlldAogd2Via2l0Lm9yZy9iLzE5MTAwNSB3ZWJncHUvIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTkxMDA1IGluc3BlY3Rvci9jYW52YXMvY3JlYXRlLWNvbnRleHQtd2ViZ3B1Lmh0bWwgWyBTa2lw
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjMwNjI5
MTUzYjQ4Y2M2Zjc4ZWUwOTNiY2UxN2QyMWRjYmU5YjkyNC4uNjcwMWMwNzQ0NjZmYjc4MDY2NTMz
YzU3NjRiZmVmMzk1MzNhNDBmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTExNjYsNiArMTE2Niw5IEBAIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
Y3Vlcy1hZGRlZC1vbmNlLmh0bWwgWyBTa2lwIF0gIyBUaW1lb3V0CiAjIFNjcmVlbiBvYnNjdXJl
ZCBieSBvcGFxdWUgbGF5ZXI6CiAjbWVkaWEvdmlkZW8tZnJhbWUtYWNjdXJhdGUtc2Vlay5odG1s
IFsgRmFpbHVyZSBdCiAKKyMgQ3VycmVudGx5IGVuYWJsZWQgb24gTWFjIG9ubHkKK21lZGlhL21l
ZGlhLXVzYWdlLXN0YXRlLmh0bWwgWyBTa2lwIF0KKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgICBFbmQgTWVkaWEgRmFpbHVyZXMgICAjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhZDNmZGY1NGRjNmUwOWI0
NzdmM2M2ZmU5ZmQyMDQ1ZDE3ZjhkYmZhLi4yMTZiZDc5NzdlNzJhNTJiZDAyYmE2ZTQ1Y2Q4YTM5
Y2Q3NzVkNmFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNzM1LDYgKzczNSw5IEBAIHdlYmtpdC5vcmcvYi8yMTAyNjIgZmFzdC9zZWxlY3RvcnMvdGV4
dC1maWVsZC1zZWxlY3Rpb24tdGV4dC1zaGFkb3cuaHRtbCBbIEltYWdlCiAKIHdlYmtpdC5vcmcv
Yi8yMTAyNjMgZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9vdXQtb2YtZmxvdy1wb3NpdGlv
bmVkLWxpbmUtYnJlYWtzLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBDdXJyZW50bHkg
ZW5hYmxlZCBvbiBNYWMgb25seQorbWVkaWEvbWVkaWEtdXNhZ2Utc3RhdGUuaHRtbCBbIFNraXAg
XQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyAzLiBVTlJFU09MVkVEIFRF
U1RTCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396672</attachid>
            <date>2020-04-16 11:04:17 -0700</date>
            <delta_ts>2020-04-16 11:05:18 -0700</delta_ts>
            <desc>Follow-up Patch</desc>
            <filename>bug-210518-20200416110416.patch</filename>
            <type>text/plain</type>
            <size>1860</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDZiZjc5YWZkODc3NTdl
ZDgyNDI5MzJhODAwZTAxZmEzNmYyMjMxZC4uYmUwZjY0ODc0NGYyNzlhYmY0YmMxNTc2ZTQ4NzQz
ZWU3YjU3OWQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTE2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gVXBkYXRlIFNj
cmVlblRpbWUgYXMgcGxheWJhY2sgc3RhdGUgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNTE4CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MTE4MTA5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGb2xsb3cgdXAgdG8gcjI2MDE4MjsgUGFzcyBhIFdlYWtQdHIgaW50byBvdXIgdGFzayBx
dWV1ZSBpbiBzZXNzaW9uV2lsbEVuZFBsYXliYWNrIHJhdGhlciB0aGFuIGEgYmFyZSBwb2ludGVy
LgorCisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNz
aW9uV2lsbEVuZFBsYXliYWNrKToKKwogMjAyMC0wNC0xNSAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjYwMTAyKTogQVNTRVJUSU9OIEZB
SUxFRDogbV9hcmJpdHJhdG9ycy5jb250YWlucyhwcm94eSkgaW4gV2ViS2l0OjpTaGFyZWRBcmJp
dHJhdG9yOjplbmRSb3V0aW5nQXJiaXRyYXRpb25Gb3JBcmJpdHJhdG9yCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2EubW0KaW5kZXggNzc3ZDVkNmI3OTFkMzQ4ZDQ0MDk2MjUzODFkNGQxMzI5ZjBi
MjAzMS4uZjYxYjYyNzFjZDE2MjU2MjRmZWRjM2I4YTFiYTY0Njk5ZTBhYzJmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpAQCAtMTk0LDggKzE5NCw5IEBAIHZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNz
aW9uJiBzZXNzCiB7CiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2ls
bEVuZFBsYXliYWNrKHNlc3Npb24sIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwogCi0g
ICAgbV90YXNrUXVldWUuZW5xdWV1ZVRhc2soWyZzZXNzaW9uXSB7Ci0gICAgICAgIHNlc3Npb24u
dXBkYXRlTWVkaWFVc2FnZUlmQ2hhbmdlZCgpOworICAgIG1fdGFza1F1ZXVlLmVucXVldWVUYXNr
KFt3ZWFrU2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24pXSB7CisgICAgICAgIGlmICh3ZWFr
U2Vzc2lvbikKKyAgICAgICAgICAgIHdlYWtTZXNzaW9uLT51cGRhdGVNZWRpYVVzYWdlSWZDaGFu
Z2VkKCk7CiAgICAgfSk7CiAKICAgICBpZiAoZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZyA9
PSBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nOjpObykK
</data>
<flag name="review"
          id="412086"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>