<?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>205763</bug_id>
          
          <creation_ts>2020-01-03 18:56:17 -0800</creation_ts>
          <short_desc>[Media in GPU process] Add remote MIME type cache</short_desc>
          <delta_ts>2020-01-05 21:47:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>205123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602695</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-03 18:56:17 -0800</bug_when>
    <thetext>Add remote a MIME type cache to decrease the number of times we need to use IPC to answer questions about supported types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602697</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-03 18:56:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/58312152&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602702</commentid>
    <comment_count>2</comment_count>
      <attachid>386746</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-03 19:16:57 -0800</bug_when>
    <thetext>Created attachment 386746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602723</commentid>
    <comment_count>3</comment_count>
      <attachid>386746</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-01-03 20:23:18 -0800</bug_when>
    <thetext>Comment on attachment 386746
Patch

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

&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:91
&gt; +void MIMETypeCache::setSupportedTypes(const Vector&lt;String&gt;&amp; newTypes)

This change restores the broken naming convention and behavior you fixed in your last patch. set() should mean “set”; it doesn’t here. If a client calls add(), then set(), the expectation is that the second call replaces values added by the first. That doesn’t work here. 

Clients who would like to optimize for the case where the cache is already initialized can just do: `if(cache.isEmpty()) cache.addSupportedTypes();`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602799</commentid>
    <comment_count>4</comment_count>
      <attachid>386775</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-04 17:02:36 -0800</bug_when>
    <thetext>Created attachment 386775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602807</commentid>
    <comment_count>5</comment_count>
      <attachid>386778</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-04 18:17:25 -0800</bug_when>
    <thetext>Created attachment 386778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602820</commentid>
    <comment_count>6</comment_count>
      <attachid>386781</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-04 21:45:08 -0800</bug_when>
    <thetext>Created attachment 386781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602850</commentid>
    <comment_count>7</comment_count>
      <attachid>386789</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-05 07:47:53 -0800</bug_when>
    <thetext>Created attachment 386789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602884</commentid>
    <comment_count>8</comment_count>
      <attachid>386789</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-05 13:28:26 -0800</bug_when>
    <thetext>Comment on attachment 386789
Patch

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

&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:68
&gt; +    MediaPlayerEnums::SupportsType result = MediaPlayerEnums::SupportsType::IsNotSupported;

Can this be auto?

&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:84
&gt; +    do {
&gt; +        if (!isAvailable() || mimeType.isEmpty())
&gt; +            break;
&gt; +
&gt; +        auto contentType = ContentType { mimeType };
&gt; +        auto containerType = contentType.containerType();
&gt; +        if (!supportsContainerType(containerType))
&gt; +            break;
&gt; +
&gt; +        result = MediaPlayerEnums::SupportsType::MayBeSupported;
&gt; +        if (contentType.codecs().isEmpty())
&gt; +            break;
&gt; +
&gt; +        if (canDecodeExtendedType(contentType))
&gt; +            result = MediaPlayerEnums::SupportsType::IsSupported;
&gt; +    } while (0);

This confused me!

&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:95
&gt; +    m_supportedTypes = HashSet&lt;String, ASCIICaseInsensitiveHash&gt;();

Use { } rather than ()?

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:117
&gt; +static HashMap&lt;MediaPlayerEnums::MediaEngineIdentifier, std::unique_ptr&lt;RemoteMediaPlayerMIMETypeCache&gt;, WTF::IntHash&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;, WTF::StrongEnumHashTraits&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;&gt;&amp; mimeCaches()
&gt;  {
&gt; -// FIXME: Use parameters.mediaMIMETypes.
&gt; +    static NeverDestroyed&lt;HashMap&lt;MediaPlayerEnums::MediaEngineIdentifier, std::unique_ptr&lt;RemoteMediaPlayerMIMETypeCache&gt;, WTF::IntHash&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;, WTF::StrongEnumHashTraits&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;&gt;&gt; caches;

Could we typedef/using this thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602928</commentid>
    <comment_count>9</comment_count>
      <attachid>386789</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-05 19:50:20 -0800</bug_when>
    <thetext>Comment on attachment 386789
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:68
&gt;&gt; +    MediaPlayerEnums::SupportsType result = MediaPlayerEnums::SupportsType::IsNotSupported;
&gt; 
&gt; Can this be auto?

Yes, fixed.

&gt;&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:84
&gt;&gt; +    } while (0);
&gt; 
&gt; This confused me!

Sorry about that :-)

&gt;&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:95
&gt;&gt; +    m_supportedTypes = HashSet&lt;String, ASCIICaseInsensitiveHash&gt;();
&gt; 
&gt; Use { } rather than ()?

Good point, changed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:117
&gt;&gt; +    static NeverDestroyed&lt;HashMap&lt;MediaPlayerEnums::MediaEngineIdentifier, std::unique_ptr&lt;RemoteMediaPlayerMIMETypeCache&gt;, WTF::IntHash&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;, WTF::StrongEnumHashTraits&lt;MediaPlayerEnums::MediaEngineIdentifier&gt;&gt;&gt; caches;
&gt; 
&gt; Could we typedef/using this thing?

Yes, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602929</commentid>
    <comment_count>10</comment_count>
      <attachid>386804</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-05 19:53:07 -0800</bug_when>
    <thetext>Created attachment 386804
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602935</commentid>
    <comment_count>11</comment_count>
      <attachid>386807</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-01-05 20:39:45 -0800</bug_when>
    <thetext>Created attachment 386807
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602941</commentid>
    <comment_count>12</comment_count>
      <attachid>386807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 21:47:57 -0800</bug_when>
    <thetext>Comment on attachment 386807
Patch for landing

Clearing flags on attachment: 386807

Committed r254048: &lt;https://trac.webkit.org/changeset/254048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602942</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-05 21:47:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386746</attachid>
            <date>2020-01-03 19:16:57 -0800</date>
            <delta_ts>2020-01-04 17:02:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205763-20200103191656.patch</filename>
            <type>text/plain</type>
            <size>46722</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOThkYTFhMGIxYjY5MjNmODg4ZDExMjUyZmYyZDMz
NjYyYTA3NWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBDcmVhdGUgYSBNSU1FIHR5cGUgY2FjaGUgZm9yIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBzbyB0eXBlcyB3aXRob3V0IGEKKyAgICAgICAgJ2NvZGVjcycgcGFyYW1l
dGVyIGRvbid0IHR5cGljYWxseSByZXF1aXJlIElQQywgYW5kIHdoZW4gaXQgaXMgcmVxdWlyZWQg
dGhlCisgICAgICAgIHJlc3VsdCBpcyBjYWNoZWQgc28gaXQgaXMgb25seSByZXF1aXJlZCBvbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6
aW5pdGlhbGl6ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9y
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBh
cnNlck1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKToKKwogMjAyMC0wMS0w
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBGaXggZmFpbGluZyB0ZXh0LWluZGVudCBjYXNlcyB3aGVuIHRoZSBJRkMgcm9vdCBp
cyBhbiBhbm9ueW1vdXMgYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzMWNhMGNhZDE0NjliNTYz
OGYxMDQ2YzNiYzA2YjguLjVjNGNlNmExMGIzOTJlZjgyZDk2OWY0ZWY3YzQ4MzA4OWRhNTFmZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDEtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBB
ZGQgcmVtb3RlIE1JTUUgdHlwZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODMxMjE1
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1p
bWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRz
VHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlw
ZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdpdGgg
UnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1YThiYjM2Mjhk
YTY2N2M2MWMxMDllOTIwYmQzMjk3YTM0NjAyNi4uNzYzNTA3YzA1OTI1OTczZjhkODQ2ODQzMWEy
MjY2YWU3Yzk3YjE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKQEAgLTUzLDE2ICs1NiwzMSBAQCBib29sIE1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29u
dGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIGNvbnRhaW5lclR5cGUpCiAKIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpCiB7Ci0gICAgaWYgKCFpc0F2YWlsYWJsZSgpIHx8IG1pbWVUeXBlLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7Ci0KICAgICBpZiAobV9jYWNoZWRSZXN1bHRzKSB7CiAgICAgICAgIGF1dG8g
aXQgPSBtX2NhY2hlZFJlc3VsdHMtPmZpbmQobWltZVR5cGUpOwogICAgICAgICBpZiAoaXQgIT0g
bV9jYWNoZWRSZXN1bHRzLT5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBpdC0+dmFsdWU7CiAg
ICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBjYW5EZWNvZGVUeXBlUHJpdmF0ZShtaW1lVHlwZSk7
CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHJlc3VsdCA9IE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgZG8geworICAgICAgICBp
ZiAoIWlzQXZhaWxhYmxlKCkgfHwgbWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IENvbnRlbnRUeXBlIHsgbWltZVR5cGUg
fTsKKyAgICAgICAgYXV0byBjb250YWluZXJUeXBlID0gY29udGVudFR5cGUuY29udGFpbmVyVHlw
ZSgpOworICAgICAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBlKSkK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChjb250ZW50VHlwZS5jb2RlY3MoKS5p
c0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29udGVudFR5cGUpKQorICAgICAg
ICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRl
ZDsKKyAgICB9IHdoaWxlICgwKTsKKwogICAgIGlmICghbV9jYWNoZWRSZXN1bHRzKQogICAgICAg
ICBtX2NhY2hlZFJlc3VsdHMgPSBIYXNoTWFwPFN0cmluZywgTWVkaWFQbGF5ZXJFbnVtczo6U3Vw
cG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CiAgICAgbV9jYWNoZWRSZXN1
bHRzLT5hZGQobWltZVR5cGUsIHJlc3VsdCk7CkBAIC03MCw0MSArODgsNDQgQEAgTWVkaWFQbGF5
ZXJFbnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIG5ld1R5cGVzKQogewotICAgIEFTU0VSVChpc0F2YWlsYWJs
ZSgpICYmICFtaW1lVHlwZS5pc0VtcHR5KCkpOwotCi0gICAgYXV0byBjb250ZW50VHlwZSA9IENv
bnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKLSAgICBhdXRvIGNvbnRhaW5lclR5cGUgPSBjb250ZW50
VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgaWYgKG1fc3VwcG9ydGVkVHlwZXMpCisgICAgICAg
IHJldHVybjsKIAotICAgIGlmIChpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb250YWluZXJU
eXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7CisgICAgbV9zdXBwb3J0ZWRUeXBlcyA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CisgICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMp
CisgICAgICAgIG1fc3VwcG9ydGVkVHlwZXMtPmFkZCh0eXBlKTsKK30KIAotICAgIGlmICghc3Vw
cG9ydHNDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQotICAgICAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKK2NvbnN0IEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWND
b250YWluZXJUeXBlTGlzdCgpCit7CisgICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4g
eyB9KTsKKyAgICByZXR1cm4gY2FjaGU7Cit9CiAKLSAgICBpZiAoIWNvbnRlbnRUeXBlLmNvZGVj
cygpLmlzRW1wdHkoKSAmJiBjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29udGVudFR5cGUpKQotICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsK
K2Jvb2wgTUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3Ry
aW5nJikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICByZXR1cm4gTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6
aXNBdmFpbGFibGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE1JTUVU
eXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBl
cykKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3Rv
cmFnZSA9IHN1cHBvcnRlZFR5cGVzKCk7Ci0gICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMp
Ci0gICAgICAgIHN0b3JhZ2UuYWRkKHR5cGUpOworICAgIHJldHVybiBtX3N1cHBvcnRlZFR5cGVz
ICYmIG1fc3VwcG9ydGVkVHlwZXMtPmlzRW1wdHkoKTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hl
OjphZGRTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNo
ZTo6aW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JikKIHsKLSAgICBzdXBwb3J0ZWRUeXBlcygpLmFkZCh0eXBlKTsKIH0KIAotY29uc3QgSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIE1JTUVUeXBlQ2FjaGU6OnN0
YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0
ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJikKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBj
YWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiB7IH0pOwotICAgIHJldHVybiBjYWNoZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVU
eXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2Fj
aGUuaAppbmRleCBhNGQ3YWY5ODkxZjZkZDNjOTgxY2U3NDVjMzZiNzdiMmM1MzNiZGM0Li5kYjdj
MzdjZGYwMjU1OWU1YzhkYTJmZmY4ZDRhM2JmZTZjYjgyMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oCkBAIC0zNiw3ICszNiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFR5cGU7CiAKLWNsYXNzIE1JTUVU
eXBlQ2FjaGUgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTUlNRVR5cGVDYWNoZSB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTUlNRVR5cGVDYWNoZSgpID0gZGVm
YXVsdDsKICAgICB2aXJ0dWFsIH5NSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwpAQCAtNDQsMjIg
KzQ1LDE4IEBAIHB1YmxpYzoKICAgICBib29sIHN1cHBvcnRzQ29udGFpbmVyVHlwZShjb25zdCBT
dHJpbmcmKTsKICAgICBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlw
ZShjb25zdCBTdHJpbmcmKTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRk
U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2b2lkIGFkZFN1cHBv
cnRlZFR5cGUoY29uc3QgU3RyaW5nJik7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRl
ZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0
aWNDb250YWluZXJUeXBlTGlzdCgpOworICAgIHZpcnR1YWwgYm9vbCBpc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0F2YWlsYWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX3N1cHBvcnRlZFR5cGVzICYmICFtX3N1cHBvcnRlZFR5cGVzLT5pc0VtcHR5KCk7IH0K
KyAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVk
VHlwZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mKTsKIAotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVUeXBl
SW50ZXJuYWwoY29uc3QgQ29udGVudFR5cGUmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mKSB7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpOworICAgIHZpcnR1
YWwgYm9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0OworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0Owog
CiBwcml2YXRlOgotICAgIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBjYW5EZWNvZGVU
eXBlUHJpdmF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNh
Y2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikKKyAgICB2aXJ0
dWFsIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAg
ICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbV9z
dXBwb3J0ZWRUeXBlczsKICAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlZFJl
c3VsdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApp
bmRleCBmNTcyMDlhN2I3ZWI3NzljYmM0MWUyZGYwZjhjYTQ5ZDYwODhkNjhkLi5iYmQzZTM1MmFj
OTFiNWE5MTc0NTY5NThlODEzM2MxZjQzYjcwOTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKQEAgLTI4LDM0ICsyOCwzMiBAQAogI2lmIFBMQVRG
T1JNKENPQ09BKQogCiAjaW5jbHVkZSAiTUlNRVR5cGVDYWNoZS5oIgotI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFR5cGU7
CiAKLWNsYXNzIEFWQXNzZXRNSU1FVHlwZUNhY2hlIGZpbmFsIDogcHVibGljIE1JTUVUeXBlQ2Fj
aGUgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQVZBc3NldE1JTUVUeXBlQ2FjaGUgZmluYWwgOiBw
dWJsaWMgTUlNRVR5cGVDYWNoZSB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IEFWQXNzZXRNSU1FVHlwZUNhY2hlJiBzaW5nbGV0b24oKTsKKyAgICBzdGF0aWMgQVZBc3NldE1J
TUVUeXBlQ2FjaGUmIHNpbmdsZXRvbigpOwogCi0gICAgYm9vbCBpc0VtcHR5KCk7Ci0gICAgYm9v
bCBpc0F2YWlsYWJsZSgpIGNvbnN0OworICAgIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdCBmaW5h
bDsKIAogICAgIHVzaW5nIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgPSBzdGQ6OmZ1bmN0aW9uPHZv
aWQoY29uc3QgVmVjdG9yPFN0cmluZz4mKT47CiAgICAgdm9pZCBzZXRDYWNoZU1JTUVUeXBlc0Nh
bGxiYWNrKENhY2hlTUlNRVR5cGVzQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2NhY2hlVHlwZUNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7IH0KIAorICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpIGZp
bmFsOworICAgIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikg
ZmluYWw7CisKKyAgICB2b2lkIHNldFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikgZmluYWw7CisKIHByaXZhdGU6CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEFWQXNzZXRN
SU1FVHlwZUNhY2hlPjsKICAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKIAot
ICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0
aWNDb250YWluZXJUeXBlTGlzdCgpIGZpbmFsOwotICAgIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRh
aW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBjYW5EZWNvZGVUeXBlSW50
ZXJuYWwoY29uc3QgQ29udGVudFR5cGUmKSBmaW5hbDsKKyAgICBib29sIGNhbkRlY29kZUV4dGVu
ZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNh
Y2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CiAK
LSAgICBPcHRpb25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4g
bV9jYWNoZTsKICAgICBDYWNoZU1JTUVUeXBlc0NhbGxiYWNrIG1fY2FjaGVUeXBlQ2FsbGJhY2s7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1t
CmluZGV4IDE2MTc2YmZkNDYzMGFhOTM1NTgwMjRiY2RkZTMwOWYyYmZhMWUwZmEuLjY2ZDJiMzhm
MDAzZjNlOGE0MGE3ZjU3YjViY2UzOWMyMDlhZjViYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNh
Y2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0
ICJDb250ZW50VHlwZS5oIgogI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAj
aW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHd0Zi9I
YXNoU2V0Lmg+CiAKICNpZiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiBTT0ZUX0xJTktfRlJBTUVX
T1JLX09QVElPTkFMX1BSRUZMSUdIVChBVkZvdW5kYXRpb24pCkBAIC02MCw3ICs1OSw3IEBAIGJv
b2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKICNlbmRpZgogfQog
Ci1ib29sIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29uc3Qg
Q29udGVudFR5cGUmIHR5cGUpCitib29sIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVF
eHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxFKFZJREVP
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKQEAgLTEz
Niw2ICsxMzUsMTMgQEAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZl
SGFzaD4mIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb24KICAgICByZXR1cm4gY2FjaGU7
CiB9CiAKK3ZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFN1cHBvcnRlZFR5cGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0
ZWRUeXBlcyh0eXBlcyk7CisgICAgaWYgKG1fY2FjaGVUeXBlQ2FsbGJhY2spCisgICAgICAgIG1f
Y2FjaGVUeXBlQ2FsbGJhY2sodHlwZXMpOworfQorCiB2b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hl
Ojppbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mIGNhY2hlKQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVU
eXBlQ2FjaGUuaAppbmRleCBiOWNhNDczYTdhNjQyMjg4ZWY4ODNkMGQ1ZjgyODVlMGY0NWIzMTZm
Li5iMzUwODI1MDQ5MzM3OTE5YjlmZGYyNzcwMDM1YjMxZWJiYzVlOTcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNo
ZS5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU+OwogICAgIEFWU3RyZWFtRGF0YVBhcnNl
ck1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRl
cm5hbChjb25zdCBDb250ZW50VHlwZSYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5k
ZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2Fj
aGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlLm1tCmluZGV4IDdlMGFjMGE2MTY5MDhhMDUyNjEyYmQ5M2YyMDA4NTlm
Nzk5NWRmNDAuLjQ5MzRkNzY4NDBhNWU3Yjk3NWU5MmI2ZDUyMTZlM2I2MTFlNDUwOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZS5tbQpAQCAtNTQsNyArNTQsNyBAQCBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlJiBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKQogICAg
IHJldHVybiBjYWNoZS5nZXQoKTsKIH0KIAotYm9vbCBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlOjpjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29uc3QgQ29udGVudFR5cGUmIHR5cGUpCiti
b29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlw
ZShjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCmluZGV4IGE5ZDUwMTc2ZWNjZDMzZDBlNzU5NGI3YmJjMjE2ZTIyYjNjZDU0YjEuLmY4YmZl
Y2JmNjM5NmFkMmI3ZGIzYzY4NWFjNjlhZGI1ODJhMzg5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
LmgKQEAgLTE2NCw3ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIC8vIGVuZ2luZSBzdXBwb3J0CiAg
ICAgZnJpZW5kIGNsYXNzIE1lZGlhUGxheWVyRmFjdG9yeUFWRm91bmRhdGlvbk9iakM7CiAgICAg
c3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4mIHR5cGVzKTsKLSAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwor
ICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVj
cyhjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpOwogCiAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCmluZGV4IGIyZjNhMmFkOGJiNGFiMGNjNDA3Y2E4YTNlY2NhOWRmM2Q4NWUxOGUu
LjUxMjk0M2Y1ZTEyN2UyZDRiNzdhNTQyOTQ4YWFkMzU0M2UyMDUyZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQpAQCAtMjg5LDcgKzI4OSw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShw
YXJhbWV0ZXJzKTsKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsKICAgICB9CiAKICAgICBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNJbk1lZGlhQ2FjaGUoY29uc3Qg
U3RyaW5nJiBwYXRoKSBjb25zdCBmaW5hbApAQCAtMTYxNyw3ICsxNjE3LDcgQEAgc3RhdGljIGJv
b2wga2V5U3lzdGVtSXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiB9CiAjZW5k
aWYKIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5n
aW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkKICAgICBpZiAocGFyYW1ldGVycy5pc01lZGlhU291cmNlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tCmluZGV4IDIzYzRkNDk2MjMxOGJkNGMzOGI2ZTIyNjk1NTg4ZjhmMDcxOGZiODUu
LjMwYTIwNjUwZGMxNWQ3MDZiZTI3OTgwZjY0NTdkZGM0MmIzOTU5MmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KQEAgLTI1NCwxMCArMjU0LDYgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZShj
b24KICAgICAvLyBUaGlzIGVuZ2luZSBkb2VzIG5vdCBzdXBwb3J0IG5vbi1tZWRpYS1zb3VyY2Ug
c291cmNlcy4KICAgICBpZiAoIXBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSkKICAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwotI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0gICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkKLSAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwotI2Vu
ZGlmCiAKICAgICBhdXRvIHN1cHBvcnRlZCA9IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6Oklz
Tm90U3VwcG9ydGVkOwogICAgIGF1dG8mIHN0cmVhbURhdGFQYXJzZXJDYWNoZSA9IEFWU3RyZWFt
RGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggMDUwMzQwNGEwZjFjYjU5OTc5MWYwMDNjM2Y4NGE5NjM1MWU0ZDIw
MC4uZjNlMDAwMWFlMjc4MzU0MTE5MGMwMjYyOTRlZTIxNjlmNDk2YTZhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oPgorI2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmll
cikgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAm
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC05OCw3ICsxMDIsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGF1dG8gZW5naW5lID0gTWVkaWFQbGF5ZXI6Om1lZGlhRW5naW5l
KGVuZ2luZUlkZW50aWZpZXIpOwogICAgIGlmICghZW5naW5lKSB7CkBAIC0xMTEsNiArMTE1LDMy
IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZShNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0
KTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y2FuRGVjb2RlRXh0
ZW5kZWRUeXBlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiBtaW1lVHlwZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIHN1cHBv
cnRlZCA9IGZhbHNlOworCisgICAgc3dpdGNoIChlbmdpbmVJZGVudGlmaWVyKSB7CisgICAgY2Fz
ZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbjoK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpICE9IE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgICAgIGJyZWFrOworI2Vu
ZGlmCisKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6
QVZGb3VuZGF0aW9uTVNFOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NZWRpYVN0cmVhbToKKyAgICBjYXNlIE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uQ0Y6CisgICAgY2FzZSBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lcjoKKyAgICBj
YXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6R1N0cmVhbWVyTVNF
OgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpIb2xl
UHVuY2g6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6
Ok1lZGlhRm91bmRhdGlvbjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllcjo6TW9ja01TRToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1cHBvcnRlZCk7Cit9
CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om9yaWdpbnNJbk1lZGlhQ2Fj
aGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYmIHBhdGgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byBlbmdpbmUgPSBNZWRpYVBsYXllcjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGFlNTFmYzBjNTIwMDNlMzUwZGI1
ZGRlMmQ2NmQ4MjQ4NDM3MmU0OGMuLjUxNWQ4YjRjNTYwMWI3Y2VkM2NhOWM4MTBlYmUyYzc1NDI4
MmRlNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC03NSw3ICs3NSw4IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBNZWRpYSBwbGF5ZXIgZmFjdG9yeQogICAgIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYpPiYmKTsKLSAgICB2b2lk
IHN1cHBvcnRzVHlwZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4m
Jik7CisgICAgdm9pZCBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSk+JiYpOworICAgIHZvaWQgY2FuRGVjb2RlRXh0ZW5kZWRUeXBl
KFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVF
bmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBvcmlnaW5zSW5NZWRpYUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYp
OwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIFdhbGxUaW1lKTsKICAgICB2b2lk
IGNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgVmVjdG9yPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggNWNiZGVkNWZmZTEzZDdhZGNkMzRmMWQzOWRjNGZiNWRmZDZjNjY2ZC4u
NzE1MmE1ZjVhMmI5ZjhmMDlhMjg0Mzc1YjUwNTlmOTI3NjAzNmJlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsOCBAQCBtZXNz
YWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAg
ICBEZWxldGVNZWRpYVBsYXllcihXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQpCiAKICAgICBHZXRTdXBwb3J0ZWRUeXBlcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykgU3luY2hyb25vdXMKLSAgICBTdXBwb3J0
c1R5cGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyB0eXBlKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBzdXBwb3J0KSBTeW5jaHJvbm91cworICAgIFN1
cHBvcnRzVHlwZUFuZENvZGVjcyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+IChlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1cHBvcnQpIFN5bmNo
cm9ub3VzCisgICAgQ2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
ZmllciwgU3RyaW5nIG1pbWVUeXBlKSAtPiAoYm9vbCBzdXBwb3J0cykgU3luY2hyb25vdXMKICAg
ICBPcmlnaW5zSW5NZWRpYUNhY2hlKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5n
IHBhdGgpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5zKSBT
eW5jaHJvbm91cwogICAgIENsZWFyTWVkaWFDYWNoZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIFN0cmluZyBwYXRoLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKQogICAgIENsZWFyTWVkaWFD
YWNoZUZvck9yaWdpbnMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgcGF0aCwg
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cmlu
ZGV4IDYwMmZiNzk1YTcyYWRkYzU3ODU4NzZiZTA5NWIzZWViODlkNWU1MzguLmNhNTI2MDNlZDVi
MDdjYzFhMTA3MjE3MzZlZDQ2YzY3ODk0MTMzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTExLDYgKzUx
MSw3IEBAIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogLy9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiAvL1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWM2ZTdkNjVhZjcyMjdlZjczYWZkODI2OGZmNzFk
YjBkOGEyMTUwLi4xYjU4ODY4ZjUyZWNmNzEzMzJiOTRmOGQ0YjEyNGVhYjhmOWFlNzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0
LDYgKzg0LDggQEAKIAkJMDA1RDE1OEYxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDA1RDE1
OEUxOEU0QzRFQjAwNzM0NjE5IC8qIF9XS0ZpbmREZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTAwQjk2NjE2MThFMjRDQkEwMENFMUY4
OCAvKiBBUElGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwMEI5NjYxNTE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICov
OyB9OwogCQkwMEI5NjYxQTE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDBCOTY2MTgxOEUyNUFFMTAw
Q0UxRjg4IC8qIEZpbmRDbGllbnQuaCAqLzsgfTsKKwkJMDcwMTc4OUQyM0JBRkYzNTAwNUYwRkFB
IC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovOyB9OworCQkwNzAxNzg5RTIzQkU5Q0ZD
MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3MDE3ODlCMjNCQUUyNjEwMDVG
MEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwICovOyB9OwogCQkwNzI5
N0Y5RjFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RjlEMUMx
N0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovOyB9Owog
CQkwNzI5N0Y5RjFDMTdCQkVBMDE1RjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RjlEMUMx
N0JCRUEyMjNGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovOyB9OwogCQkwNzI5
N0ZBMzFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RkExMUMxODZB
REIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDU1LDYgKzIwNTcsOCBAQAog
CQkwMEI5NjYxNTE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmluZENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBUElGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTAwQjk2NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmluZENsaWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTgxOEUyNUFFMTAwQ0UxRjg4IC8qIEZp
bmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmluZENsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwNzAxNzg5QjIzQkFFMjYxMDA1RjBGQUEg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjVFRkFCMjM5QUUzODQwMEE1
MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDcyNUVGQUMyMzlBRTM4NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3MjVFRkFEMjM5QjAyNDUw
MEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01MTUzLDYgKzUxNTcsOCBAQAogCQkJCTA3OTIzMTMwMjM5QjNCMEMw
MDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovLAogCQkJCTA3OTIzMTM0
MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLywKIAkJCQkw
NzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAorCQkJCTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuY3BwICovLAorCQkJCTA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAv
KiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCAqLywKIAkJCQkwN0IzQjQ2RjIzQUIy
Q0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oICovLAogCQkJCTFEMzJGODlE
MjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovLAogCQkJ
CTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LywKQEAgLTEwMjU4LDYgKzEwMjY0LDcgQEAKIAkJCQkwNzkyMzE0QTIzOUNCQ0I4MDA5NTk4RTIg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAw
OTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwNzAxNzg5RDIzQkFGRjM1MDA1RjBGQUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0IzQjQ3MDIzQUIz
MDJEMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMURBNDA4OTUyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTkzNSw2
ICsxMTk0Miw3IEBACiAJCQkJMDc5MjMxNDkyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNB
QjA1MDIzQUMwMUEwMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNEIyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTA3MDE3ODlFMjNCRTlDRkMwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQzQUIwNTIy
M0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmI0ODQ0NTI0MzI1NmFmODJiNDZlYWMyMjZmNzdhMGQ5Y2YyYjY2
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgiCisKKyNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUu
aD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVU
eXBlQ2FjaGUuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OlJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyKQor
ICAgIDogbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX2VuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKK3sKK30KKworTUlNRVR5cGVDYWNoZSogUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlOjptaW1lQ2FjaGUoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9lbmdpbmVJZGVu
dGlmaWVyKSB7CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXI6OkFWRm91bmRhdGlvbjoKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgcmV0dXJuICZB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCk7CisgICAgICAgIGJyZWFrOworI2VuZGlm
CisKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZG
b3VuZGF0aW9uTVNFOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyOjpBVkZvdW5kYXRpb25NZWRpYVN0cmVhbToKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uQ0Y6CisgICAgY2FzZSBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lcjoKKyAgICBjYXNl
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6R1N0cmVhbWVyTVNFOgor
ICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpIb2xlUHVu
Y2g6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6Ok1l
ZGlhRm91bmRhdGlvbjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcjo6TW9ja01TRToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIFJlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAoreworICAgIHJldHVy
biBtaW1lQ2FjaGUoKS0+aXNBdmFpbGFibGUoKTsKK30KKworY29uc3QgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIHJldHVybiBtaW1lQ2FjaGUoKS0+
c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlw
ZSkKK3sKKyAgICByZXR1cm4gbWltZUNhY2hlKCktPmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBl
KHR5cGUpOworfQorCitib29sIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6Y2FuRGVj
b2RlRXh0ZW5kZWRUeXBlKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiB0eXBlKQoreworICAg
IGJvb2wgcmVzdWx0OworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCku
c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNv
ZGVFeHRlbmRlZFR5cGUobV9lbmdpbmVJZGVudGlmaWVyLCB0eXBlLnJhdygpKSwgTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5cGU6OlJl
cGx5KHJlc3VsdCksIDApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgUmVtb3Rl
TWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgV2Vi
Q29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBp
ZiAoIWlzQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlOjpJc05vdFN1cHBvcnRlZDsKKworICAgIGlmIChwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBjYW5EZWNv
ZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CisKKyAgICBpZiAobV9jYWNoZWRMb29rdXBz
KSB7CisgICAgICAgIGF1dG8gaXQgPSBtX2NhY2hlZExvb2t1cHMtPmZpbmQocGFyYW1ldGVycy50
eXBlLnJhdygpKTsKKyAgICAgICAgaWYgKGl0ICE9IG1fY2FjaGVkTG9va3Vwcy0+ZW5kKCkpCisg
ICAgICAgICAgICByZXR1cm4gaXQtPnZhbHVlOworICAgIH0KKworICAgIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgcmVzdWx0OworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0
aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpT
dXBwb3J0c1R5cGVBbmRDb2RlY3MobV9lbmdpbmVJZGVudGlmaWVyLCBwYXJhbWV0ZXJzKSwgTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGVBbmRDb2Rl
Y3M6OlJlcGx5KHJlc3VsdCksIDApKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKKyAgICBpZiAoIW1fY2FjaGVkTG9va3VwcykKKyAg
ICAgICAgbV9jYWNoZWRMb29rdXBzID0gSGFzaE1hcDxTdHJpbmcsIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAgIG1fY2FjaGVk
TG9va3Vwcy0+YWRkKHBhcmFtZXRlcnMudHlwZS5yYXcoKSwgcmVzdWx0KTsKKworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppbml0
aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNh
Y2hlKQoreworICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCAhaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBpZiAoIW1fbWFuYWdlci5n
cHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXMobV9lbmdpbmVJZGVudGlmaWVyKSwgTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlczo6
UmVwbHkodHlwZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiB0eXBl
IDogdHlwZXMpCisgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKKworICAgIG1pbWVDYWNoZSgpLT5z
ZXRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShHUFVf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjY2YxMzAwYThmNTg1ZmU4YmIxN2U5ZjY2ZDI0ZWEzMGYxYTViMzUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL01JTUVUeXBlQ2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVy
UHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgTWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVyczsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNSU1FVHlwZUNh
Y2hlIHsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUoUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyKTsKKworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycyYpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNBdmFpbGFibGUoKSBjb25z
dCBmaW5hbDsKKyAgICBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKSBmaW5hbDsKKyAgICBib29sIGlzVW5zdXBw
b3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgaW5pdGlh
bGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgZmlu
YWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVu
dFR5cGUmKSBmaW5hbDsKKworICAgIE1JTUVUeXBlQ2FjaGUqIG1pbWVDYWNoZSgpIGNvbnN0Owor
CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmll
cjsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlZExvb2t1
cHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5jcHAKaW5kZXggNzFiNzFiZmZhMjM4Yjk0YWIzMjNhYzQ5MWZjNjEyMDViNGI0
OGMxMi4uYTdkZWRhOThjMGE3ZjYzZjk5YjAxMDhmODViOTNiZjYwNWRjYmY2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZp
Z3VyYXRpb24uaCIKQEAgLTExMSw5ICsxMTIsMzEgQEAgY29uc3QgY2hhciogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCiAgICAgcmV0dXJuICJSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIiOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlh
bGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3N0YXRpYyBIYXNoTWFw
PE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4sIFdURjo6SW50SGFzaDxNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRz
PE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4+JiBtaW1lQ2FjaGVzKCkK
IHsKLS8vIEZJWE1FOiBVc2UgcGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcy4KKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU+LCBX
VEY6OkludEhhc2g8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyPiwgV1RG
OjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXI+Pj4gY2FjaGVzOworICAgIHJldHVybiBjYWNoZXM7Cit9CisKK1JlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZSYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0eXBlQ2FjaGUoTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIpCit7CisgICAgYXV0byYgY2FjaGVQdHIgPSBtaW1lQ2FjaGVzKCkuYWRkKHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBpZiAoIWNhY2hlUHRy
KQorICAgICAgICBjYWNoZVB0ciA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlPigqdGhpcywgcmVtb3RlRW5naW5lSWRlbnRpZmllcik7CisKKyAgICByZXR1cm4gKmNh
Y2hlUHRyOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZShj
b25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAgIFVO
VVNFRF9QQVJBTShwYXJhbWV0ZXJzKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlmIChw
YXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgdHlwZUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZG
b3VuZGF0aW9uKS5zZXRTdXBwb3J0ZWRUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsK
KyNlbmRpZgogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNl
PiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlh
UGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBy
ZW1vdGVFbmdpbmVJZGVudGlmaWVyKQpAQCAtMTU3LDEyICsxODAsMjAgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmRlbGV0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUkKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRl
ZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdp
bmVJZGVudGlmaWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
cmVzdWx0KQogewotICAgIC8vIEZJWE1FOiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBj
YWNoZSB0aGVtLgorICAgIGF1dG8mIGNhY2hlID0gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIpOworICAgIGlmICghY2FjaGUuaXNFbXB0eSgpKSB7CisgICAgICAgIHJlc3VsdCA9IEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CisgICAgICAgIGZvciAo
YXV0byYgdHlwZSA6IGNhY2hlLnN1cHBvcnRlZFR5cGVzKCkpCisgICAgICAgICAgICByZXN1bHQu
YWRkKHR5cGUpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgVmVjdG9yPFN0cmluZz4g
dHlwZXM7CiAgICAgaWYgKCFncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXMocmVtb3Rl
RW5naW5lSWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6R2V0U3VwcG9ydGVkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCkpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGNhY2hlLnNldFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKwogICAgIHJlc3VsdCA9IEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CiAgICAgZm9yIChhdXRv
JiB0eXBlIDogdHlwZXMpCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CkBAIC0xNzAsMTMgKzIw
MSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAg
Ly8gRklYTUU6IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hlIHRoZW0uCi0KLSAg
ICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3VsdDsKLSAgICBpZiAoIWdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpTdXBwb3J0c1R5cGUocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGFyYW1ldGVycyksIE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlOjpSZXBs
eShyZXN1bHQpLCAwKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gdHlwZUNh
Y2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpLnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0
ZXJzKTsKIH0KIAogYm9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lz
dGVtKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaAppbmRleCAyNDg4MTQ0MzA5NWU1MTEzMWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlLi5jNTNj
NmZkMjlmY2JhYzk0YjEzNjZhNjQ2ZWE1Nzk0ZmFmNTUzOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgU2V0dGluZ3M7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOworY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOwogY2xhc3MgV2ViUHJvY2VzczsKIAogY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtOTQsNiArOTUsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgY2xlYXJNZWRpYUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSk7CiAgICAg
dm9pZCBjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYpOwogCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlJiB0eXBlQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyKTsKKwogICAgIEhhc2hNYXA8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+PiBtX3BsYXllcnM7
CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDk3M2Y1YzQ4NmIxMmIwN2Ni
YmJhZmQ0M2IxYmMwOWRhODk1OTk3NWUuLjliZTU4NWVmZTYzMDI1NDY3ZGNhY2FhZWI4YjAzYjMx
M2QwMGFlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQpAQCAtODMwLDcgKzgzMCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6YmFja2xp
Z2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpCiAKIHZvaWQgV2ViUHJvY2Vz
czo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4gdHlwZXMpCiB7Ci0gICAg
QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVz
KTsKKyAgICBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuc2V0U3VwcG9ydGVkVHlw
ZXModHlwZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386775</attachid>
            <date>2020-01-04 17:02:36 -0800</date>
            <delta_ts>2020-01-04 18:17:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205763-20200104170235.patch</filename>
            <type>text/plain</type>
            <size>46617</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOThkYTFhMGIxYjY5MjNmODg4ZDExMjUyZmYyZDMz
NjYyYTA3NWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBDcmVhdGUgYSBNSU1FIHR5cGUgY2FjaGUgZm9yIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBzbyB0eXBlcyB3aXRob3V0IGEKKyAgICAgICAgJ2NvZGVjcycgcGFyYW1l
dGVyIGRvbid0IHR5cGljYWxseSByZXF1aXJlIElQQywgYW5kIHdoZW4gaXQgaXMgcmVxdWlyZWQg
dGhlCisgICAgICAgIHJlc3VsdCBpcyBjYWNoZWQgc28gaXQgaXMgb25seSByZXF1aXJlZCBvbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6
aW5pdGlhbGl6ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9y
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBh
cnNlck1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKToKKwogMjAyMC0wMS0w
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBGaXggZmFpbGluZyB0ZXh0LWluZGVudCBjYXNlcyB3aGVuIHRoZSBJRkMgcm9vdCBp
cyBhbiBhbm9ueW1vdXMgYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzMWNhMGNhZDE0NjliNTYz
OGYxMDQ2YzNiYzA2YjguLjVjNGNlNmExMGIzOTJlZjgyZDk2OWY0ZWY3YzQ4MzA4OWRhNTFmZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDEtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBB
ZGQgcmVtb3RlIE1JTUUgdHlwZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODMxMjE1
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1p
bWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRz
VHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlw
ZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdpdGgg
UnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1YThiYjM2Mjhk
YTY2N2M2MWMxMDllOTIwYmQzMjk3YTM0NjAyNi4uMjBkYjliMjMxOGQ2MDBlNjYyN2E1ZGFmMDcz
ZDM1MGY0MTUwZGI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKQEAgLTUzLDE2ICs1NiwzMSBAQCBib29sIE1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29u
dGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIGNvbnRhaW5lclR5cGUpCiAKIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpCiB7Ci0gICAgaWYgKCFpc0F2YWlsYWJsZSgpIHx8IG1pbWVUeXBlLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7Ci0KICAgICBpZiAobV9jYWNoZWRSZXN1bHRzKSB7CiAgICAgICAgIGF1dG8g
aXQgPSBtX2NhY2hlZFJlc3VsdHMtPmZpbmQobWltZVR5cGUpOwogICAgICAgICBpZiAoaXQgIT0g
bV9jYWNoZWRSZXN1bHRzLT5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBpdC0+dmFsdWU7CiAg
ICAgfQogCi0gICAgYXV0byByZXN1bHQgPSBjYW5EZWNvZGVUeXBlUHJpdmF0ZShtaW1lVHlwZSk7
CisgICAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHJlc3VsdCA9IE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgZG8geworICAgICAgICBp
ZiAoIWlzQXZhaWxhYmxlKCkgfHwgbWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IENvbnRlbnRUeXBlIHsgbWltZVR5cGUg
fTsKKyAgICAgICAgYXV0byBjb250YWluZXJUeXBlID0gY29udGVudFR5cGUuY29udGFpbmVyVHlw
ZSgpOworICAgICAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBlKSkK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChjb250ZW50VHlwZS5jb2RlY3MoKS5p
c0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
CisgICAgICAgIGlmIChjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29udGVudFR5cGUpKQorICAgICAg
ICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRl
ZDsKKyAgICB9IHdoaWxlICgwKTsKKwogICAgIGlmICghbV9jYWNoZWRSZXN1bHRzKQogICAgICAg
ICBtX2NhY2hlZFJlc3VsdHMgPSBIYXNoTWFwPFN0cmluZywgTWVkaWFQbGF5ZXJFbnVtczo6U3Vw
cG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CiAgICAgbV9jYWNoZWRSZXN1
bHRzLT5hZGQobWltZVR5cGUsIHJlc3VsdCk7CkBAIC03MCw0MSArODgsNDEgQEAgTWVkaWFQbGF5
ZXJFbnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1NZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIG5ld1R5cGVzKQogewotICAgIEFTU0VSVChpc0F2YWlsYWJs
ZSgpICYmICFtaW1lVHlwZS5pc0VtcHR5KCkpOwotCi0gICAgYXV0byBjb250ZW50VHlwZSA9IENv
bnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKLSAgICBhdXRvIGNvbnRhaW5lclR5cGUgPSBjb250ZW50
VHlwZS5jb250YWluZXJUeXBlKCk7Ci0KLSAgICBpZiAoaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5
cGUoY29udGFpbmVyVHlwZSkpCi0gICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBw
b3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworICAgIG1fc3VwcG9ydGVkVHlwZXMgPSBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAgIGZvciAoYXV0byYgdHlw
ZSA6IG5ld1R5cGVzKQorICAgICAgICBtX3N1cHBvcnRlZFR5cGVzLT5hZGQodHlwZSk7Cit9CiAK
LSAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBlKSkKLSAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Citj
b25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgTUlNRVR5cGVD
YWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIHN0YXRpYyBjb25zdCBhdXRv
IGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+IHsgfSk7CisgICAgcmV0dXJuIGNhY2hlOworfQogCi0gICAgaWYgKCFjb250
ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkgJiYgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnRl
bnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6
SXNTdXBwb3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJU
eXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQogCi0gICAgcmV0dXJu
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Citib29sIE1J
TUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgbmV3VHlwZXMpCitib29sIE1JTUVUeXBlQ2FjaGU6OmlzRW1wdHkoKSBjb25zdAogewot
ICAgIGF1dG8mIHN0b3JhZ2UgPSBzdXBwb3J0ZWRUeXBlcygpOwotICAgIGZvciAoYXV0byYgdHlw
ZSA6IG5ld1R5cGVzKQotICAgICAgICBzdG9yYWdlLmFkZCh0eXBlKTsKKyAgICByZXR1cm4gbV9z
dXBwb3J0ZWRUeXBlcyAmJiBtX3N1cHBvcnRlZFR5cGVzLT5pc0VtcHR5KCk7CiB9CiAKLXZvaWQg
TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit2b2lk
IE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpCiB7Ci0gICAgc3VwcG9ydGVkVHlwZXMoKS5hZGQodHlwZSk7CiB9
CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1F
VHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpCitib29sIE1JTUVUeXBlQ2FjaGU6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYpCiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsKLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0
dXJuIGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NSU1FVHlwZUNhY2hlLmgKaW5kZXggYTRkN2FmOTg5MWY2ZGQzYzk4MWNlNzQ1YzM2Yjc3YjJj
NTMzYmRjNC4uODQ3OGYxNzk4NWQxNDFlZGNiNTdjYzAyZDE5ZmUxYzVmZDNjYzM0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaApAQCAt
MzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRUeXBlOwog
Ci1jbGFzcyBNSU1FVHlwZUNhY2hlIHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIE1JTUVUeXBlQ2Fj
aGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIE1JTUVUeXBl
Q2FjaGUoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+TUlNRVR5cGVDYWNoZSgpID0gZGVmYXVs
dDsKQEAgLTQ0LDIyICs0NSwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzdXBwb3J0c0NvbnRhaW5l
clR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBl
IGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMoKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAg
dm9pZCBhZGRTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYpOwotCi0gICAgdmlydHVhbCBib29s
IGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgaXNBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgYm9vbCBpc0VtcHR5
KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiAhbV9zdXBwb3J0ZWRUeXBlcy0+
aXNFbXB0eSgpOyB9CisgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mIHN1cHBvcnRlZFR5cGVzKCk7CisgICAgdmlydHVhbCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgeyB9Ci0gICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3Qo
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdDsKKyAgICBib29sIGlzRW1w
dHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5
cGUgY2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lk
IGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYpOworICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVu
dFR5cGUmKTsKIAogICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+PiBtX3N1cHBvcnRlZFR5cGVzOwogICAgIE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5n
LCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4+IG1fY2FjaGVkUmVzdWx0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlN
RVR5cGVDYWNoZS5oCmluZGV4IGY1NzIwOWE3YjdlYjc3OWNiYzQxZTJkZjBmOGNhNDlkNjA4OGQ2
OGQuLjcwODIyMDlkZTM2ZWE0ZWNiZmVhMzg5ZmFlNmM5NGQ2Mjg4NTFjNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtMjgsMzQgKzI4LDMy
IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJNSU1FVHlwZUNhY2hlLmgiCi0j
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDb250ZW50VHlwZTsKIAotY2xhc3MgQVZBc3NldE1JTUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJs
aWMgTUlNRVR5cGVDYWNoZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBBVkFzc2V0TUlNRVR5cGVD
YWNoZSBmaW5hbCA6IHB1YmxpYyBNSU1FVHlwZUNhY2hlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgQVZBc3NldE1JTUVUeXBlQ2FjaGUmIHNpbmdsZXRvbigpOworICAgIHN0
YXRpYyBBVkFzc2V0TUlNRVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7CiAKLSAgICBib29sIGlzRW1w
dHkoKTsKLSAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0F2YWlsYWJs
ZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdXNpbmcgQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayA9IHN0
ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPjsKICAgICB2b2lkIHNldENh
Y2hlTUlNRVR5cGVzQ2FsbGJhY2soQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayYmIGNhbGxiYWNrKSB7
IG1fY2FjaGVUeXBlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCisgICAgY29uc3Qg
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5l
clR5cGVMaXN0KCkgZmluYWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShj
b25zdCBTdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0
cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwogICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlKCkg
PSBkZWZhdWx0OwogCi0gICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7Ci0gICAgYm9vbCBpc1Vu
c3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIGNh
bkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYpIGZpbmFsOworICAgIGJvb2wg
Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJikgZmluYWw7CiAgICAgdm9p
ZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mKSBmaW5hbDsKIAotICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+PiBtX2NhY2hlOwogICAgIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgbV9jYWNo
ZVR5cGVDYWxsYmFjazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1J
TUVUeXBlQ2FjaGUubW0KaW5kZXggMTYxNzZiZmQ0NjMwYWE5MzU1ODAyNGJjZGRlMzA5ZjJiZmEx
ZTBmYS4uN2MzOGIwYjg0MzRjZjU1Yzk1OTQ5MDk1OTVkNmM2NWRiMmY3ZmQwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAgLTMxLDcgKzMx
LDYgQEAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlh
U29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgot
I2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KIAogI2lmICFQTEFURk9STShNQUNDQVRBTFlTVCkKIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hUKEFWRm91bmRhdGlvbikKQEAgLTYw
LDcgKzU5LDcgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUoKSBjb25z
dAogI2VuZGlmCiB9CiAKLWJvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJ
bnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZBc3NldE1JTUVUeXBlQ2Fj
aGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKIHsKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgQVNTRVJUKGlzQXZhaWxh
YmxlKCkpOwpAQCAtMTM2LDYgKzEzNSwxMyBAQCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbgogICAg
IHJldHVybiBjYWNoZTsKIH0KIAordm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9y
dGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIE1JTUVUeXBlQ2Fj
aGU6OmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAgICBpZiAobV9jYWNoZVR5cGVDYWxsYmFj
aykKKyAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayh0eXBlcyk7Cit9CisKIHZvaWQgQVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgY2FjaGUpCiB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZG
T1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oCmluZGV4IGI5Y2E0NzNhN2E2NDIyODhlZjg4M2QwZDVm
ODI4NWUwZjQ1YjMxNmYuLmIzNTA4MjUwNDkzMzc5MTliOWZkZjI3NzAwMzViMzFlYmJjNWU5NzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQg
TmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZT47CiAgICAgQVZT
dHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKIAotICAgIGJvb2wgY2Fu
RGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikgZmluYWw7CisgICAgYm9vbCBj
YW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKSBmaW5hbDsKICAgICB2b2lk
IGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FW
U3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KaW5kZXggN2UwYWMwYTYxNjkwOGEwNTI2
MTJiZDkzZjIwMDg1OWY3OTk1ZGY0MC4uNDkzNGQ3Njg0MGE1ZTdiOTc1ZTkyYjZkNTIxNmUzYjYx
MWU0NTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCkBAIC01NCw3ICs1NCw3IEBAIEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGUmIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNp
bmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlLmdldCgpOwogfQogCi1ib29sIEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50
VHlwZSYgdHlwZSkKK2Jvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVj
b2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVOQUJMRShW
SURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYTlkNTAxNzZlY2NkMzNkMGU3NTk0YjdiYmMyMTZlMjJi
M2NkNTRiMS4uZjhiZmVjYmY2Mzk2YWQyYjdkYjNjNjg1YWM2OWFkYjU4MmEzODkzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHByaXZhdGU6CiAgICAgLy8gZW5n
aW5lIHN1cHBvcnQKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5QVZGb3VuZGF0
aW9uT2JqQzsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmlu
ZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpOwotICAgIHN0YXRpYyBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKICAg
ICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYjJmM2EyYWQ4YmI0YWIwY2M0MDdjYThhM2Vj
Y2E5ZGYzZDg1ZTE4ZS4uNTEyOTQzZjVlMTI3ZTJkNGI3N2E1NDI5NDhhYWQzNTQzZTIwNTJmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yODksNyArMjg5LDcgQEAgcHJpdmF0ZToKIAog
ICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpIGNvbnN0IGZpbmFsCiAg
ICAgewotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHBhcmFtZXRlcnMpOwog
ICAgIH0KIAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luc0luTWVk
aWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0IGZpbmFsCkBAIC0xNjE3LDcgKzE2MTcs
NyBAQCBzdGF0aWMgYm9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSkKIH0KICNlbmRpZgogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3Mo
Y29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICNpZiBF
TkFCTEUoTUVESUFfU09VUkNFKQogICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMjNjNGQ0OTYyMzE4YmQ0YzM4YjZlMjI2OTU1
ODhmOGYwNzE4ZmI4NS4uMzBhMjA2NTBkYzE1ZDcwNmJlMjc5ODBmNjQ1N2RkYzQyYjM5NTkyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjU0LDEwICsyNTQsNiBAQCBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6
c3VwcG9ydHNUeXBlKGNvbgogICAgIC8vIFRoaXMgZW5naW5lIGRvZXMgbm90IHN1cHBvcnQgbm9u
LW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlmICghcGFyYW1ldGVycy5pc01lZGlhU291cmNl
KQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0
ZWQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAocGFyYW1ldGVycy5pc01lZGlh
U3RyZWFtKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RT
dXBwb3J0ZWQ7Ci0jZW5kaWYKIAogICAgIGF1dG8gc3VwcG9ydGVkID0gTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAgICAgYXV0byYgc3RyZWFtRGF0YVBhcnNlckNh
Y2hlID0gQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCAwNTAzNDA0YTBmMWNiNTk5NzkxZjAwM2Mz
Zjg0YTk2MzUxZTRkMjAwLi5mM2UwMDAxYWUyNzgzNTQxMTkwYzAyNjI5NGVlMjE2OWY0OTZhNmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDEwIEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvVW5p
cXVlUmVmLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLX0NPTlRF
WFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NIRUNLX0JBU0UobV9wcm94aWVzLmlzVmFsaWRLZXko
aWRlbnRpZmllciksICZtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpKQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk4LDcgKzEwMiw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5nCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotdm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlKE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZUFu
ZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBlbmdpbmUgPSBNZWRpYVBsYXll
cjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmllcik7CiAgICAgaWYgKCFlbmdpbmUpIHsKQEAg
LTExMSw2ICsxMTUsMzIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3Vw
cG9ydHNUeXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICBjb21wbGV0aW9u
SGFuZGxlcihyZXN1bHQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmIG1pbWVUeXBl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CisKKyAgICBzd2l0Y2ggKGVuZ2luZUlkZW50aWZp
ZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6
QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBzdXBwb3J0ZWQgPSBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShtaW1lVHlwZSkg
IT0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKyAgICAg
ICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3RyZWFtOgorICAgIGNh
c2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25D
RjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6R1N0
cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
OjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29tcGxldGlvbkhhbmRsZXIo
c3VwcG9ydGVkKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6b3Jp
Z2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
ZW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYgcGF0aCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBhdXRvIGVuZ2luZSA9IE1lZGlhUGxheWVyOjptZWRpYUVuZ2luZShl
bmdpbmVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggYWU1MWZj
MGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0MzcyZTQ4Yy4uNTE1ZDhiNGM1NjAxYjdjZWQzY2E5
YzgxMGViZTJjNzU0MjgyZGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTc1
LDcgKzc1LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlhIHBsYXllciBmYWN0b3J5CiAgICAg
dm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+
JiYpOwotICAgIHZvaWQgc3VwcG9ydHNUeXBlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUpPiYmKTsKKyAgICB2b2lkIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4mJik7CisgICAgdm9pZCBjYW5EZWNv
ZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG9yaWdpbnNJbk1lZGlhQ2FjaGUoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbGVhck1lZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgV2FsbFRp
bWUpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1Y2JkZWQ1ZmZlMTNkN2FkY2QzNGYxZDM5ZGM0
ZmI1ZGZkNmM2NjZkLi43MTUyYTVmNWEyYjlmOGYwOWEyODQzNzViNTA1OWY5Mjc2MDM2YmVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yOCw3
ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5cGVzKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKSBTeW5jaHJvbm91
cwotICAgIFN1cHBvcnRzVHlwZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+IChlbnVtOnVpbnQ4
X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1cHBvcnQpIFN5bmNo
cm9ub3VzCisgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBDYW5EZWNvZGVFeHRlbmRlZFR5cGUoZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgbWltZVR5cGUpIC0+IChib29sIHN1cHBvcnRzKSBT
eW5jaHJvbm91cwogICAgIE9yaWdpbnNJbk1lZGlhQ2FjaGUoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyLCBTdHJpbmcgcGF0aCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+IG9yaWdpbnMpIFN5bmNocm9ub3VzCiAgICAgQ2xlYXJNZWRpYUNhY2hlKGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpCiAg
ICAgQ2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IFN0cmluZyBwYXRoLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggNjAyZmI3OTVhNzJhZGRjNTc4NTg3NmJlMDk1YjNlZWI4OWQ1ZTUz
OC4uY2E1MjYwM2VkNWIwN2NjMWExMDcyMTczNmVkNDZjNjc4OTQxMzMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC01MTEsNiArNTExLDcgQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
IC8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAogLy9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCitXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIEBuby11bmlm
eQogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKIAogV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YzZlN2Q2NWFmNzIyN2Vm
NzNhZmQ4MjY4ZmY3MWRiMGQ4YTIxNTAuLjFiNTg4NjhmNTJlY2Y3MTMzMmI5NGY4ZDRiMTI0ZWFi
OGY5YWU3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODQsNiArODQsOCBAQAogCQkwMDVEMTU4RjE4RTRDNEVCMDA3MzQ2MTkgLyog
X1dLRmluZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDBCOTY2MTYx
OEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElG
aW5kQ2xpZW50LmggKi87IH07CiAJCTAwQjk2NjFBMThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5
NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovOyB9OworCQkwNzAxNzg5RDIz
QkFGRjM1MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAxNzg5QzIzQkFFMjYy
MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi87IH07CisJCTA3
MDE3ODlFMjNCRTlDRkMwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMTc4
OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAg
Ki87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hT
YWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmgg
Ki87IH07CiAJCTA3Mjk3RkEzMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwNTUs
NiArMjA1Nyw4IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZp
bmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaW5k
Q2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYxODE4RTI1QUUx
MDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MDE3ODlCMjNC
QUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyNUVG
QUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBQzIzOUFFMzg1MDBBNTM4QTkgLyog
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
NUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTMsNiArNTE1Nyw4IEBACiAJCQkJMDc5
MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8s
CiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8q
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8sCisJCQkJMDcwMTc4OUMyM0JB
RTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovLAogCQkJ
CTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8s
CiAJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHAgKi8sCiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5oICovLApAQCAtMTAyNTgsNiArMTAyNjQsNyBAQAogCQkJCTA3OTIzMTRBMjM5
Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzky
MzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDE3ODlEMjNCQUZGMzUwMDVGMEZB
QSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKQEAgLTExOTM1LDYgKzExOTQyLDcgQEAKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4
RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMDcwMTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8qIFJlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MTIzQUMw
MUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNSU1FVHlwZUNhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjdkZDgyYjA2ZTY2N2IwMTBmNmY2ODVl
MTcwYzhmOGYwZmM4ZjY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwCkBAIC0wLDAg
KzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
UGxheWVyUHJpdmF0ZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29y
ZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlKFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbWFuYWdlciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2lu
ZUlkZW50aWZpZXIpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAsIG1fZW5naW5lSWRl
bnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQoreworfQorCitNSU1FVHlwZUNhY2hlKiBSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1pbWVDYWNoZSgpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChtX2VuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
ICAgICByZXR1cm4gJkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICAgICAg
YnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3RyZWFtOgorICAgIGNhc2Ug
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25DRjoK
KyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6R1N0cmVh
bWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpH
U3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKK3sKKyAg
ICByZXR1cm4gbWltZUNhY2hlKCktPnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCk7Cit9CisKK2Jv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVy
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIG1pbWVDYWNoZSgpLT5pc1Vu
c3VwcG9ydGVkQ29udGFpbmVyVHlwZSh0eXBlKTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBXZWJDb3JlOjpDb250
ZW50VHlwZSYgdHlwZSkKK3sKKyAgICBib29sIHJlc3VsdDsKKyAgICBpZiAoIW1fbWFuYWdlci5n
cHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6Q2FuRGVjb2RlRXh0ZW5kZWRUeXBlKG1fZW5naW5lSWRlbnRpZmllciwg
dHlwZS5yYXcoKSksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2Fu
RGVjb2RlRXh0ZW5kZWRUeXBlOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNU
eXBlQW5kQ29kZWNzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCit7CisgICAgaWYgKHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5n
SGFyZHdhcmVTdXBwb3J0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNhbkRlY29kZVR5cGUo
cGFyYW1ldGVycy50eXBlLnJhdygpKTsKKworICAgIGlmIChtX3N1cHBvcnRzVHlwZUFuZENvZGVj
c0NhY2hlKSB7CisgICAgICAgIGF1dG8gaXQgPSBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hl
LT5maW5kKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CisgICAgICAgIGlmIChpdCAhPSBtX3N1cHBv
cnRzVHlwZUFuZENvZGVjc0NhY2hlLT5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBpdC0+dmFs
dWU7CisgICAgfQorCisgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSByZXN1bHQ7CisgICAg
aWYgKCFtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlN1cHBvcnRzVHlwZUFuZENvZGVjcyhtX2Vu
Z2luZUlkZW50aWZpZXIsIHBhcmFtZXRlcnMpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OlN1cHBvcnRzVHlwZUFuZENvZGVjczo6UmVwbHkocmVzdWx0KSwgMCkpCisg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
KworICAgIGlmICghbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZSkKKyAgICAgICAgbV9zdXBw
b3J0c1R5cGVBbmRDb2RlY3NDYWNoZSA9IEhhc2hNYXA8U3RyaW5nLCBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKyAgICBtX3N1cHBv
cnRzVHlwZUFuZENvZGVjc0NhY2hlLT5hZGQocGFyYW1ldGVycy50eXBlLnJhdygpLCByZXN1bHQp
OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiYgY2FjaGUpCit7CisgICAgaWYgKCFpc0VtcHR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIGlmICghbV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlcyhtX2VuZ2luZUlkZW50aWZpZXIpLCBNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5cGVzOjpSZXBs
eSh0eXBlcyksIDApKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0
eXBlcykKKyAgICAgICAgY2FjaGUuYWRkKHR5cGUpOworCisgICAgbWltZUNhY2hlKCktPmFkZFN1
cHBvcnRlZFR5cGVzKHR5cGVzKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9D
RVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIx
ODA5OGYxZjBkYmEyZTNlYTc5NGMxMDBjM2U3MTAwOTBlMzQ2YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTUlNRVR5cGVDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2
YXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJNSU1FVHlwZUNhY2hlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGUg
eworcHVibGljOgorICAgIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZShSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIpOworCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBl
IHN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJik7CisKK3ByaXZhdGU6CisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7Cisg
ICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPiYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRUeXBlJikgZmluYWw7CisKKyAgICBNSU1FVHlwZUNhY2hlKiBtaW1l
Q2FjaGUoKSBjb25zdDsKKworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2Vy
OworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBt
X2VuZ2luZUlkZW50aWZpZXI7CisgICAgT3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
Pj4gbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA3MWI3MWJm
ZmEyMzhiOTRhYjMyM2FjNDkxZmM2MTIwNWI0YjQ4YzEyLi45NjRjZTNhMzBiMjMwM2UxMTQ2YWIz
ZjQxZDY3OGY0ODU5NjNhZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgpAQCAtMTExLDkgKzExMiwz
MyBAQCBjb25zdCBjaGFyKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBsZW1lbnROYW1l
KCkKICAgICByZXR1cm4gIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciI7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKQorc3RhdGljIEhhc2hNYXA8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlPiwgV1RGOjpJbnRIYXNoPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
cj4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyPj4mIG1pbWVDYWNoZXMoKQogewotLy8gRklYTUU6IFVzZSBwYXJhbWV0ZXJz
Lm1lZGlhTUlNRVR5cGVzLgorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4sIFdURjo6SW50SGFzaDxNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4+PiBjYWNoZXM7CisgICAgcmV0dXJu
IGNhY2hlczsKK30KKworUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikKK3sKKyAgICBhdXRvJiBjYWNoZVB0ciA9
IG1pbWVDYWNoZXMoKS5hZGQocmVtb3RlRW5naW5lSWRlbnRpZmllciwgbnVsbHB0cikuaXRlcmF0
b3ItPnZhbHVlOworICAgIGlmICghY2FjaGVQdHIpCisgICAgICAgIGNhY2hlUHRyID0gbWFrZVVu
aXF1ZTxSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU+KCp0aGlzLCByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyKTsKKworICAgIHJldHVybiAqY2FjaGVQdHI7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgVU5VU0VEX1BBUkFNKHBhcmFtZXRlcnMpOworCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBjYWNoZSA9IHR5cGVDYWNoZShN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbik7Cisg
ICAgaWYgKGNhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXMo
cGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyk7CisjZW5kaWYKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpj
cmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikKQEAgLTE1
Nyw3ICsxODIsMTMgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmRlbGV0ZVJlbW90
ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUkKIAogdm9pZCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgcmVzdWx0KQogewotICAgIC8vIEZJWE1FOiBzdXBw
b3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgorICAgIGF1dG8mIGNhY2hlID0g
dHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpOworICAgIGlmICghY2FjaGUuaXNFbXB0
eSgpKSB7CisgICAgICAgIHJlc3VsdCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+KCk7CisgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGNhY2hlLnN1cHBvcnRlZFR5
cGVzKCkpCisgICAgICAgICAgICByZXN1bHQuYWRkKHR5cGUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgaWYgKCFncHVQcm9jZXNzQ29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6R2V0U3VwcG9ydGVkVHlwZXMocmVtb3RlRW5naW5lSWRlbnRpZmllciksIE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXM6OlJlcGx5KHR5
cGVzKSwgMCkpCkBAIC0xNjYsMTcgKzE5NywxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6Z2V0U3VwcG9ydGVkVHlwZXMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZAog
ICAgIHJlc3VsdCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7
CiAgICAgZm9yIChhdXRvJiB0eXBlIDogdHlwZXMpCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7
CisgICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29k
ZWNzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQogewotICAgIC8vIEZJWE1FOiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0
aGVtLgotCi0gICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSByZXN1bHQ7Ci0gICAgaWYgKCFn
cHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhcmFt
ZXRlcnMpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlN1cHBvcnRz
VHlwZTo6UmVwbHkocmVzdWx0KSwgMCkpCi0gICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIHR5cGVDYWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyKS5zdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MocGFyYW1ldGVycyk7CiB9CiAKIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBw
b3J0c0tleVN5c3RlbShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmgKaW5kZXggMjQ4ODE0NDMwOTVlNTExMzFkZTg2NjdhZjNiNjEzMTEwZGFl
YzBkZS4uYzUzYzZmZDI5ZmNiYWM5NGIxMzY2YTY0NmVhNTc5NGZhZjU1MzliYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFNldHRpbmdzOwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK2NsYXNz
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKIGNs
YXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTk0LDYgKzk1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNsZWFyTWVkaWFDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdhbGxUaW1lIG1vZGlmaWVkU2lu
Y2UpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEhh
c2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mKTsKIAorICAgIFJlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgdHlwZUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisKICAgICBIYXNoTWFwPE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPj4g
bV9wbGF5ZXJzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA5NzNmNWM0
ODZiMTJiMDdjYmJiYWZkNDNiMWJjMDlkYTg5NTk5NzVlLi42M2ZiZWFmZjIwYzI1NzIxMDI4MDdm
ZTdiMGQ3YTRmMGQzNjZmNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTgzMCw3ICs4MzAsOSBAQCB2b2lkIFdlYlByb2Nl
c3M6OmJhY2tsaWdodExldmVsRGlkQ2hhbmdlKGZsb2F0IGJhY2tsaWdodExldmVsKQogCiB2b2lk
IFdlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+IHR5cGVz
KQogewotICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRTdXBwb3J0ZWRU
eXBlcyh0eXBlcyk7CisgICAgYXV0byYgY2FjaGUgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCk7CisgICAgaWYgKGNhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgY2FjaGUuYWRkU3Vw
cG9ydGVkVHlwZXModHlwZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386778</attachid>
            <date>2020-01-04 18:17:25 -0800</date>
            <delta_ts>2020-01-04 21:45:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205763-20200104181723.patch</filename>
            <type>text/plain</type>
            <size>46757</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOThkYTFhMGIxYjY5MjNmODg4ZDExMjUyZmYyZDMz
NjYyYTA3NWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBDcmVhdGUgYSBNSU1FIHR5cGUgY2FjaGUgZm9yIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBzbyB0eXBlcyB3aXRob3V0IGEKKyAgICAgICAgJ2NvZGVjcycgcGFyYW1l
dGVyIGRvbid0IHR5cGljYWxseSByZXF1aXJlIElQQywgYW5kIHdoZW4gaXQgaXMgcmVxdWlyZWQg
dGhlCisgICAgICAgIHJlc3VsdCBpcyBjYWNoZWQgc28gaXQgaXMgb25seSByZXF1aXJlZCBvbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6
aW5pdGlhbGl6ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9y
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBh
cnNlck1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKToKKwogMjAyMC0wMS0w
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBGaXggZmFpbGluZyB0ZXh0LWluZGVudCBjYXNlcyB3aGVuIHRoZSBJRkMgcm9vdCBp
cyBhbiBhbm9ueW1vdXMgYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzMWNhMGNhZDE0NjliNTYz
OGYxMDQ2YzNiYzA2YjguLjVjNGNlNmExMGIzOTJlZjgyZDk2OWY0ZWY3YzQ4MzA4OWRhNTFmZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDEtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBB
ZGQgcmVtb3RlIE1JTUUgdHlwZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODMxMjE1
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1p
bWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRz
VHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlw
ZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdpdGgg
UnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1YThiYjM2Mjhk
YTY2N2M2MWMxMDllOTIwYmQzMjk3YTM0NjAyNi4uMzQ5Y2Q1NjBlMzQ2MzA4ZjhhNjk0NjUwOTJl
NGRlOTNlNTVmNjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKQEAgLTUzLDcgKzU2LDcgQEAgYm9vbCBNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRh
aW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogCiBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogewotICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1lVHlwZS5pc0VtcHR5
KCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKICAgICBpZiAobV9jYWNo
ZWRSZXN1bHRzKSB7CkBAIC02Miw3ICs2NSwyNSBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeQog
ICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9
IGNhbkRlY29kZVR5cGVQcml2YXRlKG1pbWVUeXBlKTsKKyAgICBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05v
dFN1cHBvcnRlZDsKKyAgICBkbyB7CisgICAgICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1l
VHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBhdXRvIGNvbnRl
bnRUeXBlID0gQ29udGVudFR5cGUgeyBtaW1lVHlwZSB9OworICAgICAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgICAgIGlmICghc3VwcG9y
dHNDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgaWYgKGNvbnRlbnRUeXBlLmNvZGVjcygpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
cmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNhbkRlY29kZUV4
dGVuZGVkVHlwZShjb250ZW50VHlwZSkpCisgICAgICAgICAgICByZXN1bHQgPSBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkOworICAgIH0gd2hpbGUgKDApOworCiAg
ICAgaWYgKCFtX2NhY2hlZFJlc3VsdHMpCiAgICAgICAgIG1fY2FjaGVkUmVzdWx0cyA9IEhhc2hN
YXA8U3RyaW5nLCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4oKTsKICAgICBtX2NhY2hlZFJlc3VsdHMtPmFkZChtaW1lVHlwZSwgcmVzdWx0
KTsKQEAgLTcwLDQxICs5MSw0MSBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeQogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLU1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNh
Y2hlOjpjYW5EZWNvZGVUeXBlUHJpdmF0ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQordm9pZCBN
SU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbmV3
VHlwZXMpCiB7Ci0gICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkgJiYgIW1pbWVUeXBlLmlzRW1wdHko
KSk7Ci0KLSAgICBhdXRvIGNvbnRlbnRUeXBlID0gQ29udGVudFR5cGUgeyBtaW1lVHlwZSB9Owot
ICAgIGF1dG8gY29udGFpbmVyVHlwZSA9IGNvbnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKTsKLQot
ICAgIGlmIChpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBlKSkKLSAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CisgICAgbV9zdXBwb3J0ZWRUeXBlcyA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+KCk7CisgICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMpCisgICAgICAgIG1f
c3VwcG9ydGVkVHlwZXMtPmFkZCh0eXBlKTsKK30KIAotICAgIGlmICghc3VwcG9ydHNDb250YWlu
ZXJUeXBlKGNvbnRhaW5lclR5cGUpKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBl
TGlzdCgpCit7CisgICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95
ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsKKyAgICBy
ZXR1cm4gY2FjaGU7Cit9CiAKLSAgICBpZiAoIWNvbnRlbnRUeXBlLmNvZGVjcygpLmlzRW1wdHko
KSAmJiBjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29udGVudFR5cGUpKQotICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKK2Jvb2wgTUlNRVR5
cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9y
dHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUo
KSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE1JTUVUeXBlQ2FjaGU6OmFk
ZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBlcykKK2Jvb2wgTUlN
RVR5cGVDYWNoZTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3RvcmFnZSA9IHN1cHBv
cnRlZFR5cGVzKCk7Ci0gICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMpCi0gICAgICAgIHN0
b3JhZ2UuYWRkKHR5cGUpOworICAgIHJldHVybiBtX3N1cHBvcnRlZFR5cGVzICYmIG1fc3VwcG9y
dGVkVHlwZXMtPmlzRW1wdHkoKTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0
ZWRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikKIHsKLSAg
ICBzdXBwb3J0ZWRUeXBlcygpLmFkZCh0eXBlKTsKIH0KIAotY29uc3QgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5l
clR5cGVMaXN0KCkKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNv
bnN0IENvbnRlbnRUeXBlJikKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBjYWNoZSA9IG1ha2VO
ZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB7
IH0pOwotICAgIHJldHVybiBjYWNoZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaAppbmRleCBh
NGQ3YWY5ODkxZjZkZDNjOTgxY2U3NDVjMzZiNzdiMmM1MzNiZGM0Li44NDc4ZjE3OTg1ZDE0MWVk
Y2I1N2NjMDJkMTlmZTFjNWZkM2NjMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oCkBAIC0zNiw3ICszNiw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQ29udGVudFR5cGU7CiAKLWNsYXNzIE1JTUVUeXBlQ2FjaGUgewor
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgTUlNRVR5cGVDYWNoZSB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKICAgICB2
aXJ0dWFsIH5NSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwpAQCAtNDQsMjIgKzQ1LDE4IEBAIHB1
YmxpYzoKICAgICBib29sIHN1cHBvcnRzQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKTsKICAg
ICBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJp
bmcmKTsKIAotICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBz
dXBwb3J0ZWRUeXBlcygpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkU3VwcG9ydGVkVHlw
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKLSAgICB2b2lkIGFkZFN1cHBvcnRlZFR5cGUoY29u
c3QgU3RyaW5nJik7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5
cGUoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNDb250YWluZXJU
eXBlTGlzdCgpOworICAgIHZpcnR1YWwgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShj
b25zdCBTdHJpbmcmKTsKIAotICAgIHZpcnR1YWwgYm9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX3N1cHBv
cnRlZFR5cGVzICYmICFtX3N1cHBvcnRlZFR5cGVzLT5pc0VtcHR5KCk7IH0KKyAgICBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsK
IAotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29u
c3QgQ29udGVudFR5cGUmKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBpbml0
aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSB7
IH0KLSAgICB2aXJ0dWFsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiBzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpOworICAgIHZpcnR1YWwgYm9vbCBpc0F2
YWlsYWJsZSgpIGNvbnN0OworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBjYW5EZWNvZGVUeXBlUHJpdmF0ZShj
b25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jik7CisgICAgdmlydHVhbCBib29sIGNh
bkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYpOwogCiAgICAgT3B0aW9uYWw8
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1fc3VwcG9ydGVkVHlw
ZXM7CiAgICAgT3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIE1lZGlhUGxheWVyRW51bXM6OlN1cHBv
cnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbV9jYWNoZWRSZXN1bHRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKaW5kZXggZjU3MjA5
YTdiN2ViNzc5Y2JjNDFlMmRmMGY4Y2E0OWQ2MDg4ZDY4ZC4uNzA4MjIwOWRlMzZlYTRlY2JmZWEz
ODlmYWU2Yzk0ZDYyODg1MWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0
TUlNRVR5cGVDYWNoZS5oCkBAIC0yOCwzNCArMjgsMzIgQEAKICNpZiBQTEFURk9STShDT0NPQSkK
IAogI2luY2x1ZGUgIk1JTUVUeXBlQ2FjaGUuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgot
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRUeXBlOwogCi1jbGFzcyBB
VkFzc2V0TUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBNSU1FVHlwZUNhY2hlIHsKK2NsYXNz
IFdFQkNPUkVfRVhQT1JUIEFWQXNzZXRNSU1FVHlwZUNhY2hlIGZpbmFsIDogcHVibGljIE1JTUVU
eXBlQ2FjaGUgewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBBVkFzc2V0TUlN
RVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7CisgICAgc3RhdGljIEFWQXNzZXRNSU1FVHlwZUNhY2hl
JiBzaW5nbGV0b24oKTsKIAotICAgIGJvb2wgaXNFbXB0eSgpOwotICAgIGJvb2wgaXNBdmFpbGFi
bGUoKSBjb25zdDsKKyAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3QgZmluYWw7CiAKICAgICB1
c2luZyBDYWNoZU1JTUVUeXBlc0NhbGxiYWNrID0gc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+Jik+OwogICAgIHZvaWQgc2V0Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayhDYWNo
ZU1JTUVUeXBlc0NhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9jYWNoZVR5cGVDYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spOyB9CiAKKyAgICBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKSBmaW5hbDsKKyAgICBi
b29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpIGZpbmFsOworCisg
ICAgdm9pZCBhZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVkFzc2V0TUlNRVR5cGVDYWNo
ZT47CiAgICAgQVZBc3NldE1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBjb25zdCBI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVy
VHlwZUxpc3QoKSBmaW5hbDsKLSAgICBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNv
bnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0
IENvbnRlbnRUeXBlJikgZmluYWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29u
c3QgQ29udGVudFR5cGUmKSBmaW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOwogCi0gICAgT3B0aW9u
YWw8SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGU7CiAg
ICAgQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayBtX2NhY2hlVHlwZUNhbGxiYWNrOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQppbmRleCAxNjE3
NmJmZDQ2MzBhYTkzNTU4MDI0YmNkZGUzMDlmMmJmYTFlMGZhLi43YzM4YjBiODQzNGNmNTVjOTU5
NDkwOTU5NWQ2YzY1ZGIyZjdmZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFz
c2V0TUlNRVR5cGVDYWNoZS5tbQpAQCAtMzEsNyArMzEsNiBAQAogI2ltcG9ydCAiQ29udGVudFR5
cGUuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8cGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgog
CiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05B
TF9QUkVGTElHSFQoQVZGb3VuZGF0aW9uKQpAQCAtNjAsNyArNTksNyBAQCBib29sIEFWQXNzZXRN
SU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBBVkFz
c2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBl
JiB0eXBlKQorYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBl
KGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFW
Rk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7CkBAIC0xMzYsNiArMTM1LDEz
IEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVkFz
c2V0TUlNRVR5cGVDYWNoZTo6c3RhdGljQ29uCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCit2b2lk
IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdHlwZXMpCit7CisgICAgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXModHlw
ZXMpOworICAgIGlmIChtX2NhY2hlVHlwZUNhbGxiYWNrKQorICAgICAgICBtX2NhY2hlVHlwZUNh
bGxiYWNrKHR5cGVzKTsKK30KKwogdm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6
ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBjYWNoZSkK
IHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgK
aW5kZXggYjljYTQ3M2E3YTY0MjI4OGVmODgzZDBkNWY4Mjg1ZTBmNDViMzE2Zi4uYjM1MDgyNTA0
OTMzNzkxOWI5ZmRmMjc3MDAzNWIzMWViYmM1ZTk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaApAQCAtNDYs
NyArNDYsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxBVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlPjsKICAgICBBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNh
Y2hlKCkgPSBkZWZhdWx0OwogCi0gICAgYm9vbCBjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29uc3Qg
Q29udGVudFR5cGUmKSBmaW5hbDsKKyAgICBib29sIGNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25z
dCBDb250ZW50VHlwZSYpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZS5tbQppbmRleCA3ZTBhYzBhNjE2OTA4YTA1MjYxMmJkOTNmMjAwODU5Zjc5OTVkZjQwLi40
OTM0ZDc2ODQwYTVlN2I5NzVlOTJiNmQ1MjE2ZTNiNjExZTQ1MDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURh
dGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUu
bW0KQEAgLTU0LDcgKzU0LDcgQEAgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSYgQVZT
dHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gY2Fj
aGUuZ2V0KCk7CiB9CiAKLWJvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2Fu
RGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQorYm9vbCBBVlN0cmVh
bURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29u
dGVudFR5cGUmIHR5cGUpCiB7CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9O
KQogICAgIEFTU0VSVChpc0F2YWlsYWJsZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBh
OWQ1MDE3NmVjY2QzM2QwZTc1OTRiN2JiYzIxNmUyMmIzY2Q1NGIxLi5mOGJmZWNiZjYzOTZhZDJi
N2RiM2M2ODVhYzY5YWRiNTgyYTM4OTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNjQs
NyArMTY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgIGZyaWVuZCBj
bGFzcyBNZWRpYVBsYXllckZhY3RvcnlBVkZvdW5kYXRpb25PYmpDOwogICAgIHN0YXRpYyB2b2lk
IGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsK
IAogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCBiMmYzYTJhZDhiYjRhYjBjYzQwN2NhOGEzZWNjYTlkZjNkODVlMThlLi41MTI5NDNmNWUx
MjdlMmQ0Yjc3YTU0Mjk0OGFhZDM1NDNlMjA1MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
QEAgLTI4OSw3ICsyODksNyBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7
CisgICAgICAgIHJldHVybiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBw
b3J0c1R5cGVBbmRDb2RlY3MocGFyYW1ldGVycyk7CiAgICAgfQogCiAgICAgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zSW5NZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYgcGF0
aCkgY29uc3QgZmluYWwKQEAgLTE2MTcsNyArMTYxNyw3IEBAIHN0YXRpYyBib29sIGtleVN5c3Rl
bUlzU3VwcG9ydGVkKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogfQogI2VuZGlmCiAKLU1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCiAgICAg
aWYgKHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpp
bmRleCAyM2M0ZDQ5NjIzMThiZDRjMzhiNmUyMjY5NTU4OGY4ZjA3MThmYjg1Li4zMGEyMDY1MGRj
MTVkNzA2YmUyNzk4MGY2NDU3ZGRjNDJiMzk1OTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCkBAIC0yNTQsMTAgKzI1NCw2IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdXBwb3J0c1R5cGUoY29uCiAgICAgLy8g
VGhpcyBlbmdpbmUgZG9lcyBub3Qgc3VwcG9ydCBub24tbWVkaWEtc291cmNlIHNvdXJjZXMuCiAg
ICAgaWYgKCFwYXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2UpCiAgICAgICAgIHJldHVybiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKLSNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQotICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0pCi0gICAgICAgIHJldHVybiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKLSNlbmRpZgogCiAgICAg
YXV0byBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRl
ZDsKICAgICBhdXRvJiBzdHJlYW1EYXRhUGFyc2VyQ2FjaGUgPSBBVlN0cmVhbURhdGFQYXJzZXJN
SU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IDA1MDM0MDRhMGYxY2I1OTk3OTFmMDAzYzNmODRhOTYzNTFlNGQyMDAuLmYzZTAwMDFh
ZTI3ODM1NDExOTBjMDI2Mjk0ZWUyMTY5ZjQ5NmE2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcApAQCAtNDAsNiArNDAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxh
eWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KIAorI2lmIFBMQVRGT1JN
KENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaD4KKyNlbmRp
ZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0Vf
Q0hFQ0tfQkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
OTgsNyArMTAyLDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Z2V0U3Vw
cG9ydGVkVHlwZXMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmcKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OjpzdXBwb3J0c1R5cGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvIGVuZ2luZSA9IE1lZGlhUGxheWVyOjptZWRpYUVuZ2luZShlbmdpbmVJZGVu
dGlmaWVyKTsKICAgICBpZiAoIWVuZ2luZSkgewpAQCAtMTExLDYgKzExNSwzMiBAQCB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUoTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZAogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CiB9CiAKK3Zv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiYgbWltZVR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYm9vbCBzdXBwb3J0ZWQgPSBmYWxz
ZTsKKworICAgIHN3aXRjaCAoZW5naW5lSWRlbnRpZmllcikgeworICAgIGNhc2UgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb246CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgIHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5n
bGV0b24oKS5jYW5EZWNvZGVUeXBlKG1pbWVUeXBlKSAhPSBNZWRpYVBsYXllckVudW1zOjpTdXBw
b3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworICAgICAgICBicmVhazsKKyNlbmRpZgorCisgICAg
Y2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlv
bk1TRToKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6
QVZGb3VuZGF0aW9uTWVkaWFTdHJlYW06CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbkNGOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpHU3RyZWFtZXI6CisgICAgY2FzZSBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lck1TRToKKyAgICBjYXNl
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6SG9sZVB1bmNoOgorICAg
IGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNZWRpYUZvdW5k
YXRpb246CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6
Ok1vY2tNU0U6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcihzdXBwb3J0ZWQpOworfQorCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmJiBwYXRoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gZW5n
aW5lID0gTWVkaWFQbGF5ZXI6Om1lZGlhRW5naW5lKGVuZ2luZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCBhZTUxZmMwYzUyMDAzZTM1MGRiNWRkZTJkNjZkODI0
ODQzNzJlNDhjLi41MTVkOGI0YzU2MDFiN2NlZDNjYTljODEwZWJlMmM3NTQyODJkZTZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAtNzUsNyArNzUsOCBAQCBwcml2YXRlOgogCiAg
ICAgLy8gTWVkaWEgcGxheWVyIGZhY3RvcnkKICAgICB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7Ci0gICAgdm9pZCBzdXBwb3J0c1R5
cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSk+JiYpOworICAgIHZv
aWQgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUpPiYmKTsKKyAgICB2b2lkIGNhbkRlY29kZUV4dGVuZGVkVHlwZShXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwog
ICAgIHZvaWQgb3JpZ2luc0luTWVkaWFDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiYpPiYmKTsKICAgICB2b2lk
IGNsZWFyTWVkaWFDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBXYWxsVGltZSk7CiAgICAgdm9pZCBjbGVhck1lZGlh
Q2FjaGVGb3JPcmlnaW5zKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiYsIFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDVjYmRlZDVmZmUxM2Q3YWRjZDM0ZjFkMzlkYzRmYjVkZmQ2YzY2NmQuLjcxNTJhNWY1YTJi
OWY4ZjA5YTI4NDM3NWI1MDU5ZjkyNzYwMzZiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDggQEAgbWVzc2FnZXMgLT4gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRGVsZXRlTWVk
aWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkKQog
CiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSAtPiAo
VmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCi0gICAgU3VwcG9ydHNUeXBlKGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBTdXBwb3J0c1R5cGVB
bmRDb2RlY3MoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyB0eXBlKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBzdXBwb3J0KSBTeW5jaHJvbm91cworICAg
IENhbkRlY29kZUV4dGVuZGVkVHlwZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIFN0cmlu
ZyBtaW1lVHlwZSkgLT4gKGJvb2wgc3VwcG9ydHMpIFN5bmNocm9ub3VzCiAgICAgT3JpZ2luc0lu
TWVkaWFDYWNoZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIFN0cmluZyBwYXRoKSAtPiAo
VmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgU3luY2hyb25vdXMK
ICAgICBDbGVhck1lZGlhQ2FjaGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcg
cGF0aCwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKICAgICBDbGVhck1lZGlhQ2FjaGVGb3JPcmln
aW5zKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2MDJmYjc5
NWE3MmFkZGM1Nzg1ODc2YmUwOTViM2VlYjg5ZDVlNTM4Li5jYTUyNjAzZWQ1YjA3Y2MxYTEwNzIx
NzM2ZWQ0NmM2Nzg5NDEzMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTUxMSw2ICs1MTEsNyBAQCBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAogLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKK1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0dQVS93ZWJydGMv
TGliV2ViUlRDQ29kZWNzLmNwcAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYTVjNmU3ZDY1YWY3MjI3ZWY3M2FmZDgyNjhmZjcxZGIwZDhhMjE1MC4u
MWI1ODg2OGY1MmVjZjcxMzMyYjk0ZjhkNGIxMjRlYWI4ZjlhZTc1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04NCw2ICs4NCw4IEBA
CiAJCTAwNUQxNThGMThFNEM0RUIwMDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwNUQxNThFMThFNEM0RUIw
MDczNDYxOSAvKiBfV0tGaW5kRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwMEI5NjYxNjE4RTI0Q0JBMDBDRTFGODggLyogQVBJRmlu
ZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDBCOTY2MTUxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCAqLzsgfTsKIAkJMDBC
OTY2MUExOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBG
aW5kQ2xpZW50LmggKi87IH07CisJCTA3MDE3ODlEMjNCQUZGMzUwMDVGMEZBQSAvKiBSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDA3MDE3ODlDMjNCQUUyNjIwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuaCAqLzsgfTsKKwkJMDcwMTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8q
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAxNzg5QjIzQkFFMjYxMDA1RjBGQUEgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCAqLzsgfTsKIAkJMDcyOTdGOUYxQzE3QkJF
QTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0Y5RDFDMTdCQkVBMDAzRjA3
MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCAqLzsgfTsKIAkJMDcyOTdGOUYx
QzE3QkJFQTAxNUYwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3
MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCAqLzsgfTsKIAkJMDcyOTdGQTMxQzE4NkFE
QjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0ZBMTFDMTg2QURCMDAzRjA3MzUg
LyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA1NSw2ICsyMDU3LDggQEAKIAkJMDBCOTY2MTUx
OEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQVBJRmluZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwMEI5NjYxNzE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbmRDbGllbnQubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTAwQjk2NjE4MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbmRDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
NzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBQjIzOUFFMzg0MDBBNTM4QTkgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA3MjVFRkFDMjM5QUUzODUwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyog
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTE1Myw2ICs1MTU3LDggQEAKIAkJCQkwNzkyMzEzMDIzOUIzQjBDMDA5NTk4RTIgLyog
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzkyMzEzNDIzOUIzQjBDMDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc5MjMxMzMyMzlC
M0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
KwkJCQkwNzAxNzg5QjIzQkFFMjYxMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmNwcCAqLywKKwkJCQkwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi8sCiAJCQkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEy
IC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLywKIAkJCQkxRDMyRjg5RDIzQTg0QzVCMDBC
MUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLywKIAkJCQkxRDMyRjg5QjIz
QTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8sCkBAIC0xMDI1
OCw2ICsxMDI2NCw3IEBACiAJCQkJMDc5MjMxNEEyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5
MjMxNEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTQ4MjM5Q0JDQjgwMDk1OThFMiAvKiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMDcwMTc4OUQyM0JBRkYzNTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlN
RVR5cGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdCM0I0NzAyM0FCMzAyRDAwQkE1QjEy
IC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFEQTQwODk1
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTE5MzUsNiArMTE5NDIsNyBA
QAogCQkJCTA3OTIzMTQ5MjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUQzQUIwNTAyM0FDMDFB
MDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OTIzMTRCMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwNzAxNzg5
RTIzQkU5Q0ZDMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUxMjNBQzAxQUEwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUyMjNBQzAxQUUwMDVD
MUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FC
MDUzMjNBQzAxQjMwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk3YjdlY2E5OGQ4ZmZkNDFkZjU1M2M2YmQwMGVmNDJkMTNiMmU1Y2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllcikKKyAgICA6IG1fbWFu
YWdlcihtYW5hZ2VyKQorICAgICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIp
Cit7Cit9CisKK01JTUVUeXBlQ2FjaGUqIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6
bWltZUNhY2hlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fZW5naW5lSWRlbnRpZmllcikgewor
ICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5k
YXRpb246CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHJldHVybiAmQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgICAgICBicmVhazsKKyNlbmRpZgorCisgICAgY2Fz
ZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1T
RToKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZG
b3VuZGF0aW9uTWVkaWFTdHJlYW06CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbkNGOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpHU3RyZWFtZXI6CisgICAgY2FzZSBNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lck1TRToKKyAgICBjYXNlIE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6SG9sZVB1bmNoOgorICAgIGNh
c2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNZWRpYUZvdW5kYXRp
b246CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6Ok1v
Y2tNU0U6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworY29uc3QgSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6
c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIHJldHVybiBtaW1lQ2FjaGUoKS0+c3Rh
dGljQ29udGFpbmVyVHlwZUxpc3QoKTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
K3sKKyAgICByZXR1cm4gbWltZUNhY2hlKCktPmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKHR5
cGUpOworfQorCitib29sIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2Rl
RXh0ZW5kZWRUeXBlKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiB0eXBlKQoreworICAgIGJv
b2wgcmVzdWx0OworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVF
eHRlbmRlZFR5cGUobV9lbmdpbmVJZGVudGlmaWVyLCB0eXBlLnJhdygpKSwgTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5cGU6OlJlcGx5
KHJlc3VsdCksIDApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgV2ViQ29y
ZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAo
cGFyYW1ldGVycy50eXBlLnJhdygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisKKyAgICBpZiAocGFyYW1l
dGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOworCisgICAg
aWYgKG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUpIHsKKyAgICAgICAgYXV0byBpdCA9IG1f
c3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmZpbmQocGFyYW1ldGVycy50eXBlLnJhdygpKTsK
KyAgICAgICAgaWYgKGl0ICE9IG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmVuZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICB9CisKKyAgICBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIHJlc3VsdDsKKyAgICBpZiAoIW1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6
U3VwcG9ydHNUeXBlQW5kQ29kZWNzKG1fZW5naW5lSWRlbnRpZmllciwgcGFyYW1ldGVycyksIE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlQW5kQ29k
ZWNzOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworCisgICAgaWYgKCFtX3N1cHBvcnRzVHlwZUFuZENv
ZGVjc0NhY2hlKQorICAgICAgICBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlID0gSGFzaE1h
cDxTdHJpbmcsIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5z
aXRpdmVIYXNoPigpOworICAgIG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmFkZChwYXJh
bWV0ZXJzLnR5cGUucmF3KCksIHJlc3VsdCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2
b2lkIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6ZUNhY2hlKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBjYWNoZSkKK3sKKyAgICBpZiAo
IWlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7
CisgICAgaWYgKCFtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5cGVzKG1f
ZW5naW5lSWRlbnRpZmllciksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6R2V0U3VwcG9ydGVkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGZvciAoYXV0byYgdHlwZSA6IHR5cGVzKQorICAgICAgICBjYWNoZS5hZGQodHlwZSk7
CisKKyAgICBtaW1lQ2FjaGUoKS0+YWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOworfQorCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjE4MDk4ZjFmMGRiYTJlM2VhNzk0YzEwMGMzZTcxMDA5
MGUzNDZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZUNhY2hlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
c3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6TUlNRVR5cGVDYWNoZSB7CitwdWJsaWM6CisgICAgUmVtb3RlTWVkaWFQbGF5
ZXJNSU1FVHlwZUNhY2hlKFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisKKyAgICBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IFdl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKworcHJpdmF0ZToKKyAgICBj
b25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29u
dGFpbmVyVHlwZUxpc3QoKSBmaW5hbDsKKyAgICBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJU
eXBlKGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CisgICAgYm9vbCBj
YW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmKSBmaW5hbDsK
KworICAgIE1JTUVUeXBlQ2FjaGUqIG1pbWVDYWNoZSgpIGNvbnN0OworCisgICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKKyAgICBPcHRpb25h
bDxIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBl
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuY3BwCmluZGV4IDcxYjcxYmZmYTIzOGI5NGFiMzIzYWM0OTFmYzYxMjA1YjRiNDhj
MTIuLjk2NGNlM2EzMGIyMzAzZTExNDZhYjNmNDFkNjc4ZjQ4NTk2M2FkMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmgiCkBAIC0xMTEsOSArMTEyLDMzIEBAIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyIjsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxp
emUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCitzdGF0aWMgSGFzaE1hcDxN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU+LCBXVEY6OkludEhhc2g8TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+PiYgbWltZUNhY2hlcygpCiB7
Ci0vLyBGSVhNRTogVXNlIHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuCisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlPiwgV1RG
OjpJbnRIYXNoPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4sIFdURjo6
U3Ryb25nRW51bUhhc2hUcmFpdHM8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyPj4+IGNhY2hlczsKKyAgICByZXR1cm4gY2FjaGVzOworfQorCitSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUmIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dHlwZUNhY2hlKE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
KQoreworICAgIGF1dG8mIGNhY2hlUHRyID0gbWltZUNhY2hlcygpLmFkZChyZW1vdGVFbmdpbmVJ
ZGVudGlmaWVyLCBudWxscHRyKS5pdGVyYXRvci0+dmFsdWU7CisgICAgaWYgKCFjYWNoZVB0cikK
KyAgICAgICAgY2FjaGVQdHIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZT4oKnRoaXMsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpOworCisgICAgcmV0dXJuICpjYWNo
ZVB0cjsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBVTlVT
RURfUEFSQU0ocGFyYW1ldGVycyk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAocGFy
YW1ldGVycy5tZWRpYU1JTUVUeXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8mIGNhY2hlID0gdHlwZUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcjo6QVZGb3VuZGF0aW9uKTsKKyAgICBpZiAoY2FjaGUuaXNFbXB0eSgpKQorICAgICAg
ICBjYWNoZS5hZGRTdXBwb3J0ZWRUeXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKKyNl
bmRpZgogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxh
eWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyKQpAQCAtMTU3LDcgKzE4MiwxMyBAQCB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlk
ZW50aWZpZXIsIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiByZXN1
bHQpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hl
IHRoZW0uCisgICAgYXV0byYgY2FjaGUgPSB0eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmll
cik7CisgICAgaWYgKCFjYWNoZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgcmVzdWx0ID0gSGFzaFNl
dDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKyAgICAgICAgZm9yIChhdXRv
JiB0eXBlIDogY2FjaGUuc3VwcG9ydGVkVHlwZXMoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hZGQo
dHlwZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBl
czsKICAgICBpZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlcyhyZW1vdGVFbmdp
bmVJZGVudGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpH
ZXRTdXBwb3J0ZWRUeXBlczo6UmVwbHkodHlwZXMpLCAwKSkKQEAgLTE2NiwxNyArMTk3LDEyIEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgcmVzdWx0ID0gSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKICAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykK
ICAgICAgICAgcmVzdWx0LmFkZCh0eXBlKTsKKyAgICBjYWNoZS5hZGRTdXBwb3J0ZWRUeXBlcyh0
eXBlcyk7CiB9CiAKIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnRlZCB0
eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hlIHRoZW0uCi0KLSAgICBNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlIHJlc3VsdDsKLSAgICBpZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGUocmVt
b3RlRW5naW5lSWRlbnRpZmllciwgcGFyYW1ldGVycyksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlOjpSZXBseShyZXN1bHQpLCAwKSkKLSAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwotCi0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIpLnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsKIH0KIAogYm9vbCBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lzdGVtKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCAyNDg4MTQ0MzA5
NWU1MTEzMWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlLi5jNTNjNmZkMjlmY2JhYzk0YjEzNjZhNjQ2
ZWE1Nzk0ZmFmNTUzOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTQ0LDYgKzQ0
LDcgQEAgY2xhc3MgU2V0dGluZ3M7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlOworY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
OwogY2xhc3MgV2ViUHJvY2VzczsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIDog
cHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIg
ewpAQCAtOTQsNiArOTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlKFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSk7CiAgICAgdm9pZCBjbGVhck1lZGlhQ2FjaGVG
b3JPcmlnaW5zKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgY29uc3QgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+PiYpOwogCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiB0eXBlQ2Fj
aGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKKwog
ICAgIEhhc2hNYXA8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2Vha1B0cjxN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU+PiBtX3BsYXllcnM7CiAgICAgV2ViUHJvY2VzcyYgbV9w
cm9jZXNzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCmluZGV4IDk3M2Y1YzQ4NmIxMmIwN2NiYmJhZmQ0M2IxYmMwOWRhODk1OTk3
NWUuLjYzZmJlYWZmMjBjMjU3MjEwMjgwN2ZlN2IwZDdhNGYwZDM2NmY3NjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtODMw
LDcgKzgzMCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6YmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxv
YXQgYmFja2xpZ2h0TGV2ZWwpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4gdHlwZXMpCiB7Ci0gICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnNpbmdsZXRvbigpLmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAgICBhdXRvJiBjYWNoZSA9
IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoY2FjaGUuaXNFbXB0
eSgpKQorICAgICAgICBjYWNoZS5hZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386781</attachid>
            <date>2020-01-04 21:45:08 -0800</date>
            <delta_ts>2020-01-05 07:47:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205763-20200104214506.patch</filename>
            <type>text/plain</type>
            <size>46737</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOThkYTFhMGIxYjY5MjNmODg4ZDExMjUyZmYyZDMz
NjYyYTA3NWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBDcmVhdGUgYSBNSU1FIHR5cGUgY2FjaGUgZm9yIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBzbyB0eXBlcyB3aXRob3V0IGEKKyAgICAgICAgJ2NvZGVjcycgcGFyYW1l
dGVyIGRvbid0IHR5cGljYWxseSByZXF1aXJlIElQQywgYW5kIHdoZW4gaXQgaXMgcmVxdWlyZWQg
dGhlCisgICAgICAgIHJlc3VsdCBpcyBjYWNoZWQgc28gaXQgaXMgb25seSByZXF1aXJlZCBvbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6
aW5pdGlhbGl6ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9y
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBh
cnNlck1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKToKKwogMjAyMC0wMS0w
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBGaXggZmFpbGluZyB0ZXh0LWluZGVudCBjYXNlcyB3aGVuIHRoZSBJRkMgcm9vdCBp
cyBhbiBhbm9ueW1vdXMgYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzMWNhMGNhZDE0NjliNTYz
OGYxMDQ2YzNiYzA2YjguLjVjNGNlNmExMGIzOTJlZjgyZDk2OWY0ZWY3YzQ4MzA4OWRhNTFmZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDEtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBB
ZGQgcmVtb3RlIE1JTUUgdHlwZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODMxMjE1
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1p
bWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRz
VHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlw
ZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdpdGgg
UnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1YThiYjM2Mjhk
YTY2N2M2MWMxMDllOTIwYmQzMjk3YTM0NjAyNi4uN2NhYWRhZGYwODVlZjUxNjU5YjZlMDgwNjYy
MjliODMzNmMyMDZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKQEAgLTUzLDcgKzU2LDcgQEAgYm9vbCBNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRh
aW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogCiBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogewotICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1lVHlwZS5pc0VtcHR5
KCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKICAgICBpZiAobV9jYWNo
ZWRSZXN1bHRzKSB7CkBAIC02Miw3ICs2NSwyNCBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeQog
ICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9
IGNhbkRlY29kZVR5cGVQcml2YXRlKG1pbWVUeXBlKTsKKyAgICBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05v
dFN1cHBvcnRlZDsKKyAgICBkbyB7CisgICAgICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1l
VHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBhdXRvIGNvbnRl
bnRUeXBlID0gQ29udGVudFR5cGUgeyBtaW1lVHlwZSB9OworICAgICAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgICAgIGlmICghc3VwcG9y
dHNDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBv
cnRlZDsKKyAgICAgICAgaWYgKGNvbnRlbnRUeXBlLmNvZGVjcygpLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29udGVu
dFR5cGUpKQorICAgICAgICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpJc1N1cHBvcnRlZDsKKyAgICB9IHdoaWxlICgwKTsKKwogICAgIGlmICghbV9jYWNoZWRS
ZXN1bHRzKQogICAgICAgICBtX2NhY2hlZFJlc3VsdHMgPSBIYXNoTWFwPFN0cmluZywgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CiAg
ICAgbV9jYWNoZWRSZXN1bHRzLT5hZGQobWltZVR5cGUsIHJlc3VsdCk7CkBAIC03MCw0MSArOTAs
NDEgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1N
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlw
ZVByaXZhdGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6YWRk
U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG5ld1R5cGVzKQogewotICAgIEFT
U0VSVChpc0F2YWlsYWJsZSgpICYmICFtaW1lVHlwZS5pc0VtcHR5KCkpOwotCi0gICAgYXV0byBj
b250ZW50VHlwZSA9IENvbnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKLSAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7Ci0KLSAgICBpZiAoaXNVbnN1cHBv
cnRlZENvbnRhaW5lclR5cGUoY29udGFpbmVyVHlwZSkpCi0gICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworICAgIG1fc3VwcG9ydGVk
VHlwZXMgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAg
IGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQorICAgICAgICBtX3N1cHBvcnRlZFR5cGVzLT5h
ZGQodHlwZSk7Cit9CiAKLSAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShjb250YWluZXJU
eXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7Citjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIHN0
YXRpYyBjb25zdCBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHsgfSk7CisgICAgcmV0dXJuIGNhY2hlOworfQog
Ci0gICAgaWYgKCFjb250ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkgJiYgY2FuRGVjb2RlVHlw
ZUludGVybmFsKGNvbnRlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBw
b3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQogCi0gICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBw
b3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgbmV3VHlwZXMpCitib29sIE1JTUVUeXBlQ2FjaGU6OmlzRW1w
dHkoKSBjb25zdAogewotICAgIGF1dG8mIHN0b3JhZ2UgPSBzdXBwb3J0ZWRUeXBlcygpOwotICAg
IGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQotICAgICAgICBzdG9yYWdlLmFkZCh0eXBlKTsK
KyAgICByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiBtX3N1cHBvcnRlZFR5cGVzLT5pc0VtcHR5
KCk7CiB9CiAKLXZvaWQgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUpCit2b2lkIE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpCiB7Ci0gICAgc3VwcG9ydGVkVHlwZXMo
KS5hZGQodHlwZSk7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpCitib29s
IE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsKLSAgICByZXR1cm4g
Y2FjaGU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKaW5kZXggYTRkN2FmOTg5MWY2ZGQzYzk4
MWNlNzQ1YzM2Yjc3YjJjNTMzYmRjNC4uODQ3OGYxNzk4NWQxNDFlZGNiNTdjYzAyZDE5ZmUxYzVm
ZDNjYzM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlN
RVR5cGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVU
eXBlQ2FjaGUuaApAQCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvbnRlbnRUeXBlOwogCi1jbGFzcyBNSU1FVHlwZUNhY2hlIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIE1JTUVUeXBlQ2FjaGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIE1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+TUlNRVR5cGVD
YWNoZSgpID0gZGVmYXVsdDsKQEAgLTQ0LDIyICs0NSwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBz
dXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgTWVkaWFQbGF5ZXJFbnVt
czo6U3VwcG9ydHNUeXBlIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMoKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7Ci0gICAgdm9pZCBhZGRTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYpOwotCi0g
ICAgdmlydHVhbCBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiAhbV9z
dXBwb3J0ZWRUeXBlcy0+aXNFbXB0eSgpOyB9CisgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKCk7CisgICAgdmlydHVhbCB2b2lkIGFk
ZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKLXByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgeyB9Ci0gICAgdmlydHVhbCBj
b25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29u
dGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdDsK
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpOworICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5
cGUoY29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX3N1cHBvcnRlZFR5cGVzOwogICAgIE9wdGlvbmFs
PEhhc2hNYXA8U3RyaW5nLCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGVkUmVzdWx0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlw
ZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmluZGV4IGY1NzIwOWE3YjdlYjc3OWNiYzQxZTJk
ZjBmOGNhNDlkNjA4OGQ2OGQuLjcwODIyMDlkZTM2ZWE0ZWNiZmVhMzg5ZmFlNmM5NGQ2Mjg4NTFj
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApA
QCAtMjgsMzQgKzI4LDMyIEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJNSU1F
VHlwZUNhY2hlLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIAotY2xhc3MgQVZBc3NldE1JTUVUeXBlQ2Fj
aGUgZmluYWwgOiBwdWJsaWMgTUlNRVR5cGVDYWNoZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBB
VkFzc2V0TUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBNSU1FVHlwZUNhY2hlIHsKIHB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVZBc3NldE1JTUVUeXBlQ2FjaGUmIHNpbmds
ZXRvbigpOworICAgIHN0YXRpYyBBVkFzc2V0TUlNRVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7CiAK
LSAgICBib29sIGlzRW1wdHkoKTsKLSAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdXNpbmcgQ2FjaGVNSU1FVHlw
ZXNDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPjsK
ICAgICB2b2lkIHNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2soQ2FjaGVNSU1FVHlwZXNDYWxsYmFj
ayYmIGNhbGxiYWNrKSB7IG1fY2FjaGVUeXBlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsg
fQogCisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVk
Q29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQgYWRkU3VwcG9y
dGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBm
cmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwogICAgIEFWQXNzZXRN
SU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7
Ci0gICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYpIGZp
bmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJikg
ZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAotICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlOwogICAgIENhY2hlTUlNRVR5cGVz
Q2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlw
ZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggMTYxNzZiZmQ0NjMwYWE5MzU1ODAy
NGJjZGRlMzA5ZjJiZmExZTBmYS4uN2MzOGIwYjg0MzRjZjU1Yzk1OTQ5MDk1OTVkNmM2NWRiMmY3
ZmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUu
bW0KQEAgLTMxLDcgKzMxLDYgQEAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0IDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5oPgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KIAogI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hUKEFWRm91
bmRhdGlvbikKQEAgLTYwLDcgKzU5LDcgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNB
dmFpbGFibGUoKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OmNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
QVNTRVJUKGlzQXZhaWxhYmxlKCkpOwpAQCAtMTM2LDYgKzEzNSwxMyBAQCBjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnN0YXRpY0NvbgogICAgIHJldHVybiBjYWNoZTsKIH0KIAordm9pZCBBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQorewor
ICAgIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAgICBpZiAobV9j
YWNoZVR5cGVDYWxsYmFjaykKKyAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayh0eXBlcyk7Cit9
CisKIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY2FjaGUpCiB7CiAjaWYgRU5BQkxFKFZJ
REVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5
cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oCmluZGV4IGI5Y2E0NzNhN2E2
NDIyODhlZjg4M2QwZDVmODI4NWUwZjQ1YjMxNmYuLmIzNTA4MjUwNDkzMzc5MTliOWZkZjI3NzAw
MzViMzFlYmJjNWU5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0
ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZT47CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsK
IAotICAgIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikgZmlu
YWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKSBm
aW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KaW5kZXggN2Uw
YWMwYTYxNjkwOGEwNTI2MTJiZDkzZjIwMDg1OWY3OTk1ZGY0MC4uNDkzNGQ3Njg0MGE1ZTdiOTc1
ZTkyYjZkNTIxNmUzYjYxMWU0NTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCkBAIC01NCw3ICs1NCw3
IEBAIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUmIEFWU3RyZWFtRGF0YVBhcnNlck1J
TUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlLmdldCgpOwogfQogCi1i
b29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5h
bChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5
cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQog
ewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNB
dmFpbGFibGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYTlkNTAxNzZlY2NkMzNkMGU3
NTk0YjdiYmMyMTZlMjJiM2NkNTRiMS4uZjhiZmVjYmY2Mzk2YWQyYjdkYjNjNjg1YWM2OWFkYjU4
MmEzODkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJG
YWN0b3J5QVZGb3VuZGF0aW9uT2JqQzsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpOwotICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBzdGF0aWMgYm9v
bCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYjJmM2EyYWQ4YmI0
YWIwY2M0MDdjYThhM2VjY2E5ZGYzZDg1ZTE4ZS4uNTEyOTQzZjVlMTI3ZTJkNGI3N2E1NDI5NDhh
YWQzNTQzZTIwNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yODksNyArMjg5LDcg
QEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
QW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
IGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNz
KHBhcmFtZXRlcnMpOwogICAgIH0KIAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gb3JpZ2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0IGZpbmFsCkBA
IC0xNjE3LDcgKzE2MTcsNyBAQCBzdGF0aWMgYm9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRpZgogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0
c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1l
dGVycykKIHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIGlmIChwYXJhbWV0ZXJzLmlz
TWVkaWFTb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMjNjNGQ0OTYyMzE4
YmQ0YzM4YjZlMjI2OTU1ODhmOGYwNzE4ZmI4NS4uMzBhMjA2NTBkYzE1ZDcwNmJlMjc5ODBmNjQ1
N2RkYzQyYjM5NTkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjU0LDEwICsy
NTQsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogICAgIC8vIFRoaXMgZW5naW5lIGRvZXMg
bm90IHN1cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlmICghcGFyYW1ldGVy
cy5pc01lZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAocGFy
YW1ldGVycy5pc01lZGlhU3RyZWFtKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jZW5kaWYKIAogICAgIGF1dG8gc3VwcG9ydGVkID0g
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAgICAgYXV0byYgc3Ry
ZWFtRGF0YVBhcnNlckNhY2hlID0gQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCAwNTAzNDA0YTBm
MWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUxZTRkMjAwLi42MzI4MmVkOGZlMzhlMjE0OWY4ZTgwZWZl
MGQ5ZTExN2MwMzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTQw
LDYgKzQwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogI2RlZmluZSBNRVNT
QUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NIRUNLX0JBU0UobV9wcm94
aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk4LDcgKzEwMiw3IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5nCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1
bHQpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNU
eXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBlbmdp
bmUgPSBNZWRpYVBsYXllcjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmllcik7CiAgICAgaWYg
KCFlbmdpbmUpIHsKQEAgLTExMSw2ICsxMTUsMzIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CisKKyAgICBzd2l0Y2gg
KGVuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2Rl
VHlwZShtaW1lVHlwZSkgPT0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBv
cnRlZDsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3Ry
ZWFtOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpB
VkZvdW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3VwcG9ydGVkKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYgcGF0aCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGVuZ2luZSA9IE1lZGlhUGxheWVyOjpt
ZWRpYUVuZ2luZShlbmdpbmVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgK
aW5kZXggYWU1MWZjMGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0MzcyZTQ4Yy4uNTE1ZDhiNGM1
NjAxYjdjZWQzY2E5YzgxMGViZTJjNzU0MjgyZGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgKQEAgLTc1LDcgKzc1LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlhIHBsYXllciBm
YWN0b3J5CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgc3VwcG9ydHNUeXBlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmKTsKKyAgICB2b2lkIHN1cHBvcnRzVHlwZUFuZENv
ZGVjcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4mJik7CisgICAg
dm9pZCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG9yaWdpbnNJbk1l
ZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbGVhck1lZGlhQ2FjaGUoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmJiwgV2FsbFRpbWUpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYmLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1Y2JkZWQ1ZmZlMTNkN2Fk
Y2QzNGYxZDM5ZGM0ZmI1ZGZkNmM2NjZkLi43MTUyYTVmNWEyYjlmOGYwOWEyODQzNzViNTA1OWY5
Mjc2MDM2YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yOCw3ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5
cGVzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVz
KSBTeW5jaHJvbm91cwotICAgIFN1cHBvcnRzVHlwZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1
cHBvcnQpIFN5bmNocm9ub3VzCisgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBDYW5EZWNvZGVFeHRlbmRlZFR5
cGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgbWltZVR5cGUpIC0+IChib29s
IHN1cHBvcnRzKSBTeW5jaHJvbm91cwogICAgIE9yaWdpbnNJbk1lZGlhQ2FjaGUoZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgcGF0aCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIFN5bmNocm9ub3VzCiAgICAgQ2xlYXJNZWRpYUNhY2hl
KGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UpCiAgICAgQ2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIFN0cmluZyBwYXRoLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiBvcmlnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjAyZmI3OTVhNzJhZGRjNTc4NTg3NmJlMDk1
YjNlZWI4OWQ1ZTUzOC4uY2E1MjYwM2VkNWIwN2NjMWExMDcyMTczNmVkNDZjNjc4OTQxMzMxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC01MTEsNiArNTExLDcgQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAogLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHku
Y3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
Y3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
IAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YzZl
N2Q2NWFmNzIyN2VmNzNhZmQ4MjY4ZmY3MWRiMGQ4YTIxNTAuLjFiNTg4NjhmNTJlY2Y3MTMzMmI5
NGY4ZDRiMTI0ZWFiOGY5YWU3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQsNiArODQsOCBAQAogCQkwMDVEMTU4RjE4RTRDNEVC
MDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE1MThFMjRDQkEwMENF
MUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi87IH07CiAJCTAwQjk2NjFBMThFMjVBRTEwMENFMUY4
OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovOyB9Owor
CQkwNzAxNzg5RDIzQkFGRjM1MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAx
Nzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgg
Ki87IH07CisJCTA3MDE3ODlFMjNCRTlDRkMwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZS5jcHAgKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBE
ZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmggKi87IH07CiAJCTA3Mjk3RkEzMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTIwNTUsNiArMjA1Nyw4IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBB
UElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAw
Q0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5
NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUMyM0JBRTI2MjAwNUYw
RkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBQzIzOUFFMzg1
MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTMsNiArNTE1Nyw4
IEBACiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMDcwMTc4OUIyM0JBRTI2
MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8sCisJCQkJ
MDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZS5oICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmggKi8sCiAJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAgKi8sCiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLApAQCAtMTAyNTgsNiArMTAyNjQsNyBAQAogCQkJ
CTA3OTIzMTRBMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDE3ODlEMjNC
QUZGMzUwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFENEQ3Mzcx
MjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTExOTM1LDYgKzExOTQyLDcgQEAKIAkJCQkwNzkyMzE0OTIzOUNC
Q0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIz
OUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDcwMTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8q
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
RDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2I3ZWNhOThkOGZm
ZDQxZGY1NTNjNmJkMDBlZjQyZDEzYjJlNWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
Y3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZTo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlKFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciYgbWFuYWdlciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fZW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQoreworfQorCitNSU1FVHlwZUNh
Y2hlKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1pbWVDYWNoZSgpIGNvbnN0Cit7
CisgICAgc3dpdGNoIChtX2VuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICByZXR1cm4gJkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3RyZWFt
OgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZv
dW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
Zmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVM
aXN0KCkKK3sKKyAgICByZXR1cm4gbWltZUNhY2hlKCktPnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0
KCk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9y
dGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgcmV0dXJuIG1pbWVD
YWNoZSgpLT5pc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSh0eXBlKTsKK30KKworYm9vbCBSZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBX
ZWJDb3JlOjpDb250ZW50VHlwZSYgdHlwZSkKK3sKKyAgICBib29sIHJlc3VsdDsKKyAgICBpZiAo
IW1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2FuRGVjb2RlRXh0ZW5kZWRUeXBlKG1fZW5naW5l
SWRlbnRpZmllciwgdHlwZS5yYXcoKSksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6Q2FuRGVjb2RlRXh0ZW5kZWRUeXBlOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgaWYgKHBhcmFtZXRlcnMudHlwZS5yYXco
KS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5
cGU6Ok1heUJlU3VwcG9ydGVkOworCisgICAgaWYgKHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGNhbkRlY29k
ZVR5cGUocGFyYW1ldGVycy50eXBlLnJhdygpKTsKKworICAgIGlmIChtX3N1cHBvcnRzVHlwZUFu
ZENvZGVjc0NhY2hlKSB7CisgICAgICAgIGF1dG8gaXQgPSBtX3N1cHBvcnRzVHlwZUFuZENvZGVj
c0NhY2hlLT5maW5kKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CisgICAgICAgIGlmIChpdCAhPSBt
X3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlLT5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBp
dC0+dmFsdWU7CisgICAgfQorCisgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSByZXN1bHQ7
CisgICAgaWYgKCFtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlN1cHBvcnRzVHlwZUFuZENvZGVj
cyhtX2VuZ2luZUlkZW50aWZpZXIsIHBhcmFtZXRlcnMpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OlN1cHBvcnRzVHlwZUFuZENvZGVjczo6UmVwbHkocmVzdWx0KSwg
MCkpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBv
cnRlZDsKKworICAgIGlmICghbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZSkKKyAgICAgICAg
bV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZSA9IEhhc2hNYXA8U3RyaW5nLCBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4oKTsKKyAgICBt
X3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlLT5hZGQocGFyYW1ldGVycy50eXBlLnJhdygpLCBy
ZXN1bHQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYgY2FjaGUpCit7CisgICAgaWYgKCFpc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIGlmICghbV9tYW5hZ2Vy
LmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlcyhtX2VuZ2luZUlkZW50aWZpZXIpLCBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5cGVz
OjpSZXBseSh0eXBlcyksIDApKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIHR5
cGUgOiB0eXBlcykKKyAgICAgICAgY2FjaGUuYWRkKHR5cGUpOworCisgICAgbWltZUNhY2hlKCkt
PmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKEdQ
VV9QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjIxODA5OGYxZjBkYmEyZTNlYTc5NGMxMDBjM2U3MTAwOTBlMzQ2YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5
ZXJQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1JTUVUeXBl
Q2FjaGUgeworcHVibGljOgorICAgIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZShSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXImLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIpOworCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9y
dHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJik7CisKK3ByaXZhdGU6CisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmlu
YWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBl
KGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJikgZmluYWw7CisKKyAgICBNSU1FVHlwZUNhY2hl
KiBtaW1lQ2FjaGUoKSBjb25zdDsKKworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9t
YW5hZ2VyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgT3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPj4gbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCA3
MWI3MWJmZmEyMzhiOTRhYjMyM2FjNDkxZmM2MTIwNWI0YjQ4YzEyLi45NjRjZTNhMzBiMjMwM2Ux
MTQ2YWIzZjQxZDY3OGY0ODU5NjNhZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgpAQCAtMTExLDkg
KzExMiwzMyBAQCBjb25zdCBjaGFyKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBsZW1l
bnROYW1lKCkKICAgICByZXR1cm4gIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciI7CiB9CiAKLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKQorc3RhdGljIEhhc2hNYXA8TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlPiwgV1RGOjpJbnRIYXNoPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcj4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyPj4mIG1pbWVDYWNoZXMoKQogewotLy8gRklYTUU6IFVzZSBwYXJh
bWV0ZXJzLm1lZGlhTUlNRVR5cGVzLgorICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4sIFdURjo6SW50SGFzaDxNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRz
PE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4+PiBjYWNoZXM7CisgICAg
cmV0dXJuIGNhY2hlczsKK30KKworUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikKK3sKKyAgICBhdXRvJiBjYWNo
ZVB0ciA9IG1pbWVDYWNoZXMoKS5hZGQocmVtb3RlRW5naW5lSWRlbnRpZmllciwgbnVsbHB0ciku
aXRlcmF0b3ItPnZhbHVlOworICAgIGlmICghY2FjaGVQdHIpCisgICAgICAgIGNhY2hlUHRyID0g
bWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU+KCp0aGlzLCByZW1vdGVF
bmdpbmVJZGVudGlmaWVyKTsKKworICAgIHJldHVybiAqY2FjaGVQdHI7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisgICAgVU5VU0VEX1BBUkFNKHBhcmFtZXRlcnMp
OworCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKHBhcmFtZXRlcnMubWVkaWFNSU1FVHlw
ZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBjYWNoZSA9IHR5cGVD
YWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlv
bik7CisgICAgaWYgKGNhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgY2FjaGUuYWRkU3VwcG9ydGVk
VHlwZXMocGFyYW1ldGVycy5tZWRpYU1JTUVUeXBlcyk7CisjZW5kaWYKIH0KIAogc3RkOjp1bmlx
dWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikK
QEAgLTE1Nyw3ICsxODIsMTMgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmRlbGV0
ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUkKIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgcmVzdWx0KQogewotICAgIC8vIEZJWE1F
OiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgorICAgIGF1dG8mIGNh
Y2hlID0gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpOworICAgIGlmICghY2FjaGUu
aXNFbXB0eSgpKSB7CisgICAgICAgIHJlc3VsdCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+KCk7CisgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGNhY2hlLnN1cHBv
cnRlZFR5cGVzKCkpCisgICAgICAgICAgICByZXN1bHQuYWRkKHR5cGUpOworICAgICAgICByZXR1
cm47CisgICAgfQogCiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgaWYgKCFncHVQcm9j
ZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXMocmVtb3RlRW5naW5lSWRlbnRpZmllciksIE1lc3Nh
Z2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXM6OlJl
cGx5KHR5cGVzKSwgMCkpCkBAIC0xNjYsMTcgKzE5NywxMiBAQCB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlwZXMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZAogICAgIHJlc3VsdCA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+KCk7CiAgICAgZm9yIChhdXRvJiB0eXBlIDogdHlwZXMpCiAgICAgICAgIHJlc3VsdC5hZGQo
dHlwZSk7CisgICAgY2FjaGUuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCiBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBl
QW5kQ29kZWNzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVF
bmdpbmVJZGVudGlmaWVyLCBjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQogewotICAgIC8vIEZJWE1FOiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBj
YWNoZSB0aGVtLgotCi0gICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSByZXN1bHQ7Ci0gICAg
aWYgKCFncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IHBhcmFtZXRlcnMpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlN1
cHBvcnRzVHlwZTo6UmVwbHkocmVzdWx0KSwgMCkpCi0gICAgICAgIHJldHVybiBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKLQotICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgcmV0dXJuIHR5cGVDYWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyKS5zdXBwb3J0c1R5cGVB
bmRDb2RlY3MocGFyYW1ldGVycyk7CiB9CiAKIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpzdXBwb3J0c0tleVN5c3RlbShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggMjQ4ODE0NDMwOTVlNTExMzFkZTg2NjdhZjNiNjEz
MTEwZGFlYzBkZS4uYzUzYzZmZDI5ZmNiYWM5NGIxMzY2YTY0NmVhNTc5NGZhZjU1MzliYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFNldHRpbmdz
OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsK
K2NsYXNzIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTsKIGNsYXNzIFdlYlByb2Nlc3M7
CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3Vw
cGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTk0LDYgKzk1LDggQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTWVkaWFDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNv
bnN0IEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mKTsKIAorICAgIFJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgdHlwZUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisKICAgICBIYXNoTWFwPE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPj4gbV9wbGF5ZXJzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA5
NzNmNWM0ODZiMTJiMDdjYmJiYWZkNDNiMWJjMDlkYTg5NTk5NzVlLi42M2ZiZWFmZjIwYzI1NzIx
MDI4MDdmZTdiMGQ3YTRmMGQzNjZmNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTgzMCw3ICs4MzAsOSBAQCB2b2lkIFdl
YlByb2Nlc3M6OmJhY2tsaWdodExldmVsRGlkQ2hhbmdlKGZsb2F0IGJhY2tsaWdodExldmVsKQog
CiB2b2lkIFdlYlByb2Nlc3M6OnNldE1lZGlhTUlNRVR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
IHR5cGVzKQogewotICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5hZGRTdXBw
b3J0ZWRUeXBlcyh0eXBlcyk7CisgICAgYXV0byYgY2FjaGUgPSBBVkFzc2V0TUlNRVR5cGVDYWNo
ZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGNhY2hlLmlzRW1wdHkoKSkKKyAgICAgICAgY2FjaGUu
YWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386789</attachid>
            <date>2020-01-05 07:47:53 -0800</date>
            <delta_ts>2020-01-05 19:53:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205763-20200105074752.patch</filename>
            <type>text/plain</type>
            <size>46964</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOThkYTFhMGIxYjY5MjNmODg4ZDExMjUyZmYyZDMz
NjYyYTA3NWJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICBDcmVhdGUgYSBNSU1FIHR5cGUgY2FjaGUgZm9yIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBzbyB0eXBlcyB3aXRob3V0IGEKKyAgICAgICAgJ2NvZGVjcycgcGFyYW1l
dGVyIGRvbid0IHR5cGljYWxseSByZXF1aXJlIElQQywgYW5kIHdoZW4gaXQgaXMgcmVxdWlyZWQg
dGhlCisgICAgICAgIHJlc3VsdCBpcyBjYWNoZWQgc28gaXQgaXMgb25seSByZXF1aXJlZCBvbmNl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZVByaXZhdGUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVU
eXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6
aW5pdGlhbGl6ZUNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9y
dGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBh
cnNlck1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKToKKwogMjAyMC0wMS0w
MiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBGaXggZmFpbGluZyB0ZXh0LWluZGVudCBjYXNlcyB3aGVuIHRoZSBJRkMgcm9vdCBp
cyBhbiBhbm9ueW1vdXMgYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzMWNhMGNhZDE0NjliNTYz
OGYxMDQ2YzNiYzA2YjguLjVjNGNlNmExMGIzOTJlZjgyZDk2OWY0ZWY3YzQ4MzA4OWRhNTFmZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDEtMDMgIEVyaWMgQ2FybHNvbiAgPGVy
aWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhIGluIEdQVSBwcm9jZXNzXSBB
ZGQgcmVtb3RlIE1JTUUgdHlwZSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NzYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODMxMjE1
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlQW5k
Q29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1p
bWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29u
dGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlw
ZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRz
VHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlw
ZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdpdGgg
UnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1YThiYjM2Mjhk
YTY2N2M2MWMxMDllOTIwYmQzMjk3YTM0NjAyNi4uN2NhYWRhZGYwODVlZjUxNjU5YjZlMDgwNjYy
MjliODMzNmMyMDZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogICAg
IGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKQEAgLTUzLDcgKzU2LDcgQEAgYm9vbCBNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRh
aW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogCiBNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKQogewotICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1lVHlwZS5pc0VtcHR5
KCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAKICAgICBpZiAobV9jYWNo
ZWRSZXN1bHRzKSB7CkBAIC02Miw3ICs2NSwyNCBAQCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeQog
ICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9
IGNhbkRlY29kZVR5cGVQcml2YXRlKG1pbWVUeXBlKTsKKyAgICBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc05v
dFN1cHBvcnRlZDsKKyAgICBkbyB7CisgICAgICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBtaW1l
VHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBhdXRvIGNvbnRl
bnRUeXBlID0gQ29udGVudFR5cGUgeyBtaW1lVHlwZSB9OworICAgICAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7CisgICAgICAgIGlmICghc3VwcG9y
dHNDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBv
cnRlZDsKKyAgICAgICAgaWYgKGNvbnRlbnRUeXBlLmNvZGVjcygpLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29udGVu
dFR5cGUpKQorICAgICAgICAgICAgcmVzdWx0ID0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNU
eXBlOjpJc1N1cHBvcnRlZDsKKyAgICB9IHdoaWxlICgwKTsKKwogICAgIGlmICghbV9jYWNoZWRS
ZXN1bHRzKQogICAgICAgICBtX2NhY2hlZFJlc3VsdHMgPSBIYXNoTWFwPFN0cmluZywgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+KCk7CiAg
ICAgbV9jYWNoZWRSZXN1bHRzLT5hZGQobWltZVR5cGUsIHJlc3VsdCk7CkBAIC03MCw0MSArOTAs
NDEgQEAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRl
Y29kZVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1N
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlw
ZVByaXZhdGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6YWRk
U3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG5ld1R5cGVzKQogewotICAgIEFT
U0VSVChpc0F2YWlsYWJsZSgpICYmICFtaW1lVHlwZS5pc0VtcHR5KCkpOwotCi0gICAgYXV0byBj
b250ZW50VHlwZSA9IENvbnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKLSAgICBhdXRvIGNvbnRhaW5l
clR5cGUgPSBjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCk7Ci0KLSAgICBpZiAoaXNVbnN1cHBv
cnRlZENvbnRhaW5lclR5cGUoY29udGFpbmVyVHlwZSkpCi0gICAgICAgIHJldHVybiBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworICAgIG1fc3VwcG9ydGVk
VHlwZXMgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAg
IGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQorICAgICAgICBtX3N1cHBvcnRlZFR5cGVzLT5h
ZGQodHlwZSk7Cit9CiAKLSAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShjb250YWluZXJU
eXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7Citjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYgTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIHN0
YXRpYyBjb25zdCBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHsgfSk7CisgICAgcmV0dXJuIGNhY2hlOworfQog
Ci0gICAgaWYgKCFjb250ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkgJiYgY2FuRGVjb2RlVHlw
ZUludGVybmFsKGNvbnRlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBw
b3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQogCi0gICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBw
b3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgbmV3VHlwZXMpCitib29sIE1JTUVUeXBlQ2FjaGU6OmlzRW1w
dHkoKSBjb25zdAogewotICAgIGF1dG8mIHN0b3JhZ2UgPSBzdXBwb3J0ZWRUeXBlcygpOwotICAg
IGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQotICAgICAgICBzdG9yYWdlLmFkZCh0eXBlKTsK
KyAgICByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiBtX3N1cHBvcnRlZFR5cGVzLT5pc0VtcHR5
KCk7CiB9CiAKLXZvaWQgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUpCit2b2lkIE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpCiB7Ci0gICAgc3VwcG9ydGVkVHlwZXMo
KS5hZGQodHlwZSk7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpCitib29s
IE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsKLSAgICByZXR1cm4g
Y2FjaGU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKaW5kZXggYTRkN2FmOTg5MWY2ZGQzYzk4
MWNlNzQ1YzM2Yjc3YjJjNTMzYmRjNC4uODQ3OGYxNzk4NWQxNDFlZGNiNTdjYzAyZDE5ZmUxYzVm
ZDNjYzM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlN
RVR5cGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVU
eXBlQ2FjaGUuaApAQCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvbnRlbnRUeXBlOwogCi1jbGFzcyBNSU1FVHlwZUNhY2hlIHsKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIE1JTUVUeXBlQ2FjaGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIE1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+TUlNRVR5cGVD
YWNoZSgpID0gZGVmYXVsdDsKQEAgLTQ0LDIyICs0NSwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBz
dXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgTWVkaWFQbGF5ZXJFbnVt
czo6U3VwcG9ydHNUeXBlIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkVHlwZXMoKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7Ci0gICAgdm9pZCBhZGRTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYpOwotCi0g
ICAgdmlydHVhbCBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiAhbV9z
dXBwb3J0ZWRUeXBlcy0+aXNFbXB0eSgpOyB9CisgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKCk7CisgICAgdmlydHVhbCB2b2lkIGFk
ZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKLXByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgeyB9Ci0gICAgdmlydHVhbCBj
b25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29u
dGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdDsK
KyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNZWRpYVBsYXllckVu
dW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpOworICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5
cGUoY29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX3N1cHBvcnRlZFR5cGVzOwogICAgIE9wdGlvbmFs
PEhhc2hNYXA8U3RyaW5nLCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGVkUmVzdWx0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlw
ZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmluZGV4IGY1NzIwOWE3YjdlYjc3OWNiYzQxZTJk
ZjBmOGNhNDlkNjA4OGQ2OGQuLjcwODIyMDlkZTM2ZWE0ZWNiZmVhMzg5ZmFlNmM5NGQ2Mjg4NTFj
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApA
QCAtMjgsMzQgKzI4LDMyIEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJNSU1F
VHlwZUNhY2hlLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIAotY2xhc3MgQVZBc3NldE1JTUVUeXBlQ2Fj
aGUgZmluYWwgOiBwdWJsaWMgTUlNRVR5cGVDYWNoZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBB
VkFzc2V0TUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBNSU1FVHlwZUNhY2hlIHsKIHB1Ymxp
YzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVZBc3NldE1JTUVUeXBlQ2FjaGUmIHNpbmds
ZXRvbigpOworICAgIHN0YXRpYyBBVkFzc2V0TUlNRVR5cGVDYWNoZSYgc2luZ2xldG9uKCk7CiAK
LSAgICBib29sIGlzRW1wdHkoKTsKLSAgICBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdXNpbmcgQ2FjaGVNSU1FVHlw
ZXNDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3RyaW5nPiYpPjsK
ICAgICB2b2lkIHNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2soQ2FjaGVNSU1FVHlwZXNDYWxsYmFj
ayYmIGNhbGxiYWNrKSB7IG1fY2FjaGVUeXBlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsg
fQogCisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
IHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVk
Q29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQgYWRkU3VwcG9y
dGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKwogcHJpdmF0ZToKICAgICBm
cmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwogICAgIEFWQXNzZXRN
SU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7
Ci0gICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYpIGZp
bmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJikg
ZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAotICAgIE9wdGlvbmFsPEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlOwogICAgIENhY2hlTUlNRVR5cGVz
Q2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlw
ZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggMTYxNzZiZmQ0NjMwYWE5MzU1ODAy
NGJjZGRlMzA5ZjJiZmExZTBmYS4uN2MzOGIwYjg0MzRjZjU1Yzk1OTQ5MDk1OTVkNmM2NWRiMmY3
ZmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUu
bW0KQEAgLTMxLDcgKzMxLDYgQEAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0IDxw
YWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5oPgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KIAogI2lmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJR0hUKEFWRm91
bmRhdGlvbikKQEAgLTYwLDcgKzU5LDcgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNB
dmFpbGFibGUoKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OmNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZB
c3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAg
QVNTRVJUKGlzQXZhaWxhYmxlKCkpOwpAQCAtMTM2LDYgKzEzNSwxMyBAQCBjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVUeXBlQ2FjaGU6
OnN0YXRpY0NvbgogICAgIHJldHVybiBjYWNoZTsKIH0KIAordm9pZCBBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQorewor
ICAgIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAgICBpZiAobV9j
YWNoZVR5cGVDYWxsYmFjaykKKyAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayh0eXBlcyk7Cit9
CisKIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY2FjaGUpCiB7CiAjaWYgRU5BQkxFKFZJ
REVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5
cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oCmluZGV4IGI5Y2E0NzNhN2E2
NDIyODhlZjg4M2QwZDVmODI4NWUwZjQ1YjMxNmYuLmIzNTA4MjUwNDkzMzc5MTliOWZkZjI3NzAw
MzViMzFlYmJjNWU5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0
ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZT47CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsK
IAotICAgIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRUeXBlJikgZmlu
YWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKSBm
aW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0KaW5kZXggN2Uw
YWMwYTYxNjkwOGEwNTI2MTJiZDkzZjIwMDg1OWY3OTk1ZGY0MC4uNDkzNGQ3Njg0MGE1ZTdiOTc1
ZTkyYjZkNTIxNmUzYjYxMWU0NTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCkBAIC01NCw3ICs1NCw3
IEBAIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUmIEFWU3RyZWFtRGF0YVBhcnNlck1J
TUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlLmdldCgpOwogfQogCi1i
b29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5h
bChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5
cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQog
ewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNB
dmFpbGFibGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYTlkNTAxNzZlY2NkMzNkMGU3
NTk0YjdiYmMyMTZlMjJiM2NkNTRiMS4uZjhiZmVjYmY2Mzk2YWQyYjdkYjNjNjg1YWM2OWFkYjU4
MmEzODkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHByaXZh
dGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJG
YWN0b3J5QVZGb3VuZGF0aW9uT2JqQzsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBl
cyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpOwotICAg
IHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBzdGF0aWMgYm9v
bCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYjJmM2EyYWQ4YmI0
YWIwY2M0MDdjYThhM2VjY2E5ZGYzZDg1ZTE4ZS4uNTEyOTQzZjVlMTI3ZTJkNGI3N2E1NDI5NDhh
YWQzNTQzZTIwNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yODksNyArMjg5LDcg
QEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBl
QW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
IGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOworICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNz
KHBhcmFtZXRlcnMpOwogICAgIH0KIAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pj4gb3JpZ2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0IGZpbmFsCkBA
IC0xNjE3LDcgKzE2MTcsNyBAQCBzdGF0aWMgYm9vbCBrZXlTeXN0ZW1Jc1N1cHBvcnRlZChjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRpZgogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShjb25z
dCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0
c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1l
dGVycykKIHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIGlmIChwYXJhbWV0ZXJzLmlz
TWVkaWFTb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMjNjNGQ0OTYyMzE4
YmQ0YzM4YjZlMjI2OTU1ODhmOGYwNzE4ZmI4NS4uMzBhMjA2NTBkYzE1ZDcwNmJlMjc5ODBmNjQ1
N2RkYzQyYjM5NTkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMjU0LDEwICsy
NTQsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogICAgIC8vIFRoaXMgZW5naW5lIGRvZXMg
bm90IHN1cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlmICghcGFyYW1ldGVy
cy5pc01lZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBpZiAocGFy
YW1ldGVycy5pc01lZGlhU3RyZWFtKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jZW5kaWYKIAogICAgIGF1dG8gc3VwcG9ydGVkID0g
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAgICAgYXV0byYgc3Ry
ZWFtRGF0YVBhcnNlckNhY2hlID0gQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6c2lu
Z2xldG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCAwNTAzNDA0YTBm
MWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUxZTRkMjAwLi42MzI4MmVkOGZlMzhlMjE0OWY4ZTgwZWZl
MGQ5ZTExN2MwMzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTQw
LDYgKzQwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRl
IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogI2RlZmluZSBNRVNT
QUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NIRUNLX0JBU0UobV9wcm94
aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk4LDcgKzEwMiw3IEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5nCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1
bHQpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNU
eXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdpbmVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBlbmdp
bmUgPSBNZWRpYVBsYXllcjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmllcik7CiAgICAgaWYg
KCFlbmdpbmUpIHsKQEAgLTExMSw2ICsxMTUsMzIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CisKKyAgICBzd2l0Y2gg
KGVuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAg
ICBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2Rl
VHlwZShtaW1lVHlwZSkgPT0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBv
cnRlZDsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3Ry
ZWFtOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpB
VkZvdW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3VwcG9ydGVkKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYgcGF0aCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGVuZ2luZSA9IE1lZGlhUGxheWVyOjpt
ZWRpYUVuZ2luZShlbmdpbmVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgK
aW5kZXggYWU1MWZjMGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0MzcyZTQ4Yy4uNTE1ZDhiNGM1
NjAxYjdjZWQzY2E5YzgxMGViZTJjNzU0MjgyZGU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgKQEAgLTc1LDcgKzc1LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlhIHBsYXllciBm
YWN0b3J5CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgc3VwcG9ydHNUeXBlKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmKTsKKyAgICB2b2lkIHN1cHBvcnRzVHlwZUFuZENv
ZGVjcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4mJik7CisgICAg
dm9pZCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG9yaWdpbnNJbk1l
ZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbGVhck1lZGlhQ2FjaGUoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmJiwgV2FsbFRpbWUpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYmLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1Y2JkZWQ1ZmZlMTNkN2Fk
Y2QzNGYxZDM5ZGM0ZmI1ZGZkNmM2NjZkLi43MTUyYTVmNWEyYjlmOGYwOWEyODQzNzViNTA1OWY5
Mjc2MDM2YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yOCw3ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERlbGV0ZU1lZGlhUGxheWVyKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1cHBvcnRlZFR5
cGVzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVz
KSBTeW5jaHJvbm91cwotICAgIFN1cHBvcnRzVHlwZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHR5cGUpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1
cHBvcnQpIFN5bmNocm9ub3VzCisgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVudW06dWludDhf
dCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBDYW5EZWNvZGVFeHRlbmRlZFR5
cGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgbWltZVR5cGUpIC0+IChib29s
IHN1cHBvcnRzKSBTeW5jaHJvbm91cwogICAgIE9yaWdpbnNJbk1lZGlhQ2FjaGUoZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgcGF0aCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIFN5bmNocm9ub3VzCiAgICAgQ2xlYXJNZWRpYUNhY2hl
KGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFdhbGxUaW1lIG1vZGlm
aWVkU2luY2UpCiAgICAgQ2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIFN0cmluZyBwYXRoLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiBvcmlnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjAyZmI3OTVhNzJhZGRjNTc4NTg3NmJlMDk1
YjNlZWI4OWQ1ZTUzOC4uY2E1MjYwM2VkNWIwN2NjMWExMDcyMTczNmVkNDZjNjc4OTQxMzMxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC01MTEsNiArNTExLDcgQEAgV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAogLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHku
Y3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
Y3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
IAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1YzZl
N2Q2NWFmNzIyN2VmNzNhZmQ4MjY4ZmY3MWRiMGQ4YTIxNTAuLjFiNTg4NjhmNTJlY2Y3MTMzMmI5
NGY4ZDRiMTI0ZWFiOGY5YWU3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQsNiArODQsOCBAQAogCQkwMDVEMTU4RjE4RTRDNEVC
MDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE1MThFMjRDQkEwMENF
MUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi87IH07CiAJCTAwQjk2NjFBMThFMjVBRTEwMENFMUY4
OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovOyB9Owor
CQkwNzAxNzg5RDIzQkFGRjM1MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAx
Nzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgg
Ki87IH07CisJCTA3MDE3ODlFMjNCRTlDRkMwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZS5jcHAgKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBE
ZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNh
bHRTdG9yYWdlLmggKi87IH07CiAJCTA3Mjk3RkEzMUMxODZBREIwMDNGMDczNSAvKiBXS1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTIwNTUsNiArMjA1Nyw4IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBB
UElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAw
Q0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwMEI5
NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUMyM0JBRTI2MjAwNUYw
RkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZBQzIzOUFFMzg1
MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTMsNiArNTE1Nyw4
IEBACiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMDcwMTc4OUIyM0JBRTI2
MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi8sCisJCQkJ
MDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZS5oICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmggKi8sCiAJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAgKi8sCiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLApAQCAtMTAyNTgsNiArMTAyNjQsNyBAQAogCQkJ
CTA3OTIzMTRBMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3MDE3ODlEMjNC
QUZGMzUwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXll
clN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFENEQ3Mzcx
MjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTExOTM1LDYgKzExOTQyLDcgQEAKIAkJCQkwNzkyMzE0OTIzOUNC
Q0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIz
OUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDcwMTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8q
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
RDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDU3ZmMyMTA3MmY1
NTNlNDcwYTE3MmNjYWYzNjljYzAyZjM3NDU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
Y3BwCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUGxheWVy
TUlNRVR5cGVDYWNoZTo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlKFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciYgbWFuYWdlciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCisgICAgOiBtX21hbmFnZXIobWFuYWdlcikKKyAgICAs
IG1fZW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQoreworfQorCitNSU1FVHlwZUNh
Y2hlKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1pbWVDYWNoZSgpIGNvbnN0Cit7
CisgICAgc3dpdGNoIChtX2VuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICByZXR1cm4gJkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2FzZSBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1lZGlhU3RyZWFt
OgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZv
dW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
Zmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNhc2UgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVM
aXN0KCkKK3sKKyAgICBpZiAoYXV0byogbWltZUNhY2hlID0gdGhpcy0+bWltZUNhY2hlKCkpCisg
ICAgICAgIHJldHVybiBtaW1lQ2FjaGUtPnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCk7CisKKyAg
ICByZXR1cm4gTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKK30KKwor
Ym9vbCBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWlu
ZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoYXV0byogbWltZUNhY2hlID0g
dGhpcy0+bWltZUNhY2hlKCkpCisgICAgICAgIHJldHVybiBtaW1lQ2FjaGUtPmlzVW5zdXBwb3J0
ZWRDb250YWluZXJUeXBlKHR5cGUpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiB0eXBlKQoreworICAgIGJvb2wgcmVzdWx0OworICAgIGlm
ICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5cGUobV9lbmdp
bmVJZGVudGlmaWVyLCB0eXBlLnJhdygpKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5cGU6OlJlcGx5KHJlc3VsdCksIDApKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAocGFyYW1ldGVycy50eXBlLnJh
dygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRz
VHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisKKyAgICBpZiAocGFyYW1ldGVycy5jb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY2FuRGVj
b2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOworCisgICAgaWYgKG1fc3VwcG9ydHNUeXBl
QW5kQ29kZWNzQ2FjaGUpIHsKKyAgICAgICAgYXV0byBpdCA9IG1fc3VwcG9ydHNUeXBlQW5kQ29k
ZWNzQ2FjaGUtPmZpbmQocGFyYW1ldGVycy50eXBlLnJhdygpKTsKKyAgICAgICAgaWYgKGl0ICE9
IG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmVuZCgpKQorICAgICAgICAgICAgcmV0dXJu
IGl0LT52YWx1ZTsKKyAgICB9CisKKyAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3Vs
dDsKKyAgICBpZiAoIW1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlQW5kQ29k
ZWNzKG1fZW5naW5lSWRlbnRpZmllciwgcGFyYW1ldGVycyksIE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlQW5kQ29kZWNzOjpSZXBseShyZXN1bHQp
LCAwKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOworCisgICAgaWYgKCFtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlKQorICAgICAg
ICBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlID0gSGFzaE1hcDxTdHJpbmcsIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAg
IG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmFkZChwYXJhbWV0ZXJzLnR5cGUucmF3KCks
IHJlc3VsdCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBjYWNoZSkKK3sKKyAgICBhdXRvKiBtaW1lQ2FjaGUgPSB0aGlz
LT5taW1lQ2FjaGUoKTsKKyAgICBpZiAoIWlzRW1wdHkoKSB8fCAhbWltZUNhY2hlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBpZiAoIW1fbWFuYWdl
ci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXMobV9lbmdpbmVJZGVudGlmaWVyKSwg
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBl
czo6UmVwbHkodHlwZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiB0
eXBlIDogdHlwZXMpCisgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKKworICAgIG1pbWVDYWNoZS0+
YWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoR1BV
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMjE4MDk4ZjFmMGRiYTJlM2VhNzk0YzEwMGMzZTcxMDA5MGUzNDZjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9NSU1FVHlwZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
clByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TUlNRVR5cGVD
YWNoZSB7CitwdWJsaWM6CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlKFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcik7CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKSBmaW5h
bDsKKyAgICBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUo
Y29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmKSBmaW5hbDsKKworICAgIE1JTUVUeXBlQ2FjaGUq
IG1pbWVDYWNoZSgpIGNvbnN0OworCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21h
bmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIG1fZW5naW5lSWRlbnRpZmllcjsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+PiBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDcx
YjcxYmZmYTIzOGI5NGFiMzIzYWM0OTFmYzYxMjA1YjRiNDhjMTIuLjk2NGNlM2EzMGIyMzAzZTEx
NDZhYjNmNDFkNjc4ZjQ4NTk2M2FkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCkBAIC0xMTEsOSAr
MTEyLDMzIEBAIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcGxlbWVu
dE5hbWUoKQogICAgIHJldHVybiAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIjsKIH0KIAotdm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpCitzdGF0aWMgSGFzaE1hcDxNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGU+LCBXVEY6OkludEhhc2g8TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI+PiYgbWltZUNhY2hlcygpCiB7Ci0vLyBGSVhNRTogVXNlIHBhcmFt
ZXRlcnMubWVkaWFNSU1FVHlwZXMuCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlPiwgV1RGOjpJbnRIYXNoPE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyPj4+IGNhY2hlczsKKyAgICBy
ZXR1cm4gY2FjaGVzOworfQorCitSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUmIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6dHlwZUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKQoreworICAgIGF1dG8mIGNhY2hl
UHRyID0gbWltZUNhY2hlcygpLmFkZChyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBudWxscHRyKS5p
dGVyYXRvci0+dmFsdWU7CisgICAgaWYgKCFjYWNoZVB0cikKKyAgICAgICAgY2FjaGVQdHIgPSBt
YWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4oKnRoaXMsIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIpOworCisgICAgcmV0dXJuICpjYWNoZVB0cjsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBVTlVTRURfUEFSQU0ocGFyYW1ldGVycyk7
CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAocGFyYW1ldGVycy5tZWRpYU1JTUVUeXBl
cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNhY2hlID0gdHlwZUNh
Y2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9u
KTsKKyAgICBpZiAoY2FjaGUuaXNFbXB0eSgpKQorICAgICAgICBjYWNoZS5hZGRTdXBwb3J0ZWRU
eXBlcyhwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzKTsKKyNlbmRpZgogfQogCiBzdGQ6OnVuaXF1
ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKQpA
QCAtMTU3LDcgKzE4MiwxMyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGVsZXRl
UmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSQogCiB2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlwZXMoTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIEhhc2hTZXQ8U3Ry
aW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiByZXN1bHQpCiB7Ci0gICAgLy8gRklYTUU6
IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hlIHRoZW0uCisgICAgYXV0byYgY2Fj
aGUgPSB0eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllcik7CisgICAgaWYgKCFjYWNoZS5p
c0VtcHR5KCkpIHsKKyAgICAgICAgcmVzdWx0ID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4oKTsKKyAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogY2FjaGUuc3VwcG9y
dGVkVHlwZXMoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKICAgICBpZiAoIWdwdVByb2Nl
c3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlcyhyZW1vdGVFbmdpbmVJZGVudGlmaWVyKSwgTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBlczo6UmVw
bHkodHlwZXMpLCAwKSkKQEAgLTE2NiwxNyArMTk3LDEyIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkCiAgICAgcmVzdWx0ID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4oKTsKICAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykKICAgICAgICAgcmVzdWx0LmFkZCh0
eXBlKTsKKyAgICBjYWNoZS5hZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVB
bmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7Ci0gICAgLy8gRklYTUU6IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNh
Y2hlIHRoZW0uCi0KLSAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHJlc3VsdDsKLSAgICBp
ZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGUocmVtb3RlRW5naW5lSWRlbnRpZmllciwg
cGFyYW1ldGVycyksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3Vw
cG9ydHNUeXBlOjpSZXBseShyZXN1bHQpLCAwKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICByZXR1cm4gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpLnN1cHBvcnRzVHlwZUFu
ZENvZGVjcyhwYXJhbWV0ZXJzKTsKIH0KIAogYm9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnN1cHBvcnRzS2V5U3lzdGVtKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCAyNDg4MTQ0MzA5NWU1MTEzMWRlODY2N2FmM2I2MTMx
MTBkYWVjMGRlLi5jNTNjNmZkMjlmY2JhYzk0YjEzNjZhNjQ2ZWE1Nzk0ZmFmNTUzOWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgU2V0dGluZ3M7
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOwor
Y2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOwogY2xhc3MgV2ViUHJvY2VzczsK
IAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBw
bGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewpAQCAtOTQsNiArOTUsOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgV2FsbFRpbWUgbW9kaWZp
ZWRTaW5jZSk7CiAgICAgdm9pZCBjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29u
c3QgSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYpOwogCisgICAgUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlJiB0eXBlQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKKwogICAgIEhhc2hNYXA8TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU+PiBtX3BsYXllcnM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDk3
M2Y1YzQ4NmIxMmIwN2NiYmJhZmQ0M2IxYmMwOWRhODk1OTk3NWUuLjYzZmJlYWZmMjBjMjU3MjEw
MjgwN2ZlN2IwZDdhNGYwZDM2NmY3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtODMwLDcgKzgzMCw5IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6YmFja2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpCiAK
IHZvaWQgV2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4g
dHlwZXMpCiB7Ci0gICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmFkZFN1cHBv
cnRlZFR5cGVzKHR5cGVzKTsKKyAgICBhdXRvJiBjYWNoZSA9IEFWQXNzZXRNSU1FVHlwZUNhY2hl
OjpzaW5nbGV0b24oKTsKKyAgICBpZiAoY2FjaGUuaXNFbXB0eSgpKQorICAgICAgICBjYWNoZS5h
ZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386804</attachid>
            <date>2020-01-05 19:53:07 -0800</date>
            <delta_ts>2020-01-05 20:36:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205763-20200105195305.patch</filename>
            <type>text/plain</type>
            <size>47056</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlZTFiNmJkZDVjZmYz
NzY1YTg0Mzc1ODM3NmRjMDdhMzRjZThkYi4uOTExYmE2ZWEwZWEyYmVjZTc4Y2IzMDNjMWY1N2U3
NTRhOTM4MmQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTAxLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBH
UFUgcHJvY2Vzc10gQWRkIHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTgzMTIxNTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorICAg
ICAgICAKKyAgICAgICAgQ3JlYXRlIGEgTUlNRSB0eXBlIGNhY2hlIGZvciBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIgc28gdHlwZXMgd2l0aG91dCBhCisgICAgICAgICdjb2RlY3MnIHBhcmFtZXRl
ciBkb24ndCB0eXBpY2FsbHkgcmVxdWlyZSBJUEMsIGFuZCB3aGVuIGl0IGlzIHJlcXVpcmVkIHRo
ZQorICAgICAgICByZXN1bHQgaXMgY2FjaGVkIHNvIGl0IGlzIG9ubHkgcmVxdWlyZWQgb25jZS4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6c3VwcG9ydHNDb250YWluZXJUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TUlNRVR5cGVDYWNoZTo6c2V0U3VwcG9ydGVkVHlwZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6TUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aXNFbXB0eSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6TUlN
RVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1J
TUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVQcml2YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmlzRW1wdHkgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlw
ZUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6Omlu
aXRpYWxpemVDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVFeHRlbmRlZFR5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNldFN1cHBvcnRl
ZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpjYW5EZWNv
ZGVUeXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5hbCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN1cHBvcnRzVHlwZSk6CisKIDIwMjAtMDEtMDIg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3Jh
dGlvbl0gRml4IGZhaWxpbmcgdGV4dC1pbmRlbnQgY2FzZXMgd2hlbiB0aGUgSUZDIHJvb3QgaXMg
YW4gYW5vbnltb3VzIGJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5MzYyZTg5OWQ0MzFjYTBjYWQxNDY5YjU2Mzhm
MTA0NmMzYmMwNmI4Li42ZGJhYWUxYTJkMzRjZmY1YWNmMzA4ZmYyMzZmZDgzOTk1NmEwZjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTAzICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYSBpbiBHUFUgcHJvY2Vzc10gQWRk
IHJlbW90ZSBNSU1FIHR5cGUgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTc2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgzMTIxNTI+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y2Fu
RGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTUlNRVR5cGVDYWNoZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6bWltZUNh
Y2hlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlOjppc0F2YWlsYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWlu
ZXJUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hl
OjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6ZUNhY2hlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2Fj
aGUuaDogIEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bWltZUNhY2hlcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dHlwZUNhY2hlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBl
QW5kQ29kZWNzKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRNZWRpYU1JTUVUeXBlcyk6
CisKIDIwMjAtMDEtMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBSZXBsYWNlICJ1bmV4cGVjdGVkbHkgcmVzdW1lZCIgb2JzZXJ2ZXIgd2l0aCBSdW5u
aW5nQm9hcmQgc3VzcGVuZGlibGUgYXNzZXJ0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcAppbmRleCA4NzVhOGJiMzYyOGRhNjY3
YzYxYzEwOWU5MjBiZDMyOTdhMzQ2MDI2Li4yMjM3MjQ0NjQxYmI2NDMxYzE4ZTAzZWI4NGE2Mjg3
NWYzYmE5ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
SU1FVHlwZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
SU1FVHlwZUNhY2hlLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgTUlNRVR5cGVDYWNoZTo6
c3VwcG9ydGVkVHlwZXMoKQogewogICAgIGlmICghbV9zdXBwb3J0ZWRUeXBlcykgewotICAgICAg
ICBtX3N1cHBvcnRlZFR5cGVzID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZl
SGFzaD4oKTsKKyAgICAgICAgbV9zdXBwb3J0ZWRUeXBlcyA9IHsgfTsKICAgICAgICAgaW5pdGlh
bGl6ZUNhY2hlKCptX3N1cHBvcnRlZFR5cGVzKTsKICAgICB9CiAKQEAgLTQ1LDYgKzQ1LDkgQEAg
Ym9vbCBNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBj
b250YWluZXJUeXBlKQogICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRD
b250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAg
ICBpZiAoc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTUzLDcgKzU2LDcgQEAgYm9vbCBNSU1FVHlwZUNh
Y2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQog
CiBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2Rl
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewotICAgIGlmICghaXNBdmFpbGFibGUoKSB8
fCBtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CiAKICAgICBpZiAobV9jYWNoZWRSZXN1bHRzKSB7CkBAIC02Miw3ICs2NSwyNCBAQCBNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeQogICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICB9CiAK
LSAgICBhdXRvIHJlc3VsdCA9IGNhbkRlY29kZVR5cGVQcml2YXRlKG1pbWVUeXBlKTsKKyAgICBh
dXRvIHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0
ZWQ7CisgICAgZG8geworICAgICAgICBpZiAoIWlzQXZhaWxhYmxlKCkgfHwgbWltZVR5cGUuaXNF
bXB0eSgpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9
IENvbnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKKyAgICAgICAgYXV0byBjb250YWluZXJUeXBlID0g
Y29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpOworICAgICAgICBpZiAoIXN1cHBvcnRzQ29udGFp
bmVyVHlwZShjb250YWluZXJUeXBlKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJl
c3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7Cisg
ICAgICAgIGlmIChjb250ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICBpZiAoY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnRlbnRUeXBlKSkK
KyAgICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNT
dXBwb3J0ZWQ7CisgICAgfSB3aGlsZSAoMCk7CisKICAgICBpZiAoIW1fY2FjaGVkUmVzdWx0cykK
ICAgICAgICAgbV9jYWNoZWRSZXN1bHRzID0gSGFzaE1hcDxTdHJpbmcsIE1lZGlhUGxheWVyRW51
bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOwogICAgIG1fY2Fj
aGVkUmVzdWx0cy0+YWRkKG1pbWVUeXBlLCByZXN1bHQpOwpAQCAtNzAsNDEgKzkwLDQxIEBAIE1l
ZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBl
KGNvbnN0IFN0cmluZyYgbWltZVR5CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTWVkaWFQbGF5
ZXJFbnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVQcml2YXRl
KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCit2b2lkIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRl
ZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBlcykKIHsKLSAgICBBU1NFUlQoaXNB
dmFpbGFibGUoKSAmJiAhbWltZVR5cGUuaXNFbXB0eSgpKTsKLQotICAgIGF1dG8gY29udGVudFR5
cGUgPSBDb250ZW50VHlwZSB7IG1pbWVUeXBlIH07Ci0gICAgYXV0byBjb250YWluZXJUeXBlID0g
Y29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpOwotCi0gICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250
YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVt
czo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKyAgICBtX3N1cHBvcnRlZFR5cGVzID0g
eyB9OworICAgIGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQorICAgICAgICBtX3N1cHBvcnRl
ZFR5cGVzLT5hZGQodHlwZSk7Cit9CiAKLSAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVyVHlwZShj
b250YWluZXJUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Citjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5z
ZW5zaXRpdmVIYXNoPiYgTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQor
eworICAgIHN0YXRpYyBjb25zdCBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHsgfSk7CisgICAgcmV0dXJuIGNh
Y2hlOworfQogCi0gICAgaWYgKCFjb250ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkgJiYgY2Fu
RGVjb2RlVHlwZUludGVybmFsKGNvbnRlbnRUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxh
eWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6
OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQogCi0gICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6
TWF5QmVTdXBwb3J0ZWQ7Citib29sIE1JTUVUeXBlQ2FjaGU6OmlzQXZhaWxhYmxlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0
ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgbmV3VHlwZXMpCitib29sIE1JTUVUeXBlQ2Fj
aGU6OmlzRW1wdHkoKSBjb25zdAogewotICAgIGF1dG8mIHN0b3JhZ2UgPSBzdXBwb3J0ZWRUeXBl
cygpOwotICAgIGZvciAoYXV0byYgdHlwZSA6IG5ld1R5cGVzKQotICAgICAgICBzdG9yYWdlLmFk
ZCh0eXBlKTsKKyAgICByZXR1cm4gbV9zdXBwb3J0ZWRUeXBlcyAmJiBtX3N1cHBvcnRlZFR5cGVz
LT5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUpCit2b2lkIE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpCiB7Ci0gICAgc3VwcG9y
dGVkVHlwZXMoKS5hZGQodHlwZSk7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlz
dCgpCitib29sIE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250
ZW50VHlwZSYpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0
cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsKLSAg
ICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKaW5kZXggYTRkN2FmOTg5
MWY2ZGQzYzk4MWNlNzQ1YzM2Yjc3YjJjNTMzYmRjNC4uODQ3OGYxNzk4NWQxNDFlZGNiNTdjYzAy
ZDE5ZmUxYzVmZDNjYzM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTUlNRVR5cGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01JTUVUeXBlQ2FjaGUuaApAQCAtMzYsNyArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENvbnRlbnRUeXBlOwogCi1jbGFzcyBNSU1FVHlwZUNhY2hlIHsKK2NsYXNzIFdF
QkNPUkVfRVhQT1JUIE1JTUVUeXBlQ2FjaGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIE1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CiAgICAgdmlydHVhbCB+
TUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKQEAgLTQ0LDIyICs0NSwxOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgTWVkaWFQ
bGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5nJik7CiAK
LSAgICBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVk
VHlwZXMoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7Ci0gICAgdm9pZCBhZGRTdXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmlu
ZyYpOwotCi0gICAgdmlydHVhbCBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0
IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0
cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3Qo
KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3Ry
aW5nJik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9zdXBwb3J0ZWRUeXBl
cyAmJiAhbV9zdXBwb3J0ZWRUeXBlcy0+aXNFbXB0eSgpOyB9CisgICAgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFR5cGVzKCk7CisgICAgdmlydHVh
bCB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKLXByb3Rl
Y3RlZDoKLSAgICB2aXJ0dWFsIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRl
bnRUeXBlJikgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNh
Y2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgeyB9Ci0gICAg
dmlydHVhbCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdmFpbGFibGUo
KSBjb25zdDsKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBNZWRp
YVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlwZVByaXZhdGUoY29uc3QgU3Ry
aW5nJik7CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOworICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVF
eHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKTsKIAogICAgIE9wdGlvbmFsPEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX3N1cHBvcnRlZFR5cGVzOwogICAg
IE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5nLCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1fY2FjaGVkUmVzdWx0czsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oCmluZGV4IGY1NzIwOWE3YjdlYjc3
OWNiYzQxZTJkZjBmOGNhNDlkNjA4OGQ2OGQuLjcwODIyMDlkZTM2ZWE0ZWNiZmVhMzg5ZmFlNmM5
NGQ2Mjg4NTFjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUuaApAQCAtMjgsMzQgKzI4LDMyIEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNs
dWRlICJNSU1FVHlwZUNhY2hlLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIAotY2xhc3MgQVZBc3NldE1J
TUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJsaWMgTUlNRVR5cGVDYWNoZSB7CitjbGFzcyBXRUJDT1JF
X0VYUE9SVCBBVkFzc2V0TUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBNSU1FVHlwZUNhY2hl
IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVZBc3NldE1JTUVUeXBlQ2Fj
aGUmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBBVkFzc2V0TUlNRVR5cGVDYWNoZSYgc2luZ2xl
dG9uKCk7CiAKLSAgICBib29sIGlzRW1wdHkoKTsKLSAgICBib29sIGlzQXZhaWxhYmxlKCkgY29u
c3Q7CisgICAgYm9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgdXNpbmcgQ2Fj
aGVNSU1FVHlwZXNDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpPjsKICAgICB2b2lkIHNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2soQ2FjaGVNSU1FVHlw
ZXNDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1fY2FjaGVUeXBlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKTsgfQogCisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7CisgICAgYm9vbCBpc1Vu
c3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQg
YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKwogcHJpdmF0
ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwogICAg
IEFWQXNzZXRNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCi0gICAgY29uc3QgSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0
KCkgZmluYWw7Ci0gICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJp
bmcmKSBmaW5hbDsKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50
VHlwZSYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRl
bnRUeXBlJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAotICAgIE9wdGlvbmFsPEhhc2hT
ZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlOwogICAgIENhY2hl
TUlNRVR5cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNz
ZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggMTYxNzZiZmQ0NjMw
YWE5MzU1ODAyNGJjZGRlMzA5ZjJiZmExZTBmYS4uN2MzOGIwYjg0MzRjZjU1Yzk1OTQ5MDk1OTVk
NmM2NWRiMmY3ZmQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVU
eXBlQ2FjaGUubW0KQEAgLTMxLDcgKzMxLDYgQEAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAj
aW1wb3J0IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oPgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KIAogI2lmICFQ
TEFURk9STShNQUNDQVRBTFlTVCkKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUxfUFJFRkxJ
R0hUKEFWRm91bmRhdGlvbikKQEAgLTYwLDcgKzU5LDcgQEAgYm9vbCBBVkFzc2V0TUlNRVR5cGVD
YWNoZTo6aXNBdmFpbGFibGUoKSBjb25zdAogI2VuZGlmCiB9CiAKLWJvb2wgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkK
K2Jvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBD
b250ZW50VHlwZSYgdHlwZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJ
T04pCiAgICAgQVNTRVJUKGlzQXZhaWxhYmxlKCkpOwpAQCAtMTM2LDYgKzEzNSwxMyBAQCBjb25z
dCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3NldE1JTUVU
eXBlQ2FjaGU6OnN0YXRpY0NvbgogICAgIHJldHVybiBjYWNoZTsKIH0KIAordm9pZCBBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5
cGVzKQoreworICAgIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKKyAg
ICBpZiAobV9jYWNoZVR5cGVDYWxsYmFjaykKKyAgICAgICAgbV9jYWNoZVR5cGVDYWxsYmFjayh0
eXBlcyk7Cit9CisKIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY2FjaGUpCiB7CiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFy
c2VyTUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oCmluZGV4IGI5
Y2E0NzNhN2E2NDIyODhlZjg4M2QwZDVmODI4NWUwZjQ1YjMxNmYuLmIzNTA4MjUwNDkzMzc5MTli
OWZkZjI3NzAwMzViMzFlYmJjNWU5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBl
Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHJpdmF0ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZT47CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZSgpID0g
ZGVmYXVsdDsKIAotICAgIGJvb2wgY2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRU
eXBlJikgZmluYWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVu
dFR5cGUmKSBmaW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0K
aW5kZXggN2UwYWMwYTYxNjkwOGEwNTI2MTJiZDkzZjIwMDg1OWY3OTk1ZGY0MC4uNDkzNGQ3Njg0
MGE1ZTdiOTc1ZTkyYjZkNTIxNmUzYjYxMWU0NTA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2Vy
TUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLm1tCkBAIC01
NCw3ICs1NCw3IEBAIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUmIEFWU3RyZWFtRGF0
YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlLmdldCgp
OwogfQogCi1ib29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5
cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZTdHJlYW1EYXRhUGFy
c2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBl
JiB0eXBlKQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElPTikKICAgICBB
U1NFUlQoaXNBdmFpbGFibGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXggYTlkNTAxNzZl
Y2NkMzNkMGU3NTk0YjdiYmMyMTZlMjJiM2NkNTRiMS4uZjhiZmVjYmY2Mzk2YWQyYjdkYjNjNjg1
YWM2OWFkYjU4MmEzODkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAtMTY0LDcgKzE2NCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gZW5naW5lIHN1cHBvcnQKICAgICBmcmllbmQgY2xhc3MgTWVk
aWFQbGF5ZXJGYWN0b3J5QVZGb3VuZGF0aW9uT2JqQzsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBw
b3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlw
ZXMpOwotICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShj
b25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisgICAgc3RhdGljIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMmKTsKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0tleVN5c3RlbShj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAKICAgICBz
dGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggYjJm
M2EyYWQ4YmI0YWIwY2M0MDdjYThhM2VjY2E5ZGYzZDg1ZTE4ZS4uNTEyOTQzZjVlMTI3ZTJkNGI3
N2E1NDI5NDhhYWQzNTQzZTIwNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0yODks
NyArMjg5LDcgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3Vw
cG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOworICAgICAg
ICByZXR1cm4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBl
QW5kQ29kZWNzKHBhcmFtZXRlcnMpOwogICAgIH0KIAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPj4gb3JpZ2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgpIGNvbnN0
IGZpbmFsCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBzdGF0aWMgYm9vbCBrZXlTeXN0ZW1Jc1N1cHBv
cnRlZChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKIH0KICNlbmRpZgogCi1NZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRz
VHlwZShjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKIHsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogICAgIGlmIChwYXJh
bWV0ZXJzLmlzTWVkaWFTb3VyY2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMjNj
NGQ0OTYyMzE4YmQ0YzM4YjZlMjI2OTU1ODhmOGYwNzE4ZmI4NS4uMzBhMjA2NTBkYzE1ZDcwNmJl
Mjc5ODBmNjQ1N2RkYzQyYjM5NTkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAt
MjU0LDEwICsyNTQsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogICAgIC8vIFRoaXMgZW5n
aW5lIGRvZXMgbm90IHN1cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAgIGlmICgh
cGFyYW1ldGVycy5pc01lZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1
cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAg
ICBpZiAocGFyYW1ldGVycy5pc01lZGlhU3RyZWFtKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jZW5kaWYKIAogICAgIGF1dG8gc3Vw
cG9ydGVkID0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAgICAg
YXV0byYgc3RyZWFtRGF0YVBhcnNlckNhY2hlID0gQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVD
YWNoZTo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCAw
NTAzNDA0YTBmMWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUxZTRkMjAwLi42MzI4MmVkOGZlMzhlMjE0
OWY4ZTgwZWZlMGQ5ZTExN2MwMzg4YmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5j
cHAKQEAgLTQwLDYgKzQwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZh
dGUuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkK
KyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CisjZW5kaWYKKwogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NIRUNLX0JB
U0UobV9wcm94aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk4LDcgKzEw
Miw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmdldFN1cHBvcnRlZFR5
cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5nCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6
c3VwcG9ydHNUeXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBlbmdp
bmVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChNZWRpYVBsYXllcjo6U3VwcG9y
dHNUeXBlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byBlbmdpbmUgPSBNZWRpYVBsYXllcjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmllcik7
CiAgICAgaWYgKCFlbmdpbmUpIHsKQEAgLTExMSw2ICsxMTUsMzIgQEAgdm9pZCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWQKICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCit2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYmIG1pbWVUeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGJvb2wgc3VwcG9ydGVkID0gZmFsc2U7CisKKyAg
ICBzd2l0Y2ggKGVuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgICAgICBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCku
Y2FuRGVjb2RlVHlwZShtaW1lVHlwZSkgPT0gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBl
OjpJc1N1cHBvcnRlZDsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAg
Y2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlv
bk1lZGlhU3RyZWFtOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyOjpBVkZvdW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAg
IGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoc3VwcG9ydGVkKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpN
ZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYgcGF0
aCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvIGVuZ2luZSA9IE1lZGlh
UGxheWVyOjptZWRpYUVuZ2luZShlbmdpbmVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmgKaW5kZXggYWU1MWZjMGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0MzcyZTQ4Yy4u
NTE1ZDhiNGM1NjAxYjdjZWQzY2E5YzgxMGViZTJjNzU0MjgyZGU2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5LmgKQEAgLTc1LDcgKzc1LDggQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lZGlh
IHBsYXllciBmYWN0b3J5CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgc3VwcG9ydHNUeXBlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmKTsKKyAgICB2b2lkIHN1cHBvcnRz
VHlwZUFuZENvZGVjcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKT4m
Jik7CisgICAgdm9pZCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIG9y
aWdpbnNJbk1lZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAgICAgdm9pZCBjbGVhck1lZGlh
Q2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmJiwgV2FsbFRpbWUpOwogICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3Jp
Z2lucyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYmLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1Y2JkZWQ1
ZmZlMTNkN2FkY2QzNGYxZDM5ZGM0ZmI1ZGZkNmM2NjZkLi43MTUyYTVmNWEyYjlmOGYwOWEyODQz
NzViNTA1OWY5Mjc2MDM2YmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yOCw3ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewogICAgIERlbGV0ZU1lZGlhUGxheWVyKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCkKIAogICAgIEdldFN1
cHBvcnRlZFR5cGVzKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcikgLT4gKFZlY3RvcjxTdHJp
bmc+IHR5cGVzKSBTeW5jaHJvbm91cwotICAgIFN1cHBvcnRzVHlwZShlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJz
IHR5cGUpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9y
dHNUeXBlIHN1cHBvcnQpIFN5bmNocm9ub3VzCisgICAgU3VwcG9ydHNUeXBlQW5kQ29kZWNzKGVu
dW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBDYW5EZWNvZGVF
eHRlbmRlZFR5cGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgbWltZVR5cGUp
IC0+IChib29sIHN1cHBvcnRzKSBTeW5jaHJvbm91cwogICAgIE9yaWdpbnNJbk1lZGlhQ2FjaGUo
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBTdHJpbmcgcGF0aCkgLT4gKFZlY3RvcjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpIFN5bmNocm9ub3VzCiAgICAgQ2xlYXJN
ZWRpYUNhY2hlKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFdhbGxU
aW1lIG1vZGlmaWVkU2luY2UpCiAgICAgQ2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIsIFN0cmluZyBwYXRoLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhPiBvcmlnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggNjAyZmI3OTVhNzJhZGRjNTc4
NTg3NmJlMDk1YjNlZWI4OWQ1ZTUzOC4uY2E1MjYwM2VkNWIwN2NjMWExMDcyMTczNmVkNDZjNjc4
OTQxMzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC01MTEsNiArNTExLDcgQEAgV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcAogLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlUHJveHkuY3BwCitXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGE1YzZlN2Q2NWFmNzIyN2VmNzNhZmQ4MjY4ZmY3MWRiMGQ4YTIxNTAuLjFiNTg4NjhmNTJl
Y2Y3MTMzMmI5NGY4ZDRiMTI0ZWFiOGY5YWU3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQsNiArODQsOCBAQAogCQkwMDVEMTU4
RjE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMDVEMTU4RTE4RTRDNEVCMDA3MzQ2MTkgLyog
X1dLRmluZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE1MThF
MjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi87IH07CiAJCTAwQjk2NjFBMThFMjVB
RTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5o
ICovOyB9OworCQkwNzAxNzg5RDIzQkFGRjM1MDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlw
ZUNhY2hlLmggKi87IH07CisJCTA3MDE3ODlFMjNCRTlDRkMwMDVGMEZBQSAvKiBSZW1vdGVNZWRp
YVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZS5jcHAgKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMDNGMDczNSAv
KiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3RjlGMUMxN0JCRUEwMTVG
MDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmlj
ZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07CiAJCTA3Mjk3RkEzMUMxODZBREIwMDNGMDczNSAv
KiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTIwNTUsNiArMjA1Nyw4IEBACiAJCTAwQjk2NjE1MThFMjRDQkEwMENF
MUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFQSUZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDBCOTY2MTcx
OEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDcwMTc4OUMyM0JB
RTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI1RUZB
QzIzOUFFMzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUxNTMs
NiArNTE1Nyw4IEBACiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkJMDcwMTc4
OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAg
Ki8sCisJCQkJMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlN
RVR5cGVDYWNoZS5oICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVN
ZWRpYVBsYXllclN0YXRlLmggKi8sCiAJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8sCiAJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFF
QTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLApAQCAtMTAyNTgsNiArMTAyNjQs
NyBAQAogCQkJCTA3OTIzMTRBMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTRDMjM5Q0JD
QjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA3
MDE3ODlEMjNCQUZGMzUwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVN
ZWRpYVBsYXllclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxREE0MDg5NTIzQTgwQTNFMDA1
OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTExOTM1LDYgKzExOTQyLDcgQEAKIAkJCQkwNzky
MzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
NzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDcwMTc4OUUyM0JFOUNGQzAw
NUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MzIzQUMwMUIz
MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDU3
ZmMyMTA3MmY1NTNlNDcwYTE3MmNjYWYzNjljYzAyZjM3NDU2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVU
eXBlQ2FjaGUuY3BwCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgorCisjaWYgUExBVEZPUk0oQ09D
T0EpCisjaW5jbHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlKFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCisgICAgOiBtX21hbmFnZXIobWFuYWdl
cikKKyAgICAsIG1fZW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQoreworfQorCitN
SU1FVHlwZUNhY2hlKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6Om1pbWVDYWNoZSgp
IGNvbnN0Cit7CisgICAgc3dpdGNoIChtX2VuZ2luZUlkZW50aWZpZXIpIHsKKyAgICBjYXNlIE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uOgorI2lm
IFBMQVRGT1JNKENPQ09BKQorICAgICAgICByZXR1cm4gJkFWQXNzZXRNSU1FVHlwZUNhY2hlOjpz
aW5nbGV0b24oKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKworICAgIGNhc2UgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb25NU0U6CisgICAgY2Fz
ZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbk1l
ZGlhU3RyZWFtOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyOjpBVkZvdW5kYXRpb25DRjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcjo6R1N0cmVhbWVyOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyOjpHU3RyZWFtZXJNU0U6CisgICAgY2FzZSBNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkhvbGVQdW5jaDoKKyAgICBjYXNlIE1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6TWVkaWFGb3VuZGF0aW9uOgorICAgIGNh
c2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNb2NrTVNFOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK2NvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+JiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRh
aW5lclR5cGVMaXN0KCkKK3sKKyAgICBpZiAoYXV0byogbWltZUNhY2hlID0gdGhpcy0+bWltZUNh
Y2hlKCkpCisgICAgICAgIHJldHVybiBtaW1lQ2FjaGUtPnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0
KCk7CisKKyAgICByZXR1cm4gTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3Qo
KTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0
ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBpZiAoYXV0byogbWlt
ZUNhY2hlID0gdGhpcy0+bWltZUNhY2hlKCkpCisgICAgICAgIHJldHVybiBtaW1lQ2FjaGUtPmlz
VW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKHR5cGUpOworCisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRU
eXBlKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiB0eXBlKQoreworICAgIGJvb2wgcmVzdWx0
OworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5
cGUobV9lbmdpbmVJZGVudGlmaWVyLCB0eXBlLnJhdygpKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5OjpDYW5EZWNvZGVFeHRlbmRlZFR5cGU6OlJlcGx5KHJlc3VsdCks
IDApKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgV2ViQ29yZTo6TWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK3sKKyAgICBpZiAocGFyYW1ldGVy
cy50eXBlLnJhdygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisKKyAgICBpZiAocGFyYW1ldGVycy5jb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOworCisgICAgaWYgKG1fc3Vw
cG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUpIHsKKyAgICAgICAgYXV0byBpdCA9IG1fc3VwcG9ydHNU
eXBlQW5kQ29kZWNzQ2FjaGUtPmZpbmQocGFyYW1ldGVycy50eXBlLnJhdygpKTsKKyAgICAgICAg
aWYgKGl0ICE9IG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmVuZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICB9CisKKyAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHJlc3VsdDsKKyAgICBpZiAoIW1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNl
bmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNU
eXBlQW5kQ29kZWNzKG1fZW5naW5lSWRlbnRpZmllciwgcGFyYW1ldGVycyksIE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6U3VwcG9ydHNUeXBlQW5kQ29kZWNzOjpSZXBs
eShyZXN1bHQpLCAwKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOworCisgICAgaWYgKCFtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hl
KQorICAgICAgICBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlID0gSGFzaE1hcDxTdHJpbmcs
IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PigpOworICAgIG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUtPmFkZChwYXJhbWV0ZXJzLnR5
cGUucmF3KCksIHJlc3VsdCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBjYWNoZSkKK3sKKyAgICBhdXRvKiBtaW1lQ2Fj
aGUgPSB0aGlzLT5taW1lQ2FjaGUoKTsKKyAgICBpZiAoIWlzRW1wdHkoKSB8fCAhbWltZUNhY2hl
KQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBpZiAo
IW1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6R2V0U3VwcG9ydGVkVHlwZXMobV9lbmdpbmVJZGVu
dGlmaWVyKSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBw
b3J0ZWRUeXBlczo6UmVwbHkodHlwZXMpLCAwKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9y
IChhdXRvJiB0eXBlIDogdHlwZXMpCisgICAgICAgIGNhY2hlLmFkZCh0eXBlKTsKKworICAgIG1p
bWVDYWNoZS0+YWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMjE4MDk4ZjFmMGRiYTJlM2VhNzk0YzEwMGMzZTcxMDA5MGUzNDZjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXllclByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
TUlNRVR5cGVDYWNoZSB7CitwdWJsaWM6CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNh
Y2hlKFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IFdlYkNvcmU6Ok1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKworcHJpdmF0ZToKKyAgICBjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxp
c3QoKSBmaW5hbDsKKyAgICBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBB
U0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CisgICAgYm9vbCBjYW5EZWNvZGVFeHRl
bmRlZFR5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmKSBmaW5hbDsKKworICAgIE1JTUVU
eXBlQ2FjaGUqIG1pbWVDYWNoZSgpIGNvbnN0OworCisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0
cmluZywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+PiBtX3N1cHBvcnRzVHlwZUFuZENvZGVjc0NhY2hlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CmluZGV4IDcxYjcxYmZmYTIzOGI5NGFiMzIzYWM0OTFmYzYxMjA1YjRiNDhjMTIuLmIzNmJjMmU4
MDljYmNlOWYzN2MxODdmMWIwMzVjNzc0OGM4ZTUyZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCkBA
IC0xMTEsOSArMTEyLDM0IEBAIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIjsK
IH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit1c2luZyBSZW1vdGVQbGF5ZXJUeXBlQ2FjaGUg
PSBIYXNoTWFwPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4sIFdURjo6SW50SGFzaDxN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+LCBXVEY6OlN0cm9uZ0VudW1I
YXNoVHJhaXRzPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcj4+Oworc3Rh
dGljIFJlbW90ZVBsYXllclR5cGVDYWNoZSYgbWltZUNhY2hlcygpCiB7Ci0vLyBGSVhNRTogVXNl
IHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuCisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJl
bW90ZVBsYXllclR5cGVDYWNoZT4gY2FjaGVzOworICAgIHJldHVybiBjYWNoZXM7Cit9CisKK1Jl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0
eXBlQ2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIpCit7CisgICAgYXV0byYgY2FjaGVQdHIgPSBtaW1lQ2FjaGVzKCkuYWRk
KHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBp
ZiAoIWNhY2hlUHRyKQorICAgICAgICBjYWNoZVB0ciA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQ
bGF5ZXJNSU1FVHlwZUNhY2hlPigqdGhpcywgcmVtb3RlRW5naW5lSWRlbnRpZmllcik7CisKKyAg
ICByZXR1cm4gKmNhY2hlUHRyOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQoreworICAgIFVOVVNFRF9QQVJBTShwYXJhbWV0ZXJzKTsKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIGlmIChwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byYgY2FjaGUgPSB0eXBlQ2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb24pOworICAgIGlmIChjYWNoZS5pc0Vt
cHR5KCkpCisgICAgICAgIGNhY2hlLmFkZFN1cHBvcnRlZFR5cGVzKHBhcmFtZXRlcnMubWVkaWFN
SU1FVHlwZXMpOworI2VuZGlmCiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZh
dGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtb3RlTWVkaWFQ
bGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpCkBAIC0xNTcsNyArMTgzLDEzIEBAIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpn
ZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydGVkIHR5cGVzIGRvbid0
IGNoYW5nZSwgY2FjaGUgdGhlbS4KKyAgICBhdXRvJiBjYWNoZSA9IHR5cGVDYWNoZShyZW1vdGVF
bmdpbmVJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNhY2hlLmlzRW1wdHkoKSkgeworICAgICAgICBy
ZXN1bHQgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOworICAg
ICAgICBmb3IgKGF1dG8mIHR5cGUgOiBjYWNoZS5zdXBwb3J0ZWRUeXBlcygpKQorICAgICAgICAg
ICAgcmVzdWx0LmFkZCh0eXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFZlY3Rv
cjxTdHJpbmc+IHR5cGVzOwogICAgIGlmICghZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3lu
YyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5
cGVzKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5cGVzOjpSZXBseSh0eXBlcyksIDApKQpAQCAtMTY2
LDE3ICsxOTgsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRl
ZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICByZXN1bHQgPSBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOwogICAgIGZvciAoYXV0byYg
dHlwZSA6IHR5cGVzKQogICAgICAgICByZXN1bHQuYWRkKHR5cGUpOworICAgIGNhY2hlLmFkZFN1
cHBvcnRlZFR5cGVzKHR5cGVzKTsKIH0KIAogTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3Qg
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICAvLyBGSVhN
RTogc3VwcG9ydGVkIHR5cGVzIGRvbid0IGNoYW5nZSwgY2FjaGUgdGhlbS4KLQotICAgIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGUgcmVzdWx0OwotICAgIGlmICghZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlN1
cHBvcnRzVHlwZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXJhbWV0ZXJzKSwgTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGU6OlJlcGx5KHJlc3Vs
dCksIDApKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RT
dXBwb3J0ZWQ7Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiB0eXBlQ2FjaGUocmVt
b3RlRW5naW5lSWRlbnRpZmllcikuc3VwcG9ydHNUeXBlQW5kQ29kZWNzKHBhcmFtZXRlcnMpOwog
fQogCiBib29sIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNLZXlTeXN0ZW0oTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCmlu
ZGV4IDI0ODgxNDQzMDk1ZTUxMTMxZGU4NjY3YWYzYjYxMzExMGRhZWMwZGUuLmM1M2M2ZmQyOWZj
YmFjOTRiMTM2NmE2NDZlYTU3OTRmYWY1NTM5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBTZXR0aW5nczsKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU7CitjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGU7CiBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CkBAIC05NCw2ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVh
ck1lZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmLCBXYWxsVGltZSBtb2RpZmllZFNpbmNlKTsKICAgICB2b2lkIGNs
ZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBIYXNoU2V0PFJlZlB0cjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4+Jik7CiAKKyAgICBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUmIHR5cGVDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIpOworCiAgICAgSGFzaE1hcDxNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4+IG1fcGxheWVyczsKICAgICBX
ZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggOTczZjVjNDg2YjEyYjA3Y2JiYmFmZDQz
YjFiYzA5ZGE4OTU5OTc1ZS4uNjNmYmVhZmYyMGMyNTcyMTAyODA3ZmU3YjBkN2E0ZjBkMzY2Zjc2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCkBAIC04MzAsNyArODMwLDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpiYWNrbGlnaHRMZXZl
bERpZENoYW5nZShmbG9hdCBiYWNrbGlnaHRMZXZlbCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRN
ZWRpYU1JTUVUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiB0eXBlcykKIHsKLSAgICBBVkFzc2V0
TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuYWRkU3VwcG9ydGVkVHlwZXModHlwZXMpOworICAg
IGF1dG8mIGNhY2hlID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgIGlm
IChjYWNoZS5pc0VtcHR5KCkpCisgICAgICAgIGNhY2hlLmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVz
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386807</attachid>
            <date>2020-01-05 20:39:45 -0800</date>
            <delta_ts>2020-01-05 21:47:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>remote-mime-cache-patch.txt</filename>
            <type>text/plain</type>
            <size>45926</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwY2VlMWI2YmRkNS4uOTExYmE2ZWEwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MCBAQAorMjAyMC0wMS0wMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nlc3NdIEFkZCByZW1vdGUgTUlNRSB0
eXBlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDU3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MzEyMTUyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKyAgICAgICAgCisgICAgICAgIENyZWF0ZSBhIE1JTUUg
dHlwZSBjYWNoZSBmb3IgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIHNvIHR5cGVzIHdpdGhvdXQg
YQorICAgICAgICAnY29kZWNzJyBwYXJhbWV0ZXIgZG9uJ3QgdHlwaWNhbGx5IHJlcXVpcmUgSVBD
LCBhbmQgd2hlbiBpdCBpcyByZXF1aXJlZCB0aGUKKyAgICAgICAgcmVzdWx0IGlzIGNhY2hlZCBz
byBpdCBpcyBvbmx5IHJlcXVpcmVkIG9uY2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NSU1FVHlwZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OnN1
cHBvcnRzQ29udGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpj
YW5EZWNvZGVUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OnNldFN1cHBv
cnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRh
aW5lclR5cGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBw
b3J0ZWRDb250YWluZXJUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6Omlz
QXZhaWxhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmlzRW1w
dHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVDYWNoZTo6aW5pdGlhbGl6ZUNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVuZGVk
VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlUHJp
dmF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjphZGRTdXBw
b3J0ZWRUeXBlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjph
ZGRTdXBwb3J0ZWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9N
SU1FVHlwZUNhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppc1Vuc3Vw
cG9ydGVkQ29udGFpbmVyVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlw
ZUNhY2hlOjppc0F2YWlsYWJsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpN
SU1FVHlwZUNhY2hlOjppc0VtcHR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2FjaGUpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlw
ZUNhY2hlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QVZBc3NldE1JTUVUeXBlQ2FjaGUubW06CisgICAgICAgIChXZWJDb3JlOjpBVkFzc2V0TUlNRVR5
cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjpzZXRTdXBwb3J0ZWRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFsKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQ
YXJzZXJNSU1FVHlwZUNhY2hlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZUV4dGVu
ZGVkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNh
Y2hlOjpjYW5EZWNvZGVUeXBlSW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNz
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnN1cHBvcnRzVHlwZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpz
dXBwb3J0c1R5cGUpOgorCiAyMDIwLTAxLTAyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIEZpeCBmYWlsaW5nIHRleHQtaW5kZW50
IGNhc2VzIHdoZW4gdGhlIElGQyByb290IGlzIGFuIGFub255bW91cyBib3gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHAKaW5kZXggODc1
YThiYjM2MjguLjQ4NTYyZjM4YWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgTUlN
RVR5cGVDYWNoZTo6c3VwcG9ydGVkVHlwZXMoKQogewogICAgIGlmICghbV9zdXBwb3J0ZWRUeXBl
cykgewotICAgICAgICBtX3N1cHBvcnRlZFR5cGVzID0gSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4oKTsKKyAgICAgICAgbV9zdXBwb3J0ZWRUeXBlcyA9IEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHsgfTsKICAgICAgICAgaW5pdGlhbGl6
ZUNhY2hlKCptX3N1cHBvcnRlZFR5cGVzKTsKICAgICB9CiAKQEAgLTQ1LDYgKzQ1LDkgQEAgYm9v
bCBNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250
YWluZXJUeXBlKQogICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBjb250YWluZXJUeXBlLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250
YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBp
ZiAoc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTUzLDcgKzU2LDcgQEAgYm9vbCBNSU1FVHlwZUNhY2hl
OjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWluZXJUeXBlKQogCiBN
ZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlw
ZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewotICAgIGlmICghaXNBdmFpbGFibGUoKSB8fCBt
aW1lVHlwZS5pc0VtcHR5KCkpCisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAK
ICAgICBpZiAobV9jYWNoZWRSZXN1bHRzKSB7CkBAIC02Miw3ICs2NSwyNCBAQCBNZWRpYVBsYXll
ckVudW1zOjpTdXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBT
dHJpbmcmIG1pbWVUeQogICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKICAgICB9CiAKLSAg
ICBhdXRvIHJlc3VsdCA9IGNhbkRlY29kZVR5cGVQcml2YXRlKG1pbWVUeXBlKTsKKyAgICBhdXRv
IHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CisgICAgZG8geworICAgICAgICBpZiAoIWlzQXZhaWxhYmxlKCkgfHwgbWltZVR5cGUuaXNFbXB0
eSgpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IENv
bnRlbnRUeXBlIHsgbWltZVR5cGUgfTsKKyAgICAgICAgYXV0byBjb250YWluZXJUeXBlID0gY29u
dGVudFR5cGUuY29udGFpbmVyVHlwZSgpOworICAgICAgICBpZiAoIXN1cHBvcnRzQ29udGFpbmVy
VHlwZShjb250YWluZXJUeXBlKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHJlc3Vs
dCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6TWF5QmVTdXBwb3J0ZWQ7CisgICAg
ICAgIGlmIChjb250ZW50VHlwZS5jb2RlY3MoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBpZiAoY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnRlbnRUeXBlKSkKKyAg
ICAgICAgICAgIHJlc3VsdCA9IE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBw
b3J0ZWQ7CisgICAgfSB3aGlsZSAoMCk7CisKICAgICBpZiAoIW1fY2FjaGVkUmVzdWx0cykKICAg
ICAgICAgbV9jYWNoZWRSZXN1bHRzID0gSGFzaE1hcDxTdHJpbmcsIE1lZGlhUGxheWVyRW51bXM6
OlN1cHBvcnRzVHlwZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOwogICAgIG1fY2FjaGVk
UmVzdWx0cy0+YWRkKG1pbWVUeXBlLCByZXN1bHQpOwpAQCAtNzAsNDEgKzkwLDQzIEBAIE1lZGlh
UGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNv
bnN0IFN0cmluZyYgbWltZVR5CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlIE1JTUVUeXBlQ2FjaGU6OmNhbkRlY29kZVR5cGVQcml2YXRlKGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpCit2b2lkIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5
cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBlcykKIHsKLSAgICBBU1NFUlQoaXNBdmFp
bGFibGUoKSAmJiAhbWltZVR5cGUuaXNFbXB0eSgpKTsKLQotICAgIGF1dG8gY29udGVudFR5cGUg
PSBDb250ZW50VHlwZSB7IG1pbWVUeXBlIH07Ci0gICAgYXV0byBjb250YWluZXJUeXBlID0gY29u
dGVudFR5cGUuY29udGFpbmVyVHlwZSgpOworICAgIGlmICghbV9zdXBwb3J0ZWRUeXBlcykKKyAg
ICAgICAgbV9zdXBwb3J0ZWRUeXBlcyA9IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+IHsgfTsKIAotICAgIGlmIChpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb250
YWluZXJUeXBlKSkKLSAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQ7CisgICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMpCisgICAg
ICAgIG1fc3VwcG9ydGVkVHlwZXMtPmFkZCh0eXBlKTsKK30KIAotICAgIGlmICghc3VwcG9ydHND
b250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJF
bnVtczo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKK2NvbnN0IEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWlu
ZXJUeXBlTGlzdCgpCit7CisgICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJE
ZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4geyB9KTsK
KyAgICByZXR1cm4gY2FjaGU7Cit9CiAKLSAgICBpZiAoIWNvbnRlbnRUeXBlLmNvZGVjcygpLmlz
RW1wdHkoKSAmJiBjYW5EZWNvZGVUeXBlSW50ZXJuYWwoY29udGVudFR5cGUpKQotICAgICAgICBy
ZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZDsKK2Jvb2wg
TUlNRVR5cGVDYWNoZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikK
K3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKLSAgICByZXR1cm4gTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6aXNBdmFp
bGFibGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIE1JTUVUeXBlQ2Fj
aGU6OmFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBlcykKK2Jv
b2wgTUlNRVR5cGVDYWNoZTo6aXNFbXB0eSgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3RvcmFnZSA9
IHN1cHBvcnRlZFR5cGVzKCk7Ci0gICAgZm9yIChhdXRvJiB0eXBlIDogbmV3VHlwZXMpCi0gICAg
ICAgIHN0b3JhZ2UuYWRkKHR5cGUpOworICAgIHJldHVybiBtX3N1cHBvcnRlZFR5cGVzICYmIG1f
c3VwcG9ydGVkVHlwZXMtPmlzRW1wdHkoKTsKIH0KIAotdm9pZCBNSU1FVHlwZUNhY2hlOjphZGRT
dXBwb3J0ZWRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKK3ZvaWQgTUlNRVR5cGVDYWNoZTo6aW5p
dGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JikK
IHsKLSAgICBzdXBwb3J0ZWRUeXBlcygpLmFkZCh0eXBlKTsKIH0KIAotY29uc3QgSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0Nv
bnRhaW5lclR5cGVMaXN0KCkKK2Jvb2wgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRU
eXBlKGNvbnN0IENvbnRlbnRUeXBlJikKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBjYWNoZSA9
IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiB7IH0pOwotICAgIHJldHVybiBjYWNoZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2Fj
aGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaApp
bmRleCBhNGQ3YWY5ODkxZi4uODQ3OGYxNzk4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKQEAgLTM2LDcgKzM2LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIAotY2xhc3MgTUlNRVR5cGVDYWNo
ZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBNSU1FVHlwZUNhY2hlIHsKKyAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0Owog
ICAgIHZpcnR1YWwgfk1JTUVUeXBlQ2FjaGUoKSA9IGRlZmF1bHQ7CkBAIC00NCwyMiArNDUsMTgg
QEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYp
OwogICAgIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBjYW5EZWNvZGVUeXBlKGNvbnN0
IFN0cmluZyYpOwogCi0gICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4mIHN1cHBvcnRlZFR5cGVzKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRTdXBwb3J0
ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlw
ZShjb25zdCBTdHJpbmcmKTsKLQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFp
bmVyVHlwZShjb25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRh
aW5lclR5cGVMaXN0KCk7CisgICAgdmlydHVhbCBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJU
eXBlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgdmlydHVhbCBib29sIGlzQXZhaWxhYmxlKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3VwcG9ydGVkVHlwZXMgJiYgIW1fc3VwcG9ydGVkVHlwZXMtPmlzRW1wdHkoKTsgfQorICAgIEhh
c2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcygp
OworICAgIHZpcnR1YWwgdm9pZCBhZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYpOwogCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5h
bChjb25zdCBDb250ZW50VHlwZSYpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYpIHsgfQotICAgIHZpcnR1YWwgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCk7CisgICAgdmlydHVhbCBib29s
IGlzQXZhaWxhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKIHByaXZh
dGU6Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGNhbkRlY29kZVR5cGVQcml2
YXRlKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKKyAgICB2aXJ0dWFsIGJv
b2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKICAgICBPcHRp
b25hbDxIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbV9zdXBwb3J0
ZWRUeXBlczsKICAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgTWVkaWFQbGF5ZXJFbnVtczo6
U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hlZFJlc3VsdHM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAppbmRleCBm
NTcyMDlhN2I3ZS4uNzA4MjIwOWRlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZB
c3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtMjgsMzQgKzI4LDMyIEBACiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAKICNpbmNsdWRlICJNSU1FVHlwZUNhY2hlLmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKIAotY2xh
c3MgQVZBc3NldE1JTUVUeXBlQ2FjaGUgZmluYWwgOiBwdWJsaWMgTUlNRVR5cGVDYWNoZSB7Citj
bGFzcyBXRUJDT1JFX0VYUE9SVCBBVkFzc2V0TUlNRVR5cGVDYWNoZSBmaW5hbCA6IHB1YmxpYyBN
SU1FVHlwZUNhY2hlIHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVZBc3Nl
dE1JTUVUeXBlQ2FjaGUmIHNpbmdsZXRvbigpOworICAgIHN0YXRpYyBBVkFzc2V0TUlNRVR5cGVD
YWNoZSYgc2luZ2xldG9uKCk7CiAKLSAgICBib29sIGlzRW1wdHkoKTsKLSAgICBib29sIGlzQXZh
aWxhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IGZpbmFsOwogCiAg
ICAgdXNpbmcgQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25z
dCBWZWN0b3I8U3RyaW5nPiYpPjsKICAgICB2b2lkIHNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2so
Q2FjaGVNSU1FVHlwZXNDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1fY2FjaGVUeXBlQ2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCisgICAgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkgZmluYWw7Cisg
ICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KworICAgIHZvaWQgYWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5h
bDsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBl
Q2FjaGU+OwogICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCi0gICAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRh
aW5lclR5cGVMaXN0KCkgZmluYWw7Ci0gICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlw
ZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5hbChj
b25zdCBDb250ZW50VHlwZSYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBl
KGNvbnN0IENvbnRlbnRUeXBlJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFz
aFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIAotICAgIE9w
dGlvbmFsPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtX2NhY2hl
OwogICAgIENhY2hlTUlNRVR5cGVzQ2FsbGJhY2sgbV9jYWNoZVR5cGVDYWxsYmFjazsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXgg
MTYxNzZiZmQ0NjMuLjdjMzhiMGI4NDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5tbQpAQCAtMzEsNyArMzEsNiBAQAogI2ltcG9ydCAiQ29udGVu
dFR5cGUuaCIKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgogI2ltcG9ydCA8
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5o
PgogCiAjaWYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJ
T05BTF9QUkVGTElHSFQoQVZGb3VuZGF0aW9uKQpAQCAtNjAsNyArNTksNyBAQCBib29sIEFWQXNz
ZXRNSU1FVHlwZUNhY2hlOjppc0F2YWlsYWJsZSgpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZUludGVybmFsKGNvbnN0IENvbnRlbnRU
eXBlJiB0eXBlKQorYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRU
eXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNF
KEFWRk9VTkRBVElPTikKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7CkBAIC0xMzYsNiArMTM1
LDEzIEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6c3RhdGljQ29uCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCit2
b2lkIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjphZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdHlwZXMpCit7CisgICAgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMo
dHlwZXMpOworICAgIGlmIChtX2NhY2hlVHlwZUNhbGxiYWNrKQorICAgICAgICBtX2NhY2hlVHlw
ZUNhbGxiYWNrKHR5cGVzKTsKK30KKwogdm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aW5pdGlh
bGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBjYWNo
ZSkKIHsKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0
cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
LmgKaW5kZXggYjljYTQ3M2E3YTYuLmIzNTA4MjUwNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJz
ZXJNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5oCkBAIC00
Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEFWU3RyZWFt
RGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU+OwogICAgIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBl
Q2FjaGUoKSA9IGRlZmF1bHQ7CiAKLSAgICBib29sIGNhbkRlY29kZVR5cGVJbnRlcm5hbChjb25z
dCBDb250ZW50VHlwZSYpIGZpbmFsOworICAgIGJvb2wgY2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNv
bnN0IENvbnRlbnRUeXBlJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNl
dDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKSBmaW5hbDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlw
ZUNhY2hlLm1tCmluZGV4IDdlMGFjMGE2MTY5Li40OTM0ZDc2ODQwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZTdHJlYW1E
YXRhUGFyc2VyTUlNRVR5cGVDYWNoZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVlN0cmVhbURhdGFQYXJzZXJNSU1FVHlwZUNhY2hl
Lm1tCkBAIC01NCw3ICs1NCw3IEBAIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGUmIEFW
U3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNh
Y2hlLmdldCgpOwogfQogCi1ib29sIEFWU3RyZWFtRGF0YVBhcnNlck1JTUVUeXBlQ2FjaGU6OmNh
bkRlY29kZVR5cGVJbnRlcm5hbChjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKK2Jvb2wgQVZTdHJl
YW1EYXRhUGFyc2VyTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlKQogewogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEFWRk9VTkRBVElP
TikKICAgICBBU1NFUlQoaXNBdmFpbGFibGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5kZXgg
YTlkNTAxNzZlY2MuLmY4YmZlY2JmNjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNjQs
NyArMTY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBlbmdpbmUgc3VwcG9ydAogICAgIGZyaWVuZCBj
bGFzcyBNZWRpYVBsYXllckZhY3RvcnlBVkZvdW5kYXRpb25PYmpDOwogICAgIHN0YXRpYyB2b2lk
IGdldFN1cHBvcnRlZFR5cGVzKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+JiB0eXBlcyk7Ci0gICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9y
dHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKKyAgICBzdGF0aWMg
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoY29uc3QgTWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5
U3lzdGVtKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsK
IAogICAgIHN0YXRpYyBib29sIGlzQXZhaWxhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCBiMmYzYTJhZDhiYi4uNTEyOTQzZjVlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpA
QCAtMjg5LDcgKzI4OSw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzKTsK
KyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBv
cnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsKICAgICB9CiAKICAgICBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNJbk1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBwYXRo
KSBjb25zdCBmaW5hbApAQCAtMTYxNyw3ICsxNjE3LDcgQEAgc3RhdGljIGJvb2wga2V5U3lzdGVt
SXNTdXBwb3J0ZWQoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCiB9CiAjZW5kaWYKIAotTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpz
dXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKICAgICBp
ZiAocGFyYW1ldGVycy5pc01lZGlhU291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDIzYzRkNDk2MjMxLi4zMGEyMDY1MGRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bQpAQCAtMjU0LDEwICsyNTQsNiBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbgogICAgIC8vIFRo
aXMgZW5naW5lIGRvZXMgbm90IHN1cHBvcnQgbm9uLW1lZGlhLXNvdXJjZSBzb3VyY2VzLgogICAg
IGlmICghcGFyYW1ldGVycy5pc01lZGlhU291cmNlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLSAgICBpZiAocGFyYW1ldGVycy5pc01lZGlhU3RyZWFtKQotICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0jZW5kaWYKIAogICAgIGF1
dG8gc3VwcG9ydGVkID0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CiAgICAgYXV0byYgc3RyZWFtRGF0YVBhcnNlckNhY2hlID0gQVZTdHJlYW1EYXRhUGFyc2VyTUlN
RVR5cGVDYWNoZTo6c2luZ2xldG9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzNjJlODk5ZDQzLi42ZGJhYWUx
YTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMC0wMS0wMyAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWEgaW4gR1BVIHByb2Nl
c3NdIEFkZCByZW1vdGUgTUlNRSB0eXBlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4
MzEyMTUyPgorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6c3VwcG9ydHNUeXBl
QW5kQ29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk6OmNhbkRlY29kZUV4dGVuZGVkVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGUpOiBEZWxldGVkLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBl
Q2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6
Om1pbWVDYWNoZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlN
RVR5cGVDYWNoZTo6aXNBdmFpbGFibGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVk
Q29udGFpbmVyVHlwZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5
cGVDYWNoZTo6Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNo
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1F
VHlwZUNhY2hlLmg6ICBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pbWVDYWNoZXMp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnR5cGVDYWNoZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVk
VHlwZXMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBv
cnRzVHlwZUFuZENvZGVjcyk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6c2V0TWVkaWFNSU1F
VHlwZXMpOgorCiAyMDIwLTAxLTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gUmVwbGFjZSAidW5leHBlY3RlZGx5IHJlc3VtZWQiIG9ic2VydmVyIHdp
dGggUnVubmluZ0JvYXJkIHN1c3BlbmRpYmxlIGFzc2VydGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDA1MDM0MDRhMGYxLi42MzI4MmVkOGZlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw2ICs0MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCisj
aWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNo
ZS5oPgorI2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmll
cikgTUVTU0FHRV9DSEVDS19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAm
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNlIFdl
YktpdCB7CkBAIC05OCw3ICsxMDIsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdp
bmVTdXBwb3J0UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGF1dG8gZW5naW5lID0gTWVkaWFQbGF5ZXI6Om1lZGlhRW5naW5l
KGVuZ2luZUlkZW50aWZpZXIpOwogICAgIGlmICghZW5naW5lKSB7CkBAIC0xMTEsNiArMTE1LDMy
IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OnN1cHBvcnRzVHlwZShNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0
KTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Y2FuRGVjb2RlRXh0
ZW5kZWRUeXBlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiBtaW1lVHlwZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBib29sIHN1cHBv
cnRlZCA9IGZhbHNlOworCisgICAgc3dpdGNoIChlbmdpbmVJZGVudGlmaWVyKSB7CisgICAgY2Fz
ZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbjoK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgc3VwcG9ydGVkID0gQVZBc3NldE1JTUVUeXBl
Q2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUobWltZVR5cGUpID09IE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQ7CisgICAgICAgIGJyZWFrOworI2VuZGlm
CisKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZG
b3VuZGF0aW9uTVNFOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyOjpBVkZvdW5kYXRpb25NZWRpYVN0cmVhbToKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6QVZGb3VuZGF0aW9uQ0Y6CisgICAgY2FzZSBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lcjoKKyAgICBjYXNl
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6R1N0cmVhbWVyTVNFOgor
ICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpIb2xlUHVu
Y2g6CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6Ok1l
ZGlhRm91bmRhdGlvbjoKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllcjo6TW9ja01TRToKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1cHBvcnRlZCk7Cit9CisK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om9yaWdpbnNJbk1lZGlhQ2FjaGUo
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYmIHBhdGgsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byBlbmdpbmUgPSBNZWRpYVBsYXllcjo6bWVkaWFFbmdpbmUoZW5naW5lSWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGFlNTFmYzBjNTIwLi41MTVkOGI0YzU2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTc1LDcgKzc1LDggQEAgcHJpdmF0
ZToKIAogICAgIC8vIE1lZGlhIHBsYXllciBmYWN0b3J5CiAgICAgdm9pZCBnZXRTdXBwb3J0ZWRU
eXBlcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwotICAgIHZvaWQgc3Vw
cG9ydHNUeXBlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUpPiYmKTsK
KyAgICB2b2lkIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlKT4mJik7CisgICAgdm9pZCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKICAgICB2b2lkIG9yaWdpbnNJbk1lZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYmKT4mJik7CiAg
ICAgdm9pZCBjbGVhck1lZGlhQ2FjaGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgV2FsbFRpbWUpOwogICAgIHZvaWQgY2xl
YXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA1Y2JkZWQ1ZmZlMS4uNzE1MmE1ZjVhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDggQEAgbWVzc2FnZXMg
LT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkgTm90UmVmQ291bnRlZCB7CiAgICAgRGVs
ZXRlTWVkaWFQbGF5ZXIoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkKQogCiAgICAgR2V0U3VwcG9ydGVkVHlwZXMoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
KSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpIFN5bmNocm9ub3VzCi0gICAgU3VwcG9ydHNUeXBl
KGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhRW5naW5l
U3VwcG9ydFBhcmFtZXRlcnMgdHlwZSkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCkgU3luY2hyb25vdXMKKyAgICBTdXBwb3J0
c1R5cGVBbmRDb2RlY3MoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyB0eXBlKSAtPiAoZW51bTp1aW50OF90IFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBzdXBwb3J0KSBTeW5jaHJvbm91
cworICAgIENhbkRlY29kZUV4dGVuZGVkVHlwZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IFN0cmluZyBtaW1lVHlwZSkgLT4gKGJvb2wgc3VwcG9ydHMpIFN5bmNocm9ub3VzCiAgICAgT3Jp
Z2luc0luTWVkaWFDYWNoZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIFN0cmluZyBwYXRo
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lucykgU3luY2hy
b25vdXMKICAgICBDbGVhck1lZGlhQ2FjaGUoZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBT
dHJpbmcgcGF0aCwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSkKICAgICBDbGVhck1lZGlhQ2FjaGVG
b3JPcmlnaW5zKGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgU3RyaW5nIHBhdGgsIFZlY3Rv
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2
MDJmYjc5NWE3Mi4uY2E1MjYwM2VkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtNTExLDYgKzUxMSw3IEBA
IFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAogLy9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCiAvL1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKIC8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAorV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvR1BVL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCiAKIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBhNWM2ZTdkNjVhZi4uMWI1ODg2OGY1MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQsNiArODQs
OCBAQAogCQkwMDVEMTU4RjE4RTRDNEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMDVEMTU4RTE4RTRD
NEVCMDA3MzQ2MTkgLyogX1dLRmluZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDBCOTY2MTYxOEUyNENCQTAwQ0UxRjg4IC8qIEFQ
SUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi87IH07CiAJ
CTAwQjk2NjFBMThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFGODgg
LyogRmluZENsaWVudC5oICovOyB9OworCQkwNzAxNzg5RDIzQkFGRjM1MDA1RjBGQUEgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwNzAxNzg5QzIzQkFFMjYyMDA1RjBGQUEgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmggKi87IH07CisJCTA3MDE3ODlFMjNCRTlDRkMwMDVGMEZB
QSAvKiBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8q
IFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAgKi87IH07CiAJCTA3Mjk3RjlGMUMx
N0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTAw
M0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggKi87IH07CiAJCTA3Mjk3
RjlGMUMxN0JCRUEwMTVGMDczNSAvKiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGOUQxQzE3QkJFQTIy
M0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9yYWdlLmggKi87IH07CiAJCTA3Mjk3RkEzMUMx
ODZBREIwMDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGQTExQzE4NkFEQjAwM0Yw
NzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwNTUsNiArMjA1Nyw4IEBACiAJCTAwQjk2
NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElGaW5kQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSUZpbmRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDBCOTY2MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGaW5kQ2xpZW50Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaW5kQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3MDE3ODlCMjNCQUUyNjEwMDVGMEZBQSAvKiBSZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVD
YWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzI1RUZBQzIzOUFFMzg1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5
IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTUxNTMsNiArNTE1Nyw4IEBACiAJCQkJMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUy
IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi8sCiAJCQkJMDc5MjMxMzQyMzlCM0Iw
QzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMz
MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8sCisJCQkJMDcwMTc4OUIyM0JBRTI2MTAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlN
RVR5cGVDYWNoZS5jcHAgKi8sCisJCQkJMDcwMTc4OUMyM0JBRTI2MjAwNUYwRkFBIC8qIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJB
NUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggKi8sCiAJCQkJMUQzMkY4OUQyM0E4NEM1
QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8sCiAJCQkJMUQzMkY4
OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLApAQCAt
MTAyNTgsNiArMTAyNjQsNyBAQAogCQkJCTA3OTIzMTRBMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTA3MDE3ODlEMjNCQUZGMzUwMDVGMEZBQSAvKiBSZW1vdGVNZWRpYVBsYXll
ck1JTUVUeXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjNCNDcwMjNBQjMwMkQwMEJB
NUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxREE0
MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTExOTM1LDYgKzExOTQy
LDcgQEAKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFEM0FCMDUwMjNB
QzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDcw
MTc4OUUyM0JFOUNGQzAwNUYwRkFBIC8qIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxRDNBQjA1MjIzQUMwMUFF
MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
RDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmQ1N2ZjMjEwNzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5jcHAKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hl
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllcikKKyAgICA6IG1f
bWFuYWdlcihtYW5hZ2VyKQorICAgICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZp
ZXIpCit7Cit9CisKK01JTUVUeXBlQ2FjaGUqIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6bWltZUNhY2hlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fZW5naW5lSWRlbnRpZmllcikg
eworICAgIGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZv
dW5kYXRpb246CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgIHJldHVybiAmQVZBc3NldE1J
TUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpOworICAgICAgICBicmVhazsKKyNlbmRpZgorCisgICAg
Y2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlv
bk1TRToKKyAgICBjYXNlIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6
QVZGb3VuZGF0aW9uTWVkaWFTdHJlYW06CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXI6OkFWRm91bmRhdGlvbkNGOgorICAgIGNhc2UgTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpHU3RyZWFtZXI6CisgICAgY2FzZSBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6OkdTdHJlYW1lck1TRToKKyAgICBjYXNl
IE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcjo6SG9sZVB1bmNoOgorICAg
IGNhc2UgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpNZWRpYUZvdW5k
YXRpb246CisgICAgY2FzZSBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI6
Ok1vY2tNU0U6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworY29uc3QgSGFzaFNldDxTdHJpbmcs
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQoreworICAgIGlmIChhdXRvKiBtaW1lQ2FjaGUg
PSB0aGlzLT5taW1lQ2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIG1pbWVDYWNoZS0+c3RhdGljQ29u
dGFpbmVyVHlwZUxpc3QoKTsKKworICAgIHJldHVybiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250
YWluZXJUeXBlTGlzdCgpOworfQorCitib29sIFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNo
ZTo6aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAg
IGlmIChhdXRvKiBtaW1lQ2FjaGUgPSB0aGlzLT5taW1lQ2FjaGUoKSkKKyAgICAgICAgcmV0dXJu
IG1pbWVDYWNoZS0+aXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUodHlwZSk7CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjpjYW5E
ZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmIHR5cGUpCit7Cisg
ICAgYm9vbCByZXN1bHQ7CisgICAgaWYgKCFtX21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24o
KS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNhbkRl
Y29kZUV4dGVuZGVkVHlwZShtX2VuZ2luZUlkZW50aWZpZXIsIHR5cGUucmF3KCkpLCBNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNhbkRlY29kZUV4dGVuZGVkVHlwZTo6
UmVwbHkocmVzdWx0KSwgMCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK1dlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBSZW1v
dGVNZWRpYVBsYXllck1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBX
ZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworICAg
IGlmIChwYXJhbWV0ZXJzLnR5cGUucmF3KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlOjpNYXlCZVN1cHBvcnRlZDsKKworICAgIGlmIChw
YXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydC5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBjYW5EZWNvZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CisK
KyAgICBpZiAobV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZSkgeworICAgICAgICBhdXRvIGl0
ID0gbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZS0+ZmluZChwYXJhbWV0ZXJzLnR5cGUucmF3
KCkpOworICAgICAgICBpZiAoaXQgIT0gbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZS0+ZW5k
KCkpCisgICAgICAgICAgICByZXR1cm4gaXQtPnZhbHVlOworICAgIH0KKworICAgIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgcmVzdWx0OworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpTdXBwb3J0c1R5cGVBbmRDb2RlY3MobV9lbmdpbmVJZGVudGlmaWVyLCBwYXJhbWV0ZXJz
KSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGVB
bmRDb2RlY3M6OlJlcGx5KHJlc3VsdCksIDApKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKKyAgICBpZiAoIW1fc3VwcG9ydHNUeXBl
QW5kQ29kZWNzQ2FjaGUpCisgICAgICAgIG1fc3VwcG9ydHNUeXBlQW5kQ29kZWNzQ2FjaGUgPSBI
YXNoTWFwPFN0cmluZywgTWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlLCBBU0NJSUNhc2VJ
bnNlbnNpdGl2ZUhhc2g+KCk7CisgICAgbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNoZS0+YWRk
KHBhcmFtZXRlcnMudHlwZS5yYXcoKSwgcmVzdWx0KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2FjaGUo
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNhY2hlKQoreworICAg
IGF1dG8qIG1pbWVDYWNoZSA9IHRoaXMtPm1pbWVDYWNoZSgpOworICAgIGlmICghaXNFbXB0eSgp
IHx8ICFtaW1lQ2FjaGUpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5
cGVzOworICAgIGlmICghbV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFN5bmMo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpHZXRTdXBwb3J0ZWRUeXBl
cyhtX2VuZ2luZUlkZW50aWZpZXIpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6OkdldFN1cHBvcnRlZFR5cGVzOjpSZXBseSh0eXBlcyksIDApKQorICAgICAgICByZXR1
cm47CisKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcykKKyAgICAgICAgY2FjaGUuYWRkKHR5
cGUpOworCisgICAgbWltZUNhY2hlLT5hZGRTdXBwb3J0ZWRUeXBlcyh0eXBlcyk7Cit9CisKK30K
KworI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTUlN
RVR5cGVDYWNoZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMjE4
MDk4ZjFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlLmgKQEAgLTAsMCArMSw2MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVDYWNoZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3N0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6Ok1JTUVUeXBlQ2FjaGUgeworcHVibGljOgorICAgIFJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOworCisgICAgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZUFuZENvZGVjcyhjb25zdCBX
ZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CisKK3ByaXZhdGU6CisgICAg
Y29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN0YXRpY0Nv
bnRhaW5lclR5cGVMaXN0KCkgZmluYWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVy
VHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOworICAgIGJvb2wg
Y2FuRGVjb2RlRXh0ZW5kZWRUeXBlKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJikgZmluYWw7
CisKKyAgICBNSU1FVHlwZUNhY2hlKiBtaW1lQ2FjaGUoKSBjb25zdDsKKworICAgIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgT3B0aW9u
YWw8SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlw
ZSwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbV9zdXBwb3J0c1R5cGVBbmRDb2RlY3NDYWNo
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcAppbmRleCA3MWI3MWJmZmEyMy4uYjM2YmMyZTgwOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgog
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmgiCkBAIC0xMTEsOSArMTEyLDM0IEBAIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUoKQogICAgIHJldHVybiAiUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyIjsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmluaXRpYWxp
emUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit1c2luZyBSZW1vdGVQbGF5
ZXJUeXBlQ2FjaGUgPSBIYXNoTWFwPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
Zmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZT4sIFdU
Rjo6SW50SGFzaDxNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXI+LCBXVEY6
OlN0cm9uZ0VudW1IYXNoVHJhaXRzPE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
Zmllcj4+Oworc3RhdGljIFJlbW90ZVBsYXllclR5cGVDYWNoZSYgbWltZUNhY2hlcygpCiB7Ci0v
LyBGSVhNRTogVXNlIHBhcmFtZXRlcnMubWVkaWFNSU1FVHlwZXMuCisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFJlbW90ZVBsYXllclR5cGVDYWNoZT4gY2FjaGVzOworICAgIHJldHVybiBjYWNo
ZXM7Cit9CisKK1JlbW90ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZSYgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjp0eXBlQ2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpCit7CisgICAgYXV0byYgY2FjaGVQdHIgPSBtaW1l
Q2FjaGVzKCkuYWRkKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIG51bGxwdHIpLml0ZXJhdG9yLT52
YWx1ZTsKKyAgICBpZiAoIWNhY2hlUHRyKQorICAgICAgICBjYWNoZVB0ciA9IG1ha2VVbmlxdWU8
UmVtb3RlTWVkaWFQbGF5ZXJNSU1FVHlwZUNhY2hlPigqdGhpcywgcmVtb3RlRW5naW5lSWRlbnRp
Zmllcik7CisKKyAgICByZXR1cm4gKmNhY2hlUHRyOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzKQoreworICAgIFVOVVNFRF9QQVJBTShwYXJhbWV0ZXJzKTsKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGlmIChwYXJhbWV0ZXJzLm1lZGlhTUlNRVR5cGVzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2FjaGUgPSB0eXBlQ2FjaGUoTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyOjpBVkZvdW5kYXRpb24pOworICAgIGlm
IChjYWNoZS5pc0VtcHR5KCkpCisgICAgICAgIGNhY2hlLmFkZFN1cHBvcnRlZFR5cGVzKHBhcmFt
ZXRlcnMubWVkaWFNSU1FVHlwZXMpOworI2VuZGlmCiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRl
UmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpCkBAIC0xNTcsNyAr
MTgzLDEzIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkZWxldGVSZW1vdGVNZWRp
YVBsYXllcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mIHJlc3VsdCkKIHsKLSAgICAvLyBGSVhNRTogc3VwcG9ydGVk
IHR5cGVzIGRvbid0IGNoYW5nZSwgY2FjaGUgdGhlbS4KKyAgICBhdXRvJiBjYWNoZSA9IHR5cGVD
YWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyKTsKKyAgICBpZiAoIWNhY2hlLmlzRW1wdHkoKSkg
eworICAgICAgICByZXN1bHQgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPigpOworICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBjYWNoZS5zdXBwb3J0ZWRUeXBlcygp
KQorICAgICAgICAgICAgcmVzdWx0LmFkZCh0eXBlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOwogICAgIGlmICghZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Okdl
dFN1cHBvcnRlZFR5cGVzKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpLCBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkdldFN1cHBvcnRlZFR5cGVzOjpSZXBseSh0eXBlcyks
IDApKQpAQCAtMTY2LDE3ICsxOTgsMTIgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OmdldFN1cHBvcnRlZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICBy
ZXN1bHQgPSBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPigpOwogICAg
IGZvciAoYXV0byYgdHlwZSA6IHR5cGVzKQogICAgICAgICByZXN1bHQuYWRkKHR5cGUpOworICAg
IGNhY2hlLmFkZFN1cHBvcnRlZFR5cGVzKHR5cGVzKTsKIH0KIAogTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
ZmllciwgY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsK
LSAgICAvLyBGSVhNRTogc3VwcG9ydGVkIHR5cGVzIGRvbid0IGNoYW5nZSwgY2FjaGUgdGhlbS4K
LQotICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgcmVzdWx0OwotICAgIGlmICghZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OlN1cHBvcnRzVHlwZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXJhbWV0ZXJz
KSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpTdXBwb3J0c1R5cGU6
OlJlcGx5KHJlc3VsdCksIDApKQotICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQ7Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiB0
eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllcikuc3VwcG9ydHNUeXBlQW5kQ29kZWNzKHBh
cmFtZXRlcnMpOwogfQogCiBib29sIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNL
ZXlTeXN0ZW0oTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oCmluZGV4IDI0ODgxNDQzMDk1Li5jNTNjNmZkMjlmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIFNldHRpbmdzOwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKK2NsYXNzIFJlbW90
ZU1lZGlhUGxheWVyTUlNRVR5cGVDYWNoZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKIGNsYXNzIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVi
bGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAgLTk0LDYgKzk1LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNsZWFyTWVkaWFDYWNoZShXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UpOwog
ICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEhhc2hTZXQ8
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mKTsKIAorICAgIFJlbW90ZU1lZGlhUGxh
eWVyTUlNRVR5cGVDYWNoZSYgdHlwZUNhY2hlKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllcik7CisKICAgICBIYXNoTWFwPE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPj4gbV9wbGF5
ZXJzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA5NzNmNWM0ODZiMS4u
NjNmYmVhZmYyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQpAQCAtODMwLDcgKzgzMCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6YmFj
a2xpZ2h0TGV2ZWxEaWRDaGFuZ2UoZmxvYXQgYmFja2xpZ2h0TGV2ZWwpCiAKIHZvaWQgV2ViUHJv
Y2Vzczo6c2V0TWVkaWFNSU1FVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4gdHlwZXMpCiB7Ci0g
ICAgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmFkZFN1cHBvcnRlZFR5cGVzKHR5
cGVzKTsKKyAgICBhdXRvJiBjYWNoZSA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KTsKKyAgICBpZiAoY2FjaGUuaXNFbXB0eSgpKQorICAgICAgICBjYWNoZS5hZGRTdXBwb3J0ZWRU
eXBlcyh0eXBlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>