<?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>202506</bug_id>
          
          <creation_ts>2019-10-02 18:10:51 -0700</creation_ts>
          <short_desc>Resource Load Statistics: Downgrade document.referrer for all third-party iframes</short_desc>
          <delta_ts>2019-10-03 13:50:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1576269</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-02 18:10:51 -0700</bug_when>
    <thetext>We should downgrade document.referrer for all third-party iframes to match the downgrade of all HTTP referrers for third-party resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576270</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-02 18:11:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/55786397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576273</commentid>
    <comment_count>2</comment_count>
      <attachid>380074</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-02 18:16:27 -0700</bug_when>
    <thetext>Created attachment 380074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576464</commentid>
    <comment_count>3</comment_count>
      <attachid>380129</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 10:37:56 -0700</bug_when>
    <thetext>Created attachment 380129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576466</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 10:38:34 -0700</bug_when>
    <thetext>Fixed the one remaining test failure (http/tests/media/media-stream/enumerate-devices-source-id.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576517</commentid>
    <comment_count>5</comment_count>
      <attachid>380144</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 11:14:41 -0700</bug_when>
    <thetext>Created attachment 380144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576518</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 11:15:04 -0700</bug_when>
    <thetext>Fixed style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576524</commentid>
    <comment_count>7</comment_count>
      <attachid>380144</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-10-03 11:23:52 -0700</bug_when>
    <thetext>Comment on attachment 380144
Patch

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

Looks like a good change. It seems like some code could be consolidated.

&gt; Source/WebCore/dom/Document.cpp:4858
&gt; +                return m_referrerOverride;

Could this just call &apos;Document::downgradeReferrerToRegistrableDomain()&apos;? Or could this code be shared with that method?

&gt; LayoutTests/http/tests/media/media-stream/enumerate-devices-source-id.html:12
&gt; +                internals.setResourceLoadStatisticsEnabled(false);

Lol. So many tests need ITP off. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576534</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 12:03:28 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Comment on attachment 380144 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=380144&amp;action=review
&gt; 
&gt; Looks like a good change. It seems like some code could be consolidated.

Thanks!
&gt; &gt; Source/WebCore/dom/Document.cpp:4858
&gt; &gt; +                return m_referrerOverride;
&gt; 
&gt; Could this just call &apos;Document::downgradeReferrerToRegistrableDomain()&apos;? Or
&gt; could this code be shared with that method?

I thought about that but removing subdomains is more aggressive so I&apos;d like to start with just the origin. downgradeReferrerToRegistrableDomain() is for the ITP 2.3 change after certain navigations whereas this change is across the board.

&gt; &gt; LayoutTests/http/tests/media/media-stream/enumerate-devices-source-id.html:12
&gt; &gt; +                internals.setResourceLoadStatisticsEnabled(false);
&gt; 
&gt; Lol. So many tests need ITP off. :-)

Yes. 🙄 We should remember to file an issue with WHATWG and/or W3C to allow downgraded referrers by default in web platform tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576562</commentid>
    <comment_count>9</comment_count>
      <attachid>380155</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2019-10-03 13:10:58 -0700</bug_when>
    <thetext>Created attachment 380155
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576583</commentid>
    <comment_count>10</comment_count>
      <attachid>380155</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 13:50:42 -0700</bug_when>
    <thetext>Comment on attachment 380155
Patch for landing

Clearing flags on attachment: 380155

Committed r250676: &lt;https://trac.webkit.org/changeset/250676&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576584</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-03 13:50:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380074</attachid>
            <date>2019-10-02 18:16:27 -0700</date>
            <delta_ts>2019-10-03 10:37:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202506-20191002181627.patch</filename>
            <type>text/plain</type>
            <size>67721</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNjViNjg0Y2MxYzZk
NWYyZmU1ZDg0ZTczMTU2MGJhMzdmZjFiYy4uODQ5OTA2ZGUyODUyNTlkZGVlOTNiNjRlNDhkMTZl
OGM3OTIzNjg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEwLTAyICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFy
dHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBkb3duZ3Jh
ZGVzIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFydHkgaWZyYW1lcyBpZiBJVFAv
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgICAgIGlzIGVuYWJsZWQuIFRoZSBiZWhhdmlv
ciBtYXRjaGVzIHRoZSBkb3duZ3JhZGUgb2YgYWxsIEhUVFAgcmVmZXJyZXJzIGZvciB0aGlyZC1w
YXJ0eSByZXNvdXJjZXMKKyAgICAgICAgd2hpY2ggbGFuZGVkIGluIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yNTA0MTMvd2Via2l0LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5l
c3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1w
YXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5
LWlmcmFtZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZWZlcnJlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICAgICBDYW4gbm8gbG9uZ2VyIGJlIGNv
bnN0IHNpbmNlIGl0IGxhemlseSBkb3duZ3JhZGVzIGFuZCBzYXZlcyB0aGUgcmVmZXJyZXIgb24g
cmVhZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKwogMjAxOS0xMC0wMiAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBX
aW5kb3dzIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA4MzhkMTA5NDZmMmQ5NWZl
NWRjOTQ3ZGU1NTk4YzFkYzU0NWJlMDAzLi45OGY3YTMzMDFjNzdhMTIzODQxYTQwMzRlNmQ5N2Iw
MTBkMzZhYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCIK
QEAgLTQ4NDIsMTEgKzQ4NDMsMjIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRG9jdW1lbnQ6OnNldENv
b2tpZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB7IH07CiB9CiAKLVN0cmluZyBE
b2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAorU3RyaW5nIERvY3VtZW50OjpyZWZlcnJlcigpCiB7
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoIW1fcmVmZXJy
ZXJPdmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7
CisgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKSAmJiBmcmFtZSgpKSB7CisgICAgICAgIGF1dG8gcmVmZXJyZXJTdHIgPSBmcmFt
ZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOworICAgICAgICBpZiAoIXJlZmVycmVyU3RyLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIHJlZmVycmVyU3Ry
IH07CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWZlcnJlclJlZ2lzdHJhYmxlRG9t
YWluIHsgcmVmZXJyZXJVUkwgfTsKKyAgICAgICAgICAgIGlmICghcmVmZXJyZXJSZWdpc3RyYWJs
ZURvbWFpbi5tYXRjaGVzKHNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKSkgeworICAgICAgICAgICAg
ICAgIG1fcmVmZXJyZXJPdmVycmlkZSA9IHJlZmVycmVyVVJMLnByb3RvY29sSG9zdEFuZFBvcnQo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWZlcnJlck92ZXJyaWRlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQogI2VuZGlmCiAgICAgaWYgKGZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA5YzExNjNjMzkxN2U5ODM2MjI5MzA5Y2I2MTQ1ZTgwMTE5NzEwOTNlLi4xMGUzNGQyNTUz
MjllMzNkZDA1Mzk1NjcwYmRhOWUwY2UzZWQyOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTE2LDcgKzkxNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxT
dHJpbmc+IGNvb2tpZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dENvb2tpZShjb25zdCBTdHJpbmcmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZl
cnJlcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTg0YTkyZmM4YjMxZjg1ZDc2ZDlkOTUxNjllYWZiNDk4N2MyM2U2Ny4uY2Y5ZGE4YWM3Yjk1ZTEy
NDAwYjJkY2IyMTg4YWVkZjY1YjRlZGQ4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE5LTEw
LTAyICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291
cmNlIExvYWQgU3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwg
dGhpcmQtcGFydHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvc2FtZS1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJp
Y3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Ny
b3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0
dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9z
YW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1
bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUt
ZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1k
b2N1bWVudC1yZWZlcnJlci10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50
LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1k
b2N1bWVudC1yZWZlcnJlci1hbG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0
LWlmcmFtZS1yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1l
bnQtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMDIgIE1pZ3VlbCBHb21leiAgPG1h
Z29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIGdhcmRlbmluZzog
YWRkIG5ldyBleHBlY3RhdGlvbnMgYWZ0ZXIgcjI1MDYwMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggOWZlMWQ5ZWQwYmRmNTQwMjdmMjVhOGNlOTYx
MDk3MDQ2MTA2ZGMwOC4uMWZhOGE4NTNlZDg3YjIwZjBkY2QyNGI0OWY1YTU5N2IyODY4ODU5OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEw
ICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25t
ZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVm
ZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0
cC5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0
cHMuaHRtbAppbmRleCBmOTdkNDE3MWZiMmQ4MjA3NTRiNzc0NzRiMWJlMzI2ZGI5YzQ5NzMwLi5i
NDQ5MzYzYTk2NmQwNzA5M2VlYjBhZTc2OWYwZjM2ZTk5NjBjNjkzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIp
OwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5
T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNo
b3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZl
cnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmln
aW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9u
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGJmYzE0Mzcx
NDgzMGI3YTAzZGU1ODNhZWQ4OWIzYmM1ZmE2NGE3MjMuLjdmNzU4ZWM3ZDRlZDIwMmM3MzRhZTE5
ZWUzOTlmZTc1N2Q4MzQzNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdp
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4
LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sIik7CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWwKaW5kZXggZDJlMDE1MWY4MmI3ZWYwMjk2ZjkwOGZjYzcyMTJiMmMx
Yzg1NWQ5ZC4uNWQwMGIxZWMzZDc3N2VjNmZiNmViMTY5OWViZjUwOTNhYjlmNmZkZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJl
ZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0
dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4i
KTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5k
b3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRh
dGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0
bWwKaW5kZXggZTIwOGU0ZWU5NmVkYmI4NTVkOTNmNmQxMjFmZWM5MjA1NDdlMWIxYi4uMTU5OGQ5
ZWYwYzYwMDBjZDUxNDUxY2JhMTQ1Njc0YmY4ODMxOTdhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
QEAgLTgsMTMgKzgsMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8t
cmVmZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8g
SFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJy
ZXIvc2FtZS1vcmlnaW4uaHRtbAppbmRleCA4YWQyZWU3MmNmZWJjZjhhYzE1NzZmZjU2MDNiM2Vl
MTc5NmQ3OTI4Li5mOWJhYmRhN2ZiOWIxMzNmMDhlZDY3MTZmNzIwOTFlZmE0MWNlNTJiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8t
cmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwx
MCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJl
ciByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0
cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8g
U2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRw
Lmh0bWwKaW5kZXggNTI4MTk3ZTNmOTk0NzUyZGQ5Yjk0MTEzNDM3ODNkMzc4ZTExMmE3Yi4uMDU3
YTZjNDEzZWM1MTA5YWRiMWY5NGFjZWFmZGU3ZmFlODAxM2RiNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVy
IHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQp
IHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJl
IHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdp
bi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwKaW5kZXggNDc3MWE4ZDYzNzZjM2EyYzY3NzY0MjIwMDUwY2VjODliNjc1Y2I0ZC4uZmI5
ZmVmZDVhMGQxMjBlY2NhNDAwZWM4YzFhNDQwYjgwZGMyOGQ1YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVmZXJy
ZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1
cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
ewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUg
dGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2lu
LgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggOWE2ZjVjZmM1ZDdi
NjQ2NGZmYTIyZDk1MmZkZmQwNjRhOWY2ZTRhNi4uMjdjNGUzMzA0NDJmMDE4NWJlMjlmMjU3MDdh
ZWE0ZTE2Mzc4Nzc3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmln
aW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAog
ZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8v
IFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1vcmlnaW4uCiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggZGU5ZTE5Y2ZhNGZmNTU0ODQ4NGIxMjQ2ODI4
YjljMjEyOGJhNDVlZC4uNGRkMmJiODdmN2EyOTcwMTk2OGNjNjIyYTE3Y2Y5MTZkZWJjMGU0YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1o
dHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
aW5kZXggY2VhM2ExM2RiNDAxMzRhMWYxZTdkMDc2MzFmODMzMDA0YzhhYTczZi4uZDEwYjdlMjkz
Nzg0MGZjODFhZGQ1Y2Q5Yjc1NmFmNDc5YWUxMzI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwx
NyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJyZXIg
cG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVD
b250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewog
ICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhl
IG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwKaW5kZXggZjU0M2ViNWE3Yzc1M2Y5NGMwMDU2YjlhYjYzODllYTNlODc5YzQyMy4u
MGU2NmNhYTk5MGE0MWNhYTM0MjNlZGY2Y2I0NDkxOGVjNTZkNDUyYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9zYW1lLW9y
aWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2Ft
ZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIg
PSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luCiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
Iik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0K
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggMjAwOTgwYzI3Yzk2NGFkYmMwMGY1M2Ew
YTk2NDk0MGIwMTEwNDdkYi4uMTE5YzVjYjVlYjlkODFhZjEwOWIyZjhhNTQ4ZjJlZGE5ODBjNjMz
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVz
dHMgdGhlIGJlaGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3Nz
IG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2Up
OworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9
IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcg
YmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
c2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCBmZTJhZWQ2MWEx
ZTE0NzI1ZmJjOTMxMWI1OTZjNGJlZTMxNGJhYWQ2Li5kYTUyNDk2MTZiMDA0OGI0YzdkZjRiY2Zj
ZWRjYWNkMzNkNjk2MjlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2Ft
ZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAog
ZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBw
b2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNv
bnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUg
ZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggNzhlMDJhODljZmY1NzAyM2RlNGVm
NGQwOTljMzk5YzU1ZGMxOTdkMi4uYTVlZDk1NzhiNGRkNDNhNDcxZTNlMDI2YWU4ZTlkOTA4ZDVh
YWEwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0
bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Yg
c2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1vcmln
aW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0
dHAtaHR0cC5odG1sCmluZGV4IGU5OWMzM2QwZDAxZTQ0ZTUwYTQ1NTNlOWNhNTA4ODU0ZmIzYzMw
ZmMuLjQ2OTRiYjc3MDFkYzEyOWYzMjZjNjVjMTcwNmJlMmQ1NzE3MmE4NmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAg
KzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRh
LnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJM
LCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggODRh
ZDFlNzQ4MzQzNmVkNTBjOThlODU5OWQzOTY2NzU0NTg2NzUyYy4uZDQwZTJjZjYzMTkwYTRlZTMx
YTY3YzY1ZmZiOWMzNzQzNzM5MmVkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEzICs4LDE3IEBACiBkZXNjcmlwdGlv
bigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91
bGQgYmUgdGhlIGVtcHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4gYW5kIGdv
aW5nIGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVy
cmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4
IDAyZDJlNzYyYWYxYThjYjIyZmM4ZjUyOWUzZTUyYWNmM2Y5YzZkMTMuLmNjMzY2ZDAxYWEzMzZh
MGU5NDUwYzAyNzg0NmM3M2Q4Zjc2ZTQ1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVu
IHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVy
cmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJM
IGJlY2F1c2Ugd2UgYXJlIHNhbWUtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sIik7CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDRlZjljNWRhNjM3OGIwNjFjNGFiN2I2ZDY2MjBj
NDdhODViMTM1NDEuLjkwYzFkNGIwOTRkNjkxMzQ0ZTk0OGMxN2FkNTg4NGUzNDgzZmQ4ODcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9z
dHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9z
cyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIg
PSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBub3Qg
dGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4
IGM3MTBmOWI4NTRiMTVlYzA2MjYwZjljZGIxMDI2YWIwMDE5YzU3MjMuLmM4MjgzZWJiMTQ2ODhj
MzM4MDY5NmM5MzU2YmIzNzE2NjEzNDEzNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1o
dHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAt
OCwxMyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qt
b3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhU
VFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitp
ZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAg
Ly8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgZ29pbmcgZnJvbSBI
VFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2lu
Lmh0bWwKaW5kZXggOTFhZjY3ODU3MGQ0MmFjMTY0ZDIwNjc1Y2MwOTYzZTIxZDE5ZTdhYy4uOTUz
NTFjNTA5NjA1MDMxNmZmNTgxMDNmYThiNWIwYTBhMTlkYjc4YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4LDE1IEBA
CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJy
ZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUt
dXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAu
aHRtbAppbmRleCA1ZmNlOWM0YTEyZmE4Yzg2MjEwODE0ZTNhMGQxYTRhODM1MWEyMmNkLi5jYjBl
OGVjMzk4MGI5NmQ4Y2JlYTAzZWI0MjcxZDFiMDBiZmUyNTM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBA
IC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHVuc2Fm
ZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91
bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCIpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUt
dXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCmluZGV4IGE1ZWI3ODA3YTAwMTk5NWRmM2NmNGZjN2U2ZWU0ODE3OTcyNDY5MTMuLjYw
NTdjNzQ0N2UzMmUwMGEwNTFhZWU2YjljYzFjNDA1MjBhOTAwMzIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bApAQCAtOCwxMyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiB1
bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRv
IEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVmZXJyZXIiLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCIpOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNh
ZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDIxZjFmNGUw
NDdhY2M2NWFlMDRhZWM2ZTcyOGVhNmJmZGRkNTUyMzIuLmRlZjViNjVjOTU4Yjk1NjJiZDgwNDQ4
YjA0YTg5NGFhODIxNmFlNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2Ft
ZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIp
OwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRv
dy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0
YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggNGM5NGYxZGVhNGRkMzZiNmQxNWYxNjdm
YzY3ZDNlYTAwYTk2ZTQwMy4uMjUwZTI5NmU3NmU3ZmFiMTg5ZWZkZjNhOTBiNWE1OWM3MzY3YTBj
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAog
ZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAg
IC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIik7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggZDYwNTFjZWFkYzJlNzE1ZmU4ZjJjY2NjNWRk
OTJjNjRkNTZjOGVkYi4uM2RhMWU1NTM1NzY2MDVmZDIxNDA3NGI0YmExYjIzYjU3OTBmOGVjYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdoZW4tZG93bmdy
YWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAu
Iik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAo
d2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3Bs
YXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8g
U2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZS9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDdhMjA1ZDczOTVmY2JiODcxOTgzMWY4MGQ1YmU2
MTYyM2FmN2NhYmEuLjFkNmU4ZTMxMTBjY2Y2NWVkZWE1ZDYwYzk1NzY3MzIxNTU5MmRkYjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1v
cmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhh
dmlvciBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBz
YW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJl
ciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdp
bi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAt
aHR0cC5odG1sCmluZGV4IGYyMjc3MDFlOTU4NzVmZDZlOWZlMTU1OGNlZmJmNmQ1YzEwZGFiMTQu
LmEzOWJlMWQ0ODg0MjZiNTRiMjg3ZjJiOTE5YzZlYjhmNjFkY2I0MzggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAg
KzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXIg
cmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBT
aG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVm
ZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggODYzN2Y3ODQzMjIxMGY4ZDY1ZmU4Mzc0Zjgy
ZWE1MDMyMjU2MGE4My4uYjc2MDQxZDk1ZjQ4NzM0MjI1OGUzZjllNWFlZTVhYTdmZWY1OWRkZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVm
ZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhU
VFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9zYW1l
LW9yaWdpbi5odG1sCmluZGV4IGU0MzQxMWUxN2JmZWRlNmY4M2I1NjYyMmM2NjVmYTgzOTYxOWU5
ZDguLmNlNzY5NWU0OTJlNDI0MzNjMzMwMzA0MDU0ZmQwYWUzM2MwMjcwZjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL3NhbWUt
b3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
bm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlciByZWZlcnJlciBwb2xpY3kgd2hl
biBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZl
cnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBz
dHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDJhZjQyYzQyNDRlMTU3OGE5ZjFjYzYz
NTcwMGJjMDQwY2I4NjljNzYuLjYwYWY5OTJjMDliODIwYjQ1Njc5MmM1YTk4ZjczOTc0YWRjYmVj
N2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29y
aWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBT
aG91bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jv
c3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
aW5kZXggN2VlNDg0N2RiOWJkY2FmNDM5MmQ3NTk4ZDRhYWJjOWM2YmNmMjUxMi4uYTRjYmFjNzRl
OTFkZWIwY2I2MTExNmE1MTM2Yzg2ZDdlMDdlN2Y1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3Nz
IG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAot
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQog
CiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2
ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUg
ZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvIik7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4u
aHRtbAppbmRleCA4YTg1ZTMzY2M4MmMxMDJjZjI5MmIzMWU4OWRkYTk4NDE0Mjg1NTJlLi5jOTRi
NTFjZTBmZmQ4OGE5NGU5ZjUwZjU3NWMzMDA5MGI4MjE3NmNiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCAr
OSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1vcmln
aW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0
cC1odHRwLmh0bWwKaW5kZXggZGU0Y2YyMzI4Njc4NjcwZGFmNDQ2Yzc3NjA0ZmRkMDExYWQxYjk0
My4uNWU2NmVlMGQ0YTMyZjA1YzgxYzE3YzRjY2M5NzMwNWY2MGJjNWVkZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBA
CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbiByZWZlcnJlciBwb2xp
Y3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUg
b3JpZ2luCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LWh0dHAuaHR0cHMuaHRtbAppbmRleCAwZDg5MmVkMGU0NWQ4OTY3YTFjMjA5NjQ2YTE2NGE2ZWEz
ZWI5ZDQxLi4yMTFkNTMyODBhZjViOWMzNTE3ZjE0MDhhZDI4NGZmMzBjMjU0MGViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyAr
OSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJy
ZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1
cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
ewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUg
dGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmlu
ZGV4IGZlODg0NThkYzJjZmI0MjE4ZTZlY2IzOTA3NjE5NTA5NGMzMTgyMmEuLmIzNDgwNGEyN2Fi
OTI1MGNhNWExY2VkZjdhMDJkZWU5MGM4YmY3NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9m
IG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
ZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggMTBiYWQ5
YzQ5ZmUxNDc2NmY0NzVlYmI5MGM1MjBiMWFiYTYzYTRhZC4uNmZkODU5OGUwMDMxZjMxOWIxM2Zi
YmE1ZTQ5MWZkN2QwZGYzMzgzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBj
cm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZh
bHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJy
ZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3Ry
aW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdp
bi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IGU1M2IxNTQwOWFhYmI1YzkyZjBl
YzZiZTZhMjQ5ZDIyZmUwODdlMTUuLmZjN2Y0ZDczY2JlOGIwNGRlOGM5YzJjYzMzMjU1ZmEyOTgz
YWQ1ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4g
ZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRh
LnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2Ug
YXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwg
IiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDU1
YmZkNTUyNTUwMjYzMTJmNTFkZTU2MGJmMWY2NTQ0NTFhNzg2ZTIuLjdjNmQ1YWEzY2I4OWE1NTFj
MzVhYjU4ZmVkZTg4YTZmNTQzZWViMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25t
ZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVm
ZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1l
LW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRt
bCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAt
aHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5k
ZXggNjVmODM0NjRhNDljZGEwZjJmZDA4NDU1Y2ZhMzllYzk4ODYyNWQ0ZC4uODViZTI1MjEzYmY4
ODQ2OGZiYWNmODNiMzFhMDRjNmNiMDkyMTQzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBw
b2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0
aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4u
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4t
aHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5o
dG1sCmluZGV4IDMzZjlmYjM3MTBjNTU3NGY1OTk0NDJlMzM1ZDhlYTYyZDI2NDA0NjUuLjg5NjY3
M2I0MGY3ZTI0NDlkOTFiNjI1ZTZlMDNiNDY3MGRhNTAzYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJ
bnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3Vs
ZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbiBhbmQgZ29p
bmcgZnJvbSBIVFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJy
ZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdp
bi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGNhZDg2MWI0M2RkOTcz
N2YxY2Q2NzhkY2U0ZTE1NWQyM2RjZjFjMGYuLjFhYTNiNWNhZGIzMzNhNDM1ZWI5NzgxYmYyYTNi
YWIzNWIxM2JmZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1lLW9yaWdpbi4K
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCA2N2RmNDRmZjRiMzU5M2JmOGUxMjEw
NjAyMDIwMzU1YWQwODllYTFkLi5jNDZiZGYxOWJlMTk5NDEyNTYwOWIxNjU0NDE2YzMzYjAyNjY5
Yjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9z
dHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1o
dHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdp
bi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3
aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50
LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVs
bCBVUkwuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdp
bi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IDgzYmZjOWE1NmVjMTMzZjYzY2M2
ZDc3ZTI3MjdiMzc3ZDllZTdmODEuLmVhNjhkZjMyN2Y5OGJjYWZkZjk3NjBhM2M4N2ExNDM0YzNl
NTI5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBv
cmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAog
d2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVu
dC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1
c2Ugd2UgYXJlIGdvaW5nIGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbAppbmRleCA1NWNmMjdhZGQxYmVmNmFhNDUxODFhMTFlNGRkMDcxYjdkNTlh
NmQ5Li5hNjZmNDcxZmJkYWYzMGM2ODE4YTBjM2M5MjY0NTUzOTVjNmFhZjk0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJyZXIgcG9s
aWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUg
b3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVm
ZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggYmJhNDJiYTg4
YjdhMjRlNDllNzMyOTlmYjIwN2VmOWRlZDBhODg4My4uMGUzMmExODRkYzQ3Y2E1OGQ2OGU0NGVl
ZGIxNmEzYjQ1YjhlN2YyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYmVoYXZpb3Igb2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBv
cmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
Kwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBl
dmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9y
ZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwiKTsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUt
dXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
aW5kZXggZmZjZDZlNzQxYmEzOTFlMDI2NmRiMGQ3N2E5ZDZiZTE4Yzc4NjY2Mi4uMDBlOGRkMDM3
ZjVhNThjY2JlOWJhYzZjZjA3ZjEwZDYxZWFkNmRiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vu
c2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAog
ZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBv
bGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFs
cykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29u
dGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAg
ICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBm
dWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGY2
Yjk3YTczNDU3ZWE5M2Q2NTExNzIzYjcxMGY2MmI5YTVkYzMyYmYuLjZmN2EwNzA0NWVkOTY0OWI5
YmQ5NWQ1ZGM0ZTUyMDg4YWU1MDIyMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2lu
Lmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Ig
b2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS91
bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50
LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVu
dC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZTZiMzA3ZmQ1MDM0Njc4ZjYxYjk5NmIyNWUxYjBmZWZjZjY2MTY5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rv
d25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlz
IGRvd25ncmFkZWQgaW4gbmVzdGVkIHRoaXJkLXBhcnR5IGlmcmFtZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnJlZmVycmVyIGlzIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlm
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGUxZTIzYTBmM2U4OTdmOWZkODk5YTFiM2U4MjVjNmE0ZTdjZGNhYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlm
cmFtZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgaW4gbmVzdGVkIHRo
aXJkLXBhcnR5IGlmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBm
dW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICBpZiAoZXZlbnQub3JpZ2lu
ID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgaWYgKGV2ZW50LmRh
dGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2
ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdl
IGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICBz
ZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKwor
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBsZXQg
aWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAg
ICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBvcnQtZG9jdW1lbnQt
cmVmZXJyZXIuaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRo
aXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBh
cnR5LWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIyYWM3MjcyNzg1MjIxNTEzMGI1
YjljMTRkY2I5NGJlOWIzZTQyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXIt
dGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0
aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgaW4gdGhpcmQtcGFydHkgaWZyYW1l
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucmVmZXJy
ZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGly
ZC1wYXJ0eS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHktaWZyYW1l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODY0ZDExZmNkYzlmMmU4ODFhOWY1NDAxOTJiNzQ4NjdmY2ZlYjA0
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHktaWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
ICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCBpbiB0aGlyZC1wYXJ0eSBp
ZnJhbWVzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gcmVj
ZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2Yo
IlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJl
cGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVu
ZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgc2V0RW5hYmxlRmVh
dHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZl
YXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBp
ZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwiOworICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5LWlmcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFydHktaWZy
YW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjM2ZGFjOWE0MTAwNDI5MGQ2MjBkODhiMmJj
ZTY5YmE3ZDUzNWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25l
LXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMg
dGhhdCBhbiBlbXB0eSBkb2N1bWVudC5yZWZlcnJlciBpcyBsZWZ0IGFsb25lIGluIHRoaXJkLXBh
cnR5IGlmcmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3Vt
ZW50LnJlZmVycmVyIGlzIFtlbXB0eV0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUt
dGhpcmQtcGFydHktaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQt
cGFydHktaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg1ZWFkYTgxNGQ0NDM1NTZhNWIwMmY3Y2Y4
MDgxNjMxYjY2NTc4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJlci1hbG9u
ZS10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhbiBlbXB0eSBkb2N1bWVudC5yZWZlcnJlciBp
cyBsZWZ0IGFsb25lIGluIHRoaXJkLXBhcnR5IGlmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAg
ICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAg
ICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAg
ICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNl
KCJQQVNTICIsICIiKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgi
UmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5v
cmlnaW4pOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOwor
ICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1l
c3NhZ2UsIGZhbHNlKTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRy
dWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQucmVmZXJyZXJQb2xpY3kg
PSAibm8tcmVmZXJyZXIiOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBv
cnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25lc3QtaWZy
YW1lLXJlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBvcnQtZG9j
dW1lbnQtcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2QxYzRlZmZjMmQ3YmFhZDlkNjJiY2Y1
NGRhYjhmMTAxYzdjOWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBvcnQtZG9j
dW1lbnQtcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1lbnQt
cmVmZXJyZXIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMv
cmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNkZWMwMTM3Mjg5Yzdm
NmRmY2FlMzgwYjQxZmFhOWE0YzQxMmQ5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRvY3Vt
ZW50LXJlZmVycmVyLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIHRvcC5wb3N0TWVzc2Fn
ZSgiUEFTUyBkb2N1bWVudC5yZWZlcnJlciBpcyAiICsgKGRvY3VtZW50LnJlZmVycmVyID09PSAi
IiA/ICJbZW1wdHldIiA6IGRvY3VtZW50LnJlZmVycmVyKSwgImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380129</attachid>
            <date>2019-10-03 10:37:56 -0700</date>
            <delta_ts>2019-10-03 11:14:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202506-20191003103755.patch</filename>
            <type>text/plain</type>
            <size>68924</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNjViNjg0Y2MxYzZk
NWYyZmU1ZDg0ZTczMTU2MGJhMzdmZjFiYy4uMjYzMTI2ZTNjZTM5ODg2NjNiNjIxNTI3NWJmZmY3
MGIzZmNlOGIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEwLTAzICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFy
dHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBkb3duZ3Jh
ZGVzIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFydHkgaWZyYW1lcyBpZiBJVFAv
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgICAgIGlzIGVuYWJsZWQuIFRoZSBiZWhhdmlv
ciBtYXRjaGVzIHRoZSBkb3duZ3JhZGUgb2YgYWxsIEhUVFAgcmVmZXJyZXJzIGZvciB0aGlyZC1w
YXJ0eSByZXNvdXJjZXMKKyAgICAgICAgd2hpY2ggbGFuZGVkIGluIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yNTA0MTMvd2Via2l0LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5l
c3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1w
YXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5
LWlmcmFtZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZWZlcnJlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICAgICBDYW4gbm8gbG9uZ2VyIGJlIGNv
bnN0IHNpbmNlIGl0IGxhemlseSBkb3duZ3JhZGVzIGFuZCBzYXZlcyB0aGUgcmVmZXJyZXIgb24g
cmVhZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKwogMjAxOS0xMC0wMiAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBX
aW5kb3dzIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA4MzhkMTA5NDZmMmQ5NWZl
NWRjOTQ3ZGU1NTk4YzFkYzU0NWJlMDAzLi45OGY3YTMzMDFjNzdhMTIzODQxYTQwMzRlNmQ5N2Iw
MTBkMzZhYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCIK
QEAgLTQ4NDIsMTEgKzQ4NDMsMjIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRG9jdW1lbnQ6OnNldENv
b2tpZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB7IH07CiB9CiAKLVN0cmluZyBE
b2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAorU3RyaW5nIERvY3VtZW50OjpyZWZlcnJlcigpCiB7
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoIW1fcmVmZXJy
ZXJPdmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7
CisgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKSAmJiBmcmFtZSgpKSB7CisgICAgICAgIGF1dG8gcmVmZXJyZXJTdHIgPSBmcmFt
ZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOworICAgICAgICBpZiAoIXJlZmVycmVyU3RyLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIHJlZmVycmVyU3Ry
IH07CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWZlcnJlclJlZ2lzdHJhYmxlRG9t
YWluIHsgcmVmZXJyZXJVUkwgfTsKKyAgICAgICAgICAgIGlmICghcmVmZXJyZXJSZWdpc3RyYWJs
ZURvbWFpbi5tYXRjaGVzKHNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKSkgeworICAgICAgICAgICAg
ICAgIG1fcmVmZXJyZXJPdmVycmlkZSA9IHJlZmVycmVyVVJMLnByb3RvY29sSG9zdEFuZFBvcnQo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWZlcnJlck92ZXJyaWRlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQogI2VuZGlmCiAgICAgaWYgKGZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA5YzExNjNjMzkxN2U5ODM2MjI5MzA5Y2I2MTQ1ZTgwMTE5NzEwOTNlLi4xMGUzNGQyNTUz
MjllMzNkZDA1Mzk1NjcwYmRhOWUwY2UzZWQyOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTE2LDcgKzkxNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxT
dHJpbmc+IGNvb2tpZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dENvb2tpZShjb25zdCBTdHJpbmcmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZl
cnJlcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTg0YTkyZmM4YjMxZjg1ZDc2ZDlkOTUxNjllYWZiNDk4N2MyM2U2Ny4uYTdiYjNlMjM2N2JjOTli
NzFlMGI5NWJmNDk4NjMwZDljNWNkMzNhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEw
LTAzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291
cmNlIExvYWQgU3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwg
dGhpcmQtcGFydHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdHMg
dGhhdCBhcmUgbm90IG5ldyByZWx5IG9uIGRvY3VtZW50LnJlZmVycmVyIGFuZCBzbyB0aGV5IGFy
ZSBtYWRlIHRvIHR1cm4gb2ZmCisgICAgICAgIElUUCBiZWZvcmUgdGhleSBydW4gdG8gbWFpbnRh
aW4gYSBmdWxsIHJlZmVycmVyLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWwKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL3NhbWUtb3Jp
Z2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29y
aWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9z
YW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0
cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3Ry
aWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIt
d2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS9uby1yZWZlcnJlci9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1o
dHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdo
ZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
c2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9z
cy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3Nz
LW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9j
dW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3Jh
ZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
LWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUt
ZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHktaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVu
dC1yZWZlcnJlci1hbG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHkt
ZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFydHktaWZyYW1lLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvbmVz
dC1pZnJhbWUtcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRvY3Vt
ZW50LXJlZmVycmVyLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEwLTAyICBNaWd1ZWwgR29tZXogIDxt
YWdvbWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVW5yZXZpZXdlZCBnYXJkZW5pbmc6
IGFkZCBuZXcgZXhwZWN0YXRpb25zIGFmdGVyIHIyNTA2MDIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJj
ZS1pZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51
bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWwKaW5kZXggMjUwMDg0YTdjYzIxNDlkZmRhNzI0
YjA1MDUxNWQ2NDM5YmZmMjFjZi4uZWZmNmNmMWYyYmMxZGNhYjgzYjUzMzAyNTFjZjQ2Yjc2YzI1
N2FhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJl
YW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0
bWwKQEAgLTgsNiArOCw5IEBACiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbHMpCisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZh
bHNlKTsKKwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKIApAQCAtNDgsNiAr
NTEsOCBAQAogICAgICAgICAgICAgICAgIGRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4gY2hlY2tJ
RChkb2N1bWVudC5vcmlnaW4sIGRldmljZSkpOwogCiAgICAgICAgICAgICAgICAgZGVidWcoJycp
OworICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggOWZlMWQ5ZWQwYmRmNTQwMjdmMjVh
OGNlOTYxMDk3MDQ2MTA2ZGMwOC4uMWZhOGE4NTNlZDg3YjIwZjBkY2QyNGI0OWY1YTU5N2IyODY4
ODU5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
bm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBA
IC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJl
ZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4i
KTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5k
b3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRh
dGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0
dHAtaHR0cC5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbAppbmRleCBmOTdkNDE3MWZiMmQ4MjA3NTRiNzc0NzRiMWJlMzI2ZGI5YzQ5
NzMwLi5iNDQ5MzYzYTk2NmQwNzA5M2VlYjBhZTc2OWYwZjM2ZTk5NjBjNjkzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBA
QAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVuLWRv
d25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBI
VFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAg
IC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2Ft
ZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGJm
YzE0MzcxNDgzMGI3YTAzZGU1ODNhZWQ4OWIzYmM1ZmE2NGE3MjMuLjdmNzU4ZWM3ZDRlZDIwMmM3
MzRhZTE5ZWUzOTlmZTc1N2Q4MzQzNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1l
LW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCkBAIC04
LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sIik7
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggZDJlMDE1MWY4MmI3ZWYwMjk2ZjkwOGZjYzcy
MTJiMmMxYzg1NWQ5ZC4uNWQwMGIxZWMzZDc3N2VjNmZiNmViMTY5OWViZjUwOTNhYjlmNmZkZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMg
dGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9y
aWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOwor
CiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2
ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZl
cnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwKaW5kZXggZTIwOGU0ZWU5NmVkYmI4NTVkOTNmNmQxMjFmZWM5MjA1NDdlMWIxYi4u
MTU5OGQ5ZWYwYzYwMDBjZDUxNDUxY2JhMTQ1Njc0YmY4ODMxOTdhNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Ny
b3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwKQEAgLTgsMTMgKzgsMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Ig
b2Ygbm8tcmVmZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRU
UFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVy
bmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL3NhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8t
cmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbAppbmRleCA4YWQyZWU3MmNmZWJjZjhhYzE1NzZmZjU2
MDNiM2VlMTc5NmQ3OTI4Li5mOWJhYmRhN2ZiOWIxMzNmMDhlZDY3MTZmNzIwOTFlZmE0MWNlNTJi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbApA
QCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1y
ZWZlcnJlciByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0
cC1odHRwLmh0bWwKaW5kZXggNTI4MTk3ZTNmOTk0NzUyZGQ5Yjk0MTEzNDM3ODNkMzc4ZTExMmE3
Yi4uMDU3YTZjNDEzZWM1MTA5YWRiMWY5NGFjZWFmZGU3ZmFlODAxM2RiNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJl
ZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hv
dWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3Nz
LW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWwKaW5kZXggNDc3MWE4ZDYzNzZjM2EyYzY3NzY0MjIwMDUwY2VjODliNjc1Y2I0
ZC4uZmI5ZmVmZDVhMGQxMjBlY2NhNDAwZWM4YzFhNDQwYjgwZGMyOGQ1YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91
bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mt
b3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggOWE2ZjVj
ZmM1ZDdiNjQ2NGZmYTIyZDk1MmZkZmQwNjRhOWY2ZTRhNi4uMjdjNGUzMzA0NDJmMDE4NWJlMjlm
MjU3MDdhZWE0ZTE2Mzc4Nzc3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdp
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwx
NSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9z
cy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwog
ICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1vcmlnaW4u
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdp
bi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggZGU5ZTE5Y2ZhNGZmNTU0ODQ4NGIx
MjQ2ODI4YjljMjEyOGJhNDVlZC4uNGRkMmJiODdmN2EyOTcwMTk2OGNjNjIyYTE3Y2Y5MTZkZWJj
MGU0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4t
aHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
YmVoYXZpb3Igb2Ygb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEu
cmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwKaW5kZXggY2VhM2ExM2RiNDAxMzRhMWYxZTdkMDc2MzFmODMzMDA0YzhhYTczZi4uZDEw
YjdlMjkzNzg0MGZjODFhZGQ1Y2Q5Yjc1NmFmNDc5YWUxMzI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwx
MyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVm
ZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5z
ZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQg
YmUgdGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwKaW5kZXggZjU0M2ViNWE3Yzc1M2Y5NGMwMDU2YjlhYjYzODllYTNlODc5
YzQyMy4uMGU2NmNhYTk5MGE0MWNhYTM0MjNlZGY2Y2I0NDkxOGVjNTZkNDUyYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9z
YW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdo
ZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVm
ZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2lu
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggMjAwOTgwYzI3Yzk2NGFkYmMw
MGY1M2EwYTk2NDk0MGIwMTEwNDdkYi4uMTE5YzVjYjVlYjlkODFhZjEwOWIyZjhhNTQ4ZjJlZGE5
ODBjNjMzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlv
bigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVu
IGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZl
cnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBz
dHJpbmcgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1o
dHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCBmZTJh
ZWQ2MWExZTE0NzI1ZmJjOTMxMWI1OTZjNGJlZTMxNGJhYWQ2Li5kYTUyNDk2MTZiMDA0OGI0Yzdk
ZjRiY2ZjZWRjYWNkMzNkNjk2MjlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwx
NyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZl
cnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9z
YW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggNzhlMDJhODljZmY1NzAy
M2RlNGVmNGQwOTljMzk5YzU1ZGMxOTdkMi4uYTVlZDk1NzhiNGRkNDNhNDcxZTNlMDI2YWU4ZTlk
OTA4ZDVhYWEwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygc2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJl
ZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2Ft
ZS1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rl
c3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sCmluZGV4IGU5OWMzM2QwZDAxZTQ0ZTUwYTQ1NTNlOWNhNTA4ODU0
ZmIzYzMwZmMuLjQ2OTRiYjc3MDFkYzEyOWYzMjZjNjVjMTcwNmJlMmQ1NzE3MmE4NmMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJp
Y3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAg
LTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmln
aW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwog
d2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVu
dC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1
bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0
cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5k
ZXggODRhZDFlNzQ4MzQzNmVkNTBjOThlODU5OWQzOTY2NzU0NTg2NzUyYy4uZDQwZTJjZjYzMTkw
YTRlZTMxYTY3YzY1ZmZiOWMzNzQzNzM5MmVkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEzICs4LDE3IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRU
UC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlz
cGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAv
LyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4g
YW5kIGdvaW5nIGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
L3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
CmluZGV4IDAyZDJlNzYyYWYxYThjYjIyZmM4ZjUyOWUzZTUyYWNmM2Y5YzZkMTMuLmNjMzY2ZDAx
YWEzMzZhMGU5NDUwYzAyNzg0NmM3M2Q4Zjc2ZTQ1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGlj
eSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAg
IHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1
bGwgVVJMIGJlY2F1c2Ugd2UgYXJlIHNhbWUtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sIik7
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDRlZjljNWRhNjM3OGIwNjFjNGFiN2I2
ZDY2MjBjNDdhODViMTM1NDEuLjkwYzFkNGIwOTRkNjkxMzQ0ZTk0OGMxN2FkNTg4NGUzNDgzZmQ4
ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hl
biBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVm
ZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2lu
LCBub3QgdGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIi
LCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1s
CmluZGV4IGM3MTBmOWI4NTRiMTVlYzA2MjYwZjljZGIxMDI2YWIwMDE5YzU3MjMuLmM4MjgzZWJi
MTQ2ODhjMzM4MDY5NmM5MzU2YmIzNzE2NjEzNDEzNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bApAQCAtOCwxMyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBz
dHJpY3Qtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBT
IHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7
CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgZ29pbmcg
ZnJvbSBIVFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIi
LCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWwKaW5kZXggOTFhZjY3ODU3MGQ0MmFjMTY0ZDIwNjc1Y2MwOTYzZTIxZDE5ZTdh
Yy4uOTUzNTFjNTA5NjA1MDMxNmZmNTgxMDNmYThiNWIwYTBhMTlkYjc4YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmln
aW4vc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4
LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNo
b3VsZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91
bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRw
LWh0dHAuaHRtbAppbmRleCA1ZmNlOWM0YTEyZmE4Yzg2MjEwODE0ZTNhMGQxYTRhODM1MWEyMmNk
Li5jYjBlOGVjMzk4MGI5NmQ4Y2JlYTAzZWI0MjcxZDFiMDBiZmUyNTM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9m
IHVuc2FmZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCIpOworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91
bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sCmluZGV4IGE1ZWI3ODA3YTAwMTk5NWRmM2NmNGZjN2U2ZWU0ODE3OTcyNDY5
MTMuLjYwNTdjNzQ0N2UzMmUwMGEwNTFhZWU2YjljYzFjNDA1MjBhOTAwMzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJs
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0
cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhU
VFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCIpOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDIx
ZjFmNGUwNDdhY2M2NWFlMDRhZWM2ZTcyOGVhNmJmZGRkNTUyMzIuLmRlZjViNjVjOTU4Yjk1NjJi
ZDgwNDQ4YjA0YTg5NGFhODIxNmFlNjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11
cmwvc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3Jp
Z2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisK
IHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZl
bnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwiKTsKKyAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25n
cmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggNGM5NGYxZGVhNGRkMzZiNmQx
NWYxNjdmYzY3ZDNlYTAwYTk2ZTQwMy4uMjUwZTI5NmU3NmU3ZmFiMTg5ZWZkZjNhOTBiNWE1OWM3
MzY3YTBjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwx
NSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIik7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggZDYwNTFjZWFkYzJlNzE1ZmU4ZjJj
Y2NjNWRkOTJjNjRkNTZjOGVkYi4uM2RhMWU1NTM1NzY2MDVmZDIxNDA3NGI0YmExYjIzYjU3OTBm
OGVjYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
bm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRv
IEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDdhMjA1ZDczOTVmY2JiODcxOTgzMWY4
MGQ1YmU2MTYyM2FmN2NhYmEuLjFkNmU4ZTMxMTBjY2Y2NWVkZWE1ZDYwYzk1NzY3MzIxNTU5MmRk
YjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUv
c2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRo
ZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kg
d2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBy
ZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxs
IFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1l
LW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2lu
LWh0dHAtaHR0cC5odG1sCmluZGV4IGYyMjc3MDFlOTU4NzVmZDZlOWZlMTU1OGNlZmJmNmQ1YzEw
ZGFiMTQuLmEzOWJlMWQ0ODg0MjZiNTRiMjg3ZjJiOTE5YzZlYjhmNjFkY2I0MzggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAg
LTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVm
ZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVy
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggODYzN2Y3ODQzMjIxMGY4ZDY1ZmU4
Mzc0ZjgyZWE1MDMyMjU2MGE4My4uYjc2MDQxZDk1ZjQ4NzM0MjI1OGUzZjllNWFlZTVhYTdmZWY1
OWRkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
bm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBm
cm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEu
cmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1
ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL3NhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGU0MzQxMWUxN2JmZWRlNmY4M2I1NjYyMmM2NjVmYTgz
OTYxOWU5ZDguLmNlNzY5NWU0OTJlNDI0MzNjMzMwMzA0MDU0ZmQwYWUzM2MwMjcwZjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVy
L3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlciByZWZlcnJlciBwb2xp
Y3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAg
ICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBl
bXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDJhZjQyYzQyNDRlMTU3OGE5
ZjFjYzYzNTcwMGJjMDQwY2I4NjljNzYuLjYwYWY5OTJjMDliODIwYjQ1Njc5MmM1YTk4ZjczOTc0
YWRjYmVjN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBA
QAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBh
cmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwKaW5kZXggN2VlNDg0N2RiOWJkY2FmNDM5MmQ3NTk4ZDRhYWJjOWM2YmNmMjUxMi4uYTRj
YmFjNzRlOTFkZWIwY2I2MTExNmE1MTM2Yzg2ZDdlMDdlN2Y1MyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1o
dHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
YmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVu
IGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVl
KTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2Up
OworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJl
ciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5v
dCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvIik7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbAppbmRleCA4YTg1ZTMzY2M4MmMxMDJjZjI5MmIzMWU4OWRkYTk4NDE0Mjg1NTJl
Li5jOTRiNTFjZTBmZmQ4OGE5NGU5ZjUwZjU3NWMzMDA5MGI4MjE3NmNiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAt
OSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4t
d2hlbi1jcm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJl
ZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2Ft
ZS1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9z
YW1lLW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWwKaW5kZXggZGU0Y2YyMzI4Njc4NjcwZGFmNDQ2Yzc3NjA0ZmRkMDEx
YWQxYjk0My4uNWU2NmVlMGQ0YTMyZjA1YzgxYzE3YzRjY2M5NzMwNWY2MGJjNWVkZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5
LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbiByZWZlcnJl
ciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgb3JpZ2luCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCAwZDg5MmVkMGU0NWQ4OTY3YTFjMjA5NjQ2YTE2
NGE2ZWEzZWI5ZDQxLi4yMTFkNTMyODBhZjViOWMzNTE3ZjE0MDhhZDI4NGZmMzBjMjU0MGViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAt
OSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4g
cmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9m
SW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91
bGQgYmUgdGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAi
aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sCmluZGV4IGZlODg0NThkYzJjZmI0MjE4ZTZlY2IzOTA3NjE5NTA5NGMzMTgyMmEuLmIzNDgw
NGEyN2FiOTI1MGNhNWExY2VkZjdhMDJkZWU5MGM4YmY3NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9y
aWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2
aW9yIG9mIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXgg
MTBiYWQ5YzQ5ZmUxNDc2NmY0NzVlYmI5MGM1MjBiMWFiYTYzYTRhZC4uNmZkODU5OGUwMDMxZjMx
OWIxM2ZiYmE1ZTQ5MWZkN2QwZGYzMzgzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kg
d2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
cmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1w
dHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1l
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IGU1M2IxNTQwOWFhYmI1
YzkyZjBlYzZiZTZhMjQ5ZDIyZmUwODdlMTUuLmZjN2Y0ZDczY2JlOGIwNGRlOGM5YzJjYzMzMjU1
ZmEyOTgzYWQ1ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBv
cmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAog
d2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVu
dC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1
c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVy
cmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmlu
ZGV4IDU1YmZkNTUyNTUwMjYzMTJmNTFkZTU2MGJmMWY2NTQ0NTFhNzg2ZTIuLjdjNmQ1YWEzY2I4
OWE1NTFjMzVhYjU4ZmVkZTg4YTZmNTQzZWViMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4i
KTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5k
b3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRh
dGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFy
ZSBzYW1lLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
c3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwKaW5kZXggNjVmODM0NjRhNDljZGEwZjJmZDA4NDU1Y2ZhMzllYzk4ODYyNWQ0ZC4uODViZTI1
MjEzYmY4ODQ2OGZiYWNmODNiMzFhMDRjNmNiMDkyMTQzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWZl
cnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3Vs
ZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1v
cmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5o
dHRwcy5odG1sCmluZGV4IDMzZjlmYjM3MTBjNTU3NGY1OTk0NDJlMzM1ZDhlYTYyZDI2NDA0NjUu
Ljg5NjY3M2I0MGY3ZTI0NDlkOTFiNjI1ZTZlMDNiNDY3MGRhNTAzYzggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQ
LiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8v
IFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbiBh
bmQgZ29pbmcgZnJvbSBIVFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IGNhZDg2MWI0
M2RkOTczN2YxY2Q2NzhkY2U0ZTE1NWQyM2RjZjFjMGYuLjFhYTNiNWNhZGIzMzNhNDM1ZWI5Nzgx
YmYyYTNiYWIzNWIxM2JmZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1lLW9y
aWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
bi9zYW1lLW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1o
dHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCA2N2RmNDRmZjRiMzU5M2Jm
OGUxMjEwNjAyMDIwMzU1YWQwODllYTFkLi5jNDZiZGYxOWJlMTk5NDEyNTYwOWIxNjU0NDE2YzMz
YjAyNjY5Yjc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3Nz
IG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFs
cykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2Up
OworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9
IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0
aGUgZnVsbCBVUkwuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IDgzYmZjOWE1NmVjMTMz
ZjYzY2M2ZDc3ZTI3MjdiMzc3ZDllZTdmODEuLmVhNjhkZjMyN2Y5OGJjYWZkZjk3NjBhM2M4N2Ex
NDM0YzNlNTI5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBj
cm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
K30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIg
PSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5n
IGJlY2F1c2Ugd2UgYXJlIGdvaW5nIGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7
CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmln
aW4vc2FtZS1vcmlnaW4uaHRtbAppbmRleCA1NWNmMjdhZGQxYmVmNmFhNDUxODFhMTFlNGRkMDcx
YjdkNTlhNmQ5Li5hNjZmNDcxZmJkYWYzMGM2ODE4YTBjM2M5MjY0NTUzOTVjNmFhZjk0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3Jp
Z2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBA
CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJy
ZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggYmJh
NDJiYTg4YjdhMjRlNDllNzMyOTlmYjIwN2VmOWRlZDBhODg4My4uMGUzMmExODRkYzQ3Y2E1OGQ2
OGU0NGVlZGIxNmEzYjQ1YjhlN2YyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBj
cm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZh
bHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJy
ZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwK
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91
bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwKaW5kZXggZmZjZDZlNzQxYmEzOTFlMDI2NmRiMGQ3N2E5ZDZiZTE4Yzc4NjY2Mi4uMDBl
OGRkMDM3ZjVhNThjY2JlOWJhYzZjZjA3ZjEwZDYxZWFkNmRiMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4t
aHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwx
NyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiB1bnNhZmUtdXJsIHJlZmVy
cmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93Lmlu
dGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQp
IHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJl
IHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBm
aW5pc2hKU1Rlc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCmlu
ZGV4IGY2Yjk3YTczNDU3ZWE5M2Q2NTExNzIzYjcxMGY2MmI5YTVkYzMyYmYuLjZmN2EwNzA0NWVk
OTY0OWI5YmQ5NWQ1ZGM0ZTUyMDg4YWU1MDIyMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUt
b3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVo
YXZpb3Igb2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEu
cmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBv
bGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRv
Y3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1k
b2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZTZiMzA3ZmQ1MDM0Njc4ZjYxYjk5NmIyNWUxYjBmZWZjZjY2MTY5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVy
cmVyIGlzIGRvd25ncmFkZWQgaW4gbmVzdGVkIHRoaXJkLXBhcnR5IGlmcmFtZXMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LnJlZmVycmVyIGlzIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBh
cnR5LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZy
YW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGUxZTIzYTBmM2U4OTdmOWZkODk5YTFiM2U4MjVjNmE0ZTdj
ZGNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBh
cnR5LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgaW4gbmVz
dGVkIHRoaXJkLXBhcnR5IGlmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisK
KyAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICBpZiAoZXZlbnQu
b3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgaWYgKGV2
ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIi
KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBt
ZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNl
KTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwor
ICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBvcnQtZG9j
dW1lbnQtcmVmZXJyZXIuaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVy
cmVyLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRo
aXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIyYWM3MjcyNzg1MjIx
NTEzMGI1YjljMTRkY2I5NGJlOWIzZTQyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVm
ZXJyZXItdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgaW4gdGhpcmQtcGFydHkg
aWZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQu
cmVmZXJyZXIgaXMgaHR0cDovLzEyNy4wLjAuMTo4MDAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJl
ci10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHkt
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0ZDExZmNkYzlmMmU4ODFhOWY1NDAxOTJiNzQ4Njdm
Y2ZlYjA0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHkt
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIlRlc3RzIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCBpbiB0aGlyZC1w
YXJ0eSBpZnJhbWVzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rp
b24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmlu
ZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5k
YXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAg
ICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgbGV0IGlmcmFt
ZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAg
ICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwiOwor
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5
LWlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFy
dHktaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjM2ZGFjOWE0MTAwNDI5MGQ2MjBk
ODhiMmJjZTY5YmE3ZDUzNWQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVy
LWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBhbiBlbXB0eSBkb2N1bWVudC5yZWZlcnJlciBpcyBsZWZ0IGFsb25lIGluIHRo
aXJkLXBhcnR5IGlmcmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGRvY3VtZW50LnJlZmVycmVyIGlzIFtlbXB0eV0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXIt
YWxvbmUtdGhpcmQtcGFydHktaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUt
dGhpcmQtcGFydHktaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg1ZWFkYTgxNGQ0NDM1NTZhNWIw
MmY3Y2Y4MDgxNjMxYjY2NTc4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJl
ci1hbG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0
aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhbiBlbXB0eSBkb2N1bWVudC5yZWZl
cnJlciBpcyBsZWZ0IGFsb25lIGluIHRoaXJkLXBhcnR5IGlmcmFtZXMuIik7CisgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlvbiByZWNlaXZlTWVzc2FnZShldmVudCkgewor
ICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIikgewor
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAg
ICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5y
ZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20gYW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBl
dmVudC5vcmlnaW4pOworICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rl
c3QpOworICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVj
ZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFi
YXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQucmVmZXJyZXJQ
b2xpY3kgPSAibm8tcmVmZXJyZXIiOworICAgICAgICAgICAgICAgIGlmcmFtZUVsZW1lbnQuc3Jj
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy9yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbCI7CisgICAgICAgICAgICAgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25l
c3QtaWZyYW1lLXJlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBv
cnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2QxYzRlZmZjMmQ3YmFhZDlk
NjJiY2Y1NGRhYjhmMTAxYzdjOWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0LWlmcmFtZS1yZXBv
cnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9j
dW1lbnQtcmVmZXJyZXIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNv
dXJjZXMvcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNkZWMwMTM3
Mjg5YzdmNmRmY2FlMzgwYjQxZmFhOWE0YzQxMmQ5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0
LWRvY3VtZW50LXJlZmVycmVyLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorICAgIHRvcC5wb3N0
TWVzc2FnZSgiUEFTUyBkb2N1bWVudC5yZWZlcnJlciBpcyAiICsgKGRvY3VtZW50LnJlZmVycmVy
ID09PSAiIiA/ICJbZW1wdHldIiA6IGRvY3VtZW50LnJlZmVycmVyKSwgImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380144</attachid>
            <date>2019-10-03 11:14:41 -0700</date>
            <delta_ts>2019-10-03 13:10:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202506-20191003111440.patch</filename>
            <type>text/plain</type>
            <size>68925</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNjViNjg0Y2MxYzZk
NWYyZmU1ZDg0ZTczMTU2MGJhMzdmZjFiYy4uMjYzMTI2ZTNjZTM5ODg2NjNiNjIxNTI3NWJmZmY3
MGIzZmNlOGIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEwLTAzICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFy
dHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBkb3duZ3Jh
ZGVzIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFydHkgaWZyYW1lcyBpZiBJVFAv
UmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzCisgICAgICAgIGlzIGVuYWJsZWQuIFRoZSBiZWhhdmlv
ciBtYXRjaGVzIHRoZSBkb3duZ3JhZGUgb2YgYWxsIEhUVFAgcmVmZXJyZXJzIGZvciB0aGlyZC1w
YXJ0eSByZXNvdXJjZXMKKyAgICAgICAgd2hpY2ggbGFuZGVkIGluIGh0dHBzOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8yNTA0MTMvd2Via2l0LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5l
c3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1w
YXJ0eS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5
LWlmcmFtZS5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZWZlcnJlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICAgICBDYW4gbm8gbG9uZ2VyIGJlIGNv
bnN0IHNpbmNlIGl0IGxhemlseSBkb3duZ3JhZGVzIGFuZCBzYXZlcyB0aGUgcmVmZXJyZXIgb24g
cmVhZC4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKwogMjAxOS0xMC0wMiAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBX
aW5kb3dzIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA4MzhkMTA5NDZmMmQ5NWZl
NWRjOTQ3ZGU1NTk4YzFkYzU0NWJlMDAzLi45OGY3YTMzMDFjNzdhMTIzODQxYTQwMzRlNmQ5N2Iw
MTBkMzZhYjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgIkRlYnVnUGFnZU92ZXJsYXlzLmgiCisjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCIK
QEAgLTQ4NDIsMTEgKzQ4NDMsMjIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRG9jdW1lbnQ6OnNldENv
b2tpZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB7IH07CiB9CiAKLVN0cmluZyBE
b2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAorU3RyaW5nIERvY3VtZW50OjpyZWZlcnJlcigpCiB7
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoIW1fcmVmZXJy
ZXJPdmVycmlkZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7
CisgICAgaWYgKERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoKSAmJiBmcmFtZSgpKSB7CisgICAgICAgIGF1dG8gcmVmZXJyZXJTdHIgPSBmcmFt
ZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOworICAgICAgICBpZiAoIXJlZmVycmVyU3RyLmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgVVJMIHJlZmVycmVyVVJMIHsgVVJMKCksIHJlZmVycmVyU3Ry
IH07CisgICAgICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiByZWZlcnJlclJlZ2lzdHJhYmxlRG9t
YWluIHsgcmVmZXJyZXJVUkwgfTsKKyAgICAgICAgICAgIGlmICghcmVmZXJyZXJSZWdpc3RyYWJs
ZURvbWFpbi5tYXRjaGVzKHNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKSkgeworICAgICAgICAgICAg
ICAgIG1fcmVmZXJyZXJPdmVycmlkZSA9IHJlZmVycmVyVVJMLnByb3RvY29sSG9zdEFuZFBvcnQo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbV9yZWZlcnJlck92ZXJyaWRlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQogI2VuZGlmCiAgICAgaWYgKGZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS5yZWZlcnJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA5YzExNjNjMzkxN2U5ODM2MjI5MzA5Y2I2MTQ1ZTgwMTE5NzEwOTNlLi4xMGUzNGQyNTUz
MjllMzNkZDA1Mzk1NjcwYmRhOWUwY2UzZWQyOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTE2LDcgKzkxNiw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25PcjxT
dHJpbmc+IGNvb2tpZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dENvb2tpZShjb25zdCBTdHJpbmcmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZl
cnJlcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyByZWZlcnJlcigpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIG9yaWdpbigpIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YTg0YTkyZmM4YjMxZjg1ZDc2ZDlkOTUxNjllYWZiNDk4N2MyM2U2Ny4uNTI4Mzc5NGJhYzM4ZGUz
MjVkYmQ5ZjhlNjNlN2NiMjU2ZjI4MmRiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE5LTEw
LTAzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291
cmNlIExvYWQgU3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwg
dGhpcmQtcGFydHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgdGVzdHMg
dGhhdCBhcmUgbm90IG5ldyByZWx5IG9uIGRvY3VtZW50LnJlZmVycmVyIGFuZCBzbyB0aGV5IGFy
ZSBtYWRlIHRvIHR1cm4gb2ZmCisgICAgICAgIElUUCBiZWZvcmUgdGhleSBydW4gdG8gbWFpbnRh
aW4gYSBmdWxsIHJlZmVycmVyLgorCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1z
dHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNlLWlkLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9zYW1lLW9y
aWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9z
cy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0
cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwv
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVy
LXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAt
aHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdp
bi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRv
Y3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdy
YWRlLWRvY3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRl
LWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1l
bnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5
LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25l
c3QtaWZyYW1lLXJlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlcG9ydC1kb2N1
bWVudC1yZWZlcnJlci5odG1sOiBBZGRlZC4KKwogMjAxOS0xMC0wMiAgTWlndWVsIEdvbWV6ICA8
bWFnb21lekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
OiBhZGQgbmV3IGV4cGVjdGF0aW9ucyBhZnRlciByMjUwNjAyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1zb3Vy
Y2UtaWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2Vu
dW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5odG1sCmluZGV4IDI1MDA4NGE3Y2MyMTQ5ZGZkYTcy
NGIwNTA1MTVkNjQzOWJmZjIxY2YuLmVmZjZjZjFmMmJjMWRjYWI4M2I1MzMwMjUxY2Y0NmI3NmMy
NTdhYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3RyZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5o
dG1sCkBAIC04LDYgKzgsOSBAQAogICAgICAgICA8c2NyaXB0PgogICAgICAgICAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzKQorICAg
ICAgICAgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CiAKQEAgLTQ4LDYg
KzUxLDggQEAKICAgICAgICAgICAgICAgICBkZXZpY2VzLmZvckVhY2goZGV2aWNlID0+IGNoZWNr
SUQoZG9jdW1lbnQub3JpZ2luLCBkZXZpY2UpKTsKIAogICAgICAgICAgICAgICAgIGRlYnVnKCcn
KTsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3Jh
ZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDlmZTFkOWVkMGJkZjU0MDI3ZjI1
YThjZTk2MTA5NzA0NjEwNmRjMDguLjFmYThhODUzZWQ4N2IyMGYwZGNkMjRiNDlmNWE1OTdiMjg2
ODg1OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRw
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApA
QCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4u
Iik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2lu
ZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5k
YXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1o
dHRwLWh0dHAuaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1o
dHRwLmh0dHBzLmh0bWwKaW5kZXggZjk3ZDQxNzFmYjJkODIwNzU0Yjc3NDc0YjFiZTMyNmRiOWM0
OTczMC4uYjQ0OTM2M2E5NjZkMDcwOTNlZWIwYWU3NjlmMGYzNmU5OTYwYzY5MyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTgsMTMgKzgsMTcg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXItd2hlbi1k
b3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8g
SFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3Nh
bWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbAppbmRleCBi
ZmMxNDM3MTQ4MzBiN2EwM2RlNTgzYWVkODliM2JjNWZhNjRhNzIzLi43Zjc1OGVjN2Q0ZWQyMDJj
NzM0YWUxOWVlMzk5ZmU3NTdkODM0Mzc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2Ft
ZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbApAQCAt
OCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZl
cnJlci13aGVuLWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsK
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cu
b25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEu
cmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBv
bGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbCIp
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IGQyZTAxNTFmODJiN2VmMDI5NmY5MDhmY2M3
MjEyYjJjMWM4NTVkOWQuLjVkMDBiMWVjM2Q3NzdlYzZmYjZlYjE2OTllYmY1MDkzYWI5ZjZmZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlciByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBv
cmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsK
Kwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBl
dmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVm
ZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5o
dHRwcy5odG1sCmluZGV4IGUyMDhlNGVlOTZlZGJiODU1ZDkzZjZkMTIxZmVjOTIwNTQ3ZTFiMWIu
LjE1OThkOWVmMGM2MDAwY2Q1MTQ1MWNiYTE0NTY3NGJmODgzMTk3YTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCkBAIC04LDEzICs4LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhU
VFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9zYW1lLW9yaWdp
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25v
LXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggOGFkMmVlNzJjZmViY2Y4YWMxNTc2ZmY1
NjAzYjNlZTE3OTZkNzkyOC4uZjliYWJkYTdmYjliMTMzZjA4ZWQ2NzE2ZjcyMDkxZWZhNDFjZTUy
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwK
QEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8t
cmVmZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwog
ICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0
dHAtaHR0cC5odG1sCmluZGV4IDUyODE5N2UzZjk5NDc1MmRkOWI5NDExMzQzNzgzZDM3OGUxMTJh
N2IuLjA1N2E2YzQxM2VjNTEwOWFkYjFmOTRhY2VhZmRlN2ZhZTgwMTNkYjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNo
b3VsZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9z
cy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sCmluZGV4IDQ3NzFhOGQ2Mzc2YzNhMmM2Nzc2NDIyMDA1MGNlYzg5YjY3NWNi
NGQuLmZiOWZlZmQ1YTBkMTIwZWNjYTQwMGVjOGMxYTQ0MGI4MGRjMjhkNWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTgsMTMgKzgsMTcgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
IHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2lu
ZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlP
Zkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hv
dWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3Nz
LW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHBzOi8v
MTI3LjAuMC4xOjg0NDMvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDlhNmY1
Y2ZjNWQ3YjY0NjRmZmEyMmQ5NTJmZGZkMDY0YTlmNmU0YTYuLjI3YzRlMzMwNDQyZjAxODViZTI5
ZjI1NzA3YWVhNGUxNjM3ODc3N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTgsMTAgKzgs
MTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jv
c3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNB
c3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsK
ICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMIGJlY2F1c2Ugd2UgYXJlIHNhbWUtb3JpZ2lu
LgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmln
aW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IGRlOWUxOWNmYTRmZjU1NDg0ODRi
MTI0NjgyOGI5YzIxMjhiYTQ1ZWQuLjRkZDJiYjg3ZjdhMjk3MDE5NjhjYzYyMmExN2NmOTE2ZGVi
YzBlNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhl
IGJlaGF2aW9yIG9mIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRh
LnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luCiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCmluZGV4IGNlYTNhMTNkYjQwMTM0YTFmMWU3ZDA3NjMxZjgzMzAwNGM4YWE3M2YuLmQx
MGI3ZTI5Mzc4NDBmYzgxYWRkNWNkOWI3NTZhZjQ3OWFlMTMyOWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTgs
MTMgKzgsMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luIHJl
ZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93
LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZklu
c2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZl
bnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxk
IGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9zYW1lLW9yaWdpbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9z
YW1lLW9yaWdpbi5odG1sCmluZGV4IGY1NDNlYjVhN2M3NTNmOTRjMDA1NmI5YWI2Mzg5ZWEzZTg3
OWM0MjMuLjBlNjZjYWE5OTBhNDFjYWEzNDIzZWRmNmNiNDQ5MThlYzU2ZDQ1MmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS1pZnJhbWUvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3
aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJl
ZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdp
bgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0
KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDIwMDk4MGMyN2M5NjRhZGJj
MDBmNTNhMGE5NjQ5NDBiMDExMDQ3ZGIuLjExOWM1Y2I1ZWI5ZDgxYWYxMDliMmY4YTU0OGYyZWRh
OTgwYzYzMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRp
b24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hl
biBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVm
ZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkg
c3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4t
aHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggZmUy
YWVkNjFhMWUxNDcyNWZiYzkzMTFiNTk2YzRiZWUzMTRiYWFkNi4uZGE1MjQ5NjE2YjAwNDhiNGM3
ZGY0YmNmY2VkY2FjZDMzZDY5NjI5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTgsMTMgKzgs
MTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc2FtZS1vcmlnaW4gcmVm
ZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5z
ZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQg
YmUgdGhlIGVtcHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDc4ZTAyYTg5Y2ZmNTcw
MjNkZTRlZjRkMDk5YzM5OWM1NWRjMTk3ZDIuLmE1ZWQ5NTc4YjRkZDQzYTQ3MWUzZTAyNmFlOGU5
ZDkwOGQ1YWFhMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2
aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMIGJlY2F1c2Ugd2UgYXJlIHNh
bWUtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCBlOTljMzNkMGQwMWU0NGU1MGE0NTUzZTljYTUwODg1
NGZiM2MzMGZjLi40Njk0YmI3NzAxZGMxMjlmMzI2YzY1YzE3MDZiZTJkNTcxNzJhODZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3Ry
aWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmlj
dC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBA
IC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmlj
dC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3Jp
Z2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisK
IHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZl
bnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBm
dWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9z
dHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmlu
ZGV4IDg0YWQxZTc0ODM0MzZlZDUwYzk4ZTg1OTlkMzk2Njc1NDU4Njc1MmMuLmQ0MGUyY2Y2MzE5
MGE0ZWUzMWE2N2M2NWZmYjljMzc0MzczOTJlZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVz
Y3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhU
VFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitp
ZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAg
Ly8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2lu
IGFuZCBnb2luZyBmcm9tIEhUVFBTIHRvIEhUVFAuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdp
bi9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRt
bAppbmRleCAwMmQyZTc2MmFmMWE4Y2IyMmZjOGY1MjllM2U1MmFjZjNmOWM2ZDEzLi5jYzM2NmQw
MWFhMzM2YTBlOTQ1MGMwMjc4NDZjNzNkOGY3NmU0NTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
YmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xp
Y3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2lu
ZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAg
ICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBm
dWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1lLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCIp
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCA0ZWY5YzVkYTYzNzhiMDYxYzRhYjdi
NmQ2NjIwYzQ3YTg1YjEzNTQxLi45MGMxZDRiMDk0ZDY5MTM0NGU5NDhjMTdhZDU4ODRlMzQ4M2Zk
ODg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlv
bigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdo
ZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJl
ZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdp
biwgbm90IHRoZSBmdWxsIFVSTC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVy
IiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bAppbmRleCBjNzEwZjliODU0YjE1ZWMwNjI2MGY5Y2RiMTAyNmFiMDAxOWM1NzIzLi5jODI4M2Vi
YjE0Njg4YzMzODA2OTZjOTM1NmJiMzcxNjYxMzQxMzQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0
bWwKQEAgLTgsMTMgKzgsMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Yg
c3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQ
UyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGdvaW5n
IGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVy
IiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7
CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sCmluZGV4IDkxYWY2Nzg1NzBkNDJhYzE2NGQyMDY3NWNjMDk2M2UyMWQxOWU3
YWMuLjk1MzUxYzUwOTYwNTAzMTZmZjU4MTAzZmE4YjViMGEwYTE5ZGI3OGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3Jp
Z2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOCwxMCAr
OCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2lu
IHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlv
bihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBT
aG91bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTC4KICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
dW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0
cC1odHRwLmh0bWwKaW5kZXggNWZjZTljNGExMmZhOGM4NjIxMDgxNGUzYTBkMWE0YTgzNTFhMjJj
ZC4uY2IwZThlYzM5ODBiOTZkOGNiZWEwM2ViNDI3MWQxYjAwYmZlMjUzNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwv
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAu
aHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBv
ZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMu
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNz
YWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJy
ZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwiKTsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
dW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbAppbmRleCBhNWViNzgwN2EwMDE5OTVkZjNjZjRmYzdlNmVlNDgxNzk3MjQ2
OTEzLi42MDU3Yzc0NDdlMzJlMDBhMDUxYWVlNmI5Y2MxYzQwNTIwYTkwMDMyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVy
bC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwKQEAgLTgsMTMgKzgsMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZp
b3Igb2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBI
VFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVy
cmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwiKTsKKyAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJh
bWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbAppbmRleCAy
MWYxZjRlMDQ3YWNjNjVhZTA0YWVjNmU3MjhlYTZiZmRkZDU1MjMyLi5kZWY1YjY1Yzk1OGI5NTYy
YmQ4MDQ0OGIwNGE4OTRhYTgyMTZhZTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUt
dXJsL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYmVoYXZpb3Igb2YgdW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9y
aWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykK
KyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOwor
CiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2
ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sIik7CisgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3du
Z3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDRjOTRmMWRlYTRkZDM2YjZk
MTVmMTY3ZmM2N2QzZWEwMGE5NmU0MDMuLjI1MGUyOTZlNzZlN2ZhYjE4OWVmZGYzYTkwYjVhNTlj
NzM2N2EwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzks
MTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L25v
LXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCIpOwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVy
cmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFk
ZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IGQ2MDUxY2VhZGMyZTcxNWZlOGYy
Y2NjYzVkZDkyYzY0ZDU2YzhlZGIuLjNkYTFlNTUzNTc2NjA1ZmQyMTQwNzRiNGJhMWIyM2I1Nzkw
ZjhlY2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIt
d2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwx
NyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZSByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0
byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwog
ICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbAppbmRleCA3YTIwNWQ3Mzk1ZmNiYjg3MTk4MzFm
ODBkNWJlNjE2MjNhZjdjYWJhLi4xZDZlOGUzMTEwY2NmNjVlZGVhNWQ2MGM5NTc2NzMyMTU1OTJk
ZGIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9u
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
L3NhbWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5
IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
cmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVs
bCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2Ft
ZS1vcmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbAppbmRleCBmMjI3NzAxZTk1ODc1ZmQ2ZTlmZTE1NThjZWZiZjZkNWMx
MGRhYjE0Li5hMzliZTFkNDg4NDI2YjU0YjI4N2YyYjkxOWM2ZWI4ZjYxZGNiNDM4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBA
IC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJl
ZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IDg2MzdmNzg0MzIyMTBmOGQ2NWZl
ODM3NGY4MmVhNTAzMjI1NjBhODMuLmI3NjA0MWQ5NWY0ODczNDIyNThlM2Y5ZTVhZWU1YWE3ZmVm
NTlkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBuby1yZWZlcnJlciByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4g
ZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRh
LnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRy
dWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9zYW1lLW9yaWdp
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJy
ZXIvc2FtZS1vcmlnaW4uaHRtbAppbmRleCBlNDM0MTFlMTdiZmVkZTZmODNiNTY2MjJjNjY1ZmE4
Mzk2MTllOWQ4Li5jZTc2OTVlNDkyZTQyNDMzYzMzMDMwNDA1NGZkMGFlMzNjMDI3MGY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXIgcmVmZXJyZXIgcG9s
aWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAg
ICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUg
ZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCAyYWY0MmM0MjQ0ZTE1Nzhh
OWYxY2M2MzU3MDBiYzA0MGNiODY5Yzc2Li42MGFmOTkyYzA5YjgyMGI0NTY3OTJjNWE5OGY3Mzk3
NGFkY2JlYzdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVu
LWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2Ug
YXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwg
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jv
c3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCmluZGV4IDdlZTQ4NDdkYjliZGNhZjQzOTJkNzU5OGQ0YWFiYzljNmJjZjI1MTIuLmE0
Y2JhYzc0ZTkxZGViMGNiNjExMTZhNTEzNmM4NmQ3ZTA3ZTdmNTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdp
bi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4t
aHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhl
IGJlaGF2aW9yIG9mIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hl
biBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1
ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJy
ZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBu
b3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwczovLzEyNy4wLjAuMTo4NDQzLyIpOwor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUt
b3JpZ2luLmh0bWwKaW5kZXggOGE4NWUzM2NjODJjMTAyY2YyOTJiMzFlODlkZGE5ODQxNDI4NTUy
ZS4uYzk0YjUxY2UwZmZkODhhOTRlOWY1MGY1NzVjMzAwOTBiODIxNzZjYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAg
LTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2lu
LXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMIGJlY2F1c2Ugd2UgYXJlIHNh
bWUtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmlu
aXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sCmluZGV4IGRlNGNmMjMyODY3ODY3MGRhZjQ0NmM3NzYwNGZkZDAx
MWFkMWI5NDMuLjVlNjZlZTBkNGEzMmYwNWM4MWMxN2M0Y2NjOTczMDVmNjBiYzVlZGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCAr
OSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJy
ZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQg
YmUgdGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggMGQ4OTJlZDBlNDVkODk2N2ExYzIwOTY0NmEx
NjRhNmVhM2ViOWQ0MS4uMjExZDUzMjgwYWY1YjljMzUxN2YxNDA4YWQyODRmZjMwYzI1NDBlYiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAg
LTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2lu
IHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2lu
ZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlP
Zkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hv
dWxkIGJlIHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwg
Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1vcmlnaW4u
aHRtbAppbmRleCBmZTg4NDU4ZGMyY2ZiNDIxOGU2ZWNiMzkwNzYxOTUwOTRjMzE4MjJhLi5iMzQ4
MDRhMjdhYjkyNTBjYTVhMWNlZGY3YTAyZGVlOTBjOGJmNzQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhh
dmlvciBvZiBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVy
cmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4
IDEwYmFkOWM0OWZlMTQ3NjZmNDc1ZWJiOTBjNTIwYjFhYmE2M2E0YWQuLjZmZDg1OThlMDAzMWYz
MTliMTNmYmJhNWU0OTFmZDdkMGRmMzM4MzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5
IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAg
IHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVt
cHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwog
ICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2Ft
ZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCBlNTNiMTU0MDlhYWJi
NWM5MmYwZWM2YmU2YTI0OWQyMmZlMDg3ZTE1Li5mYzdmNGQ3M2NiZThiMDRkZThjOWMyY2MzMzI1
NWZhMjk4M2FkNWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYmVoYXZpb3Igb2Ygc2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mg
b3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1p
ZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAg
IGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAK
IHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZl
bnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyBiZWNh
dXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZl
cnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApp
bmRleCA1NWJmZDU1MjU1MDI2MzEyZjUxZGU1NjBiZjFmNjU0NDUxYTc4NmUyLi43YzZkNWFhM2Ni
ODlhNTUxYzM1YWI1OGZlZGU4OGE2ZjU0M2VlYjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
YmVoYXZpb3Igb2Ygc2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4u
Iik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2lu
ZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5k
YXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBh
cmUgc2FtZS1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sCmluZGV4IDY1ZjgzNDY0YTQ5Y2RhMGYyZmQwODQ1NWNmYTM5ZWM5ODg2MjVkNGQuLjg1YmUy
NTIxM2JmODg0NjhmYmFjZjgzYjMxYTA0YzZjYjA5MjE0M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigi
VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVm
ZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91
bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mt
b3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAu
aHR0cHMuaHRtbAppbmRleCAzM2Y5ZmIzNzEwYzU1NzRmNTk5NDQyZTMzNWQ4ZWE2MmQyNjQwNDY1
Li44OTY2NzNiNDBmN2UyNDQ5ZDkxYjYyNWU2ZTAzYjQ2NzBkYTUwM2M4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1v
cmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRU
UC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlz
cGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5j
dGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAv
LyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4g
YW5kIGdvaW5nIGZyb20gSFRUUFMgdG8gSFRUUC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmlj
dC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAppbmRleCBjYWQ4NjFi
NDNkZDk3MzdmMWNkNjc4ZGNlNGUxNTVkMjNkY2YxYzBmLi4xYWEzYjVjYWRiMzMzYTQzNWViOTc4
MWJmMmEzYmFiMzViMTNiZmU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2lu
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0
LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVy
cmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1v
cmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4vc2FtZS1vcmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAt
aHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggNjdkZjQ0ZmY0YjM1OTNi
ZjhlMTIxMDYwMjAyMDM1NWFkMDg5ZWExZC4uYzQ2YmRmMTliZTE5OTQxMjU2MDliMTY1NDQxNmMz
M2IwMjY2OWI3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9z
cyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNl
KTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIg
PSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBub3Qg
dGhlIGZ1bGwgVVJMLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmlj
dC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCA4M2JmYzlhNTZlYzEz
M2Y2M2NjNmQ3N2UyNzI3YjM3N2Q5ZWU3ZjgxLi5lYTY4ZGYzMjdmOThiY2FmZGY5NzYwYTNjODdh
MTQzNGMzZTUyOTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigi
VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4g
Y3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUp
OworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVy
ID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmlu
ZyBiZWNhdXNlIHdlIGFyZSBnb2luZyBmcm9tIEhUVFBTIHRvIEhUVFAuCiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUp
OwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2lu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3Jp
Z2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggNTVjZjI3YWRkMWJlZjZhYTQ1MTgxYTExZTRkZDA3
MWI3ZDU5YTZkOS4uYTY2ZjQ3MWZiZGFmMzBjNjgxOGEwYzNjOTI2NDU1Mzk1YzZhYWY5NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9y
aWdpbi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L3N0cmljdC1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBA
QAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luIHJlZmVy
cmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVu
dCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQg
YmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IGJi
YTQyYmE4OGI3YTI0ZTQ5ZTczMjk5ZmIyMDdlZjlkZWQwYTg4ODMuLjBlMzJhMTg0ZGM0N2NhNThk
NjhlNDRlZWRiMTZhM2I0NWI4ZTdmMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwv
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlv
bigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHVuc2FmZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4g
Y3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVy
cmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJM
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
dW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCmluZGV4IGZmY2Q2ZTc0MWJhMzkxZTAyNjZkYjBkNzdhOWQ2YmUxOGM3ODY2NjIuLjAw
ZThkZDAzN2Y1YTU4Y2NiZTliYWM2Y2YwN2YxMGQ2MWVhZDZkYjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2lu
LWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzks
MTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2YgdW5zYWZlLXVybCByZWZl
cnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0
dHBzOi8vMTI3LjAuMC4xOjg0NDMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbApp
bmRleCBmNmI5N2E3MzQ1N2VhOTNkNjUxMTcyM2I3MTBmNjJiOWE1ZGMzMmJmLi42ZjdhMDcwNDVl
ZDk2NDliOWJkOTVkNWRjNGU1MjA4OGFlNTAyMjMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1l
LW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIHVuc2FmZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7
CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93
Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRh
LnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1w
b2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1k
b2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUt
ZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmU2YjMwN2ZkNTAzNDY3OGY2MWI5OTZiMjVlMWIwZmVmY2Y2NjE2OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlmcmFt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCBkb2N1bWVudC5yZWZl
cnJlciBpcyBkb3duZ3JhZGVkIGluIG5lc3RlZCB0aGlyZC1wYXJ0eSBpZnJhbWVzLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5yZWZlcnJlciBpcyBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1w
YXJ0eS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlMWUyM2EwZjNlODk3ZjlmZDg5OWExYjNlODI1YzZhNGU3
Y2RjYWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1w
YXJ0eS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNj
cmlwdGlvbigiVGVzdHMgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIGluIG5l
c3RlZCB0aGlyZC1wYXJ0eSBpZnJhbWVzLiIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgaWYgKGV2ZW50
Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAi
IikpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEg
bWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICB9CisKKyAg
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNzYWdlLCBmYWxz
ZSk7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRhYmFzZSh0cnVlKTsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNyYyA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvbmVzdC1pZnJhbWUtcmVwb3J0LWRv
Y3VtZW50LXJlZmVycmVyLmh0bWwiOworICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAg
IH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZl
cnJlci10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10
aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMmFjNzI3Mjc4NTIy
MTUxMzBiNWI5YzE0ZGNiOTRiZTliM2U0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJl
ZmVycmVyLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
VGVzdHMgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIGluIHRoaXJkLXBhcnR5
IGlmcmFtZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50
LnJlZmVycmVyIGlzIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJy
ZXItdGhpcmQtcGFydHktaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBhcnR5
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NGQxMWZjZGM5ZjJlODgxYTlmNTQwMTkyYjc0ODY3
ZmNmZWIwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBhcnR5
LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0
aW9uKCJUZXN0cyB0aGF0IGRvY3VtZW50LnJlZmVycmVyIGlzIGRvd25ncmFkZWQgaW4gdGhpcmQt
cGFydHkgaWZyYW1lcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0
aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5p
bmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQu
ZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJv
bSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRF
bmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGxldCBpZnJh
bWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CisgICAgICAgICAg
ICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sIjsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJlci1hbG9uZS10aGlyZC1wYXJ0
eS1pZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25lLXRoaXJkLXBh
cnR5LWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIzNmRhYzlhNDEwMDQyOTBkNjIw
ZDg4YjJiY2U2OWJhN2Q1MzVkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJl
ci1hbG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3RzIHRoYXQgYW4gZW1wdHkgZG9jdW1lbnQucmVmZXJyZXIgaXMgbGVmdCBhbG9uZSBpbiB0
aGlyZC1wYXJ0eSBpZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkb2N1bWVudC5yZWZlcnJlciBpcyBbZW1wdHldCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVy
LWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVyLWFsb25l
LXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NWVhZGE4MTRkNDQzNTU2YTVi
MDJmN2NmODA4MTYzMWI2NjU3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJy
ZXItYWxvbmUtdGhpcmQtcGFydHktaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYW4gZW1wdHkgZG9jdW1lbnQucmVm
ZXJyZXIgaXMgbGVmdCBhbG9uZSBpbiB0aGlyZC1wYXJ0eSBpZnJhbWVzLiIpOworICAgIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCisgICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsK
KyAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsK
KyAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmluZGV4T2YoIlBBU1MiKSA9PT0gLTEpCisgICAg
ICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhLnJlcGxhY2UoIkZBSUwgIiwgIiIpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsg
ZXZlbnQub3JpZ2luKTsKKyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNU
ZXN0KTsKKyAgICB9CisKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJl
Y2VpdmVNZXNzYWdlLCBmYWxzZSk7CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICBpZiAodGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VJVFBEYXRh
YmFzZSh0cnVlKTsKKyAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUodHJ1ZSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgbGV0IGlmcmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnJlZmVycmVy
UG9saWN5ID0gIm5vLXJlZmVycmVyIjsKKyAgICAgICAgICAgICAgICBpZnJhbWVFbGVtZW50LnNy
YyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJj
ZXMvcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwiOworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lRWxlbWVudCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9u
ZXN0LWlmcmFtZS1yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvbmVzdC1pZnJhbWUtcmVw
b3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdkMWM0ZWZmYzJkN2JhYWQ5
ZDYyYmNmNTRkYWI4ZjEwMWM3YzlmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvbmVzdC1pZnJhbWUtcmVw
b3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRv
Y3VtZW50LXJlZmVycmVyLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvcmVwb3J0LWRvY3VtZW50LXJlZmVycmVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL3JlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzZGVjMDEz
NzI4OWM3ZjZkZmNhZTM4MGI0MWZhYTlhNGM0MTJkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlcG9y
dC1kb2N1bWVudC1yZWZlcnJlci5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKyAgICB0b3AucG9z
dE1lc3NhZ2UoIlBBU1MgZG9jdW1lbnQucmVmZXJyZXIgaXMgIiArIChkb2N1bWVudC5yZWZlcnJl
ciA9PT0gIiIgPyAiW2VtcHR5XSIgOiBkb2N1bWVudC5yZWZlcnJlciksICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380155</attachid>
            <date>2019-10-03 13:10:58 -0700</date>
            <delta_ts>2019-10-03 13:50:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-202506-20191003131057.patch</filename>
            <type>text/plain</type>
            <size>68923</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNjE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFkNjViNjg0Y2MxYzZk
NWYyZmU1ZDg0ZTczMTU2MGJhMzdmZjFiYy4uMWMxODEyM2YxZmFmNzM3MzRmZGQwZDM1ZDYyMThj
MTlmNzAyN2YyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEwLTAzICBKb2hu
IFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQg
U3RhdGlzdGljczogRG93bmdyYWRlIGRvY3VtZW50LnJlZmVycmVyIGZvciBhbGwgdGhpcmQtcGFy
dHkgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAyNTA2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NTc4NjM5Nz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGRvd25ncmFk
ZXMgZG9jdW1lbnQucmVmZXJyZXIgZm9yIGFsbCB0aGlyZC1wYXJ0eSBpZnJhbWVzIGlmIElUUC9S
ZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3MKKyAgICAgICAgaXMgZW5hYmxlZC4gVGhlIGJlaGF2aW9y
IG1hdGNoZXMgdGhlIGRvd25ncmFkZSBvZiBhbGwgSFRUUCByZWZlcnJlcnMgZm9yIHRoaXJkLXBh
cnR5IHJlc291cmNlcworICAgICAgICB3aGljaCBsYW5kZWQgaW4gaHR0cHM6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzI1MDQxMy93ZWJraXQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItbmVz
dGVkLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLXRoaXJkLXBh
cnR5LWlmcmFtZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFydHkt
aWZyYW1lLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJl
ZmVycmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgICAgIENhbiBubyBsb25nZXIgYmUgY29u
c3Qgc2luY2UgaXQgbGF6aWx5IGRvd25ncmFkZXMgYW5kIHNhdmVzIHRoZSByZWZlcnJlciBvbiBy
ZWFkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDE5LTEwLTAyICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggdGhlIFdp
bmRvd3MgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDgzOGQxMDk0NmYyZDk1ZmU1
ZGM5NDdkZTU1OThjMWRjNTQ1YmUwMDMuLjk4ZjdhMzMwMWM3N2ExMjM4NDFhNDAzNGU2ZDk3YjAx
MGQzNmFiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2lu
Y2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVk
ZSAiRGVidWdQYWdlT3ZlcmxheXMuaCIKKyNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U2hhcmVkT2JqZWN0UG9vbC5oIgpA
QCAtNDg0MiwxMSArNDg0MywyMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBEb2N1bWVudDo6c2V0Q29v
a2llKGNvbnN0IFN0cmluZyYgdmFsdWUpCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotU3RyaW5nIERv
Y3VtZW50OjpyZWZlcnJlcigpIGNvbnN0CitTdHJpbmcgRG9jdW1lbnQ6OnJlZmVycmVyKCkKIHsK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmICghbV9yZWZlcnJl
ck92ZXJyaWRlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1fcmVmZXJyZXJPdmVycmlkZTsK
KyAgICBpZiAoRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCgpICYmIGZyYW1lKCkpIHsKKyAgICAgICAgYXV0byByZWZlcnJlclN0ciA9IGZyYW1l
KCktPmxvYWRlcigpLnJlZmVycmVyKCk7CisgICAgICAgIGlmICghcmVmZXJyZXJTdHIuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICBVUkwgcmVmZXJyZXJVUkwgeyBVUkwoKSwgcmVmZXJyZXJTdHIg
fTsKKyAgICAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIHJlZmVycmVyUmVnaXN0cmFibGVEb21h
aW4geyByZWZlcnJlclVSTCB9OworICAgICAgICAgICAgaWYgKCFyZWZlcnJlclJlZ2lzdHJhYmxl
RG9tYWluLm1hdGNoZXMoc2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpKSB7CisgICAgICAgICAgICAg
ICAgbV9yZWZlcnJlck92ZXJyaWRlID0gcmVmZXJyZXJVUkwucHJvdG9jb2xIb3N0QW5kUG9ydCgp
OworICAgICAgICAgICAgICAgIHJldHVybiBtX3JlZmVycmVyT3ZlcnJpZGU7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CiAjZW5kaWYKICAgICBpZiAoZnJhbWUoKSkKICAgICAgICAg
cmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLnJlZmVycmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDljMTE2M2MzOTE3ZTk4MzYyMjkzMDljYjYxNDVlODAxMTk3MTA5M2UuLjEwZTM0ZDI1NTMy
OWUzM2RkMDUzOTU2NzBiZGE5ZTBjZTNlZDI5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05
MTYsNyArOTE2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFN0
cmluZz4gY29va2llKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
Q29va2llKGNvbnN0IFN0cmluZyYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlZmVy
cmVyKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHJlZmVycmVyKCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgb3JpZ2luKCkgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
ODRhOTJmYzhiMzFmODVkNzZkOWQ5NTE2OWVhZmI0OTg3YzIzZTY3Li45Mzg3ZjI5NjIzNDVmMDQy
NmFjZWNjZjk3OGQwYTE1ZDM1YjdjNTMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTktMTAt
MDMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzb3Vy
Y2UgTG9hZCBTdGF0aXN0aWNzOiBEb3duZ3JhZGUgZG9jdW1lbnQucmVmZXJyZXIgZm9yIGFsbCB0
aGlyZC1wYXJ0eSBpZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDI1MDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU1Nzg2Mzk3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhlIHRlc3RzIHRo
YXQgYXJlIG5vdCBuZXcgcmVseSBvbiBkb2N1bWVudC5yZWZlcnJlciBhbmQgc28gdGhleSBhcmUg
bWFkZSB0byB0dXJuIG9mZgorICAgICAgICBJVFAgYmVmb3JlIHRoZXkgcnVuIHRvIG1haW50YWlu
IGEgZnVsbCByZWZlcnJlci4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc3Ry
ZWFtL2VudW1lcmF0ZS1kZXZpY2VzLXNvdXJjZS1pZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvc2FtZS1vcmln
aW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3Jp
Z2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2lu
LWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJp
Y3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Ny
b3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJl
ci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13
aGVuLWRvd25ncmFkZS9zYW1lLW9yaWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
L25vLXJlZmVycmVyL3NhbWUtb3JpZ2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0
dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hl
bi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9z
YW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLWh0dHAuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1
bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFk
ZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFydHktaWZyYW1lLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUt
ZG9jdW1lbnQtcmVmZXJyZXItdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1k
b2N1bWVudC1yZWZlcnJlci10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50
LXJlZmVycmVyLWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1k
b2N1bWVudC1yZWZlcnJlci1hbG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9uZXN0
LWlmcmFtZS1yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1l
bnQtcmVmZXJyZXIuaHRtbDogQWRkZWQuCisKIDIwMTktMTAtMDIgIE1pZ3VlbCBHb21leiAgPG1h
Z29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbnJldmlld2VkIGdhcmRlbmluZzog
YWRkIG5ldyBleHBlY3RhdGlvbnMgYWZ0ZXIgcjI1MDYwMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZW51bWVyYXRlLWRldmljZXMtc291cmNl
LWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVt
ZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRtbAppbmRleCAyNTAwODRhN2NjMjE0OWRmZGE3MjRi
MDUwNTE1ZDY0MzliZmYyMWNmLi5lZmY2Y2YxZjJiYzFkY2FiODNiNTMzMDI1MWNmNDZiNzZjMjU3
YWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVh
bS9lbnVtZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9lbnVtZXJhdGUtZGV2aWNlcy1zb3VyY2UtaWQuaHRt
bApAQCAtOCw2ICs4LDkgQEAKICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAorICAgICAgICAgICAgaWYgKGludGVybmFscykKKyAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworCiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwogCkBAIC00OCw2ICs1
MSw4IEBACiAgICAgICAgICAgICAgICAgZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiBjaGVja0lE
KGRvY3VtZW50Lm9yaWdpbiwgZGV2aWNlKSk7CiAKICAgICAgICAgICAgICAgICBkZWJ1ZygnJyk7
CisgICAgICAgICAgICAgICAgaWYgKGludGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hl
bi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRl
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCA5ZmUxZDllZDBiZGY1NDAyN2YyNWE4
Y2U5NjEwOTcwNDYxMDZkYzA4Li4xZmE4YTg1M2VkODdiMjBmMGRjZDI0YjQ5ZjVhNTk3YjI4Njg4
NTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9u
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAg
LTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVm
ZXJyZXItd2hlbi1kb3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIp
OwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRv
dy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0
YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0
cC1odHRwLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0
cC5odHRwcy5odG1sCmluZGV4IGY5N2Q0MTcxZmIyZDgyMDc1NGI3NzQ3NGIxYmUzMjZkYjljNDk3
MzAuLmI0NDkzNjNhOTY2ZDA3MDkzZWViMGFlNzY5ZjBmMzZlOTk2MGM2OTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVu
LWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEzICs4LDE3IEBA
CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdoZW4tZG93
bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhU
VFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitp
ZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rp
c3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAg
Ly8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
InJlZmVycmVyIiwgIiIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9zYW1l
LW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggYmZj
MTQzNzE0ODMwYjdhMDNkZTU4M2FlZDg5YjNiYzVmYTY0YTcyMy4uN2Y3NThlYzdkNGVkMjAyYzcz
NGFlMTllZTM5OWZlNzU3ZDgzNDM3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUt
b3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kt
aWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTgs
MTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJy
ZXItd2hlbi1kb3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9u
bWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJl
ZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwiKTsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVycmVyL2Nyb3Nz
LW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCBkMmUwMTUxZjgyYjdlZjAyOTZmOTA4ZmNjNzIx
MmIyYzFjODU1ZDlkLi41ZDAwYjFlYzNkNzc3ZWM2ZmI2ZWIxNjk5ZWJmNTA5M2FiOWY2ZmRkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUv
bm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3Jp
Z2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisK
IHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZl
bnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL25vLXJlZmVy
cmVyL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0
cHMuaHRtbAppbmRleCBlMjA4ZTRlZTk2ZWRiYjg1NWQ5M2Y2ZDEyMWZlYzkyMDU0N2UxYjFiLi4x
NTk4ZDllZjBjNjAwMGNkNTE0NTFjYmExNDU2NzRiZjg4MzE5N2E2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jv
c3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbApAQCAtOCwxMyArOCwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBv
ZiBuby1yZWZlcnJlciByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQ
UyB0byBIVFRQLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAg
IGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1y
ZWZlcnJlci9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDhhZDJlZTcyY2ZlYmNmOGFjMTU3NmZmNTYw
M2IzZWUxNzk2ZDc5MjguLmY5YmFiZGE3ZmI5YjEzM2YwOGVkNjcxNmY3MjA5MWVmYTQxY2U1MmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9uby1yZWZlcnJlci9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9uby1yZWZlcnJlci9zYW1lLW9yaWdpbi5odG1sCkBA
IC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJl
ZmVycmVyIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRw
LWh0dHAuaHRtbAppbmRleCA1MjgxOTdlM2Y5OTQ3NTJkZDliOTQxMTM0Mzc4M2QzNzhlMTEyYTdi
Li4wNTdhNmM0MTNlYzUxMDlhZGIxZjk0YWNlYWZkZTdmYWU4MDEzZGI2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVm
ZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7
CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihl
dmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91
bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mt
b3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAu
aHR0cHMuaHRtbAppbmRleCA0NzcxYThkNjM3NmMzYTJjNjc3NjQyMjAwNTBjZWM4OWI2NzVjYjRk
Li5mYjlmZWZkNWEwZDEyMGVjY2E0MDBlYzhjMWE0NDBiODBkYzI4ZDVjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEzICs4LDE3IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiBy
ZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJ
bnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3Vs
ZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFyZSBjcm9zcy1v
cmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwczovLzEy
Ny4wLjAuMTo4NDQzLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRl
cm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNo
SlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAppbmRleCA5YTZmNWNm
YzVkN2I2NDY0ZmZhMjJkOTUyZmRmZDA2NGE5ZjZlNGE2Li4yN2M0ZTMzMDQ0MmYwMTg1YmUyOWYy
NTcwN2FlYTRlMTYzNzg3NzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2lu
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4LDE1
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbi13aGVuLWNyb3Nz
LW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAg
ICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1lLW9yaWdpbi4K
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2lu
L2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCBkZTllMTljZmE0ZmY1NTQ4NDg0YjEy
NDY4MjhiOWMyMTI4YmE0NWVkLi40ZGQyYmI4N2Y3YTI5NzAxOTY4Y2M2MjJhMTdjZjkxNmRlYmMw
ZTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdpbi1o
dHRwLWh0dHAuaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBvcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbAppbmRleCBjZWEzYTEzZGI0MDEzNGExZjFlN2QwNzYzMWY4MzMwMDRjOGFhNzNmLi5kMTBi
N2UyOTM3ODQwZmM4MWFkZDVjZDliNzU2YWY0NzlhZTEzMjliIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3ktaWZyYW1lL29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEz
ICs4LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbiByZWZl
cnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwoganNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50
KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBi
ZSB0aGUgb3JpZ2luCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
czovLzEyNy4wLjAuMTo4NDQzLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAg
ZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9vcmlnaW4vc2Ft
ZS1vcmlnaW4uaHRtbAppbmRleCBmNTQzZWI1YTdjNzUzZjk0YzAwNTZiOWFiNjM4OWVhM2U4Nzlj
NDIzLi4wZTY2Y2FhOTkwYTQxY2FhMzQyM2VkZjZjYjQ0OTE4ZWM1NmQ0NTJjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3ktaWZyYW1lL29yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hl
biBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZl
cnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4K
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgp
OwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVy
cmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCAyMDA5ODBjMjdjOTY0YWRiYzAw
ZjUzYTBhOTY0OTQwYjAxMTA0N2RiLi4xMTljNWNiNWViOWQ4MWFmMTA5YjJmOGE1NDhmMmVkYTk4
MGM2MzM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc2FtZS1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4g
Y3Jvc3Mgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChm
YWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVy
cmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0
cmluZyBiZWNhdXNlIHdlIGFyZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IGZlMmFl
ZDYxYTFlMTQ3MjVmYmM5MzExYjU5NmM0YmVlMzE0YmFhZDYuLmRhNTI0OTYxNmIwMDQ4YjRjN2Rm
NGJjZmNlZGNhY2QzM2Q2OTYyOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5LWlmcmFtZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFt
ZS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC04LDEzICs4LDE3
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVy
cmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93Lmlu
dGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQp
IHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJl
IHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0
cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAppbmRleCA3OGUwMmE4OWNmZjU3MDIz
ZGU0ZWY0ZDA5OWMzOTljNTVkYzE5N2QyLi5hNWVkOTU3OGI0ZGQ0M2E0NzFlM2UwMjZhZThlOWQ5
MDhkNWFhYTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc2FtZS1vcmlnaW4vc2FtZS1vcmln
aW4uaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlv
ciBvZiBzYW1lLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25t
ZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVm
ZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1l
LW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3NhbWUtb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxz
LnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVz
dCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC1odHRwLmh0bWwKaW5kZXggZTk5YzMzZDBkMDFlNDRlNTBhNDU1M2U5Y2E1MDg4NTRm
YjNjMzBmYy4uNDY5NGJiNzcwMWRjMTI5ZjMyNmM2NWMxNzA2YmUyZDU3MTcyYTg2YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmlj
dC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAt
OCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdp
bi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAg
ICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3
aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50
LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVs
bCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3Ry
aWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRl
eCA4NGFkMWU3NDgzNDM2ZWQ1MGM5OGU4NTk5ZDM5NjY3NTQ1ODY3NTJjLi5kNDBlMmNmNjMxOTBh
NGVlMzFhNjdjNjVmZmI5YzM3NDM3MzkyZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTgsMTMgKzgsMTcgQEAKIGRlc2Ny
aXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQ
LiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8v
IFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9yaWdpbiBh
bmQgZ29pbmcgZnJvbSBIVFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
cmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hK
U1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
c2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5
LWlmcmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwK
aW5kZXggMDJkMmU3NjJhZjFhOGNiMjJmYzhmNTI5ZTNlNTJhY2YzZjljNmQxMy4uY2MzNjZkMDFh
YTMzNmEwZTk0NTBjMDI3ODQ2YzczZDhmNzZlNDUwZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4td2hlbi1jcm9z
cy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIHN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5
IHdoZW4gc2FtZSBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
cmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVs
bCBVUkwgYmVjYXVzZSB3ZSBhcmUgc2FtZS1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9saWN5LWlm
cmFtZS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwiKTsK
KyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggNGVmOWM1ZGE2Mzc4YjA2MWM0YWI3YjZk
NjYyMGM0N2E4NWIxMzU0MS4uOTBjMWQ0YjA5NGQ2OTEzNDRlOTQ4YzE3YWQ1ODg0ZTM0ODNmZDg4
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOCwxMCArOCwxNSBAQAogZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVu
IGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
ZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZl
cnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBvcmlnaW4s
IG5vdCB0aGUgZnVsbCBVUkwuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIs
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwK
aW5kZXggYzcxMGY5Yjg1NGIxNWVjMDYyNjBmOWNkYjEwMjZhYjAwMTljNTcyMy4uYzgyODNlYmIx
NDY4OGMzMzgwNjk2YzkzNTZiYjM3MTY2MTM0MTM0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1s
CkBAIC04LDEzICs4LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHN0
cmljdC1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMg
dG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFs
cykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsK
ICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZyBiZWNhdXNlIHdlIGFyZSBnb2luZyBm
cm9tIEhUVFBTIHRvIEhUVFAuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIs
ICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJl
c291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3N0cmljdC1vcmlnaW4vc2FtZS1v
cmlnaW4uaHRtbAppbmRleCA5MWFmNjc4NTcwZDQyYWMxNjRkMjA2NzVjYzA5NjNlMjFkMTllN2Fj
Li45NTM1MWM1MDk2MDUwMzE2ZmY1ODEwM2ZhOGI1YjBhMGExOWRiNzhiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvc3RyaWN0LW9yaWdp
bi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXIt
cG9saWN5LWlmcmFtZS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTgsMTAgKzgs
MTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiBy
ZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24o
ZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hv
dWxkIGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwuCiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vu
c2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAt
aHR0cC5odG1sCmluZGV4IDVmY2U5YzRhMTJmYThjODYyMTA4MTRlM2EwZDFhNGE4MzUxYTIyY2Qu
LmNiMGU4ZWMzOTgwYjk2ZDhjYmVhMDNlYjQyNzFkMWIwMGJmZTI1MzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwKQEAgLTgsMTAgKzgsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Yg
dW5zYWZlLXVybCByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVy
OwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3ktaWZy
YW1lL3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIik7CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vu
c2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWwKaW5kZXggYTVlYjc4MDdhMDAxOTk1ZGYzY2Y0ZmM3ZTZlZTQ4MTc5NzI0Njkx
My4uNjA1N2M3NDQ3ZTMyZTAwYTA1MWFlZTZiOWNjMWM0MDUyMGE5MDAzMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwv
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRw
cy5odG1sCkBAIC04LDEzICs4LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9y
IG9mIHVuc2FmZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRU
UFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVy
bmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZWZlcnJlciIsICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3JlZmVycmVyLXBvbGljeS1p
ZnJhbWUvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIik7CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1l
L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5LWlmcmFtZS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggMjFm
MWY0ZTA0N2FjYzY1YWUwNGFlYzZlNzI4ZWE2YmZkZGQ1NTIzMi4uZGVmNWI2NWM5NThiOTU2MmJk
ODA0NDhiMDRhODk0YWE4MjE2YWU2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZWZlcnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS1pZnJhbWUvdW5zYWZlLXVy
bC9zYW1lLW9yaWdpbi5odG1sCkBAIC04LDEwICs4LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMg
dGhlIGJlaGF2aW9yIG9mIHVuc2FmZS11cmwgcmVmZXJyZXIgcG9saWN5IHdoZW4gc2FtZSBvcmln
aW4uIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwog
d2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVu
dC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3VsZCBiZSB0aGUgZnVsbCBVUkwKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZWZl
cnJlci1wb2xpY3ktaWZyYW1lL3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbCIpOworICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJl
ZmVycmVyLXdoZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdy
YWRlL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCA0Yzk0ZjFkZWE0ZGQzNmI2ZDE1
ZjE2N2ZjNjdkM2VhMDBhOTZlNDAzLi4yNTBlMjk2ZTc2ZTdmYWIxODllZmRmM2E5MGI1YTU5Yzcz
NjdhMGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGlj
eS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIt
d2hlbi1kb3duZ3JhZGUvY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdl
ID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7
CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS9uby1y
ZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwiKTsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJl
ci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUv
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCBkNjA1MWNlYWRjMmU3MTVmZThmMmNj
Y2M1ZGQ5MmM2NGQ1NmM4ZWRiLi4zZGExZTU1MzU3NjYwNWZkMjE0MDc0YjRiYTFiMjNiNTc5MGY4
ZWNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9u
by1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdo
ZW4tZG93bmdyYWRlL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcg
QEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygbm8tcmVmZXJyZXItd2hlbi1k
b3duZ3JhZGUgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8g
SFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykK
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBm
dW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAg
ICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4t
ZG93bmdyYWRlL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggN2EyMDVkNzM5NWZjYmI4NzE5ODMxZjgw
ZDViZTYxNjIzYWY3Y2FiYS4uMWQ2ZThlMzExMGNjZjY1ZWRlYTVkNjBjOTU3NjczMjE1NTkyZGRi
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8t
cmVmZXJyZXItd2hlbi1kb3duZ3JhZGUvc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS9z
YW1lLW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhl
IGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIHJlZmVycmVyIHBvbGljeSB3
aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJl
ZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwg
VVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlL3NhbWUt
b3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4t
aHR0cC1odHRwLmh0bWwKaW5kZXggZjIyNzcwMWU5NTg3NWZkNmU5ZmUxNTU4Y2VmYmY2ZDVjMTBk
YWIxNC4uYTM5YmUxZDQ4ODQyNmI1NGIyODdmMmI5MTljNmViOGY2MWRjYjQzOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvY3Jv
c3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVm
ZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAt
OSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBuby1yZWZl
cnJlciByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAg
IC8vIFNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9uby1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIv
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAppbmRleCA4NjM3Zjc4NDMyMjEwZjhkNjVmZTgz
NzRmODJlYTUwMzIyNTYwYTgzLi5iNzYwNDFkOTVmNDg3MzQyMjU4ZTNmOWU1YWVlNWFhN2ZlZjU5
ZGRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9u
by1yZWZlcnJlci9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVyL2Nyb3NzLW9yaWdpbi1odHRw
Lmh0dHBzLmh0bWwKQEAgLTksMTMgKzksMTcgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVo
YXZpb3Igb2Ygbm8tcmVmZXJyZXIgcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZy
b20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93
LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVtcHR5IHN0cmluZwogICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVl
KTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIvc2FtZS1vcmlnaW4u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L25vLXJlZmVycmVy
L3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggZTQzNDExZTE3YmZlZGU2ZjgzYjU2NjIyYzY2NWZhODM5
NjE5ZTlkOC4uY2U3Njk1ZTQ5MmU0MjQzM2MzMzAzMDQwNTRmZDBhZTMzYzAyNzBmNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvbm8tcmVmZXJyZXIv
c2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9uby1yZWZlcnJlci9zYW1lLW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNj
cmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG5vLXJlZmVycmVyIHJlZmVycmVyIHBvbGlj
eSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAg
IHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGVt
cHR5IHN0cmluZwogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kv
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKaW5kZXggMmFmNDJjNDI0NGUxNTc4YTlm
MWNjNjM1NzAwYmMwNDBjYjg2OWM3Ni4uNjBhZjk5MmMwOWI4MjBiNDU2NzkyYzVhOThmNzM5NzRh
ZGNiZWM3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1j
cm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBA
CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4uIik7CiBqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKIAoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGZhbHNlKTsKKwogd2luZG93Lm9ubWVzc2FnZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAg
IC8vIFNob3VsZCBiZSB0aGUgb3JpZ2luLCBub3QgdGhlIGZ1bGwgVVJMLCBiZWNhdXNlIHdlIGFy
ZSBjcm9zcy1vcmlnaW4uCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbAppbmRleCA3ZWU0ODQ3ZGI5YmRjYWY0MzkyZDc1OThkNGFhYmM5YzZiY2YyNTEyLi5hNGNi
YWM3NGU5MWRlYjBjYjYxMTE2YTUxMzZjODZkN2UwN2U3ZjUzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4v
Y3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS9vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0
dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBi
ZWhhdmlvciBvZiBvcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4g
Y3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KHRydWUp
OworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVy
ID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbiwgbm90
IHRoZSBmdWxsIFVSTCwgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My8iKTsKKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpTVGVzdCgpOwogfQogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9y
aWdpbi5odG1sCmluZGV4IDhhODVlMzNjYzgyYzEwMmNmMjkyYjMxZTg5ZGRhOTg0MTQyODU1MmUu
LmM5NGI1MWNlMGZmZDg4YTk0ZTlmNTBmNTc1YzMwMDkwYjgyMTc2Y2IgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9y
aWdpbi9zYW1lLW9yaWdpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L29yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5odG1sCkBAIC05
LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbi13
aGVuLWNyb3NzLW9yaWdpbiByZWZlcnJlciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5h
bHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25t
ZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVm
ZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTCBiZWNhdXNlIHdlIGFyZSBzYW1l
LW9yaWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9yZWZlcnJlci1wb2xpY3kvb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3Nh
bWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50
ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlz
aEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL2Nyb3NzLW9yaWdp
bi1odHRwLWh0dHAuaHRtbAppbmRleCBkZTRjZjIzMjg2Nzg2NzBkYWY0NDZjNzc2MDRmZGQwMTFh
ZDFiOTQzLi41ZTY2ZWUwZDRhMzJmMDVjODFjMTdjNGNjYzk3MzA1ZjYwYmM1ZWRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0bWwKQEAgLTksMTAgKzks
MTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygb3JpZ2luIHJlZmVycmVy
IHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQp
IHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJl
IHRoZSBvcmlnaW4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1v
cmlnaW4taHR0cC5odHRwcy5odG1sCmluZGV4IDBkODkyZWQwZTQ1ZDg5NjdhMWMyMDk2NDZhMTY0
YTZlYTNlYjlkNDEuLjIxMWQ1MzI4MGFmNWI5YzM1MTdmMTQwOGFkMjg0ZmYzMGMyNTQwZWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9j
cm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVmZXJyZXItcG9saWN5L29yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05
LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIG9yaWdpbiBy
ZWZlcnJlciBwb2xpY3kgd2hlbiBjcm9zcyBvcmlnaW4gZnJvbSBIVFRQUyB0byBIVFRQLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQoraWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dEaXNwbGF5T2ZJ
bnNlY3VyZUNvbnRlbnQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGZhbHNlKTsKK30KIAogd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2
ZW50KSB7CiAgICAgcmVmZXJyZXIgPSBldmVudC5kYXRhLnJlZmVycmVyOwogICAgIC8vIFNob3Vs
ZCBiZSB0aGUgb3JpZ2luCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzLyIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAg
ICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L29yaWdpbi9zYW1lLW9yaWdpbi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL3NhbWUtb3JpZ2luLmh0
bWwKaW5kZXggZmU4ODQ1OGRjMmNmYjQyMThlNmVjYjM5MDc2MTk1MDk0YzMxODIyYS4uYjM0ODA0
YTI3YWI5MjUwY2E1YTFjZWRmN2EwMmRlZTkwYzhiZjc0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZp
b3Igb2Ygb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwLyIpOworICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Vu
YWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJy
ZXItcG9saWN5L3NhbWUtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCAx
MGJhZDljNDlmZTE0NzY2ZjQ3NWViYjkwYzUyMGIxYWJhNjNhNGFkLi42ZmQ4NTk4ZTAwMzFmMzE5
YjEzZmJiYTVlNDkxZmQ3ZDBkZjMzODMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC1odHRwLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmln
aW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlw
dGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3
aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93
LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJs
ZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICBy
ZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0
eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAg
ICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggZTUzYjE1NDA5YWFiYjVj
OTJmMGVjNmJlNmEyNDlkMjJmZTA4N2UxNS4uZmM3ZjRkNzNjYmU4YjA0ZGU4YzljMmNjMzMyNTVm
YTI5ODNhZDVkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvc2FtZS1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9jcm9zcy1vcmln
aW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3IEBACiBkZXNjcmlwdGlvbigiVGVzdHMg
dGhlIGJlaGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9y
aWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3
aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50
LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVz
ZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJy
ZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3NhbWUtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5k
ZXggNTViZmQ1NTI1NTAyNjMxMmY1MWRlNTYwYmYxZjY1NDQ1MWE3ODZlMi4uN2M2ZDVhYTNjYjg5
YTU1MWMzNWFiNThmZWRlODhhNmY1NDNlZWIwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc2FtZS1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1l
LW9yaWdpbi5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJl
aGF2aW9yIG9mIHNhbWUtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIp
OwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlu
dGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRv
dy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0
YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMIGJlY2F1c2Ugd2UgYXJl
IHNhbWUtb3JpZ2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS9zYW1lLW9yaWdpbi9zYW1lLW9yaWdp
bi5odG1sIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3Qo
KTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4t
aHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9z
dHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRt
bAppbmRleCA2NWY4MzQ2NGE0OWNkYTBmMmZkMDg0NTVjZmEzOWVjOTg4NjI1ZDRkLi44NWJlMjUy
MTNiZjg4NDY4ZmJhY2Y4M2IzMWEwNGM2Y2IwOTIxNDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3Nz
LW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRl
c3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIHJlZmVy
cmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwog
CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZl
bnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxk
IGJlIHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwsIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLW9y
aWdpbi4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9y
aWdpbi1odHRwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBv
bGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwKaW5kZXggMzNmOWZiMzcxMGM1NTc0ZjU5OTQ0MmUzMzVkOGVhNjJkMjY0MDQ2NS4u
ODk2NjczYjQwZjdlMjQ0OWQ5MWI2MjVlNmUwM2I0NjcwZGE1MDNjOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNy
b3NzLW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmln
aW4vY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3Jp
cHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3Jp
Z2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNyb3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAu
Iik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAo
d2luZG93LmludGVybmFscykgewogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3Bs
YXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOworfQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rp
b24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8g
U2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcgYmVjYXVzZSB3ZSBhcmUgY3Jvc3Mtb3JpZ2luIGFu
ZCBnb2luZyBmcm9tIEhUVFBTIHRvIEhUVFAuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJy
ZWZlcnJlciIsICIiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgaW50ZXJu
YWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZpbmlzaEpT
VGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3Jp
Z2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qt
b3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKaW5kZXggY2FkODYxYjQz
ZGQ5NzM3ZjFjZDY3OGRjZTRlMTU1ZDIzZGNmMWMwZi4uMWFhM2I1Y2FkYjMzM2E0MzVlYjk3ODFi
ZjJhM2JhYjM1YjEzYmZlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZl
cnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1v
cmlnaW4td2hlbi1jcm9zcy1vcmlnaW4vc2FtZS1vcmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBA
QAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luLXdoZW4t
Y3Jvc3Mtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwoganNUZXN0
SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5z
ZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJl
cjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMIGJlY2F1c2Ugd2UgYXJlIHNhbWUtb3Jp
Z2luLgogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2lu
L3NhbWUtb3JpZ2luLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLWh0
dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1v
cmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCmluZGV4IDY3ZGY0NGZmNGIzNTkzYmY4
ZTEyMTA2MDIwMjAzNTVhZDA4OWVhMWQuLmM0NmJkZjE5YmUxOTk0MTI1NjA5YjE2NTQ0MTZjMzNi
MDI2NjliNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9s
aWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3JpZ2luLWh0dHAtaHR0cC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mtb3Jp
Z2luLWh0dHAtaHR0cC5odG1sCkBAIC05LDEwICs5LDE1IEBACiBkZXNjcmlwdGlvbigiVGVzdHMg
dGhlIGJlaGF2aW9yIG9mIHN0cmljdC1vcmlnaW4gcmVmZXJyZXIgcG9saWN5IHdoZW4gY3Jvc3Mg
b3JpZ2luLiIpOwoganNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7
CisKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0g
ZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIG9yaWdpbiwgbm90IHRo
ZSBmdWxsIFVSTC4KICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlZmVycmVyIiwgImh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC8iKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qtb3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS9zdHJpY3Qt
b3JpZ2luL2Nyb3NzLW9yaWdpbi1odHRwLmh0dHBzLmh0bWwKaW5kZXggODNiZmM5YTU2ZWMxMzNm
NjNjYzZkNzdlMjcyN2IzNzdkOWVlN2Y4MS4uZWE2OGRmMzI3Zjk4YmNhZmRmOTc2MGEzYzg3YTE0
MzRjM2U1Mjk5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1w
b2xpY3kvc3RyaWN0LW9yaWdpbi9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmlnaW4vY3Jvc3Mt
b3JpZ2luLWh0dHAuaHR0cHMuaHRtbApAQCAtOSwxMyArOSwxNyBAQAogZGVzY3JpcHRpb24oIlRl
c3RzIHRoZSBiZWhhdmlvciBvZiBzdHJpY3Qtb3JpZ2luIHJlZmVycmVyIHBvbGljeSB3aGVuIGNy
b3NzIG9yaWdpbiBmcm9tIEhUVFBTIHRvIEhUVFAuIik7CiBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
IAotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCitpZiAod2luZG93LmludGVybmFscykgewogICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCh0cnVlKTsK
KyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFsc2UpOwor
fQogCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJlciA9
IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBlbXB0eSBzdHJpbmcg
YmVjYXVzZSB3ZSBhcmUgZ29pbmcgZnJvbSBIVFRQUyB0byBIVFRQLgogICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygicmVmZXJyZXIiLCAiIik7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCh0cnVlKTsK
ICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdpbi9zYW1lLW9yaWdpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvc3RyaWN0LW9yaWdp
bi9zYW1lLW9yaWdpbi5odG1sCmluZGV4IDU1Y2YyN2FkZDFiZWY2YWE0NTE4MWExMWU0ZGQwNzFi
N2Q1OWE2ZDkuLmE2NmY0NzFmYmRhZjMwYzY4MThhMGMzYzkyNjQ1NTM5NWM2YWFmOTQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3N0cmljdC1vcmln
aW4vc2FtZS1vcmlnaW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS9zdHJpY3Qtb3JpZ2luL3NhbWUtb3JpZ2luLmh0bWwKQEAgLTksMTAgKzksMTUgQEAK
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygc3RyaWN0LW9yaWdpbiByZWZlcnJl
ciBwb2xpY3kgd2hlbiBzYW1lIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VuYWJsZWQoZmFsc2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQp
IHsKICAgICByZWZlcnJlciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJl
IHRoZSBvcmlnaW4sIG5vdCB0aGUgZnVsbCBVUkwuCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvIik7CisgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5h
YmxlZCh0cnVlKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9jcm9z
cy1vcmlnaW4taHR0cC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVy
LXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAppbmRleCBiYmE0
MmJhODhiN2EyNGU0OWU3MzI5OWZiMjA3ZWY5ZGVkMGE4ODgzLi4wZTMyYTE4NGRjNDdjYTU4ZDY4
ZTQ0ZWVkYjE2YTNiNDViOGU3ZjI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Ny
b3NzLW9yaWdpbi1odHRwLWh0dHAuaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBiZWhhdmlvciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIGNy
b3NzIG9yaWdpbi4iKTsKIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoZmFs
c2UpOworCiB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICByZWZlcnJl
ciA9IGV2ZW50LmRhdGEucmVmZXJyZXI7CiAgICAgLy8gU2hvdWxkIGJlIHRoZSBmdWxsIFVSTAog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygicmVmZXJyZXIiLCAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1odHRwLWh0dHAuaHRt
bCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vu
c2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvY3Jvc3Mtb3JpZ2luLWh0dHAuaHR0cHMu
aHRtbAppbmRleCBmZmNkNmU3NDFiYTM5MWUwMjY2ZGIwZDc3YTlkNmJlMThjNzg2NjYyLi4wMGU4
ZGQwMzdmNWE1OGNjYmU5YmFjNmNmMDdmMTBkNjFlYWQ2ZGIxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdpbi1o
dHRwLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZWZlcnJlci1wb2xp
Y3kvdW5zYWZlLXVybC9jcm9zcy1vcmlnaW4taHR0cC5odHRwcy5odG1sCkBAIC05LDEzICs5LDE3
IEBACiBkZXNjcmlwdGlvbigiVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHVuc2FmZS11cmwgcmVmZXJy
ZXIgcG9saWN5IHdoZW4gY3Jvc3Mgb3JpZ2luIGZyb20gSFRUUFMgdG8gSFRUUC4iKTsKIGpzVGVz
dElzQXN5bmMgPSB0cnVlOwogCi1pZiAod2luZG93LmludGVybmFscykKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93RGlzcGxheU9mSW5zZWN1
cmVDb250ZW50KHRydWUpOworICAgIGludGVybmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZChmYWxzZSk7Cit9CiAKIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkg
ewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5yZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUg
dGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRw
czovLzEyNy4wLjAuMTo4NDQzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL2Nyb3NzLW9yaWdp
bi1odHRwLmh0dHBzLmh0bWwiKTsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
aW50ZXJuYWxzLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKHRydWUpOwogICAgIGZp
bmlzaEpTVGVzdCgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
ZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3JlZmVycmVyLXBvbGljeS91bnNhZmUtdXJsL3NhbWUtb3JpZ2luLmh0bWwKaW5k
ZXggZjZiOTdhNzM0NTdlYTkzZDY1MTE3MjNiNzEwZjYyYjlhNWRjMzJiZi4uNmY3YTA3MDQ1ZWQ5
NjQ5YjliZDk1ZDVkYzRlNTIwODhhZTUwMjIzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZWZlcnJlci1wb2xpY3kvdW5zYWZlLXVybC9zYW1lLW9yaWdpbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVmZXJyZXItcG9saWN5L3Vuc2FmZS11cmwvc2FtZS1v
cmlnaW4uaHRtbApAQCAtOSwxMCArOSwxNSBAQAogZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBiZWhh
dmlvciBvZiB1bnNhZmUtdXJsIHJlZmVycmVyIHBvbGljeSB3aGVuIHNhbWUgb3JpZ2luLiIpOwog
anNUZXN0SXNBc3luYyA9IHRydWU7CiAKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChmYWxzZSk7CisKIHdpbmRvdy5v
bm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgIHJlZmVycmVyID0gZXZlbnQuZGF0YS5y
ZWZlcnJlcjsKICAgICAvLyBTaG91bGQgYmUgdGhlIGZ1bGwgVVJMCiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJyZWZlcnJlciIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVmZXJyZXItcG9s
aWN5L3Vuc2FmZS11cmwvc2FtZS1vcmlnaW4uaHRtbCIpOworICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICBpbnRlcm5hbHMuc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
dHJ1ZSk7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9j
dW1lbnQtcmVmZXJyZXItbmVzdGVkLXRoaXJkLXBhcnR5LWlmcmFtZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRv
Y3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJlNmIzMDdmZDUwMzQ2NzhmNjFiOTk2YjI1ZTFiMGZlZmNmNjYxNjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJhbWUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3RzIHRoYXQgZG9jdW1lbnQucmVmZXJy
ZXIgaXMgZG93bmdyYWRlZCBpbiBuZXN0ZWQgdGhpcmQtcGFydHkgaWZyYW1lcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQucmVmZXJyZXIgaXMgaHR0cDov
LzEyNy4wLjAuMTo4MDAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFy
dHktaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVyLW5lc3RlZC10aGlyZC1wYXJ0eS1pZnJh
bWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZTFlMjNhMGYzZTg5N2Y5ZmQ4OTlhMWIzZTgyNWM2YTRlN2Nk
Y2FjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci1uZXN0ZWQtdGhpcmQtcGFy
dHktaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCBpbiBuZXN0
ZWQgdGhpcmQtcGFydHkgaWZyYW1lcy4iKTsKKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7CisgICAgICAgIGlmIChldmVudC5v
cmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICBpZiAoZXZl
bnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIp
KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBhIG1l
c3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVzdCk7CisgICAgfQorCisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2Up
OworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJhc2UodHJ1ZSk7CisgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25lc3QtaWZyYW1lLXJlcG9ydC1kb2N1
bWVudC1yZWZlcnJlci5odG1sIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJy
ZXItdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9kb3duZ3JhZGUtZG9jdW1lbnQtcmVmZXJyZXItdGhp
cmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjJhYzcyNzI3ODUyMjE1
MTMwYjViOWMxNGRjYjk0YmU5YjNlNDJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZl
cnJlci10aGlyZC1wYXJ0eS1pZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3RzIHRoYXQgZG9jdW1lbnQucmVmZXJyZXIgaXMgZG93bmdyYWRlZCBpbiB0aGlyZC1wYXJ0eSBp
ZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5y
ZWZlcnJlciBpcyBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvZG93bmdyYWRlLWRvY3VtZW50LXJlZmVycmVy
LXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1wYXJ0eS1p
ZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjRkMTFmY2RjOWYyZTg4MWE5ZjU0MDE5MmI3NDg2N2Zj
ZmViMDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL2Rvd25ncmFkZS1kb2N1bWVudC1yZWZlcnJlci10aGlyZC1wYXJ0eS1p
ZnJhbWUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBkb2N1bWVudC5yZWZlcnJlciBpcyBkb3duZ3JhZGVkIGluIHRoaXJkLXBh
cnR5IGlmcmFtZXMuIik7CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBmdW5jdGlv
biByZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICBpZiAoZXZlbnQub3JpZ2luID09PSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIikgeworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuaW5k
ZXhPZigiUEFTUyIpID09PSAtMSkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRh
dGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJQQVNTICIsICIiKSk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiUmVjZWl2ZWQgYSBtZXNzYWdlIGZyb20g
YW4gdW5leHBlY3RlZCBvcmlnaW46ICIgKyBldmVudC5vcmlnaW4pOworICAgICAgICBzZXRFbmFi
bGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworICAgIH0KKworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgcmVjZWl2ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0UnVubmVyKSB7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZUlUUERhdGFiYXNlKHRydWUpOworICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZSh0cnVlLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBsZXQgaWZyYW1l
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAg
ICAgIGlmcmFtZUVsZW1lbnQuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbCI7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWVFbGVtZW50KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXItYWxvbmUtdGhpcmQtcGFydHkt
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJlci1hbG9uZS10aGlyZC1wYXJ0
eS1pZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMzZkYWM5YTQxMDA0MjkwZDYyMGQ4
OGIyYmNlNjliYTdkNTM1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvbGVhdmUtZW1wdHktZG9jdW1lbnQtcmVmZXJyZXIt
YWxvbmUtdGhpcmQtcGFydHktaWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitU
ZXN0cyB0aGF0IGFuIGVtcHR5IGRvY3VtZW50LnJlZmVycmVyIGlzIGxlZnQgYWxvbmUgaW4gdGhp
cmQtcGFydHkgaWZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZG9jdW1lbnQucmVmZXJyZXIgaXMgW2VtcHR5XQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJlci1h
bG9uZS10aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9sZWF2ZS1lbXB0eS1kb2N1bWVudC1yZWZlcnJlci1hbG9uZS10
aGlyZC1wYXJ0eS1pZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODVlYWRhODE0ZDQ0MzU1NmE1YjAy
ZjdjZjgwODE2MzFiNjY1Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL2xlYXZlLWVtcHR5LWRvY3VtZW50LXJlZmVycmVy
LWFsb25lLXRoaXJkLXBhcnR5LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRp
bC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2Ny
aXB0PgorICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGFuIGVtcHR5IGRvY3VtZW50LnJlZmVy
cmVyIGlzIGxlZnQgYWxvbmUgaW4gdGhpcmQtcGFydHkgaWZyYW1lcy4iKTsKKyAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgIGZ1bmN0aW9uIHJlY2VpdmVNZXNzYWdlKGV2ZW50KSB7Cisg
ICAgICAgIGlmIChldmVudC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7Cisg
ICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5pbmRleE9mKCJQQVNTIikgPT09IC0xKQorICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YS5yZXBsYWNlKCJGQUlMICIsICIiKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJl
cGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFp
bGVkKCJSZWNlaXZlZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2
ZW50Lm9yaWdpbik7CisgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZpbmlzaEpTVGVz
dCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCByZWNl
aXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlSVRQRGF0YWJh
c2UodHJ1ZSk7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKHRydWUsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGxldCBpZnJhbWVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaWZyYW1lIik7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5yZWZlcnJlclBv
bGljeSA9ICJuby1yZWZlcnJlciI7CisgICAgICAgICAgICAgICAgaWZyYW1lRWxlbWVudC5zcmMg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3JlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5odG1sIjsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZUVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9yZXNvdXJjZXMvbmVz
dC1pZnJhbWUtcmVwb3J0LWRvY3VtZW50LXJlZmVycmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25lc3QtaWZyYW1lLXJlcG9y
dC1kb2N1bWVudC1yZWZlcnJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3ZDFjNGVmZmMyZDdiYWFkOWQ2
MmJjZjU0ZGFiOGYxMDFjN2M5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL25lc3QtaWZyYW1lLXJlcG9y
dC1kb2N1bWVudC1yZWZlcnJlci5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlcG9ydC1kb2N1
bWVudC1yZWZlcnJlci5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3JlcG9ydC1kb2N1bWVudC1yZWZlcnJlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy9yZXBvcnQtZG9jdW1lbnQtcmVmZXJyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2RlYzAxMzcy
ODljN2Y2ZGZjYWUzODBiNDFmYWE5YTRjNDEyZDkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNlcy9yZXBvcnQt
ZG9jdW1lbnQtcmVmZXJyZXIuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgdG9wLnBvc3RN
ZXNzYWdlKCJQQVNTIGRvY3VtZW50LnJlZmVycmVyIGlzICIgKyAoZG9jdW1lbnQucmVmZXJyZXIg
PT09ICIiID8gIltlbXB0eV0iIDogZG9jdW1lbnQucmVmZXJyZXIpLCAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>