<?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>175628</bug_id>
          
          <creation_ts>2017-08-16 08:58:51 -0700</creation_ts>
          <short_desc>Cross origin Beacon requests with a ArrayBuffer / ArrayBufferView payload should not do a CORS preflight</short_desc>
          <delta_ts>2017-08-17 12:16:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=175635</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>175679</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1339177</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 08:58:51 -0700</bug_when>
    <thetext>Cross origin Beacon requests with a ArrayBuffer / ArrayBufferView payload should not do a CORS preflight.
Firefox and Chrome do not require a CORS preflight in this case. The reason it is not needed is because the request does not have a &quot;Content-Type&quot; header as per the specification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339178</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-16 08:59:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/33919278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339294</commentid>
    <comment_count>2</comment_count>
      <attachid>318290</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-16 14:29:15 -0700</bug_when>
    <thetext>Created attachment 318290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339355</commentid>
    <comment_count>3</comment_count>
      <attachid>318290</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-08-16 16:37:45 -0700</bug_when>
    <thetext>Comment on attachment 318290
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339373</commentid>
    <comment_count>4</comment_count>
      <attachid>318290</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-16 17:17:38 -0700</bug_when>
    <thetext>Comment on attachment 318290
Patch

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

&gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:44
&gt; +    , m_originalRequestHeaders(m_resourceRequest.httpHeaderFields())

This field seems unnecessary in CachedResourceRequest, as well as the header map copy for all requests.
Why not using an optional&lt;header-map&gt; in CachedResource and do the copy only for keep alive and/or beacon requests at CachedResourceLoader level?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339377</commentid>
    <comment_count>5</comment_count>
      <attachid>318290</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-16 17:28:29 -0700</bug_when>
    <thetext>Comment on attachment 318290
Patch

Clearing flags on attachment: 318290

Committed r220817: &lt;http://trac.webkit.org/changeset/220817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339378</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-16 17:28:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339559</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 08:09:08 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; Comment on attachment 318290 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318290&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:44
&gt; &gt; +    , m_originalRequestHeaders(m_resourceRequest.httpHeaderFields())
&gt; 
&gt; This field seems unnecessary in CachedResourceRequest, as well as the header
&gt; map copy for all requests.
&gt; Why not using an optional&lt;header-map&gt; in CachedResource and do the copy only
&gt; for keep alive and/or beacon requests at CachedResourceLoader level?

I hesitated to do this, I was trying to avoid special casing keepalive/beacon too much. I can follow-up to see how it looks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339575</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-17 08:38:04 -0700</bug_when>
    <thetext>We should try to remove the header map copy.
DTL is already doing this copy and other resources will not do preflights.

Ideally, this copy should be only visible/manipulated by CachedResourceLoader/CachedResource.
It might be easier to have CachedResourceRequest convey this information between the two but other users of CachedResourceRequest should not be tempted to start using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339673</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-17 12:16:19 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to youenn fablet from comment #4)
&gt; &gt; Comment on attachment 318290 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=318290&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/cache/CachedResourceRequest.cpp:44
&gt; &gt; &gt; +    , m_originalRequestHeaders(m_resourceRequest.httpHeaderFields())
&gt; &gt; 
&gt; &gt; This field seems unnecessary in CachedResourceRequest, as well as the header
&gt; &gt; map copy for all requests.
&gt; &gt; Why not using an optional&lt;header-map&gt; in CachedResource and do the copy only
&gt; &gt; for keep alive and/or beacon requests at CachedResourceLoader level?
&gt; 
&gt; I hesitated to do this, I was trying to avoid special casing
&gt; keepalive/beacon too much. I can follow-up to see how it looks.

https://bugs.webkit.org/show_bug.cgi?id=175679</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318290</attachid>
            <date>2017-08-16 14:29:15 -0700</date>
            <delta_ts>2017-08-16 17:28:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175628-20170816142915.patch</filename>
            <type>text/plain</type>
            <size>60585</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhjN2EwNDQ4ODMwYzdl
YjQyYTBkNzFiMzNkNWViMWZjYzJkNTIyMi4uNjNkNGVkMGY4MjRkOGJjMWE1NWE2NzI3ZDIxMTI3
ZmRmYjQzMjgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA4LTE2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jvc3Mgb3JpZ2luIEJlYWNv
biByZXF1ZXN0cyB3aXRoIGEgQXJyYXlCdWZmZXIgLyBBcnJheUJ1ZmZlclZpZXcgcGF5bG9hZCBz
aG91bGQgbm90IGRvIGEgQ09SUyBwcmVmbGlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTYyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM5
MTkyNzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3Jvc3Mgb3JpZ2luIEJlYWNvbiByZXF1ZXN0cyB3aXRoIGEgQXJyYXlCdWZmZXIgLyBBcnJheUJ1
ZmZlclZpZXcgcGF5bG9hZCBzaG91bGQgbm90IGRvIGEgQ09SUyBwcmVmbGlnaHQuCisgICAgICAg
IFRvIGFjaGlldmUgdGhpcywgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHdlcmUgbWFkZToKKyAgICAg
ICAgMS4gUmV2ZXJ0IHIyMjA3Nzkgd2hpY2ggY2F1c2VkIHVzIHRvIHVzZSBhIG5vbiBDT1JTLXNh
ZmVsaXN0ZWQgQ29udGVudC1UeXBlIGhlYWRlciBmb3Igc3VjaCBwYXlsb2FkCisgICAgICAgIDIu
IFRlYWNoIFBpbmdMb2FkIGhvdyB0byBkZWFsIHdpdGggInNpbXBsZSIgY3Jvc3Mgb3JpZ2luIHJl
cXVlc3RzIChpLmUuIERvbid0IGFzc3VtZSB3ZSBuZWVkIGEgQ09SUworICAgICAgICAgICBwcmVm
bGlnaHQgbWVyZWx5IGJlY2F1c2UgdGhlIGZldGNoIG1vZGUgaXMgc2V0IHRvICJjb3JzIikuCisK
KyAgICAgICAgVGVzdDogaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZm
ZXJ2aWV3LW5vLXByZWZsaWdodC5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmV4dHJhY3QpOgorICAgICAg
ICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaDoKKyAgICAgICAgKiBsb2FkZXIv
TG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRlcjo6c2Vu
ZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzdGFydFBp
bmdMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZTo6Q2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6
OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRSZXNvdXJjZVJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlUmVxdWVzdDo6cmVsZWFzZU9yaWdpbmFsUmVxdWVzdEhlYWRl
cnMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlclZhbHVlcy5jcHA6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyVmFsdWVzLmg6CisKIDIwMTctMDgt
MTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgZmly
c3QtbGV0dGVyIHJlbmRlcmVyIG11dGF0aW9uIGNvZGUgb3V0IG9mIFJlbmRlckJsb2NrIGFuZCBp
bnRvIFJlbmRlclRyZWVVcGRhdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ4NjAxZThjYzJjZTk3ZjQxNTAxYjkx
YzI0YzRiODFmODVjMTRmZDMuLjY0NDU5NGQ5OGM2YWE4MmY5NmUyNGQ3YzBkNWE5MzJiMGUwNDk4
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTctMDgtMTYgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcm9zcyBvcmlnaW4gQmVhY29uIHJlcXVlc3Rz
IHdpdGggYSBBcnJheUJ1ZmZlciAvIEFycmF5QnVmZmVyVmlldyBwYXlsb2FkIHNob3VsZCBub3Qg
ZG8gYSBDT1JTIHByZWZsaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc1NjI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzkxOTI3OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcm9zcyBvcmln
aW4gQmVhY29uIHJlcXVlc3RzIHdpdGggYSBBcnJheUJ1ZmZlciAvIEFycmF5QnVmZmVyVmlldyBw
YXlsb2FkIHNob3VsZCBub3QgZG8gYSBDT1JTIHByZWZsaWdodC4KKyAgICAgICAgVG8gYWNoaWV2
ZSB0aGlzLCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgd2VyZSBtYWRlOgorICAgICAgICAxLiBSZXZl
cnQgcjIyMDc3OSB3aGljaCBjYXVzZWQgdXMgdG8gdXNlIGEgbm9uIENPUlMtc2FmZWxpc3RlZCBD
b250ZW50LVR5cGUgaGVhZGVyIGZvciBzdWNoIHBheWxvYWQKKyAgICAgICAgMi4gVGVhY2ggUGlu
Z0xvYWQgaG93IHRvIGRlYWwgd2l0aCAic2ltcGxlIiBjcm9zcyBvcmlnaW4gcmVxdWVzdHMgKGku
ZS4gRG9uJ3QgYXNzdW1lIHdlIG5lZWQgYSBDT1JTCisgICAgICAgICAgIHByZWZsaWdodCBtZXJl
bHkgYmVjYXVzZSB0aGUgZmV0Y2ggbW9kZSBpcyBzZXQgdG8gImNvcnMiKS4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6UGluZ0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpQaW5n
TG9hZDo6bG9hZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6b3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjp3aWxsUGVy
Zm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjppc0FsbG93
ZWRSZWRpcmVjdCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjptYWtlQ3Jvc3NP
cmlnaW5BY2Nlc3NSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6Om1ha2VTaW1w
bGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9hZDo6
bWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAgICAoV2Vi
S2l0OjpQaW5nTG9hZDo6cHJlZmxpZ2h0U3VjY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGlu
Z0hhbmRsZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
Lmg6CisKIDIwMTctMDgtMTYgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBDcmFzaCBvZiBXZWJQcm9jZXNzIHdpdGggb24tZGVtYW5kIEFDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvQ2hhbmdlTG9nCmluZGV4IDIxOTI3OGEwOTc0ZmYzMTYyNGNjOGY2YjFiNzE2OTQwZjI1YWQ4
NGEuLmYwOGJhZjkxMWJhM2FmMDBjMTE4MWEzNjczODA5NDYxOTgyMTZhYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMTYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDcm9zcyBvcmlnaW4gQmVhY29uIHJlcXVlc3RzIHdp
dGggYSBBcnJheUJ1ZmZlciAvIEFycmF5QnVmZmVyVmlldyBwYXlsb2FkIHNob3VsZCBub3QgZG8g
YSBDT1JTIHByZWZsaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc1NjI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzkxOTI3OD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OmNyZWF0ZVBpbmdIYW5kbGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDE3LTA4LTEwICBEYW4gQmVybnN0ZWlu
ICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzdG9yZWQgc3ZuOmlnbm9yZSB2YWx1ZXMg
dGhhdCB3ZW50IG1pc3Npbmcgd2hlbiB0aGUgcHJvamVjdCBnb3QgcmVuYW1lZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAppbmRleCAxNjA5YTVmMmFjMjAyZjNl
YzcyODExYzkyNzJjNmFjZmQ1OGIzOWEwLi45MzFmMDU4Mjc3NmQyNWVmMDg1NGNmOTk2NGI5ZDRj
ZTlmMjFkNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
Qm9keS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3Bw
CkBAIC02MiwxNiArNjIsMTAgQEAgRmV0Y2hCb2R5IEZldGNoQm9keTo6ZXh0cmFjdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJbml0JiYgdmFsdWUsIFN0cmkKIAogICAgIGlmIChX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxBcnJheUJ1ZmZlcj4+KHZhbHVlKSkgewogICAg
ICAgICBSZWY8Y29uc3QgQXJyYXlCdWZmZXI+IGJ1ZmZlciA9IFdURjo6Z2V0PFJlZlB0cjxBcnJh
eUJ1ZmZlcj4+KHZhbHVlKS5yZWxlYXNlTm9uTnVsbCgpOwotICAgICAgICAvLyBGSVhNRTogV2Ug
c2hvdWxkIG5vdCBzZXQgYSBDb250ZW50LVR5cGUgaGVyZSBidXQgd2UgbmVlZCB0byBkbyB0aGlz
IHVudGlsIGFsbCBuZXR3b3JrIHN0YWNrcwotICAgICAgICAvLyBzdXBwb3J0IHNlbmRpbmcgbm8g
Q29udGVudC1UeXBlIGhlYWRlciAoPGRhcjovL3Byb2JsZW0vMzM5MDY1NjcpLgotICAgICAgICBj
b250ZW50VHlwZSA9IEhUVFBIZWFkZXJWYWx1ZXM6Om9jdGV0U3RyZWFtQ29udGVudFR5cGUoKTsK
ICAgICAgICAgcmV0dXJuIEZldGNoQm9keShXVEZNb3ZlKGJ1ZmZlcikpOwogICAgIH0KICAgICBp
ZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxSZWZQdHI8QXJyYXlCdWZmZXJWaWV3Pj4odmFsdWUp
KSB7CiAgICAgICAgIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+IGJ1ZmZlciA9IFdURjo6Z2V0
PFJlZlB0cjxBcnJheUJ1ZmZlclZpZXc+Pih2YWx1ZSkucmVsZWFzZU5vbk51bGwoKTsKLSAgICAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3Qgc2V0IGEgQ29udGVudC1UeXBlIGhlcmUgYnV0IHdl
IG5lZWQgdG8gZG8gdGhpcyB1bnRpbCBhbGwgbmV0d29yayBzdGFja3MKLSAgICAgICAgLy8gc3Vw
cG9ydCBzZW5kaW5nIG5vIENvbnRlbnQtVHlwZSBoZWFkZXIgKDxkYXI6Ly9wcm9ibGVtLzMzOTA2
NTY3KS4KLSAgICAgICAgY29udGVudFR5cGUgPSBIVFRQSGVhZGVyVmFsdWVzOjpvY3RldFN0cmVh
bUNvbnRlbnRUeXBlKCk7CiAgICAgICAgIHJldHVybiBGZXRjaEJvZHkoV1RGTW92ZShidWZmZXIp
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
bkFjY2Vzc0NvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vz
c0NvbnRyb2wuaAppbmRleCA5NGYyMjMwNDNiNDEzMWJiNTU3MDg2YjA3ZTZjNjFmNmI3M2U5ZTMx
Li5kNmQyZjFhOTJiNWQ4NGM4ODUyZjk0ZjRiMzE3YjllZDkyYzBkYTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oCkBAIC0zNyw3ICsz
Nyw3IEBAIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNs
YXNzIFVSTDsKIAotYm9vbCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChjb25zdCBT
dHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYpOworV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChjb25zdCBTdHJpbmcmIG1ldGhvZCwg
Y29uc3QgSFRUUEhlYWRlck1hcCYpOwogYm9vbCBpc09uQWNjZXNzQ29udHJvbFNpbXBsZVJlcXVl
c3RNZXRob2RXaGl0ZWxpc3QoY29uc3QgU3RyaW5nJik7CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQg
dXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2woUmVzb3VyY2VSZXF1ZXN0JiwgU2VjdXJpdHlP
cmlnaW4mLCBTdG9yZWRDcmVkZW50aWFscyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJh
dGVneS5oCmluZGV4IGM0ZGI3YTFiZjAzYTg0NGFmYTNhZmFjZjIxNDJkYTY2ZTFlNWZjNWIuLjU3
MDE0Y2I2ZjA0NTc5MGJhZmI1MjQyNGNiNDNmMzc1ZjVlZjlkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5Owog
Y2xhc3MgRnJhbWU7CitjbGFzcyBIVFRQSGVhZGVyTWFwOwogY2xhc3MgTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXI7CiBjbGFzcyBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudDsKIGNs
YXNzIE5ldHdvcmtpbmdDb250ZXh0OwpAQCAtNjMsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHN1c3BlbmRQZW5kaW5nUmVxdWVzdHMoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHJlc3VtZVBlbmRpbmdSZXF1ZXN0cygpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVQ
aW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgQ29udGVudFNlY3VyaXR5UG9saWN5KiwgY29uc3Qg
RmV0Y2hPcHRpb25zJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVQaW5nSGFuZGxlKE5l
dHdvcmtpbmdDb250ZXh0KiwgUmVzb3VyY2VSZXF1ZXN0JiwgSFRUUEhlYWRlck1hcCYmIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIENv
bnRlbnRTZWN1cml0eVBvbGljeSosIGNvbnN0IEZldGNoT3B0aW9ucyYpID0gMDsKIAogICAgIHZp
cnR1YWwgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJv
ZHlLZXksIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3Bw
CmluZGV4IDhlNTE2OWI1MGVmYjFhZjExZTc3NzcwM2ZlYWZiMWY5NjU5OTA0MjguLmVmNjRjOGYz
N2QyMTUzYzkxM2E3NGIzYTAxOTc3Yzc4MjA5MGRiN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5jcHAKQEAgLTk4LDEyICs5OCwxNSBAQCB2b2lkIFBpbmdMb2FkZXI6OmxvYWRJbWFn
ZShGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgdXJsKQogICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIAogICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpDYWNoZUNvbnRyb2wsICJt
YXgtYWdlPTAiKTsKKworICAgIEhUVFBIZWFkZXJNYXAgb3JpZ2luYWxSZXF1ZXN0SGVhZGVyID0g
cmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCk7CisKICAgICBTdHJpbmcgcmVmZXJyZXIgPSBTZWN1
cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1bWVudC5yZWZlcnJlclBvbGlj
eSgpLCByZXF1ZXN0LnVybCgpLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpOwog
ICAgIGlmICghcmVmZXJyZXIuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZl
cnJlcihyZWZlcnJlcik7CiAgICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFGaWVsZHNUb1N1YnJl
c291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAotICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVl
c3QsIGRvY3VtZW50LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7CisgICAgc3RhcnRQaW5n
TG9hZChmcmFtZSwgcmVxdWVzdCwgV1RGTW92ZShvcmlnaW5hbFJlcXVlc3RIZWFkZXIpLCBkb2N1
bWVudCwgU2hvdWxkRm9sbG93UmVkaXJlY3RzOjpZZXMpOwogfQogCiAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9saW5rcy5odG1s
I2h5cGVybGluay1hdWRpdGluZwpAQCAtMTI1LDYgKzEyOCw5IEBAIHZvaWQgUGluZ0xvYWRlcjo6
c2VuZFBpbmcoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHBpbmdVUkwsIGNvbnN0IFVSTCYgZGVz
dGluYXRpCiAgICAgcmVxdWVzdC5zZXRIVFRQQ29udGVudFR5cGUoInRleHQvcGluZyIpOwogICAg
IHJlcXVlc3Quc2V0SFRUUEJvZHkoRm9ybURhdGE6OmNyZWF0ZSgiUElORyIpKTsKICAgICByZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAibWF4
LWFnZT0wIik7CisKKyAgICBIVFRQSGVhZGVyTWFwIG9yaWdpbmFsUmVxdWVzdEhlYWRlciA9IHJl
cXVlc3QuaHR0cEhlYWRlckZpZWxkcygpOworCiAgICAgZnJhbWUubG9hZGVyKCkuYWRkRXh0cmFG
aWVsZHNUb1N1YnJlc291cmNlUmVxdWVzdChyZXF1ZXN0KTsKIAogICAgIGF1dG8mIHNvdXJjZU9y
aWdpbiA9IGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCk7CkBAIC0xMzksNyArMTQ1LDcgQEAgdm9p
ZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVSTCYgcGluZ1VSTCwg
Y29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICAgICAgfQogICAgIH0KIAotICAgIHN0YXJ0UGluZ0xv
YWQoZnJhbWUsIHJlcXVlc3QsIGRvY3VtZW50LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Olllcyk7
CisgICAgc3RhcnRQaW5nTG9hZChmcmFtZSwgcmVxdWVzdCwgV1RGTW92ZShvcmlnaW5hbFJlcXVl
c3RIZWFkZXIpLCBkb2N1bWVudCwgU2hvdWxkRm9sbG93UmVkaXJlY3RzOjpZZXMpOwogfQogCiB2
b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBV
UkwmIHJlcG9ydFVSTCwgUmVmPEZvcm1EYXRhPiYmIHJlcG9ydCwgVmlvbGF0aW9uUmVwb3J0VHlw
ZSByZXBvcnRUeXBlKQpAQCAtMTcwLDE2ICsxNzYsMTggQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5k
VmlvbGF0aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxG
b3IKICAgICBpZiAocmVtb3ZlQ29va2llcykKICAgICAgICAgcmVxdWVzdC5zZXRBbGxvd0Nvb2tp
ZXMoZmFsc2UpOwogCisgICAgSFRUUEhlYWRlck1hcCBvcmlnaW5hbFJlcXVlc3RIZWFkZXIgPSBy
ZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKKwogICAgIGZyYW1lLmxvYWRlcigpLmFkZEV4dHJh
RmllbGRzVG9TdWJyZXNvdXJjZVJlcXVlc3QocmVxdWVzdCk7CiAKICAgICBTdHJpbmcgcmVmZXJy
ZXIgPSBTZWN1cml0eVBvbGljeTo6Z2VuZXJhdGVSZWZlcnJlckhlYWRlcihkb2N1bWVudC5yZWZl
cnJlclBvbGljeSgpLCByZXBvcnRVUkwsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIo
KSk7CiAgICAgaWYgKCFyZWZlcnJlci5pc0VtcHR5KCkpCiAgICAgICAgIHJlcXVlc3Quc2V0SFRU
UFJlZmVycmVyKHJlZmVycmVyKTsKIAotICAgIHN0YXJ0UGluZ0xvYWQoZnJhbWUsIHJlcXVlc3Qs
IGRvY3VtZW50LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Ok5vKTsKKyAgICBzdGFydFBpbmdMb2Fk
KGZyYW1lLCByZXF1ZXN0LCBXVEZNb3ZlKG9yaWdpbmFsUmVxdWVzdEhlYWRlciksIGRvY3VtZW50
LCBTaG91bGRGb2xsb3dSZWRpcmVjdHM6Ok5vKTsKIH0KIAotdm9pZCBQaW5nTG9hZGVyOjpzdGFy
dFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWVu
dCYgZG9jdW1lbnQsIFNob3VsZEZvbGxvd1JlZGlyZWN0cyBzaG91bGRGb2xsb3dSZWRpcmVjdHMp
Cit2b2lkIFBpbmdMb2FkZXI6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBE
b2N1bWVudCYgZG9jdW1lbnQsIFNob3VsZEZvbGxvd1JlZGlyZWN0cyBzaG91bGRGb2xsb3dSZWRp
cmVjdHMpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyID0gZnJhbWUucGFnZSgpLT5w
cm9ncmVzcygpLmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKICAgICAvLyBGSVhNRTogV2h5IGFj
dGl2ZURvY3VtZW50TG9hZGVyPyBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgZG9jdW1lbnRMb2FkZXIo
KS4KQEAgLTE5NSw3ICsyMDMsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OnN0YXJ0UGluZ0xvYWQoRnJh
bWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvY3VtZW50JgogICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29udGludWVBZnRlclBpbmdMb2FkZXIoZnJhbWUsIGlkZW50
aWZpZXIsIGZyYW1lLmxvYWRlcigpLmFjdGl2ZURvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJl
c291cmNlUmVzcG9uc2UoKSk7CiAKICAgICBhdXRvKiBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSBk
b2N1bWVudC5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IG51
bGxwdHIgOiBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKTsKLSAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+Y3JlYXRlUGluZ0hhbmRsZShmcmFtZS5sb2Fk
ZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG9wdGlvbnMpOworICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5jcmVhdGVQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigp
Lm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVh
ZGVycyksIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
b3B0aW9ucyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5n
TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCmluZGV4IGMzYTky
YTI4N2ZhNTNmNTYxZGY5ZjNmNjVhYTI3MjZjYTMzZjU5Y2MuLjA1YzU0OTc1MjhhNDk3OWY5NzRj
ZGZlYWE0ZjljMDg1YWQyMzI2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
aW5nTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAt
NDAsNiArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNz
IEZvcm1EYXRhOwogY2xhc3MgRnJhbWU7CitjbGFzcyBIVFRQSGVhZGVyTWFwOwogY2xhc3MgVVJM
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCkBAIC01Niw3ICs1Nyw3IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIFNob3VsZEZvbGxvd1JlZGlyZWN0cyB7IE5vLCBZZXMg
fTsKLSAgICBzdGF0aWMgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0
JiwgRG9jdW1lbnQmLCBTaG91bGRGb2xsb3dSZWRpcmVjdHMpOworICAgIHN0YXRpYyB2b2lkIHN0
YXJ0UGluZ0xvYWQoRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBIVFRQSGVhZGVyTWFwJiYgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycywgRG9jdW1lbnQmLCBTaG91bGRGb2xsb3dSZWRpcmVjdHMpOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggZTVlZWMyNWZlZWU0ZDdiMDk2ZWVkNmRjNTgw
ZmIyMTM3NmFmOTc4Mi4uMTI4NDdkNmE5OTg5NDkwM2NmYWQwYzQzMzkwODBmMDI5Zjk3MzM5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBA
IC0xMTcsNiArMTE3LDcgQEAgREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFr
Q291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRlciwgKCJDYWMKIAogQ2FjaGVkUmVzb3Vy
Y2U6OkNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUg
dHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJlcXVl
c3QucmVsZWFzZVJlc291cmNlUmVxdWVzdCgpKQorICAgICwgbV9vcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKHJlcXVlc3QucmVsZWFzZU9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoKSkKICAgICAsIG1fb3B0
aW9ucyhyZXF1ZXN0Lm9wdGlvbnMoKSkKICAgICAsIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVy
KCp0aGlzLCAmQ2FjaGVkUmVzb3VyY2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSwgZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291cmNlVHlwZSh0eXBlKSkKICAgICAsIG1fc2Vzc2lv
bklEKHNlc3Npb25JRCkKQEAgLTI3Miw3ICsyNzMsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjps
b2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKICAgICAgICAg
ICAgIC8vIEJlYWNvbiBpcyBub3QgZXhwb3NlZCB0byB3b3JrZXJzIHNvIGl0IGlzIHNhZmUgdG8g
cmVseSBvbiB0aGUgZG9jdW1lbnQgaGVyZS4KICAgICAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0g
Y2FjaGVkUmVzb3VyY2VMb2FkZXIuZG9jdW1lbnQoKTsKICAgICAgICAgICAgIGF1dG8qIGNvbnRl
bnRTZWN1cml0eVBvbGljeSA9IGRvY3VtZW50ICYmICFkb2N1bWVudC0+c2hvdWxkQnlwYXNzTWFp
bldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBkb2N1bWVudC0+Y29udGVudFNlY3VyaXR5
UG9saWN5KCkgOiBudWxscHRyOwotICAgICAgICAgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxv
YWRlclN0cmF0ZWd5KCktPmNyZWF0ZVBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2lu
Z0NvbnRleHQoKSwgcmVxdWVzdCwgKm1fb3JpZ2luLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG1f
b3B0aW9ucyk7CisgICAgICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRl
Z3koKS0+Y3JlYXRlUGluZ0hhbmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgp
LCByZXF1ZXN0LCBIVFRQSGVhZGVyTWFwKG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyksICptX29y
aWdpbiwgY29udGVudFNlY3VyaXR5UG9saWN5LCBtX29wdGlvbnMpOwogICAgICAgICAgICAgLy8g
RklYTUU6IFdlIGN1cnJlbnRseSBkbyBub3QgZ2V0IG5vdGlmaWVkIHdoZW4gcGluZyBsb2FkcyBm
aW5pc2ggc28gd2UgdHJlYXQgdGhlbSBhcyBmaW5pc2hpbmcgcmlnaHQgYXdheS4KICAgICAgICAg
ICAgIGZpbmlzaExvYWRpbmcobnVsbHB0cik7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDY5OTZiYmEyNzUy
MDg5NDgxODQ2OWEwMTAyOGMwZWRlZDBjMDA0N2YuLmE2MTMzNDFhMzA0YWE2MTRlY2ZhMGFlYmYx
M2QxMDRkYTg5YWUyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oCkBAIC0yOTQsNiArMjk0LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIEZJWE1FOiBN
YWtlIHRoZSByZXN0IG9mIHRoZXNlIGRhdGEgbWVtYmVycyBwcml2YXRlIGFuZCB1c2UgZnVuY3Rp
b25zIGluIGRlcml2ZWQgY2xhc3NlcyBpbnN0ZWFkLgogICAgIEhhc2hDb3VudGVkU2V0PENhY2hl
ZFJlc291cmNlQ2xpZW50Kj4gbV9jbGllbnRzOwogICAgIFJlc291cmNlUmVxdWVzdCBtX3Jlc291
cmNlUmVxdWVzdDsKKyAgICBIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsK
ICAgICBSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IG1fbG9hZGVyOwogICAgIFJlc291cmNlTG9h
ZGVyT3B0aW9ucyBtX29wdGlvbnM7CiAgICAgUmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmNwcAppbmRleCAxMzYyYzMzNGQwYzE3M2Q1YWRlZjk5NjIwYjBhOTEzOGJjNjY2MjEyLi4y
NjE4NjNhNTQ3ZDNjYjE0OWFjZGMzYjYyYmEwYTI5NTc4OGJmY2FiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAt
NDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENhY2hlZFJlc291cmNlUmVxdWVz
dDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBzdGQ6Om9wdGlvbmFsPFJl
c291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSwgU3RyaW5nJiYgY2hhcnNldCkKICAgICA6IG1f
cmVzb3VyY2VSZXF1ZXN0KFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSkKKyAgICAsIG1fb3JpZ2lu
YWxSZXF1ZXN0SGVhZGVycyhtX3Jlc291cmNlUmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpCiAg
ICAgLCBtX2NoYXJzZXQoV1RGTW92ZShjaGFyc2V0KSkKICAgICAsIG1fb3B0aW9ucyhvcHRpb25z
KQogICAgICwgbV9wcmlvcml0eShwcmlvcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAppbmRleCBmNTA3ZmNjNjY3ZWY1NzI4
NjgzZGNiMmRhYjZjOGZlMWU4OTc4ZGQ1Li4zMDQwNWQxODc5MDcwYmI3YzNkM2VkOTQwZDcyNWY1
NWE0NDQ5ZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICBDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0
aW9ucyYsIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+ID0gc3RkOjpudWxsb3B0
LCBTdHJpbmcmJiBjaGFyc2V0ID0gU3RyaW5nKCkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVsZWFzZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIFdURk1vdmUobV9yZXNvdXJjZVJlcXVl
c3QpOyB9CisgICAgSFRUUEhlYWRlck1hcCYmIHJlbGVhc2VPcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KCkgeyByZXR1cm4gV1RGTW92ZShtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOyB9CiAgICAgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jl
c291cmNlUmVxdWVzdDsgfQogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2hhcnNldDsgfQogICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJz
ZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQpAQCAtOTQsNiArOTUsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIEhU
VFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogICAgIFN0cmluZyBtX2NoYXJz
ZXQ7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKICAgICBzdGQ6Om9wdGlv
bmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBtX3ByaW9yaXR5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyVmFsdWVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlclZhbHVlcy5jcHAKaW5kZXggMmM2ZTQw
ZmYzYWVmODY1Mzk0MDMxY2ZlNTg3ZTQ1ZDEyM2QwMzIzYi4uNTU5NWViM2ExODE4ZDhlNDIyMmFj
NWE1ODIzZmJlMGEzYjY1NDE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQSGVhZGVyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0hUVFBIZWFkZXJWYWx1ZXMuY3BwCkBAIC00NCwxMiArNDQsNiBAQCBjb25zdCBT
dHJpbmcmIGZvcm1VUkxFbmNvZGVkQ29udGVudFR5cGUoKQogICAgIHJldHVybiBjb250ZW50VHlw
ZTsKIH0KIAotY29uc3QgU3RyaW5nJiBvY3RldFN0cmVhbUNvbnRlbnRUeXBlKCkKLXsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiBjb250ZW50VHlwZShNQUtFX1NUQVRJ
Q19TVFJJTkdfSU1QTCgiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIikpOwotICAgIHJldHVybiBj
b250ZW50VHlwZTsKLX0KLQogY29uc3QgU3RyaW5nJiBub0NhY2hlKCkKIHsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3RyaW5nPiB2YWx1ZShNQUtFX1NUQVRJQ19TVFJJTkdfSU1Q
TCgibm8tY2FjaGUiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0hUVFBIZWFkZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
SFRUUEhlYWRlclZhbHVlcy5oCmluZGV4IDUyZjI5MDdjZDhmMzRiNWU0ZWRiNzhmNjM5YzQzNzcz
YjgyZTgyMmQuLjlkODVmOTYxYmE0ZTg0MjlmODQ3NDYwZmEwNDFhNTEwNzhmNGVlYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlclZhbHVlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlclZhbHVlcy5o
CkBAIC0zMiw3ICszMiw2IEBAIG5hbWVzcGFjZSBIVFRQSGVhZGVyVmFsdWVzIHsKIAogY29uc3Qg
U3RyaW5nJiB0ZXh0UGxhaW5Db250ZW50VHlwZSgpOwogY29uc3QgU3RyaW5nJiBmb3JtVVJMRW5j
b2RlZENvbnRlbnRUeXBlKCk7Ci1jb25zdCBTdHJpbmcmIG9jdGV0U3RyZWFtQ29udGVudFR5cGUo
KTsKIGNvbnN0IFN0cmluZyYgbm9DYWNoZSgpOwogY29uc3QgU3RyaW5nJiBtYXhBZ2UwKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggYzIxMDEyZWM3ZjllOGNjMDhkMjIxM2Q0MzVj
NzhmMDQxMDU0YWZjYS4uZjU4ZmY2ZjczZDg2NzE1NjVmM2EzZmM2ODUyMGQ3YzFlMzllMTI2NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIk5l
dHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQs
IC4uLikgUkVMRUFTRV9MT0dfSUYobV9wYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
OjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKQEAgLTYwLDExICs1OSw2IEBAIE5ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlcjo6fk5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcigpCiB2b2lk
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQoKQogewogICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0UHJlZmxpZ2h0Iik7Ci0gICAgaWYgKENyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQobV9w
YXJhbWV0ZXJzLnNvdXJjZU9yaWdpbi0+dG9TdHJpbmcoKSwgbV9wYXJhbWV0ZXJzLm9yaWdpbmFs
UmVxdWVzdC51cmwoKSwgbV9wYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIG1fcGFy
YW1ldGVycy5vcmlnaW5hbFJlcXVlc3QuaHR0cE1ldGhvZCgpLCBtX3BhcmFtZXRlcnMub3JpZ2lu
YWxSZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgic3RhcnRQcmVmbGlnaHQgLSBwcmVmbGlnaHQgY2FuIGJlIHNraXBwZWQgdGhhbmtz
IHRvIGNhY2hlZCByZXN1bHQiKTsKLSAgICAgICAgbV9jb21wbGV0aW9uQ2FsbGJhY2soUmVzdWx0
OjpTdWNjZXNzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQgPSBt
X3BhcmFtZXRlcnMuc2Vzc2lvbklEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAppbmRleCA5
ODJmNjc5YWFlN2Y2YjM2MzU1NWY0MDRmYTg1OWQ4YmRjNzE1YThmLi4wOTllZDI5MDBlMmE3Yjgx
NTljN2FiZGM1YTE2MDJmM2VkZTFhMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApA
QCAtODgsNiArODgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBlbmNvZGVyIDw8IFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpzb3VyY2VPcmlnaW4pOwogICAgIGVu
Y29kZXIuZW5jb2RlRW51bShtb2RlKTsKICAgICBlbmNvZGVyIDw8IGNzcFJlc3BvbnNlSGVhZGVy
czsKKyAgICBlbmNvZGVyIDw8IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnM7CiB9CiAKIGJvb2wgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIs
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiByZXN1bHQpCkBAIC0xNjYsNiArMTY3LDgg
QEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNzcFJlc3BvbnNlSGVhZGVycykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMWNmZTdhOGJlM2Y4NDg2Y2ZmYTU2ZjhkNzlk
MGNmN2RiZjdiYmY2OS4uY2ZlOTg2ZTk4OTlhMTcwYjRmMGQ3NDY4ZGNkOGU4ZTExYmRmMmE0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9IVFRQSGVhZGVyTWFwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTU5LDYgKzYwLDcgQEAg
cHVibGljOgogICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc291cmNlT3JpZ2lu
OwogICAgIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6TW9kZSBtb2RlOwogICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzPiBjc3BSZXNw
b25zZUhlYWRlcnM7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpIVFRQSGVhZGVyTWFwPiBv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDU4ODU2OGU4OWIzMzFi
OGY4NjdiZTI4MjZmMTU3NDE2ZGIxZGM2MWEuLjBkOWNiODZkZDc5MmM2ZGYwMDQ3Y2I0ZWQwY2Ux
OThlM2EzODEyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGlu
Z0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Dcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlLmg+CiAKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9wYXJhbWV0ZXJzLnNlc3Npb25JRC5pc0Fsd2F5c09u
TG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gUGluZ0xvYWQ6OiIgZm10LCB0aGlzLCAj
I19fVkFfQVJHU19fKQogCkBAIC00NiwxNCArNDcsMTkgQEAgUGluZ0xvYWQ6OlBpbmdMb2FkKE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAsIG1fdGltZW91
dFRpbWVyKCp0aGlzLCAmUGluZ0xvYWQ6OnRpbWVvdXRUaW1lckZpcmVkKQogICAgICwgbV9pc1Nh
bWVPcmlnaW5SZXF1ZXN0KHNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChtX3BhcmFtZXRlcnMu
cmVxdWVzdC51cmwoKSkpCiB7CisgICAgQVNTRVJUKG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4p
OworICAgIEFTU0VSVChtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CisKICAg
ICAvLyBJZiB0aGUgc2VydmVyIG5ldmVyIHJlc3BvbmRzLCB0aGlzIG9iamVjdCB3aWxsIGhhbmcg
YXJvdW5kIGZvcmV2ZXIuCiAgICAgLy8gU2V0IGEgdmVyeSBnZW5lcm91cyB0aW1lb3V0LCBqdXN0
IGluIGNhc2UuCiAgICAgbV90aW1lb3V0VGltZXIuc3RhcnRPbmVTaG90KDYwMDAwX3MpOwogCi0g
ICAgaWYgKG5lZWRzQ09SU1ByZWZsaWdodChtX3BhcmFtZXRlcnMucmVxdWVzdCkpCi0gICAgICAg
IGRvQ09SU1ByZWZsaWdodChtX3BhcmFtZXRlcnMucmVxdWVzdCk7Ci0gICAgZWxzZQotICAgICAg
ICBsb2FkUmVxdWVzdChtX3BhcmFtZXRlcnMucmVxdWVzdCk7CisgICAgaWYgKG1faXNTYW1lT3Jp
Z2luUmVxdWVzdCB8fCBtX3BhcmFtZXRlcnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5v
Q29ycykgeworICAgICAgICBsb2FkUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QgeyBtX3BhcmFtZXRl
cnMucmVxdWVzdCB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1ha2VDcm9zc09y
aWdpbkFjY2Vzc1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0IHsgbV9wYXJhbWV0ZXJzLnJlcXVlc3Qg
fSk7CiB9CiAKIFBpbmdMb2FkOjp+UGluZ0xvYWQoKQpAQCAtNjgsMTIgKzc0LDEyIEBAIFBpbmdM
b2FkOjp+UGluZ0xvYWQoKQogICAgIH0KIH0KIAotdm9pZCBQaW5nTG9hZDo6bG9hZFJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBQaW5nTG9hZDo6bG9hZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdGFydE5ldHdvcmtMb2FkIik7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0g
U2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQpKSB7
CiAgICAgICAgIGF1dG8gbG9hZFBhcmFtZXRlcnMgPSBtX3BhcmFtZXRlcnM7Ci0gICAgICAgIGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OworICAgICAgICBsb2FkUGFyYW1ldGVycy5y
ZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICAgICAgbV90YXNrID0gTmV0d29ya0RhdGFU
YXNrOjpjcmVhdGUoKm5ldHdvcmtTZXNzaW9uLCAqdGhpcywgV1RGTW92ZShsb2FkUGFyYW1ldGVy
cykpOwogICAgICAgICBtX3Rhc2stPnJlc3VtZSgpOwogICAgIH0gZWxzZQpAQCAtODUsNiArOTEs
MTEgQEAgU2VjdXJpdHlPcmlnaW4mIFBpbmdMb2FkOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fb3JpZ2luID8gKm1fb3JpZ2luIDogKm1fcGFyYW1ldGVycy5zb3VyY2VPcmln
aW47CiB9CiAKK2NvbnN0IEhUVFBIZWFkZXJNYXAmIFBpbmdMb2FkOjpvcmlnaW5hbFJlcXVlc3RI
ZWFkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzOworfQorCiB2b2lkIFBpbmdMb2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlv
bihSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9u
IC0gc2hvdWxkRm9sbG93UmVkaXJlY3RzPyAlZCIsIG1fcGFyYW1ldGVycy5zaG91bGRGb2xsb3dS
ZWRpcmVjdHMpOwpAQCAtMTAzLDEyICsxMTQsMTUgQEAgdm9pZCBQaW5nTG9hZDo6d2lsbFBlcmZv
cm1IVFRQUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIFIK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZW5zdXJlIHRoZSBudW1iZXIgb2YgcmVkaXJlY3Rz
IGRvZXMgbm90IGV4Y2VlZCAyMC4KIAotICAgIGlmICghbmVlZHNDT1JTUHJlZmxpZ2h0KHJlcXVl
c3QpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlcXVlc3QpOworICAgIGlmIChpc0Fs
bG93ZWRSZWRpcmVjdChyZXF1ZXN0LnVybCgpKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJ3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbiAtIFJlZGlyZWN0IHJl
cXVpcmVzIGEgQ09SUyBwcmVmbGlnaHQiKTsKIAorICAgIC8vIEZvcmNlIGFueSBzdWJzZXF1ZW50
IHJlcXVlc3QgdG8gdXNlIHRoZXNlIGNoZWNrcy4KKyAgICBtX2lzU2FtZU9yaWdpblJlcXVlc3Qg
PSBmYWxzZTsKKwogICAgIC8vIFVzZSBhIHVuaXF1ZSBvcmlnaW4gZm9yIHN1YnNlcXVlbnQgbG9h
ZHMgaWYgbmVlZGVkLgogICAgIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNjb25j
ZXB0LWh0dHAtcmVkaXJlY3QtZmV0Y2ggKFN0ZXAgMTApLgogICAgIEFTU0VSVChtX3BhcmFtZXRl
cnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwpAQCAtMTE3LDEzICsxMzEsMTkg
QEAgdm9pZCBQaW5nTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNw
b25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIFIKICAgICAgICAgICAgIG1fb3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpOwogICAgIH0KIAotICAgIG1faXNTYW1lT3JpZ2luUmVx
dWVzdCA9IGZhbHNlOworICAgIC8vIEV4Y2VwdCBpbiBjYXNlIHdoZXJlIHByZWZsaWdodCBpcyBu
ZWVkZWQsIGxvYWRpbmcgc2hvdWxkIGJlIGFibGUgdG8gY29udGludWUgb24gaXRzIG93bi4KKyAg
ICBpZiAobV9pc1NpbXBsZVJlcXVlc3QgJiYgaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVl
c3QocmVxdWVzdC5odHRwTWV0aG9kKCksIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoKSkpIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBtX3BhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IERv
Tm90QWxsb3dTdG9yZWRDcmVkZW50aWFsczsKICAgICBtX3JlZGlyZWN0SGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgLy8gTGV0J3MgZmV0Y2ggdGhlIHJlcXVlc3Qg
d2l0aCB0aGUgb3JpZ2luYWwgaGVhZGVycyAoZXF1aXZhbGVudCB0byByZXF1ZXN0IGNsb25pbmcg
c3BlY2lmaWVkIGJ5IGZldGNoIGFsZ29yaXRobSkuCiAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGRzKG1fcGFyYW1ldGVycy5yZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSk7CiAKLSAgICBk
b0NPUlNQcmVmbGlnaHQocmVxdWVzdCk7CisgICAgbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVz
dChXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAogdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxs
ZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xNzcsMTIgKzE5NywxMiBAQCB2b2lkIFBp
bmdMb2FkOjp0aW1lb3V0VGltZXJGaXJlZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLWJvb2wg
UGluZ0xvYWQ6Om5lZWRzQ09SU1ByZWZsaWdodChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpIGNvbnN0Citib29sIFBpbmdMb2FkOjppc0FsbG93ZWRSZWRpcmVjdChjb25zdCBVUkwmIHVy
bCkgY29uc3QKIHsKICAgICBpZiAobV9wYXJhbWV0ZXJzLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpN
b2RlOjpOb0NvcnMpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICByZXR1cm4gIW1faXNTYW1lT3JpZ2luUmVxdWVzdCB8fCAhc2VjdXJpdHlPcmlnaW4o
KS5jYW5SZXF1ZXN0KHJlcXVlc3QudXJsKCkpOworICAgIHJldHVybiBtX2lzU2FtZU9yaWdpblJl
cXVlc3QgJiYgc2VjdXJpdHlPcmlnaW4oKS5jYW5SZXF1ZXN0KHVybCk7CiB9CiAKIENvbnRlbnRT
ZWN1cml0eVBvbGljeSogUGluZ0xvYWQ6OmNvbnRlbnRTZWN1cml0eVBvbGljeSgpIGNvbnN0CkBA
IC0xOTQsMzMgKzIxNCw3MyBAQCBDb250ZW50U2VjdXJpdHlQb2xpY3kqIFBpbmdMb2FkOjpjb250
ZW50U2VjdXJpdHlQb2xpY3koKSBjb25zdAogICAgIHJldHVybiBtX2NvbnRlbnRTZWN1cml0eVBv
bGljeS5nZXQoKTsKIH0KIAotdm9pZCBQaW5nTG9hZDo6ZG9DT1JTUHJlZmxpZ2h0KGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgUGluZ0xvYWQ6Om1ha2VDcm9zc09yaWdpbkFj
Y2Vzc1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQobV9w
YXJhbWV0ZXJzLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0Iik7CisKKyAgICBp
ZiAoaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QocmVxdWVzdC5odHRwTWV0aG9kKCks
IG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMoKSkpIHsKKyAgICAgICAgbWFrZVNpbXBsZUNyb3NzT3Jp
Z2luQWNjZXNzUmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1faXNTaW1wbGVSZXF1ZXN0ID0gZmFsc2U7CisgICAgaWYgKENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQoc2VjdXJp
dHlPcmlnaW4oKS50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3BhcmFtZXRlcnMuYWxsb3dT
dG9yZWRDcmVkZW50aWFscywgcmVxdWVzdC5odHRwTWV0aG9kKCksIG9yaWdpbmFsUmVxdWVzdEhl
YWRlcnMoKSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibWFrZUNyb3NzT3Jp
Z2luQWNjZXNzUmVxdWVzdCAtIHByZWZsaWdodCBjYW4gYmUgc2tpcHBlZCB0aGFua3MgdG8gY2Fj
aGVkIHJlc3VsdCIpOworICAgICAgICBwcmVmbGlnaHRTdWNjZXNzKFdURk1vdmUocmVxdWVzdCkp
OworICAgIH0gZWxzZQorICAgICAgICBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFBy
ZWZsaWdodChXVEZNb3ZlKHJlcXVlc3QpKTsKK30KKwordm9pZCBQaW5nTG9hZDo6bWFrZVNpbXBs
ZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorewor
ICAgIEFTU0VSVChpc1NpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSwgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycygpKSk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgibWFrZVNpbXBsZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdCIpOworCisgICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJtYWtlU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0OiBD
cm9zcyBvcmlnaW4gcmVxdWVzdHMgYXJlIG9ubHkgc3VwcG9ydGVkIGZvciBIVFRQLiIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRyb2wo
cmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4oKSwgbV9wYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVu
dGlhbHMpOworICAgIGxvYWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCkpOworfQorCit2b2lkIFBp
bmdMb2FkOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRvQ09S
U1ByZWZsaWdodCIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIm1ha2VDcm9zc09yaWdp
bkFjY2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0Iik7CiAgICAgQVNTRVJUKCFtX2NvcnNQcmVmbGln
aHRDaGVja2VyKTsKIAogICAgIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzID0gewotICAgICAgICByZXF1ZXN0LAorICAgICAgICBXVEZNb3ZlKHJlcXVl
c3QpLAogICAgICAgICBzZWN1cml0eU9yaWdpbigpLAogICAgICAgICBtX3BhcmFtZXRlcnMuc2Vz
c2lvbklELAogICAgICAgICBtX3BhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscwogICAg
IH07CiAgICAgbV9jb3JzUHJlZmxpZ2h0Q2hlY2tlciA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyPihXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpc10oTmV0d29y
a0NPUlNQcmVmbGlnaHRDaGVja2VyOjpSZXN1bHQgcmVzdWx0KSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRvQ09SU1ByZWZsaWdodCBjb21wbGV0ZSwgc3VjY2VzczogJWQgZm9y
UmVkaXJlY3Q/ICVkIiwgcmVzdWx0ID09IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6UmVz
dWx0OjpTdWNjZXNzLCAhIW1fcmVkaXJlY3RIYW5kbGVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgibWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQgcHJl
ZmxpZ2h0IGNvbXBsZXRlLCBzdWNjZXNzOiAlZCBmb3JSZWRpcmVjdD8gJWQiLCByZXN1bHQgPT0g
TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpSZXN1bHQ6OlN1Y2Nlc3MsICEhbV9yZWRpcmVj
dEhhbmRsZXIpOwogICAgICAgICBhdXRvIGNvcnNQcmVmbGlnaHRDaGVja2VyID0gV1RGTW92ZSht
X2NvcnNQcmVmbGlnaHRDaGVja2VyKTsKLSAgICAgICAgaWYgKHJlc3VsdCA9PSBOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6OlJlc3VsdDo6U3VjY2VzcykgewotICAgICAgICAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IGFjdHVhbFJlcXVlc3QgPSBjb3JzUHJlZmxpZ2h0Q2hlY2tlci0+b3JpZ2luYWxS
ZXF1ZXN0KCk7Ci0gICAgICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChhY3R1
YWxSZXF1ZXN0LCBzZWN1cml0eU9yaWdpbigpLCBtX3BhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVk
ZW50aWFscyk7Ci0gICAgICAgICAgICBpZiAoYXV0byByZWRpcmVjdEhhbmRsZXIgPSBzdGQ6OmV4
Y2hhbmdlKG1fcmVkaXJlY3RIYW5kbGVyLCBudWxscHRyKSkKLSAgICAgICAgICAgICAgICByZWRp
cmVjdEhhbmRsZXIoYWN0dWFsUmVxdWVzdCk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgbG9hZFJlcXVlc3QoYWN0dWFsUmVxdWVzdCk7Ci0gICAgICAgIH0gZWxzZQorICAgICAg
ICBpZiAocmVzdWx0ID09IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6UmVzdWx0OjpTdWNj
ZXNzKQorICAgICAgICAgICAgcHJlZmxpZ2h0U3VjY2VzcyhSZXNvdXJjZVJlcXVlc3QgeyBjb3Jz
UHJlZmxpZ2h0Q2hlY2tlci0+b3JpZ2luYWxSZXF1ZXN0KCkgfSk7CisgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzOwogICAgIH0pOwogICAgIG1fY29yc1ByZWZsaWdodENoZWNr
ZXItPnN0YXJ0UHJlZmxpZ2h0KCk7CiB9CiAKK3ZvaWQgUGluZ0xvYWQ6OnByZWZsaWdodFN1Y2Nl
c3MoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJwcmVmbGlnaHRTdWNjZXNzIik7CisKKyAgICBSZXNvdXJjZVJlcXVlc3QgYWN0dWFsUmVx
dWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CisgICAgdXBkYXRlUmVxdWVzdEZvckFjY2Vzc0NvbnRy
b2woYWN0dWFsUmVxdWVzdCwgc2VjdXJpdHlPcmlnaW4oKSwgbV9wYXJhbWV0ZXJzLmFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMpOworCisgICAgaWYgKGF1dG8gcmVkaXJlY3RIYW5kbGVyID0gc3RkOjpl
eGNoYW5nZShtX3JlZGlyZWN0SGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgIHJlZGlyZWN0SGFu
ZGxlcihXVEZNb3ZlKGFjdHVhbFJlcXVlc3QpKTsKKyAgICBlbHNlCisgICAgICAgIGxvYWRSZXF1
ZXN0KFdURk1vdmUoYWN0dWFsUmVxdWVzdCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIFVTRShORVRXT1JLX1NFU1NJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1BpbmdMb2FkLmgKaW5kZXggMzYwMGE0YjQ0OTczNzgzMmZlNmRmYzE2M2RiNDhjYzNjMjFj
MjA2OS4uYWQzNTQ2NGU1MTMzZjE4ODA4OTQwMmJlMWVlOTc4MzEzYTg3YzdhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBVUkw7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTcsMTEgKzU4LDE1IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CiAgICAgdm9pZCB0aW1lb3V0VGltZXJGaXJl
ZCgpOwogCi0gICAgdm9pZCBsb2FkUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKLSAgICBib29sIG5lZWRzQ09SU1ByZWZsaWdodChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKSBjb25zdDsKLSAgICB2b2lkIGRvQ09SU1ByZWZsaWdodChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2b2lkIGxvYWRSZXF1ZXN0KFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKTsKKyAgICBib29sIGlzQWxsb3dlZFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6
OlVSTCYpIGNvbnN0OworICAgIHZvaWQgbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgdm9pZCBtYWtlU2ltcGxlQ3Jvc3NPcmlnaW5B
Y2Nlc3NSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKTsKKyAgICB2b2lkIG1ha2VD
cm9zc09yaWdpbkFjY2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmKTsKKyAgICB2b2lkIHByZWZsaWdodFN1Y2Nlc3MoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYpOwogCiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkg
Y29uc3Q7CisgICAgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycygpIGNvbnN0OyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIAogICAgIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIG1fcGFyYW1ldGVyczsKICAgICBSZWZQdHI8TmV0
d29ya0RhdGFUYXNrPiBtX3Rhc2s7CkBAIC02OSw2ICs3NCw3IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcj4gbV9jb3JzUHJlZmxpZ2h0
Q2hlY2tlcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwog
ICAgIGJvb2wgbV9pc1NhbWVPcmlnaW5SZXF1ZXN0OworICAgIGJvb2wgbV9pc1NpbXBsZVJlcXVl
c3QgeyB0cnVlIH07CiAgICAgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciBtX3JlZGlyZWN0SGFu
ZGxlcjsKICAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50U2VjdXJp
dHlQb2xpY3k+IG1fY29udGVudFNlY3VyaXR5UG9saWN5OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA5
ZDk3NzViMDQ4ZjYxYTkwOTM1ODA3Nzc5NmUzN2I1NjFjN2NkYmZjLi4yOThhM2JmMjVjN2FiMWJm
OTJkNTk1Y2E0YzMyNjg1OGNlNzVhZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0zODYsNyArMzg2LDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4KICAgICB9CiB9CiAKLXZvaWQgV2ViTG9hZGVyU3Ry
YXRlZ3k6OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250
ZXh0LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBzb3Vy
Y2VPcmlnaW4sIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5LCBj
b25zdCBGZXRjaE9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpjcmVh
dGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVy
cywgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgQ29udGVudFNlY3VyaXR5UG9s
aWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykK
IHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgY2FsbCB0byBjcmVhdGVQaW5nSGFuZGxlIG1p
Z2h0IGJlIG1hZGUgZHVyaW5nIGluaXRpYWwgZW1wdHkgRG9jdW1lbnQgY3JlYXRpb24gYmVmb3Jl
IGEgTmV0d29ya2luZ0NvbnRleHQgZXhpc3RzLgogICAgIC8vIEl0IGlzIG5vdCBjbGVhciB0aGF0
IHdlIHNob3VsZCBzZW5kIHBpbmcgbG9hZHMgZHVyaW5nIHRoYXQgcHJvY2VzcyBhbnl3YXlzLgpA
QCAtNDAwLDYgKzQwMCw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZVBpbmdIYW5k
bGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBSCiAgICAgCiAgICAgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7CiAgICAgbG9hZFBhcmFt
ZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgbG9hZFBhcmFtZXRlcnMub3JpZ2luYWxSZXF1
ZXN0SGVhZGVycyA9IFdURk1vdmUob3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CiAgICAgbG9hZFBh
cmFtZXRlcnMuc291cmNlT3JpZ2luID0gV1RGTW92ZShzb3VyY2VPcmlnaW4pOwogICAgIGxvYWRQ
YXJhbWV0ZXJzLnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFNl
c3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogICAgIGxvYWRQYXJhbWV0ZXJzLmFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMgPSBvcHRpb25zLmNyZWRlbnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6Ok9taXQgPyBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzOwpAQCAtNDA5LDcgKzQxMCw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OmNyZWF0ZVBpbmdIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIG5ldHdvcmtpbmdDb250ZXh0LCBS
CiAgICAgaWYgKGNvbnRlbnRTZWN1cml0eVBvbGljeSkKICAgICAgICAgbG9hZFBhcmFtZXRlcnMu
Y3NwUmVzcG9uc2VIZWFkZXJzID0gY29udGVudFNlY3VyaXR5UG9saWN5LT5yZXNwb25zZUhlYWRl
cnMoKTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpMb2FkUGluZyhsb2FkUGFyYW1ldGVycyksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJz
KSksIDApOwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdG9yZURlcml2ZWREYXRhVG9D
YWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImIGRhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aAppbmRleCA0ZDM1MTE0NjdjYzE0NjhkMjY4YTIxMGQ2MDEzY2QzYWMzYmZmOWYwLi40OTQyMWZk
MDQyZjQ3MTFmODNjNDc2MmIyZWUzOGU1YTQ2OTZiMWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTU5LDcgKzU5
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3VzcGVuZFBlbmRpbmdSZXF1ZXN0cygpIGZpbmFsOwog
ICAgIHZvaWQgcmVzdW1lUGVuZGluZ1JlcXVlc3RzKCkgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0
ZVBpbmdIYW5kbGUoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBX
ZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kqLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMmKSBmaW5hbDsKKyAgICB2b2lkIGNyZWF0ZVBpbmdIYW5kbGUoV2ViQ29yZTo6TmV0d29ya2lu
Z0NvbnRleHQqLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpIVFRQSGVhZGVy
TWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHNvdXJjZU9yaWdpbiwgV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJikgZmluYWw7CiAKICAgICB2b2lkIHN0b3JlRGVyaXZlZERh
dGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggNzFkMDFlMTI3ODY5ZDVhMWY0
MTgyOWYyNjk3YWY2MDg0ZjFiNzBlYy4uYmJlNzllOTNlZWZiNzg3ZWY5MTk1YjU1ZDA5NzZhMzRl
MWZkMDRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2Vi
Q29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzYzLDcgKzM2Myw3
IEBAIGJvb2wgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpIb3N0SW5mb3JtYXRpb246OmxpbWl0
UmVxdWVzdHMoUmVzb3VyY2VMb2FkUHJpb3JpCiAgICAgcmV0dXJuIG1fcmVxdWVzdHNMb2FkaW5n
LnNpemUoKSA+PSAod2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkuaXNTZXJpYWxMb2FkaW5nRW5h
YmxlZCgpID8gMSA6IG1fbWF4UmVxdWVzdHNJbkZsaWdodCk7CiB9CiAKLXZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyOjpjcmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3
b3JraW5nQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYsIFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSosIGNvbnN0IEZldGNoT3B0aW9u
cyYgb3B0aW9ucykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpjcmVhdGVQaW5nSGFu
ZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4dCwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBIVFRQSGVhZGVyTWFwJiYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29y
ZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiwgY29uc3QgRmV0Y2hPcHRpb25zJiBvcHRpb25zKQog
ewogICAgIC8vIFBpbmdIYW5kbGUgbWFuYWdlcyBpdHMgb3duIGxpZmV0aW1lLCBkZWxldGluZyBp
dHNlbGYgd2hlbiBpdHMgcHVycG9zZSBoYXMgYmVlbiBmdWxmaWxsZWQuCiAgICAgbmV3IFBpbmdI
YW5kbGUobmV0d29ya2luZ0NvbnRleHQsIHJlcXVlc3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21pdCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2Fs
bGJhY2tzOjpObywgb3B0aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpG
b2xsb3cpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggMzRjYjY3NjdhOTEyNDRlNWY1
NThhNThhMjdiY2JjYjRhOTUxM2I0YS4uMGJiMjkxYjljNmFjOTIxMzcxZWY5NWEwODYzMzk0NWZh
MDE4N2NhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC01OSw3ICs1OSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN1c3BlbmRQZW5kaW5nUmVxdWVzdHMoKSBvdmVycmlkZTsKICAgICB2
b2lkIHJlc3VtZVBlbmRpbmdSZXF1ZXN0cygpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBjcmVhdGVQ
aW5nSGFuZGxlKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjcmVhdGVQaW5nSGFuZGxlKFdlYkNvcmU6Ok5ldHdvcmtp
bmdDb250ZXh0KiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6SFRUUEhlYWRl
ck1hcCYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3kqLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hB
MTo6RGlnZXN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyJikgb3ZlcnJpZGUgeyB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzZWQyNjY5NmFmOTZmMzI2NTBiY2NiMjQ5
MTgwYTQ2NmMzMmRhOTA0Li4xYjJhOTE2NTc3YWRiOTUyZWUwZWY3MWJiZjY4MzM1MjRmZGE1NzZk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAKIDIwMTctMDgtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAorICAgICAgICBDcm9zcyBvcmlnaW4gQmVhY29uIHJlcXVlc3RzIHdpdGgg
YSBBcnJheUJ1ZmZlciAvIEFycmF5QnVmZmVyVmlldyBwYXlsb2FkIHNob3VsZCBub3QgZG8gYSBD
T1JTIHByZWZsaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc1NjI4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzkxOTI3OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvYmxp
bmsvc2VuZGJlYWNvbi9iZWFjb24tc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvd3B0L2ZldGNoL2ZldGNoLXJlcXVlc3QtYXJyYXlidWZmZXItY29udGVudC10eXBlLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9mZXRjaC1yZXF1ZXN0LWFycmF5
YnVmZmVyLWNvbnRlbnQtdHlwZS5odG1sOgorICAgICAgICBSZWJhc2VsaW5lIHRlc3QgZHVlIHRv
IHJldmVydCBvZiByMjIwNzc5LgorCisgICAgICAgICogaHR0cC93cHQvYmVhY29uL2NvcnMvY29y
cy1wcmVmbGlnaHQtYXJyYXlidWZmZXJ2aWV3LWZhaWx1cmUtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFycmF5YnVm
ZmVydmlldy1mYWlsdXJlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgIERyb3Agb3V0ZGF0ZWQgdGVz
dC4gQ09SUyBwcmVmbGlnaHQgZmFpbHVyZSBpcyBzdGlsbCBjb3ZlcmVkIGJ5IHRoZSBjb3JyZXNw
b25kaW5nIEJsb2IgcGF5bG9hZCB0ZXN0LgorCisgICAgICAgICogaHR0cC93cHQvYmVhY29uL2Nv
cnMvY29ycy1wcmVmbGlnaHQtYXJyYXlidWZmZXJ2aWV3LXN1Y2Nlc3MtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFy
cmF5YnVmZmVydmlldy1zdWNjZXNzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC93cHQv
YmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4tYXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3Jp
Z2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQuaHRtbDogQWRkZWQuCisgICAgICAgIFJl
bmFtZSBhbmQgdXBkYXRlIHRlc3Qgc28gdGhhdCBpdCBjaGVja3MgdGhhdCB3ZSBubyBsb25nZXIg
ZG8gYSBDT1JTIHByZWZsaWdodCBmb3IgY3Jvc3Mgb3JpZ2luCisgICAgICAgIGJlYWNvbnMgdGhh
dCBoYXZlIGFuIEFycmF5QnVmZmVyIHBheWxvYWQuCisKKzIwMTctMDgtMTYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCByZWJhc2VsaW5lIGEg
ZmV3IHRlc3RzIGFmdGVyIHIyMjA3NzkuCiAKICAgICAgICAgKiBodHRwL3Rlc3RzL2JsaW5rL3Nl
bmRiZWFjb24vYmVhY29uLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDoKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDgxNWM5YThlYmRmZGNhYjU2YWQ5OWY4MWQxNzgwODk1ODc4YWZh
ODUuLjEzYWFhZWQzZDZkNjMyMjNlZjU4ZDYyY2ZiMWE1ZjU0NWMwMGQ5ZWUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTA4LTE2ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ3Jvc3Mgb3JpZ2luIEJlYWNvbiBy
ZXF1ZXN0cyB3aXRoIGEgQXJyYXlCdWZmZXIgLyBBcnJheUJ1ZmZlclZpZXcgcGF5bG9hZCBzaG91
bGQgbm90IGRvIGEgQ09SUyBwcmVmbGlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NTYyOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM5MTky
Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVi
YXNlbGluZSBhIGZldyB3ZWItcGxhdGZvcm0tdGVzdHMgZHVlIHRvIHJldmVydCBvZiByMjIwNzc5
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hlYWRlci1j
b250ZW50LXR5cGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuYW55
Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMTctMDgtMTUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEltcG9ydCB0ZXN0IHN1aXRl
IGZyb20gd2ViLXBsYXRmb3JtLXRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2JsaW5rL3NlbmRiZWFjb24vYmVhY29uLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYmxpbmsvc2VuZGJlYWNvbi9iZWFjb24tc2FtZS1vcmlnaW4t
ZXhwZWN0ZWQudHh0CmluZGV4IGYwNzc4N2ZhMzlmNTYxM2ExOGY1Y2JhNTQxYzc3N2Y0ZDQ5ZDkz
NTcuLmYzN2JjMWE3MDA5YmNkYTYzYmY1ZTgzNzNiMmViNGU2ZjA5MDFjN2YgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYmxpbmsvc2VuZGJlYWNvbi9iZWFjb24tc2FtZS1vcmln
aW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYmxpbmsvc2VuZGJl
YWNvbi9iZWFjb24tc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0xNiw3ICsxNiw3IEBAIFBB
U1MKIFNlbmRpbmcgYmVhY29uIHdpdGggdHlwZTogW29iamVjdCBVaW50MzJBcnJheV0KIFBBU1Mg
bmF2aWdhdG9yLnNlbmRCZWFjb24oInJlc291cmNlcy9zYXZlLWJlYWNvbi5waHA/bmFtZT1zYW1l
LW9yaWdpbiIsIHBheWxvYWQpOyBpcyB0cnVlCiBQQVNTIEJlYWNvbiBzZW50IHN1Y2Nlc3NmdWxs
eQotUEFTUyBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQorUEFTUyBDb250
ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZAogUEFTUyBPcmlnaW46
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAogUEFTUyBSZWZlcmVyOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvYmxpbmsvc2VuZGJlYWNvbi9iZWFjb24tc2FtZS1vcmlnaW4uaHRtbAogUEFTUyBSZXF1ZXN0
LU1ldGhvZDogUE9TVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2Nv
cnMvY29ycy1wcmVmbGlnaHQtYXJyYXlidWZmZXJ2aWV3LWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY29ycy1wcmVmbGlnaHQtYXJyYXlidWZm
ZXJ2aWV3LWZhaWx1cmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxMTkzMmY3MmY2YjA2OTlhNTRjOWU3ZWQ5MmYyYjdhNmM5NDhjZGQ4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Jl
YWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFycmF5YnVmZmVydmlldy1mYWlsdXJlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1QQVNTIENPUlMgcHJlZmxpZ2h0
IGZhaWx1cmUgdGVzdCAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29u
L2NvcnMvY29ycy1wcmVmbGlnaHQtYXJyYXlidWZmZXJ2aWV3LWZhaWx1cmUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFycmF5YnVmZmVydmll
dy1mYWlsdXJlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1YWE1YmI2OGJh
NTQ3NDVkYmM0NTQ1ZTJiYTlmMWYyZjBmMmRiYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY29y
cy1wcmVmbGlnaHQtYXJyYXlidWZmZXJ2aWV3LWZhaWx1cmUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDYzICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci0gIDxoZWFkPgotICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICA8dGl0bGU+U2VuZEJlYWNvbiBDT1JTIHByZWZsaWdo
dCB0ZXN0PC90aXRsZT4KLSAgICA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anM+PC9zY3JpcHQ+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgPHNjcmlwdCBzcmM9Ii9jb21t
b24vdXRpbHMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0
LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0PgotdmFyIFJFU09VUkNFU19ESVIg
PSAiL1dlYktpdC9iZWFjb24vcmVzb3VyY2VzLyI7Ci0KLWZ1bmN0aW9uIHBvbGxSZXN1bHQodGVz
dCwgaWQpIHsKLSAgdmFyIGNoZWNrVXJsID0gUkVTT1VSQ0VTX0RJUiArICJiZWFjb24tcHJlZmxp
Z2h0LnB5P2NtZD1nZXQmaWQ9IiArIGlkOwotCi0gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKLSAgICBzdGVwX3RpbWVvdXQodGVzdC5zdGVwX2Z1bmMoKCkgPT4gewotICAgICAgZmV0
Y2goY2hlY2tVcmwpLnRoZW4ocmVzcG9uc2UgPT4gewotICAgICAgICByZXNwb25zZS5qc29uKCku
dGhlbihib2R5ID0+IHsKLSAgICAgICAgICByZXNvbHZlKGJvZHkpOwotICAgICAgICB9KTsKLSAg
ICAgIH0pOwotICAgIH0pLCAxMDAwKTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDT1JTUHJl
ZmxpZ2h0RmFpbHVyZSh3aGF0KSB7Ci0gIHZhciB0ZXN0QmFzZSA9IGdldF9ob3N0X2luZm8oKS5I
VFRQX1JFTU9URV9PUklHSU4gKyBSRVNPVVJDRVNfRElSOwotICB2YXIgaWQgPSBzZWxmLnRva2Vu
KCk7Ci0gIHZhciB0ZXN0VXJsID0gdGVzdEJhc2UgKyAiYmVhY29uLXByZWZsaWdodC5weT9hbGxv
d0NvcnM9MCZjbWQ9cHV0JmlkPSIgKyBpZDsKLQotICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgewotICAgIGFzc2VydF90cnVlKG5hdmlnYXRvci5zZW5kQmVhY29uKHRlc3RVcmwsIHdoYXQp
LCAiU2VuZEJlYWNvbiBTdWNjZWVkZWQiKTsKLSAgICByZXR1cm4gcG9sbFJlc3VsdCh0ZXN0LCBp
ZCkgLnRoZW4ocmVzdWx0ID0+IHsKLSAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0WydwcmVmbGln
aHQnXSwgMSwgIlJlY2VpdmVkIHByZWZsaWdodCIpCi0gICAgICBhc3NlcnRfZXF1YWxzKHJlc3Vs
dFsncHJlZmxpZ2h0X3JlZmVyZXInXSwgZG9jdW1lbnQuVVJMLCAiUHJlZmxpZ2h0IHJlZmVyZXIg
aGVhZGVyIikKLSAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0WydwcmVmbGlnaHRfcmVxdWVzdGVk
X21ldGhvZCddLCAiUE9TVCIsICJQcmVmbGlnaHQgcmVxdWVzdGVkIG1ldGhvZCIpCi0gICAgICBs
ZXQgcmVxdWVzdGVkX2hlYWRlcnMgPSByZXN1bHRbJ3ByZWZsaWdodF9yZXF1ZXN0ZWRfaGVhZGVy
cyddLnRvTG93ZXJDYXNlKCkKLSAgICAgIGFzc2VydF90cnVlKHJlcXVlc3RlZF9oZWFkZXJzLmlu
Y2x1ZGVzKCJjb250ZW50LXR5cGUiKSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgaXMgcmVxdWVzdGVk
IikKLSAgICAgIGFzc2VydF90cnVlKHJlcXVlc3RlZF9oZWFkZXJzLmluY2x1ZGVzKCJyZWZlcmVy
IiksICJSZWZlcmVyIGhlYWRlciBpcyByZXF1ZXN0ZWQiKQotICAgICAgYXNzZXJ0X3RydWUocmVx
dWVzdGVkX2hlYWRlcnMuaW5jbHVkZXMoIm9yaWdpbiIpLCAiT3JpZ2luIGhlYWRlciBpcyByZXF1
ZXN0ZWQiKQotICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ2JlYWNvbiddLCAwLCAiRGlkIG5v
dCByZWNlaXZlIGJlYWNvbiIpCi0gICAgfSk7Ci0gIH0sICJDT1JTIHByZWZsaWdodCBmYWlsdXJl
IHRlc3QiKTsKLX0KLQotZnVuY3Rpb24gc3RyaW5nVG9BcnJheUJ1ZmZlclZpZXcoaW5wdXQpIHsK
LSAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihpbnB1dC5sZW5ndGggKiAyKTsKLSAgdmFy
IHZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVmZmVyKTsKLQotICAvLyBkdW1ibHkgY29weSBvdmVy
IHRoZSBieXRlcwotICBmb3IgKHZhciBpID0gMCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVu
OyBpKyspIHsKLSAgICB2aWV3W2ldID0gaW5wdXQuY2hhckNvZGVBdChpKTsKLSAgfQotICByZXR1
cm4gdmlldzsKLX0KLQotdGVzdENPUlNQcmVmbGlnaHRGYWlsdXJlKHN0cmluZ1RvQXJyYXlCdWZm
ZXJWaWV3KCIxMjMiKSk7Ci0gICAgPC9zY3JpcHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFy
cmF5YnVmZmVydmlldy1zdWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFycmF5YnVmZmVydmlldy1zdWNjZXNzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU0NDk4MjY5ZjVkNGUwYzk0
NTRmMjBlODExNThlZDk5NWZlZDU5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jb3JzLXByZWZs
aWdodC1hcnJheWJ1ZmZlcnZpZXctc3VjY2Vzcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotUEFTUyBDT1JTIHByZWZsaWdodCBzdWNjZXNzIHRlc3QgCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0
LWFycmF5YnVmZmVydmlldy1zdWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFj
b24vY29ycy9jb3JzLXByZWZsaWdodC1hcnJheWJ1ZmZlcnZpZXctc3VjY2Vzcy5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OGIzMDVmMjcyMWQyZTNkMDA1MDI5ZmZhNjNhMDZk
MDk0OWQwMDkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2NvcnMtcHJlZmxpZ2h0LWFycmF5YnVm
ZmVydmlldy1zdWNjZXNzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci0gICAgPHRpdGxlPlNlbmRCZWFjb24gQ09SUyBwcmVmbGlnaHQgdGVzdDwvdGl0bGU+Ci0gICAg
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgotICA8L2hl
YWQ+Ci0gIDxib2R5PgotICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdD4KLXZhciBSRVNPVVJDRVNfRElSID0gIi9XZWJLaXQvYmVhY29uL3Jl
c291cmNlcy8iOwotCi1mdW5jdGlvbiBwb2xsUmVzdWx0KHRlc3QsIGlkKSB7Ci0gIHZhciBjaGVj
a1VybCA9IFJFU09VUkNFU19ESVIgKyAiYmVhY29uLXByZWZsaWdodC5weT9jbWQ9Z2V0JmlkPSIg
KyBpZDsKLQotICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgc3RlcF90aW1l
b3V0KHRlc3Quc3RlcF9mdW5jKCgpID0+IHsKLSAgICAgIGZldGNoKGNoZWNrVXJsKS50aGVuKHJl
c3BvbnNlID0+IHsKLSAgICAgICAgcmVzcG9uc2UuanNvbigpLnRoZW4oYm9keSA9PiB7Ci0gICAg
ICAgICAgcmVzb2x2ZShib2R5KTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKLSAgICB9KSwgMTAw
MCk7Ci0gIH0pOwotfQotCi1mdW5jdGlvbiB0ZXN0Q09SU1ByZWZsaWdodFN1Y2Nlc3Mod2hhdCkg
ewotICB2YXIgdGVzdEJhc2UgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9SRU1PVEVfT1JJR0lOICsg
UkVTT1VSQ0VTX0RJUjsKLSAgdmFyIGlkID0gc2VsZi50b2tlbigpOwotICB2YXIgdGVzdFVybCA9
IHRlc3RCYXNlICsgImJlYWNvbi1wcmVmbGlnaHQucHk/YWxsb3dDb3JzPTEmY21kPXB1dCZpZD0i
ICsgaWQ7Ci0KLSAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKLSAgICBhc3NlcnRfdHJ1
ZShuYXZpZ2F0b3Iuc2VuZEJlYWNvbih0ZXN0VXJsLCB3aGF0KSwgIlNlbmRCZWFjb24gU3VjY2Vl
ZGVkIik7Ci0gICAgcmV0dXJuIHBvbGxSZXN1bHQodGVzdCwgaWQpIC50aGVuKHJlc3VsdCA9PiB7
Ci0gICAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0J10sIDEsICJSZWNlaXZlZCBw
cmVmbGlnaHQiKQotICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ3ByZWZsaWdodF9yZWZlcmVy
J10sIGRvY3VtZW50LlVSTCwgIlByZWZsaWdodCByZWZlcmVyIGhlYWRlciIpCi0gICAgICBhc3Nl
cnRfZXF1YWxzKHJlc3VsdFsncHJlZmxpZ2h0X3JlcXVlc3RlZF9tZXRob2QnXSwgIlBPU1QiLCAi
UHJlZmxpZ2h0IHJlcXVlc3RlZCBtZXRob2QiKQotICAgICAgbGV0IHJlcXVlc3RlZF9oZWFkZXJz
ID0gcmVzdWx0WydwcmVmbGlnaHRfcmVxdWVzdGVkX2hlYWRlcnMnXS50b0xvd2VyQ2FzZSgpCi0g
ICAgICBhc3NlcnRfdHJ1ZShyZXF1ZXN0ZWRfaGVhZGVycy5pbmNsdWRlcygiY29udGVudC10eXBl
IiksICJDb250ZW50LVR5cGUgaGVhZGVyIGlzIHJlcXVlc3RlZCIpCi0gICAgICBhc3NlcnRfdHJ1
ZShyZXF1ZXN0ZWRfaGVhZGVycy5pbmNsdWRlcygicmVmZXJlciIpLCAiUmVmZXJlciBoZWFkZXIg
aXMgcmVxdWVzdGVkIikKLSAgICAgIGFzc2VydF90cnVlKHJlcXVlc3RlZF9oZWFkZXJzLmluY2x1
ZGVzKCJvcmlnaW4iKSwgIk9yaWdpbiBoZWFkZXIgaXMgcmVxdWVzdGVkIikKLSAgICAgIGFzc2Vy
dF9lcXVhbHMocmVzdWx0WydiZWFjb24nXSwgMSwgIlJlY2VpdmVkIGJlYWNvbiIpCi0gICAgfSk7
Ci0gIH0sICJDT1JTIHByZWZsaWdodCBzdWNjZXNzIHRlc3QiKTsKLX0KLQotZnVuY3Rpb24gc3Ry
aW5nVG9BcnJheUJ1ZmZlclZpZXcoaW5wdXQpIHsKLSAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcihpbnB1dC5sZW5ndGggKiAyKTsKLSAgdmFyIHZpZXcgPSBuZXcgVWludDE2QXJyYXkoYnVm
ZmVyKTsKLQotICAvLyBkdW1ibHkgY29weSBvdmVyIHRoZSBieXRlcwotICBmb3IgKHZhciBpID0g
MCwgbGVuID0gaW5wdXQubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKLSAgICB2aWV3W2ldID0gaW5w
dXQuY2hhckNvZGVBdChpKTsKLSAgfQotICByZXR1cm4gdmlldzsKLX0KLQotdGVzdENPUlNQcmVm
bGlnaHRTdWNjZXNzKHN0cmluZ1RvQXJyYXlCdWZmZXJWaWV3KCIxMjMiKSk7Ci0gICAgPC9zY3Jp
cHQ+Ci0gIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVydmlldy1uby1wcmVmbGlnaHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvYmVhY29uL2NvcnMvY3Jvc3NvcmlnaW4t
YXJyYXlidWZmZXJ2aWV3LW5vLXByZWZsaWdodC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg5
NWZjNjUyOTVmMzczYzM0MTVkMGVjMTUwYjc1YzAwYTM0YmIxNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVmZmVy
dmlldy1uby1wcmVmbGlnaHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFNo
b3VsZCBzZW5kIGJlYWNvbiB3aXRoIG5vIENPUlMgcHJlZmxpZ2h0IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9jcm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZp
ZXctbm8tcHJlZmxpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9iZWFjb24vY29ycy9j
cm9zc29yaWdpbi1hcnJheWJ1ZmZlcnZpZXctbm8tcHJlZmxpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmE0ODYwYjYzNDE1NGU0ODE0MmUyYzYwOTIzODYzNGRjMTBmMDE4ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2JlYWNvbi9jb3JzL2Nyb3Nzb3JpZ2luLWFycmF5YnVm
ZmVydmlldy1uby1wcmVmbGlnaHQuaHRtbApAQCAtMCwwICsxLDU3IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRp
dGxlPlNlbmRCZWFjb24gY3Jvc3Mgb3JpZ2luIHdpdGggYW4gQXJyYXlCdWZmZXIgLyBBcnJheUJ1
ZmZlclZpZXcgcGF5bG9hZCBzaG91bGQgbm90IGRvIGEgQ09SUyBwcmVmbGlnaHQ8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi91dGlscy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQ+Cit2YXIgUkVTT1VSQ0VTX0RJUiA9ICIvV2ViS2l0L2JlYWNv
bi9yZXNvdXJjZXMvIjsKKworZnVuY3Rpb24gcG9sbFJlc3VsdCh0ZXN0LCBpZCkgeworICB2YXIg
Y2hlY2tVcmwgPSBSRVNPVVJDRVNfRElSICsgImJlYWNvbi1wcmVmbGlnaHQucHk/Y21kPWdldCZp
ZD0iICsgaWQ7CisKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHN0ZXBf
dGltZW91dCh0ZXN0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBmZXRjaChjaGVja1VybCkudGhl
bihyZXNwb25zZSA9PiB7CisgICAgICAgIHJlc3BvbnNlLmpzb24oKS50aGVuKGJvZHkgPT4gewor
ICAgICAgICAgIHJlc29sdmUoYm9keSk7CisgICAgICAgIH0pOworICAgICAgfSk7CisgICAgfSks
IDEwMDApOworICB9KTsKK30KKworZnVuY3Rpb24gdGVzdENPUlNQcmVmbGlnaHRTdWNjZXNzKHdo
YXQpIHsKKyAgdmFyIHRlc3RCYXNlID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfUkVNT1RFX09SSUdJ
TiArIFJFU09VUkNFU19ESVI7CisgIHZhciBpZCA9IHNlbGYudG9rZW4oKTsKKyAgdmFyIHRlc3RV
cmwgPSB0ZXN0QmFzZSArICJiZWFjb24tcHJlZmxpZ2h0LnB5P2FsbG93Q29ycz0xJmNtZD1wdXQm
aWQ9IiArIGlkOworCisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgYXNzZXJ0
X3RydWUobmF2aWdhdG9yLnNlbmRCZWFjb24odGVzdFVybCwgd2hhdCksICJTZW5kQmVhY29uIFN1
Y2NlZWRlZCIpOworICAgIHJldHVybiBwb2xsUmVzdWx0KHRlc3QsIGlkKSAudGhlbihyZXN1bHQg
PT4geworICAgICAgYXNzZXJ0X2VxdWFscyhyZXN1bHRbJ3ByZWZsaWdodCddLCAwLCAiRGlkIG5v
dCByZWNlaXZlIENPUlMgcHJlZmxpZ2h0IikKKyAgICAgIGFzc2VydF9lcXVhbHMocmVzdWx0Wydi
ZWFjb24nXSwgMSwgIlJlY2VpdmVkIGJlYWNvbiIpCisgICAgfSk7CisgIH0sICJTaG91bGQgc2Vu
ZCBiZWFjb24gd2l0aCBubyBDT1JTIHByZWZsaWdodCIpOworfQorCitmdW5jdGlvbiBzdHJpbmdU
b0FycmF5QnVmZmVyVmlldyhpbnB1dCkgeworICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVy
KGlucHV0Lmxlbmd0aCAqIDIpOworICB2YXIgdmlldyA9IG5ldyBVaW50MTZBcnJheShidWZmZXIp
OworCisgIC8vIGR1bWJseSBjb3B5IG92ZXIgdGhlIGJ5dGVzCisgIGZvciAodmFyIGkgPSAwLCBs
ZW4gPSBpbnB1dC5sZW5ndGg7IGkgPCBsZW47IGkrKykgeworICAgIHZpZXdbaV0gPSBpbnB1dC5j
aGFyQ29kZUF0KGkpOworICB9CisgIHJldHVybiB2aWV3OworfQorCit0ZXN0Q09SU1ByZWZsaWdo
dFN1Y2Nlc3Moc3RyaW5nVG9BcnJheUJ1ZmZlclZpZXcoIjEyMyIpKTsKKyAgICA8L3NjcmlwdD4K
KyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0
Y2gvZmV0Y2gtcmVxdWVzdC1hcnJheWJ1ZmZlci1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gtcmVxdWVzdC1hcnJheWJ1ZmZlci1jb250
ZW50LXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDg1NTVhMWM5ZmE4YThkZDQ3YjBmODRmZDI2YmYz
MTg4OWIwODk0Y2YuLjJiYWEyYjg4NmQ3OGE5MDdlOGU1YzVlNjU3MDI0ZmVmMGZiOTM5MGYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLXJlcXVlc3QtYXJyYXli
dWZmZXItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9mZXRjaC9mZXRjaC1yZXF1ZXN0LWFycmF5YnVmZmVyLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLVBBU1MgQ29udGVudC1UeXBlIGhlYWRlciBmb3IgcGF5bG9h
ZCBvZiBBcnJheUJ1ZmZlciB0eXBlIHNob3VsZCBiZSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
JyAKK1BBU1MgQ29udGVudC1UeXBlIGhlYWRlciBmb3IgcGF5bG9hZCBvZiBBcnJheUJ1ZmZlciB0
eXBlIHNob3VsZCBiZSBudWxsIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9m
ZXRjaC9mZXRjaC1yZXF1ZXN0LWFycmF5YnVmZmVyLWNvbnRlbnQtdHlwZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvZmV0Y2gvZmV0Y2gtcmVxdWVzdC1hcnJheWJ1ZmZlci1jb250ZW50LXR5
cGUuaHRtbAppbmRleCA1YWUxODUzMjI0OGU0MjU0M2EyYWFhZjA5MGY5YmYzOTQ3YmU2ZTAxLi4w
NGZjNjYyZmEzMWQ1NmNkOGNjZGNjNzk5ZjdkZjUzODNiOTdkMTk4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9mZXRjaC1yZXF1ZXN0LWFycmF5YnVmZmVyLWNvbnRlbnQt
dHlwZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL2ZldGNoLXJlcXVlc3Qt
YXJyYXlidWZmZXItY29udGVudC10eXBlLmh0bWwKQEAgLTYsOCArNiw4IEBACiA8c2NyaXB0Pgog
dGVzdChmdW5jdGlvbih0KSB7CiAgIGxldCByZXF1ZXN0ID0gbmV3IFJlcXVlc3QoImh0dHA6Ly9s
b2NhbGhvc3QiLCB7IG1ldGhvZDogIlBPU1QiLCBib2R5OiBuZXcgQXJyYXlCdWZmZXIoKSB9KTsK
LSAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5cGUnKSwgImFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOwotfSwgIkNvbnRlbnQtVHlwZSBoZWFkZXIgZm9yIHBh
eWxvYWQgb2YgQXJyYXlCdWZmZXIgdHlwZSBzaG91bGQgYmUgJ2FwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbSciKTsKKyAgYXNzZXJ0X2VxdWFscyhyZXF1ZXN0LmhlYWRlcnMuZ2V0KCdDb250ZW50LVR5
cGUnKSwgbnVsbCk7Cit9LCAiQ29udGVudC1UeXBlIGhlYWRlciBmb3IgcGF5bG9hZCBvZiBBcnJh
eUJ1ZmZlciB0eXBlIHNob3VsZCBiZSBudWxsIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2JlYWNvbi9oZWFkZXJzL2hl
YWRlci1jb250ZW50LXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IGY1NThkNzhmMTllNTM5NTBlMzg1
ZjkzNTE2ZTM2MjYyMDU0MzBkODAuLjBlZjUxOGIxYWEyMWU3ZjFiNTIzMmY1YmY0MDJmYWViMWMz
Yjg4N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvYmVhY29uL2hlYWRlcnMvaGVhZGVyLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vaGVh
ZGVycy9oZWFkZXItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAog
UEFTUyBUZXN0IGNvbnRlbnQtdHlwZSBoZWFkZXIgZm9yIGEgYm9keSBzdHJpbmcgCi1GQUlMIFRl
c3QgY29udGVudC10eXBlIGhlYWRlciBmb3IgYSBib2R5IEFycmF5QnVmZmVyVmlldyBhc3NlcnRf
ZXF1YWxzOiBDb3JyZWN0IENvbnRlbnQtVHlwZSBoZWFkZXIgcmVzdWx0IGV4cGVjdGVkICIiIGJ1
dCBnb3QgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKLUZBSUwgVGVzdCBjb250ZW50LXR5cGUg
aGVhZGVyIGZvciBhIGJvZHkgQXJyYXlCdWZmZXIgYXNzZXJ0X2VxdWFsczogQ29ycmVjdCBDb250
ZW50LVR5cGUgaGVhZGVyIHJlc3VsdCBleHBlY3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW0iCitGQUlMIFRlc3QgY29udGVudC10eXBlIGhlYWRlciBmb3IgYSBib2R5IEFy
cmF5QnVmZmVyVmlldyBhc3NlcnRfZXF1YWxzOiBDb3JyZWN0IENvbnRlbnQtVHlwZSBoZWFkZXIg
cmVzdWx0IGV4cGVjdGVkICIiIGJ1dCBnb3QgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZCIKK0ZBSUwgVGVzdCBjb250ZW50LXR5cGUgaGVhZGVyIGZvciBhIGJvZHkgQXJyYXlCdWZm
ZXIgYXNzZXJ0X2VxdWFsczogQ29ycmVjdCBDb250ZW50LVR5cGUgaGVhZGVyIHJlc3VsdCBleHBl
Y3RlZCAiIiBidXQgZ290ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCiBQQVNT
IFRlc3QgY29udGVudC10eXBlIGhlYWRlciBmb3IgYSBib2R5IEJsb2IgCiBQQVNTIFRlc3QgY29u
dGVudC10eXBlIGhlYWRlciBmb3IgYSBib2R5IEZvcm1EYXRhIAogUEFTUyBUZXN0IGNvbnRlbnQt
dHlwZSBoZWFkZXIgZm9yIGEgYm9keSBVUkxTZWFyY2hQYXJhbXMgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9y
ZXF1ZXN0LWhlYWRlcnMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5hbnkt
ZXhwZWN0ZWQudHh0CmluZGV4IDViM2UyZGRlOTE5YTJhNTNlYWJlNTU3ODQyYmU1NGU4YzNkNTcy
ZTAuLjQyNWI4Njc0Mzk1MDY5NjY1N2QzNDY0MWZhNWM1YmJlOTBmNjE0NjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3JlcXVlc3QtaGVhZGVycy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVh
ZGVycy5hbnktZXhwZWN0ZWQudHh0CkBAIC04LDEyICs4LDEyIEBAIFBBU1MgRmV0Y2ggd2l0aCBQ
T1NUIHdpdGggdGV4dCBib2R5CiBQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIEZvcm1EYXRhIGJv
ZHkgCiBQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIFVSTFNlYXJjaFBhcmFtcyBib2R5IAogRkFJ
TCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBCbG9iIGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBz
aG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51
bGwgYnV0IGdvdCAoc3RyaW5nKSAiIgotRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBBcnJheUJ1
ZmZlciBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRl
bnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKLUZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggVWludDhB
cnJheSBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRl
bnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKLUZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggSW50OEFy
cmF5IGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVu
dC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtIgotRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGbG9hdDMy
QXJyYXkgYm9keSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250
ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iCi1GQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEZsb2F0
NjRBcnJheSBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNv
bnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykg
ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIKLUZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRGF0
YVZpZXcgYm9keSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250
ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iCitGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEFycmF5
QnVmZmVyIGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29u
dGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAi
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgorRkFJTCBGZXRjaCB3aXRoIFBPU1Qg
d2l0aCBVaW50OEFycmF5IGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBo
ZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAo
c3RyaW5nKSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgorRkFJTCBGZXRjaCB3
aXRoIFBPU1Qgd2l0aCBJbnQ4QXJyYXkgYm9keSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3Vs
ZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBi
dXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCitGQUlM
IEZldGNoIHdpdGggUE9TVCB3aXRoIEZsb2F0MzJBcnJheSBib2R5IGFzc2VydF9lcXVhbHM6IFJl
cXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2Jq
ZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZCIKK0ZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRmxvYXQ2NEFycmF5IGJvZHkgYXNzZXJ0
X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4
cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGljYXRpb24veC13d3ct
Zm9ybS11cmxlbmNvZGVkIgorRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBEYXRhVmlldyBib2R5
IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTog
bnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9u
L3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKIFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxvYiBi
b2R5IHdpdGggbWltZSB0eXBlIAogRkFJTCBGZXRjaCB3aXRoIENoaWNrZW4gYXNzZXJ0X2VxdWFs
czogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC1sZW5ndGg6IG51bGwgZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICIwIgogUEFTUyBGZXRjaCB3aXRoIENo
aWNrZW4gd2l0aCBib2R5IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmFueS53b3JrZXItZXhwZWN0ZWQu
dHh0CmluZGV4IDUxZDk5NzFkZmEwZGY3OThmZjRjMjUyZjBjZTcxNjQ2MzViMzYyYjMuLjQ0N2Zl
MWU3MGJkNmVhNjNkYThhYzU0MGM5ZDcwNzA5YzBmNzc4YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVl
c3QtaGVhZGVycy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRl
cnMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTgsMTIgKzgsMTIgQEAgUEFTUyBGZXRjaCB3
aXRoIFBPU1Qgd2l0aCB0ZXh0IGJvZHkKIEZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRm9ybURh
dGEgYm9keSBDYW4ndCBmaW5kIHZhcmlhYmxlOiBGb3JtRGF0YQogUEFTUyBGZXRjaCB3aXRoIFBP
U1Qgd2l0aCBVUkxTZWFyY2hQYXJhbXMgYm9keSAKIEZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGgg
QmxvYiBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRl
bnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgIiIK
LUZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQXJyYXlCdWZmZXIgYm9keSBhc3NlcnRfZXF1YWxz
OiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQg
KG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
Ci1GQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIFVpbnQ4QXJyYXkgYm9keSBhc3NlcnRfZXF1YWxz
OiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQg
KG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0i
Ci1GQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEludDhBcnJheSBib2R5IGFzc2VydF9lcXVhbHM6
IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAo
b2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIK
LUZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRmxvYXQzMkFycmF5IGJvZHkgYXNzZXJ0X2VxdWFs
czogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4cGVjdGVk
IChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
IgotRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGbG9hdDY0QXJyYXkgYm9keSBhc3NlcnRfZXF1
YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0
ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0iCi1GQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIERhdGFWaWV3IGJvZHkgYXNzZXJ0X2VxdWFs
czogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4cGVjdGVk
IChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
IgorRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBBcnJheUJ1ZmZlciBib2R5IGFzc2VydF9lcXVh
bHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3Rl
ZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0t
dXJsZW5jb2RlZCIKK0ZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggVWludDhBcnJheSBib2R5IGFz
c2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVs
bCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gt
d3d3LWZvcm0tdXJsZW5jb2RlZCIKK0ZBSUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggSW50OEFycmF5
IGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10
eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGlj
YXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgorRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBG
bG9hdDMyQXJyYXkgYm9keSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRl
ciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJp
bmcpICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiCitGQUlMIEZldGNoIHdpdGgg
UE9TVCB3aXRoIEZsb2F0NjRBcnJheSBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxk
IGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1
dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKK0ZBSUwg
RmV0Y2ggd2l0aCBQT1NUIHdpdGggRGF0YVZpZXcgYm9keSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0
IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkg
bnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQi
CiBQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9keSB3aXRoIG1pbWUgdHlwZSAKIEZB
SUwgRmV0Y2ggd2l0aCBDaGlja2VuIGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUg
aGVhZGVyIGNvbnRlbnQtbGVuZ3RoOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdv
dCAoc3RyaW5nKSAiMCIKIFBBU1MgRmV0Y2ggd2l0aCBDaGlja2VuIHdpdGggYm9keSAK
</data>

          </attachment>
      

    </bug>

</bugzilla>