<?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>219298</bug_id>
          
          <creation_ts>2020-11-26 11:45:33 -0800</creation_ts>
          <short_desc>Add support for readable/writable to RTCRtpSFrameTransform</short_desc>
          <delta_ts>2020-12-01 01:44:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1710177</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-26 11:45:33 -0800</bug_when>
    <thetext>Add support for readable/writable to RTCRtpSFrameTransform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710178</commentid>
    <comment_count>1</comment_count>
      <attachid>414908</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-26 11:49:02 -0800</bug_when>
    <thetext>Created attachment 414908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710233</commentid>
    <comment_count>2</comment_count>
      <attachid>414919</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 00:46:51 -0800</bug_when>
    <thetext>Created attachment 414919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710236</commentid>
    <comment_count>3</comment_count>
      <attachid>414921</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 01:04:49 -0800</bug_when>
    <thetext>Created attachment 414921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710241</commentid>
    <comment_count>4</comment_count>
      <attachid>414925</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 01:34:35 -0800</bug_when>
    <thetext>Created attachment 414925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710245</commentid>
    <comment_count>5</comment_count>
      <attachid>414927</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 01:59:45 -0800</bug_when>
    <thetext>Created attachment 414927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710257</commentid>
    <comment_count>6</comment_count>
      <attachid>414932</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 02:52:06 -0800</bug_when>
    <thetext>Created attachment 414932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710260</commentid>
    <comment_count>7</comment_count>
      <attachid>414934</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 03:03:59 -0800</bug_when>
    <thetext>Created attachment 414934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710966</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-01 00:54:12 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 414934 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710967</commentid>
    <comment_count>9</comment_count>
      <attachid>415109</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-01 00:58:41 -0800</bug_when>
    <thetext>Created attachment 415109
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710978</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-01 01:43:24 -0800</bug_when>
    <thetext>Committed r270290: &lt;https://trac.webkit.org/changeset/270290&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415109.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710979</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-01 01:44:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/71842461&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414908</attachid>
            <date>2020-11-26 11:49:02 -0800</date>
            <delta_ts>2020-11-27 01:34:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201126204901.patch</filename>
            <type>text/plain</type>
            <size>41224</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYwNWZhZDZiNmFjNGNh
OWUyMjllZTY5Mzk0MDU5MmJmOTAyYmE1Mi4uNzc3MTFiNThmYjcyYzdmNTZlZDZjYWNiYTZiYmIy
YTYxYjllMzVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIwLTExLTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbG9ja2lu
ZyBXcml0YWJsZVN0cmVhbSBhbmQgY2hlY2tpbmcgbG9ja2VkIHN0YXRlLgorICAgICAgICBBZGQg
cmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyBzbyB0aGF0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBj
YW4gYmUgdXNlZCBhcyBhIFRyYW5zZm9ybVN0cmVhbS4KKyAgICAgICAgTWFrZSBhIHJlZmFjdG9y
aW5nIHRvIGFsbG93IHJldXNlIG9mIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlIGFuZCBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsuCisKKyAgICAgICAgSW4gY2FzZSBvZiBlbmNyeXB0aW9uL2Rl
Y3J5cHRpb24gZXJyb3IsIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtIGFzIHRoaXMgaXMg
ZmluYWwuCisgICAgICAgIEluc3RlYWQsIHdlIG91dHB1dCBlbXB0eSBidWZmZXJzLgorICAgICAg
ICBJbiBjYXNlIG9mIHRyeWluZyB0byBlbmNyeXB0IHVuZXhwZWN0ZWQgb2JqZWN0cywgd2UgZXJy
b3IgdGhlIHRyYW5zZm9ybS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVzdC4KKwor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRh
Y2hlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06Omlu
aXRpYWxpemVUcmFuc2Zvcm1lcik6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OndpbGxDbGVhckJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNmb3JtRnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGVTdHJl
YW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6cmVhZGFibGUp
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp3cml0YWJsZSk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0RW5jcnlwdGlvbktleSk6
CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6ZGVjcnlwdEZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJh
bWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnRyYW5zZm9y
bSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dXBkYXRlQXV0
aGVudGljYXRpb25TaXplKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6c2V0SXNFbmNyeXB0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjpzZXRBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dXBkYXRlQXV0aGVudGljYXRpb25TaXplKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydFN0cmVh
bXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVG
cmFtZS5oOgorICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y2xvc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmVucXVldWUpOgor
ICAgICAgICAqIE1vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5r
KToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6d3JpdGUpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldyaXRhYmxlU3RyZWFtSW50ZXJuYWw6OmNhbGxGdW5jdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpjaGVja1dyaXRhYmxlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldyaXRhYmxlU3Ry
ZWFtOjpsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OldyaXRhYmxlU3RyZWFtOjppc0xvY2tlZCBj
b25zdCk6CisgICAgICAgICogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5j
bHVkZXNGb3JJRExUeXBlKToKKwogMjAyMC0xMS0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihTVFAxMTYpOiB3cHQubGl2ZS93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbCBjcmFzaGVzIG9uIGxvYWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtLmNwcAppbmRleCAzYmM2NTAwZGRkNTQ3ZmY4NDZjYmQ0ZTU3ZDQ4N2NhYjU1Y2VlNmFk
Li45MDhiYjY4ZjljYjVmYWMzOTI4NDk4ODZiOGM5ZDhhM2EyYWVlZTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm0uY3BwCkBAIC0yOSwxNiArMjksMjcgQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAog
I2luY2x1ZGUgIkNyeXB0b0tleVJhdy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNv
dXJjZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9G
cmFtZS5oIgorI2luY2x1ZGUgIlJUQ0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXIuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5k
LmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW0uaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCisjaW5jbHVk
ZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKQotICAgIDogbV90cmFuc2Zv
cm1lcihSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCkpCitSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBPcHRpb25zIG9wdGlvbnMpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigm
Y29udGV4dCkKKyAgICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNy
ZWF0ZSgpKQogeworICAgIG1fdHJhbnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhvcHRpb25zLnJv
bGUgPT0gUm9sZTo6RW5jcnlwdCk7CisgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRp
b25TaXplKG9wdGlvbnMuYXV0aGVudGljYXRpb25TaXplKTsKIH0KIAogUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtOjp+UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCkKQEAgLTY3LDExICs3OCwyMyBAQCB1aW50
NjRfdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNvdW50ZXJGb3JUZXN0aW5nKCkgY29uc3QKICAg
ICByZXR1cm4gbV90cmFuc2Zvcm1lci0+Y291bnRlcigpOwogfQogCitib29sIFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybTo6aXNBdHRhY2hlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNBdHRhY2hl
ZCB8fCAobV9yZWFkYWJsZSAmJiBtX3JlYWRhYmxlLT5pc0xvY2tlZCgpKSB8fCAobV93cml0YWJs
ZSAmJiBtX3dyaXRhYmxlLT5pc0xvY2tlZCgpKTsKK30KKwogdm9pZCBSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNr
ZW5kLCBTaWRlIHNpZGUpCiB7CisgICAgQVNTRVJUKCFpc0F0dGFjaGVkKCkpOworCiAgICAgbV9p
c0F0dGFjaGVkID0gdHJ1ZTsKLSAgICBtX3RyYW5zZm9ybWVyLT5zZXRJc1NlbmRpbmcoc2lkZSA9
PSBTaWRlOjpTZW5kZXIpOwotICAgIG1fdHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlv
KGJhY2tlbmQubWVkaWFUeXBlKCkgPT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBl
OjpBdWRpbyk7CisgICAgaWYgKG1fcmVhZGFibGUpCisgICAgICAgIG1fcmVhZGFibGUtPmxvY2so
KTsKKyAgICBpZiAobV93cml0YWJsZSkKKyAgICAgICAgbV93cml0YWJsZS0+bG9jaygpOworCisg
ICAgbV90cmFuc2Zvcm1lci0+c2V0SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6U2VuZGVyKTsK
KyAgICBtX3RyYW5zZm9ybWVyLT5zZXRBdXRoZW50aWNhdGlvblNpemUoYmFja2VuZC5tZWRpYVR5
cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlvID8gNCA6IDEw
KTsKIAogICAgIGJhY2tlbmQuc2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3RyYW5zZm9y
bWVyID0gbV90cmFuc2Zvcm1lciwgYmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCldKGF1dG8mJiBm
cmFtZSkgewogICAgICAgICBhdXRvIGNodW5rID0gZnJhbWUtPmRhdGEoKTsKQEAgLTg4LDcgKzEx
MSw2IEBAIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFsaXplVHJhbnNmb3JtZXIo
UlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuCiAgICAgfSk7CiB9CiAKLQogdm9pZCBSVENS
dHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9yUmVjZWl2ZXIoUlRDUnRwVHJh
bnNmb3JtQmFja2VuZCYgYmFja2VuZCkKIHsKICAgICBpbml0aWFsaXplVHJhbnNmb3JtZXIoYmFj
a2VuZCwgU2lkZTo6UmVjZWl2ZXIpOwpAQCAtMTAyLDcgKzEyNCw5NCBAQCB2b2lkIFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybTo6aW5pdGlhbGl6ZUJhY2tlbmRGb3JTZW5kZXIoUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZCYgYgogdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OndpbGxDbGVhckJhY2tlbmQo
UlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkKIHsKICAgICBiYWNrZW5kLmNsZWFyVHJh
bnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soKTsKLSAgICBtX2lzQXR0YWNoZWQgPSBmYWxzZTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgRnJhbWU+Cit2b2lkIHRyYW5zZm9ybUZyYW1lKEZyYW1lJiBm
cmFtZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXImIHRyYW5zZm9ybWVyLCBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZSYgc291cmNlKQor
eworICAgIGF1dG8gY2h1bmsgPSBmcmFtZS5pbnRlcm5hbEZyYW1lKCkuZGF0YSgpOworICAgIGF1
dG8gcmVzdWx0ID0gdHJhbnNmb3JtZXIudHJhbnNmb3JtKGNodW5rLmRhdGEsIGNodW5rLnNpemUp
OworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKHJlc3VsdC5oYXNFeGNlcHRpb24oKSwgV2ViUlRD
LCAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIGZhaWxlZCB0cmFuc2Zvcm1pbmcgYSBmcmFtZSIpOwor
CisgICAgUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpEYXRhIHRyYW5zZm9ybWVkQ2h1bms7Cisg
ICAgLy8gSW4gY2FzZSBvZiBlcnJvciwgd2UganVzdCBwYXNzIGFsb25nIHRoZSBmcmFtZSB3aXRo
IGVtcHR5IGRhdGEuCisgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHRy
YW5zZm9ybWVkQ2h1bmsgPSB7IHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJl
dHVyblZhbHVlKCkuc2l6ZSgpIH07CisKKyAgICBmcmFtZS5pbnRlcm5hbEZyYW1lKCkuc2V0RGF0
YSh0cmFuc2Zvcm1lZENodW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmpl
Y3QsICZnbG9iYWxPYmplY3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4KK3ZvaWQgdHJhbnNm
b3JtRnJhbWUoSlNDOjpBcnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IHRyYW5zZm9y
bWVyLnRyYW5zZm9ybShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFsdWUuZGF0YSgpKSwg
dmFsdWUuYnl0ZUxlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihyZXN1bHQuaGFz
RXhjZXB0aW9uKCksIFdlYlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBmYWlsZWQgdHJhbnNm
b3JtaW5nIGEgZnJhbWUiKTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0Lmhhc0V4Y2VwdGlv
bigpID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3Vs
dC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpKTsKKyAg
ICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGJ1ZmZl
ci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lkIFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybTo6Y3JlYXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0g
KnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICBtX3JlYWRh
YmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZSgpOwor
ICAgIGF1dG8gcmVhZGFibGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
bV9yZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChyZWFkYWJsZS5oYXNF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0YWJsZSA9IFdyaXRh
YmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6
OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJsZVN0cmVhbVNvdXJj
ZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+
IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmplY3QoKSk7CisgICAg
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsK
KworICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlciwg
SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29k
ZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAgICBpZiAoc2NvcGUu
ZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNl
cHRpb25FcnJvciB9OworCisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IGFueSBleGNlcHRpb24g
dG8gbWFrZSBzdXJlIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtLgorICAgICAgICBXVEY6
OnN3aXRjaE9uKGZyYW1lLCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiYgdmFsdWUp
IHsKKyAgICAgICAgICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xvYmFsT2JqZWN0LCB0cmFu
c2Zvcm1lci5nZXQoKSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAgICAgICAgfSwgWyZdKFJl
ZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7CisgICAgICAgICAgICB0cmFuc2Zv
cm1GcmFtZSgqdmFsdWUsIGdsb2JhbE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpyZWFkYWJs
ZVN0cmVhbVNvdXJjZSk7CisgICAgICAgIH0sIFsmXShSZWZQdHI8QXJyYXlCdWZmZXI+JiB2YWx1
ZSkgeworICAgICAgICAgICAgdHJhbnNmb3JtRnJhbWUoKnZhbHVlLCBnbG9iYWxPYmplY3QsIHRy
YW5zZm9ybWVyLmdldCgpLCAqcmVhZGFibGVTdHJlYW1Tb3VyY2UpOworICAgICAgICB9KTsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICB9KSk7CisgICAgaWYgKHdyaXRhYmxlLmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlYWRhYmxlID0gcmVhZGFibGUucmVsZWFz
ZVJldHVyblZhbHVlKCk7CisgICAgbV93cml0YWJsZSA9IHdyaXRhYmxlLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOworICAgIGlmIChtX2lzQXR0YWNoZWQpIHsKKyAgICAgICAgbV9yZWFkYWJsZS0+bG9j
aygpOworICAgICAgICBtX3dyaXRhYmxlLT5sb2NrKCk7CisgICAgfQorfQorCitFeGNlcHRpb25P
cjxSZWZQdHI8UmVhZGFibGVTdHJlYW0+PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OnJlYWRhYmxl
KCkKK3sKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH07CisKKyAgICBpZiAoIW1fcmVhZGFibGUpCisgICAgICAgIGNyZWF0ZVN0cmVhbXMoKTsK
KworICAgIHJldHVybiBtX3JlYWRhYmxlLmNvcHlSZWYoKTsKK30KKworRXhjZXB0aW9uT3I8UmVm
UHRyPFdyaXRhYmxlU3RyZWFtPj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp3cml0YWJsZSgpCit7
CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAo
IWNvbnRleHQpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
OworCisgICAgaWYgKCFtX3dyaXRhYmxlKQorICAgICAgICBjcmVhdGVTdHJlYW1zKCk7CisKKyAg
ICByZXR1cm4gbV93cml0YWJsZS5jb3B5UmVmKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5oCmluZGV4IGQ0N2RiOWIyOWM4YTZiZDU3OGNlMjMxYWEzMWI1
NjlhMDlhZTg1YzcuLmFiNDhmMmQwY2VkNTgyZDE1NDI2ZWE3YTdiNDA3N2VkYjQ4MDg1M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm0uaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9S
VEMpCiAKKyNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUg
IkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDI5
ICszNSw0NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDcnlwdG9LZXk7CiBjbGFzcyBS
VENSdHBTRnJhbWVUcmFuc2Zvcm1lcjsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ7Citj
bGFzcyBSZWFkYWJsZVN0cmVhbTsKK2NsYXNzIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOwor
Y2xhc3MgV3JpdGFibGVTdHJlYW07CiAKLWNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSA6IHB1
YmxpYyBSZWZDb3VudGVkPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4geworY2xhc3MgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiwg
cHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKTsgfQorICAgIGVudW0gY2xhc3MgUm9sZSB7IEVuY3J5
cHQsIERlY3J5cHQgfTsKKyAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIFJvbGUgcm9sZSB7
IFJvbGU6OkVuY3J5cHQgfTsKKyAgICAgICAgdWludDY0X3QgYXV0aGVudGljYXRpb25TaXplIHsg
MTAgfTsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKGNvbnRleHQsIG9wdGlv
bnMpKTsgfQogICAgIH5SVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKIAogICAgIHZvaWQgc2V0RW5j
cnlwdGlvbktleShDcnlwdG9LZXkmLCBPcHRpb25hbDx1aW50NjRfdD4sIERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKIAotICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNBdHRhY2hlZDsgfQorICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0OwogICAgIHZvaWQgaW5p
dGlhbGl6ZUJhY2tlbmRGb3JSZWNlaXZlcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAgICAg
dm9pZCBpbml0aWFsaXplQmFja2VuZEZvclNlbmRlcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7
CiAgICAgdm9pZCB3aWxsQ2xlYXJCYWNrZW5kKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHVpbnQ2NF90IGNvdW50ZXJGb3JUZXN0aW5nKCkgY29uc3Q7CiAK
KyAgICBFeGNlcHRpb25PcjxSZWZQdHI8UmVhZGFibGVTdHJlYW0+PiByZWFkYWJsZSgpOworICAg
IEV4Y2VwdGlvbk9yPFJlZlB0cjxXcml0YWJsZVN0cmVhbT4+IHdyaXRhYmxlKCk7CisKIHByaXZh
dGU6Ci0gICAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCk7CisgICAgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBPcHRpb25zKTsKIAogICAgIGVudW0gY2xhc3Mg
U2lkZSB7IFNlbmRlciwgUmVjZWl2ZXIgfTsKICAgICB2b2lkIGluaXRpYWxpemVUcmFuc2Zvcm1l
cihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiwgU2lkZSk7CisgICAgdm9pZCBjcmVhdGVTdHJlYW1z
KCk7CiAKICAgICBib29sIG1faXNBdHRhY2hlZCB7IGZhbHNlIH07CiAgICAgUmVmPFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyPiBtX3RyYW5zZm9ybWVyOworICAgIFJlZlB0cjxSZWFkYWJsZVN0cmVh
bT4gbV9yZWFkYWJsZTsKKyAgICBSZWZQdHI8V3JpdGFibGVTdHJlYW0+IG1fd3JpdGFibGU7Cisg
ICAgUmVmUHRyPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBtX3JlYWRhYmxlU3RyZWFtU291
cmNlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRs
CmluZGV4IDI2NDI4ZGQ5MmY1MTU5ZDNlOTIyYjUxMGU0ZGUwNzU2NjdhOTEyYWUuLmIzM2I5MDQ0
MGYxMjY0ZGI4ODhmMzhkY2EzNjdhMDNjYTU5OWIyM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5p
ZGwKQEAgLTIzLDE4ICsyMywzMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCitlbnVtIFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybVJvbGUgeworICAgICJlbmNyeXB0IiwKKyAgICAiZGVjcnlwdCIKK307
CisKK2RpY3Rpb25hcnkgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtT3B0aW9ucyB7CisgICAgUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtUm9sZSByb2xlID0gImVuY3J5cHQiOworICAgIHVuc2lnbmVkIGxvbmcg
YXV0aGVudGljYXRpb25TaXplID0gMTA7Cit9OworCiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX1JU
QywKICAgICBFbmFibGVkQnlTZXR0aW5nPVdlYlJUQ0luc2VydGFibGVTdHJlYW1zLAogICAgIEV4
cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogICAgIEV4cG9zZWQ9V2luZG93LAotICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAogXSBp
bnRlcmZhY2UgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIHsKLSAgICBjb25zdHJ1Y3RvcigpOworICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBjb25zdHJ1Y3RvcihvcHRpb25hbCBS
VENSdHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgUHJvbWlzZTx1bmRl
ZmluZWQ+IHNldEVuY3J5cHRpb25LZXkoQ3J5cHRvS2V5IGtleSwgb3B0aW9uYWwgdW5zaWduZWQg
bG9uZyBsb25nIGtleUlEKTsKICAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIG1pc3Npbmcg
bWV0aG9kcy4KICAgICAvLyBQcm9taXNlPHVuZGVmaW5lZD4gcmF0Y2hldEVuY3J5cHRpb25LZXko
KTsKICAgICAvLyBQcm9taXNlPHVuZGVmaW5lZD4gc2V0U2lnbmluZ0tleShDcnlwdG9LZXkga2V5
KTsKKworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFJlYWRhYmxl
U3RyZWFtIHJlYWRhYmxlOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmli
dXRlIFdyaXRhYmxlU3RyZWFtIHdyaXRhYmxlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5j
cHAKaW5kZXggOTgwOGZkOWFiMjdiY2UxMGY3YzE2NWUzZGY5MmRiMTU5NTM5MjcxYS4uYzkyMzZm
ZTY1NDQxNzRlNGVmZmVmYWZjYjkxMDZkOGFiZTQ0YjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lci5jcHAKQEAgLTE2NywxNCArMTY3LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNyeXB0aW9uS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90CiAg
ICAgaWYgKGtleUlkKQogICAgICAgICBtX2tleUlkID0gKmtleUlkOwogCisgICAgdXBkYXRlQXV0
aGVudGljYXRpb25TaXplKCk7CiAgICAgbV9oYXNLZXkgPSB0cnVlOworCiAgICAgcmV0dXJuIHsg
fTsKIH0KIAogRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6ZGVjcnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QqIGZyYW1lRGF0YSwgc2l6ZV90IGZyYW1l
U2l6ZSkKIHsKLSAgICAvLyBGSVhNRTogU3VwcG9ydCBzaWduYXR1cmUuCi0KICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fa2V5TG9jayk7CiAKICAgICBhdXRvIGhlYWRlciA9IHBhcnNlU0Zy
YW1lSGVhZGVyKGZyYW1lRGF0YSwgZnJhbWVTaXplKTsKQEAgLTE5MSw2ICsxOTEsOSBAQCBFeGNl
cHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0
RnJhbWUoY29uc3QgdWludDhfdAogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IgfTsKICAgICB9CiAKKyAgICBpZiAoZnJhbWVTaXplIDwgKGhlYWRlci0+c2l6ZSAr
IG1fYXV0aGVudGljYXRpb25TaXplKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFF
cnJvciwgIkNodW5rIGlzIHRvbyBzbWFsbCBmb3IgYXV0aGVudGljYXRpb24gc2l6ZSIgfTsKKwog
ICAgIC8vIENvbXB1dGUgc2lnbmF0dXJlCiAgICAgYXV0byogdHJhbnNtaXR0ZWRTaWduYXR1cmUg
PSBmcmFtZURhdGEgKyBmcmFtZVNpemUgLSBtX2F1dGhlbnRpY2F0aW9uU2l6ZTsKICAgICBhdXRv
IHNpZ25hdHVyZSA9IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGZyYW1lRGF0YSwgZnJh
bWVTaXplICAtIG1fYXV0aGVudGljYXRpb25TaXplLCBtX2F1dGhlbnRpY2F0aW9uS2V5KTsKQEAg
LTIxNCw4ICsyMTcsNiBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogCiBFeGNlcHRpb25PcjxW
ZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29u
c3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJWE1F
OiBTdXBwb3J0IHNpZ25hdHVyZS4KLQogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXhIZWFk
ZXJTaXplID0gMTc7CiAKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fa2V5TG9jayk7CkBA
IC0yNTksOSArMjYwLDkgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QKIEV4Y2VwdGlvbk9yPFZl
Y3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnRyYW5zZm9ybShjb25zdCB1
aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJf
cyB9OwogCi0gICAgcmV0dXJuIG1faXNTZW5kaW5nID8gZW5jcnlwdEZyYW1lKGRhdGEsIHNpemUp
IDogZGVjcnlwdEZyYW1lKGRhdGEsIHNpemUpOworICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/
IGVuY3J5cHRGcmFtZShkYXRhLCBzaXplKSA6IGRlY3J5cHRGcmFtZShkYXRhLCBzaXplKTsKIH0K
IAogI2lmICFQTEFURk9STShDT0NPQSkKQEAgLTI5NCw2ICsyOTUsMTAgQEAgVmVjdG9yPHVpbnQ4
X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpjb21wdXRlRW5jcnlwdGVkRGF0YVNpZ25hdHVy
ZShjb25zdCB1aW4KIHsKICAgICByZXR1cm4geyB9OwogfQorCit2b2lkIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKQoreworfQogI2VuZGlmIC8vICFQ
TEFURk9STShDT0NPQSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lci5oCmluZGV4IGIzMTJiN2NhMjE0ZmRhNjJmNmU4OWNmMTIwNGI1NTkwMGEzMzJmYzAuLmE0
ZTFhYTE3NmU4NjZiNGYxNjA2ZjY5ZjY2YzI0NzRhODM0OTEzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyLmgKQEAgLTQwLDggKzQwLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNyZWF0ZSgpOwogICAgIFdFQkNPUkVf
RVhQT1JUIH5SVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpOwogCi0gICAgdm9pZCBzZXRJc1NlbmRp
bmcoYm9vbCk7Ci0gICAgdm9pZCBzZXRJc1Byb2Nlc3NpbmdBdWRpbyhib29sKTsKKyAgICB2b2lk
IHNldElzRW5jcnlwdGluZyhib29sKTsKKyAgICB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2l6ZSh1
aW50NjRfdCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRFbmNy
eXB0aW9uS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmF3S2V5LCBPcHRpb25hbDx1aW50NjRf
dD4pOwogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gdHJh
bnNmb3JtKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwpAQCAtNjYsNiArNjYsNyBAQCBwcml2YXRl
OgogICAgIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZW5jcnlwdERhdGEoY29uc3QgdWlu
dDhfdCosIHNpemVfdCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiBrZXkpOwogICAgIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVjcnlwdERh
dGEoY29uc3QgdWludDhfdCosIHNpemVfdCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpdiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOwogICAgIFZlY3Rvcjx1aW50OF90PiBjb21wdXRlRW5j
cnlwdGVkRGF0YVNpZ25hdHVyZShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGtleSk7CisgICAgdm9pZCB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsKIAog
ICAgIExvY2sgbV9rZXlMb2NrOwogICAgIGJvb2wgbV9oYXNLZXkgeyBmYWxzZSB9OwpAQCAtNzMs
MjAgKzc0LDIwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1fZW5jcnlwdGlvbktl
eTsKICAgICBWZWN0b3I8dWludDhfdD4gbV9zYWx0S2V5OwogCi0gICAgYm9vbCBtX2lzU2VuZGlu
ZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRW5jcnlwdGluZyB7IGZhbHNlIH07CiAgICAgdWlu
dDY0X3QgbV9hdXRoZW50aWNhdGlvblNpemUgeyAxMCB9OwogICAgIHVpbnQ2NF90IG1fa2V5SWQg
eyAwIH07CiAgICAgdWludDY0X3QgbV9jb3VudGVyIHsgMCB9OwogfTsKIAotaW5saW5lIHZvaWQg
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzU2VuZGluZyhib29sIGlzU2VuZGluZykKK2lu
bGluZSB2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcoYm9vbCBp
c0VuY3J5cHRpbmcpCiB7Ci0gICAgbV9pc1NlbmRpbmcgPSBpc1NlbmRpbmc7CisgICAgbV9pc0Vu
Y3J5cHRpbmcgPSBpc0VuY3J5cHRpbmc7CiB9CiAKLWlubGluZSB2b2lkIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjpzZXRJc1Byb2Nlc3NpbmdBdWRpbyhib29sIGlzUHJvY2Vzc2luZ0F1ZGlvKQor
aW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEF1dGhlbnRpY2F0aW9uU2l6
ZSh1aW50NjRfdCBzaXplKQogewotICAgIG1fYXV0aGVudGljYXRpb25TaXplID0gaXNQcm9jZXNz
aW5nQXVkaW8gPyA0IDogMTA7CisgICAgbV9hdXRoZW50aWNhdGlvblNpemUgPSBzaXplOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29h
LmNwcAppbmRleCA0YzNkNDI0ODAyZTE5M2NhZDcwZDIxYmMyMTM3OWY4NTBmYjM1NzVjLi41ODMz
ODFmZjE1YjZlMGI1NmQ4MzA0YTNiODMyYjVjNGUwNThhMWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXJDb2NvYS5jcHAKQEAgLTY4LDYgKzY4LDEyIEBAIFZlY3Rvcjx1aW50OF90PiBS
VENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y29tcHV0ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUoY29u
c3QgdWluCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6dXBkYXRlQXV0aGVudGljYXRpb25TaXplKCkKK3sKKyAgICBpZiAobV9hdXRoZW50aWNh
dGlvblNpemUgPiBDQ19TSEEyNTZfRElHRVNUX0xFTkdUSCkKKyAgICAgICAgbV9hdXRoZW50aWNh
dGlvblNpemUgPSBDQ19TSEEyNTZfRElHRVNUX0xFTkdUSDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXIuY3BwCmluZGV4IGVlNTIwNjRlOTNlZmIyMzhjOTNmNzIzMzYyY2VmNzJkZTM4YjIzOTcuLjZm
MDgyMDg1NjJhYTY0ZTc2ZTdjMWY0OTI4YmI1N2NkZWQzODE4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIuY3BwCkBAIC00MSw2NCArNDEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlCi0gICAgOiBwdWJsaWMgUmVhZGFibGVT
dHJlYW1Tb3VyY2UKLSAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSVENSdHBSZWFkYWJsZVN0
cmVhbVNvdXJjZT4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8UlRDUnRwUmVhZGFibGVTdHJl
YW1Tb3VyY2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDUnRwUmVhZGFibGVT
dHJlYW1Tb3VyY2UpOyB9Ci0KLSAgICB2b2lkIGNsb3NlKCkgeyBjb250cm9sbGVyKCkuY2xvc2Uo
KTsgfQotICAgIHZvaWQgZW5xdWV1ZShKU0M6OkpTVmFsdWUgdmFsdWUpIHsgY29udHJvbGxlcigp
LmVucXVldWUodmFsdWUpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUlRDUnRwUmVhZGFibGVTdHJlYW1T
b3VyY2UoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgIHZv
aWQgc2V0QWN0aXZlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzZXRJbmFjdGl2ZSgpIGZpbmFsIHsg
fQotICAgIHZvaWQgZG9TdGFydCgpIGZpbmFsIHsgfQotICAgIHZvaWQgZG9QdWxsKCkgZmluYWwg
eyB9Ci0gICAgdm9pZCBkb0NhbmNlbCgpIGZpbmFsIHsgfQotfTsKLQotY2xhc3MgUlRDUnRwV3Jp
dGFibGVTdHJlYW1TaW5rIDogcHVibGljIFdyaXRhYmxlU3RyZWFtU2luayB7Ci1wdWJsaWM6Ci0g
ICAgdXNpbmcgRW5xdWV1ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWY8UlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lPiYmKT47Ci0gICAgc3RhdGljIFJlZjxSVENSdHBXcml0YWJsZVN0cmVhbVNp
bms+IGNyZWF0ZShFbnF1ZXVlQ2FsbGJhY2smJiBlbnF1ZXVlQ2FsbGJhY2spIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rKFdURk1vdmUoZW5xdWV1ZUNhbGxi
YWNrKSkpOyB9Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgUlRDUnRwV3JpdGFibGVTdHJlYW1T
aW5rKEVucXVldWVDYWxsYmFjayYmIGVucXVldWVDYWxsYmFjaykKLSAgICAgICAgOiBtX2VucXVl
dWVDYWxsYmFjayhXVEZNb3ZlKGVucXVldWVDYWxsYmFjaykpCi0gICAgewotICAgIH0KLQotICAg
IHZvaWQgd3JpdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVl
IHZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQotICAgIHsKLSAgICAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Ci0KLSAgICAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwot
ICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExJbnRlcmZhY2U8UlRDRW5j
b2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRlcmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJhbWU+Pj4oZ2xv
YmFsT2JqZWN0LCB2YWx1ZSk7Ci0KLSAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH0sIFJlamVjdEFzSGFuZGxlZDo6WWVzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotCi0gICAgICAgIG1fZW5xdWV1ZUNhbGxiYWNrKFdURjo6c3dpdGNoT24oZnJhbWUsIFsm
XShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgewotICAgICAgICAgICAgcmV0
dXJuIG1ha2VSZWYodmFsdWUtPmludGVybmFsRnJhbWUoKSk7Ci0gICAgICAgIH0sIFsmXShSZWZQ
dHI8UlRDRW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgewotICAgICAgICAgICAgcmV0dXJuIG1h
a2VSZWYodmFsdWUtPmludGVybmFsRnJhbWUoKSk7Ci0gICAgICAgIH0pKTsKLSAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IERlY2lkZSB3aGV0aGVyIGNs
ZWFyaW5nIGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lkIGNsb3NlKCkgZmluYWwgeyB9Ci0g
ICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0KLSAgICBGdW5jdGlvbjx2b2lkKFJl
ZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiBtX2VucXVldWVDYWxsYmFjazsKLX07Ci0K
IEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAg
ICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4
dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKTsKQEAgLTEyMCw3ICs2Miw3
IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQog
ewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVTdHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkK
K1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kKQogewogICAg
IGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spOwogICAgIGlmICghY2FsbGJhY2sp
CkBAIC0xMzIsMTMgKzc0LDI3IEBAIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4g
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUCiAgICAgYXV0byYg
dm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsK
IAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBSVENSdHBSZWFkYWJsZVN0cmVhbVNv
dXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFkYWJsZVN0cmVhbVNvdXJjZSA9IFNpbXBsZVJl
YWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsKICAgICBhdXRvIHJlYWRhYmxlU3RyZWFtID0g
UmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIHJlYWRhYmxlU3RyZWFtU291cmNl
LmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxlU3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJs
ZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgUlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rOjpj
cmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiYgZnJhbWUpIHsKLSAgICAg
ICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOworICAgIGF1
dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tl
bmQpXShhdXRvJiBjb250ZXh0LCBhdXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7Cisg
ICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworCisg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgp
KTsKKyAgICAgICAgYXV0byBmcmFtZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJU
Q0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+
KGdsb2JhbE9iamVjdCwgdmFsdWUpOworCisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07
CisKKyAgICAgICAgYXV0byBydGNGcmFtZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQ
dHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG1h
a2VSZWYodmFsdWUtPmludGVybmFsRnJhbWUoKSk7CisgICAgICAgIH0sIFsmXShSZWZQdHI8UlRD
RW5jb2RlZFZpZGVvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYo
dmFsdWUtPmludGVybmFsRnJhbWUoKSk7CisgICAgICAgIH0pOworICAgICAgICBiYWNrZW5kLT5w
cm9jZXNzVHJhbnNmb3JtZWRGcmFtZShydGNGcmFtZS5nZXQoKSk7CisgICAgICAgIHJldHVybiB7
IH07CiAgICAgfSkpOwogICAgIGlmICh3cml0YWJsZVN0cmVhbS5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKaW5kZXggMzE1ZDQw
Y2ZjMGVkODUwMDc0OGMwYmVmZDcyNDI3ZGFiY2ZjNjBmYi4uZGI0NDA4YjZhZTFlYWEyNWNlY2Q1
YTI0MGJlYjFhYmE3YWEzMzNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaApAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZzsKIGNsYXNzIE1lc3NhZ2VQb3J0Owog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQ7Ci1jbGFzcyBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZTsKK2NsYXNzIFNpbXBsZVJlYWRh
YmxlU3RyZWFtU291cmNlOwogCiBjbGFzcyBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcgogICAgIDog
cHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI+CkBAIC01OSw3ICs1OSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFJlZjxNZXNzYWdlUG9ydD4mJik7CiAKLSAgICBSZWZQdHI8UlRD
UnRwUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kJik7CisgICAgUmVmUHRyPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBzdGFydFN0cmVh
bXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAg
ICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lciI7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oCmluZGV4IGE1
MmVmZjI5ZDMxNDYyM2FkZTNjNGQ1ZDE3OTBkNjgwY2MzYzBjZjguLmNlMTliNjNiNjZmZDg2YjYx
ZWM2ZjU0OGQ4ZjU0NWIzNjQxZWNmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaApAQCAt
MzUsOCArMzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lKCkgPSBkZWZhdWx0OwogCiAgICAgc3RydWN0IERhdGEgewotICAgICAgICBjb25zdCB1aW50
OF90KiBkYXRhOwotICAgICAgICBzaXplX3Qgc2l6ZTsKKyAgICAgICAgY29uc3QgdWludDhfdCog
ZGF0YSB7IG51bGxwdHIgfTsKKyAgICAgICAgc2l6ZV90IHNpemUgeyAwIH07CiAgICAgfTsKICAg
ICB2aXJ0dWFsIERhdGEgZGF0YSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGF0
YShEYXRhKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9S
ZWFkYWJsZVN0cmVhbVNvdXJjZS5oCmluZGV4IDkxZTBjMmNmZDk5YTEzNDBhMzFmMzk0ZjQ5Y2Vl
NGRjMTk1ZTE5YjguLmY0Y2RhNTIxNGQ5YzQyMmJhOGU4N2Q1OGM5N2Q4OTk4OGY1ODQ1OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw0ICs2NywyNCBA
QCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI+
IG1fY29udHJvbGxlcjsKIH07CiAKK2NsYXNzIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlCisg
ICAgOiBwdWJsaWMgUmVhZGFibGVTdHJlYW1Tb3VyY2UKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4geworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UpOyB9CisKKyAgICB2b2lkIGNsb3NlKCkg
eyBjb250cm9sbGVyKCkuY2xvc2UoKTsgfQorICAgIHZvaWQgZW5xdWV1ZShKU0M6OkpTVmFsdWUg
dmFsdWUpIHsgY29udHJvbGxlcigpLmVucXVldWUodmFsdWUpOyB9CisKK3ByaXZhdGU6CisgICAg
U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBSZWFkYWJs
ZVN0cmVhbVNvdXJjZQorICAgIHZvaWQgc2V0QWN0aXZlKCkgZmluYWwgeyB9CisgICAgdm9pZCBz
ZXRJbmFjdGl2ZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgZG9TdGFydCgpIGZpbmFsIHsgfQorICAg
IHZvaWQgZG9QdWxsKCkgZmluYWwgeyB9CisgICAgdm9pZCBkb0NhbmNlbCgpIGZpbmFsIHsgfQor
fTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtU2luay5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtU2luay5oCmluZGV4IDFhZmE1NWQ5NDVjNWU3Mzk2
MDdlMDUwYjQ3YTFlZTlhZWI1MmQ2M2UuLjJjYWE4NmMzOTVkM2JiYzIwNGQ2OWU5YmY0NDhmNDI1
NjQ5YjU3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0
YWJsZVN0cmVhbVNpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3Jp
dGFibGVTdHJlYW1TaW5rLmgKQEAgLTQ1LDQgKzQ1LDI5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZXJyb3IoU3RyaW5nJiYpID0gMDsKIH07CiAKK2NsYXNzIFNpbXBsZVdyaXRhYmxlU3Ry
ZWFtU2luayA6IHB1YmxpYyBXcml0YWJsZVN0cmVhbVNpbmsgeworcHVibGljOgorICAgIHVzaW5n
IFdyaXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjxFeGNlcHRpb25Pcjx2b2lkPihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlKT47CisgICAgc3RhdGljIFJlZjxTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms+IGNyZWF0ZShXcml0ZUNhbGxiYWNrJiYgd3JpdGVDYWxsYmFjaykgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbmsoV1RGTW92ZSh3cml0ZUNh
bGxiYWNrKSkpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgU2ltcGxlV3JpdGFibGVTdHJl
YW1TaW5rKFdyaXRlQ2FsbGJhY2smJik7CisKKyAgICB2b2lkIHdyaXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBKU0M6OkpTVmFsdWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5h
bDsKKyAgICB2b2lkIGNsb3NlKCkgZmluYWwgeyB9CisgICAgdm9pZCBlcnJvcihTdHJpbmcmJikg
ZmluYWwgeyB9CisKKyAgICBXcml0ZUNhbGxiYWNrIG1fd3JpdGVDYWxsYmFjazsKK307CisKK2lu
bGluZSBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luayhX
cml0ZUNhbGxiYWNrJiYgd3JpdGVDYWxsYmFjaykKKyAgICA6IG1fd3JpdGVDYWxsYmFjayhXVEZN
b3ZlKHdyaXRlQ2FsbGJhY2spKQoreworfQorCitpbmxpbmUgdm9pZCBTaW1wbGVXcml0YWJsZVN0
cmVhbVNpbms6OndyaXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBw
cm9taXNlLnNldHRsZShtX3dyaXRlQ2FsbGJhY2soY29udGV4dCwgdmFsdWUpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV3JpdGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFi
bGVTdHJlYW0uY3BwCmluZGV4IDYyOTY5YmRlMTVmMzk3NjhhZDM0NmU3N2U4Y2NkNTM2MGI0ZjQ3
NWIuLjM0ODdjZGFkMzkzMzZkZThiYzRmNjQ2ZTdmZmZlMDUxM2M3MDYxNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKQEAgLTM2LDYgKzM2LDMw
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCituYW1lc3Bh
Y2UgV3JpdGFibGVTdHJlYW1JbnRlcm5hbCB7CitzdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBj
YWxsRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpKU1ZhbHVlIGpzRnVuY3Rpb24sIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEpTQzo6
QXJnTGlzdCYgYXJndW1lbnRzKQoreworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qu
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgYXV0
byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGpzRnVuY3Rpb24pOworICAgIEFTU0VS
VChjYWxsRGF0YS50eXBlICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUpOworICAgIGF1dG8g
cmVzdWx0ID0gY2FsbCgmbGV4aWNhbEdsb2JhbE9iamVjdCwganNGdW5jdGlvbiwgY2FsbERhdGEs
IHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1dyaXRh
YmxlU3RyZWFtKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTV3JpdGFibGVTdHJl
YW0qIHdyaXRhYmxlU3RyZWFtLCBKU0M6OkpTVmFsdWUgZnVuY3Rpb24pCit7CisgICAgYXV0byYg
bGV4aWNhbEdsb2JhbE9iamVjdCA9IGdsb2JhbE9iamVjdDsKKworICAgIEFTU0VSVChmdW5jdGlv
bik7CisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1l
bnRzLmFwcGVuZCh3cml0YWJsZVN0cmVhbSk7CisgICAgQVNTRVJUKCFhcmd1bWVudHMuaGFzT3Zl
cmZsb3dlZCgpKTsKKyAgICByZXR1cm4gV3JpdGFibGVTdHJlYW1JbnRlcm5hbDo6Y2FsbEZ1bmN0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGZ1bmN0aW9uLCBKU0M6OmpzVW5kZWZpbmVkKCksIGFy
Z3VtZW50cykuaXNUcnVlKCk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+
IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJiBzaW5rKQogewogICAgIFZNJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKQEAgLTYwLDQgKzg0LDMwIEBAIEV4Y2VwdGlv
bk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3QsICpqc0Nhc3Q8
SlNXcml0YWJsZVN0cmVhbSo+KG9iamVjdCkpOwogfQogCit2b2lkIFdyaXRhYmxlU3RyZWFtOjps
b2NrKCkKK3sKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsT2JqZWN0
OworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisKKyAgICBhdXRvKiBj
b25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3QobV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEds
b2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5Xcml0YWJsZVN0cmVhbURlZmF1
bHRXcml0ZXJQcml2YXRlTmFtZSgpKSk7CisKKyAgICBhdXRvIGNvbnN0cnVjdERhdGEgPSBnZXRD
b25zdHJ1Y3REYXRhKHZtLCBjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJUKGNvbnN0cnVjdERhdGEu
dHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHdyaXRhYmxlU3RyZWFtKCkpOworICAgIEFTU0VSVCgh
YXJncy5oYXNPdmVyZmxvd2VkKCkpOworCisgICAgSlNDOjpjb25zdHJ1Y3QoJmxleGljYWxHbG9i
YWxPYmplY3QsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3REYXRhLCBhcmdzKTsKKyAgICBzY29wZS5h
c3NlcnROb0V4Y2VwdGlvbigpOworfQorCitib29sIFdyaXRhYmxlU3RyZWFtOjppc0xvY2tlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGNoZWNrV3JpdGFibGVTdHJlYW0oKmdsb2JhbE9iamVjdCgp
LCB3cml0YWJsZVN0cmVhbSgpLCBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbkludGVybmFsRnVuY3Rp
b25zKCkud3JpdGFibGVTdHJlYW1JbnRlcm5hbHMoKS5tX2lzV3JpdGFibGVTdHJlYW1Mb2NrZWRG
dW5jdGlvbi5nZXQoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dyaXRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0
YWJsZVN0cmVhbS5oCmluZGV4IDM1ZGI4MDU4OWMwMmYwNmYxZDg0NDQ1MTliMzYzYzBkYWVlZmI0
YjkuLjQ2ZmY4OWQ1Y2RlMDhiMDA2ZjIxNWIxM2IzMGJhMjRkOTg1MzcyMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaApAQCAtNDIsNiArNDIsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IGNyZWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJik7CiAg
ICAgSlNXcml0YWJsZVN0cmVhbSogd3JpdGFibGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBndWFy
ZGVkKCk7IH0KIAorICAgIHZvaWQgbG9jaygpOworICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBXcml0YWJsZVN0cmVhbShKU0RPTUdsb2JhbE9iamVjdCYsIEpTV3Jp
dGFibGVTdHJlYW0mKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDBlZTQ3MzEzZGU3MGJmOGU0NmI1NjgxZmQ3Yzlk
YTg0Mjk0ZjY4ZjAuLjBiMDA0NDM4N2U3YTQyYjc2MTAzN2JhZTk3OThiNjZlMTliNTdjNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC02MzgsNiArNjM4LDExIEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJXcml0YWJsZVN0
cmVhbSIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiV3JpdGFibGVTdHJlYW0uaCIsICRpbmNs
dWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
ICgkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU1hQYXRoTlNSZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwog
ICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmOTMxZmJlMzgyOWUxMmRiMzk4ZDgwNDlkMmZiNmJhZDZm
MjFjNzdhLi5jODRkMGRmNzhiYzI5YjdmMTRjY2I0NzBiOWNmZjI3ZDk4ODE2OGNlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjAtMTEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMu
Y3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlVmlkZW9UcmFuc2Zvcm1lcik6CisK
IDIwMjAtMTEtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVuYW1lIE1ldGFDb21tYW5kU3dpdGNoVG8gdG8gTWV0YUNvbW1hbmRTd2l0Y2hUb0l0
ZW1CdWZmZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcAppbmRleCAzY2QxMzQ0
MDE5YTM4OTQwMDM4YjQ4ZDYzMmI0NzMwMWJiNjdlOWQ1Li5iZDBlZjA4NDI5YmQ4YzFjYWM5M2Ez
NGZlY2Y4ZGVlNWEwNmI3ZmQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMuY3Bw
CkBAIC03MCwxMSArNzAsMTEgQEAgVmVjdG9yPHVpbnQ4X3Q+IGdldFJhd0tleSgpCiAgICAgKTsK
IH0KIAotc3RhdGljIFJlZjxXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gY3JlYXRl
VmlkZW9UcmFuc2Zvcm1lcihib29sIGlzU2VuZGluZyA9IHRydWUpCitzdGF0aWMgUmVmPFdlYkNv
cmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVhdGVWaWRlb1RyYW5zZm9ybWVyKGJvb2wg
aXNFbmNyeXB0aW5nID0gdHJ1ZSkKIHsKICAgICBhdXRvIHRyYW5zZm9ybWVyID0gV2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpOwotICAgIHRyYW5zZm9ybWVyLT5zZXRJ
c1NlbmRpbmcoaXNTZW5kaW5nKTsKLSAgICB0cmFuc2Zvcm1lci0+c2V0SXNQcm9jZXNzaW5nQXVk
aW8oZmFsc2UpOworICAgIHRyYW5zZm9ybWVyLT5zZXRJc0VuY3J5cHRpbmcoaXNFbmNyeXB0aW5n
KTsKKyAgICB0cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKDEwKTsKIAogICAgIGF1
dG8ga2V5SWQgPSBWZWN0b3I8dWludDhfdD46OmZyb20oMTk4LCAzMSwgMjUxLCAxOTcsIDQ4LCAx
MzksIDkxLCA1MSk7CiAgICAgdWludDY0X3Qga2V5SWRWYWx1ZSA9IDA7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjc4M2Vl
OWQwNTQ4ZGQyOGI0YTFlNjIzMTE3YzY5NWE0ZTE3ODE1Ny4uZjA0ZDA0ZmQxZDU4OTJkZGM2ZjQy
NWZlNWQwMTcyMDhlNWQ3YjI4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTI2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgcmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9z
ZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMv
c2ZyYW1lLXRyYW5zZm9ybS5odG1sOgorCiAyMDIwLTExLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BUIFdlYlJUQyB0ZXN0cwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhw
ZWN0ZWQudHh0CmluZGV4IGUwMGU4NmRkZGUyOTM1ZDFmMGY1YWMwMmRkM2E4N2M2YTJmNzhkZWUu
LmY5Yjc3OTg4NTg2N2Q1OGY5MTA0MmQ0N2FlOWI2NWY4NmMwNzI5YzQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBlY3Rl
ZC50eHQKQEAgLTEsMyArMSw4IEBACiAKIFBBU1MgQ2Fubm90IHJldXNlIGF0dGFjaGVkIHRyYW5z
Zm9ybXMKK1BBU1MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIGV4cG9zZXMgcmVhZGFibGUgYW5kIHdy
aXRhYmxlCitQQVNTIHJlYWRhYmxlL3dyaXRhYmxlIGFyZSBsb2NrZWQgd2hlbiBhdHRhY2hlZCBh
bmQgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQKK1BBU1MgU0ZyYW1lIHdpdGggYXJyYXkgYnVmZmVyIC0g
YXV0aGVudGljYXRpb24gc2l6ZSAxMAorUEFTUyBTRnJhbWUgZGVjcnlwdGlvbiB3aXRoIGFycmF5
IGJ1ZmZlciB0aGF0IGlzIHRvbyBzbWFsbAorUEFTUyBTRnJhbWUgdHJhbnNmb3JtIGdldHMgZXJy
b3JlZCBpZiB0cnlpbmcgdG8gcHJvY2VzcyB1bmV4cGVjdGVkIHZhbHVlIHR5cGVzCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sCmluZGV4
IGJhMDQ4ODBkMTQ1YWNmYjgxZDdlOTliZjExMzg0YTA4NTM1MTMzYzcuLmZhMzc4MTYyYmEzMTEz
MmRhNmNjMmFmMTgwYmMyOTZiMWJhNTUxODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbApAQCAtMjgsNiArMjgsMTE0IEBAIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIHNlbmRlcjEudHJhbnNmb3JtID0gbnVsbDsK
ICAgICByZWNlaXZlcjEudHJhbnNmb3JtID0gbnVsbDsKIH0sICJDYW5ub3QgcmV1c2UgYXR0YWNo
ZWQgdHJhbnNmb3JtcyIpOworCit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBzZW5kZXJUcmFuc2Zv
cm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCk7CisKKyAgICBhc3NlcnRfdHJ1ZShzZW5k
ZXJUcmFuc2Zvcm0ucmVhZGFibGUgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSk7CisgICAgYXNz
ZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlIGluc3RhbmNlb2YgV3JpdGFibGVTdHJl
YW0pOworfSwgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBleHBvc2VzIHJlYWRhYmxlIGFuZCB3cml0
YWJsZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9
IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAgICBjb25zdCBzZW5kZXIxID0gcGMuYWRk
VHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyOworICAgIGNvbnN0IHNlbmRlcjIgPSBwYy5hZGRU
cmFuc2NlaXZlcigndmlkZW8nKS5zZW5kZXI7CisgICAgY29uc3QgcmVjZWl2ZXIxID0gcGMuZ2V0
UmVjZWl2ZXJzKClbMF07CisgICAgY29uc3QgcmVjZWl2ZXIyID0gcGMuZ2V0UmVjZWl2ZXJzKClb
MV07CisKKyAgICBhc3NlcnRfZmFsc2Uoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwg
InNlbmRlciByZWFkYWJsZSBiZWZvcmUiKTsKKyAgICBhc3NlcnRfZmFsc2Uoc2VuZGVyVHJhbnNm
b3JtLndyaXRhYmxlLmxvY2tlZCwgInNlbmRlciB3cml0YWJsZSBiZWZvcmUiKTsKKyAgICBhc3Nl
cnRfZmFsc2UocmVjZWl2ZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAicmVjZWl2ZXIgcmVh
ZGFibGUgYmVmb3JlIik7CisgICAgYXNzZXJ0X2ZhbHNlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRh
YmxlLmxvY2tlZCwgInJlY2VpdmVyIHdyaXRhYmxlIGJlZm9yZSIpOworCisgICAgc2VuZGVyMS50
cmFuc2Zvcm0gPSBzZW5kZXJUcmFuc2Zvcm07CisgICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9IHJl
Y2VpdmVyVHJhbnNmb3JtOworCisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJlYWRh
YmxlLmxvY2tlZCwgInNlbmRlciByZWFkYWJsZSBkdXJpbmciKTsKKyAgICBhc3NlcnRfdHJ1ZShz
ZW5kZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAic2VuZGVyIHdyaXRhYmxlIGR1cmluZyIp
OworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInJl
Y2VpdmVyIHJlYWRhYmxlIGR1cmluZyIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNm
b3JtLndyaXRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHdyaXRhYmxlIGR1cmluZyIpOworCisgICAg
c2VuZGVyMS50cmFuc2Zvcm0gPSBudWxsOworICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSBudWxs
OworCisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInNl
bmRlciByZWFkYWJsZSBhZnRlciIpOworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS53
cml0YWJsZS5sb2NrZWQsICJzZW5kZXIgd3JpdGFibGUgYWZ0ZXIiKTsKKyAgICBhc3NlcnRfdHJ1
ZShyZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciByZWFkYWJsZSBh
ZnRlciIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tl
ZCwgInJlY2VpdmVyIHdyaXRhYmxlIGFmdGVyIik7Cit9LCAicmVhZGFibGUvd3JpdGFibGUgYXJl
IGxvY2tlZCB3aGVuIGF0dGFjaGVkIGFuZCBhZnRlciBiZWluZyBhdHRhY2hlZCIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlwdG8u
c3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwg
NzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhL
REYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKworICAgIGNvbnN0IHNl
bmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2VuY3J5
cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIHNlbmRlclRyYW5zZm9ybS5zZXRF
bmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBS
VENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlvblNp
emU6IDEwIH0pOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KTsK
KworICAgIGNvbnN0IHdyaXRlciA9IHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIo
KTsKKyAgICBjb25zdCByZWFkZXIgPSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5nZXRSZWFk
ZXIoKTsKKworICAgIHNlbmRlclRyYW5zZm9ybS5yZWFkYWJsZS5waXBlVG8ocmVjZWl2ZXJUcmFu
c2Zvcm0ud3JpdGFibGUpOworCisgICAgY29uc3Qgc2VudCA9IG5ldyBBcnJheUJ1ZmZlcig4KTsK
KyAgICBjb25zdCB2aWV3ID0gbmV3IEludDhBcnJheShzZW50KTsKKyAgICBmb3IgKGxldCBjcHRy
ID0gMDsgY3B0ciA8IHNlbnQuYnl0ZUxlbmd0aDsgKytjcHRyKQorICAgICAgICB2aWV3W2NwdHJd
ID0gY3B0cjsKKworICAgIHdyaXRlci53cml0ZShzZW50KTsKKyAgICBjb25zdCByZWNlaXZlZCA9
IGF3YWl0IHJlYWRlci5yZWFkKCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkLnZhbHVl
LmJ5dGVMZW5ndGgsIDgpOworICAgIGNvbnN0IHZpZXcyID0gbmV3IEludDhBcnJheShyZWNlaXZl
ZC52YWx1ZSk7CisgICAgZm9yIChsZXQgY3B0ciA9IDA7IGNwdHIgPCBzZW50LmJ5dGVMZW5ndGg7
ICsrY3B0cikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3MltjcHRyXSwgdmlld1tjcHRyXSk7
Cit9LCAiU0ZyYW1lIHdpdGggYXJyYXkgYnVmZmVyIC0gYXV0aGVudGljYXRpb24gc2l6ZSAxMCIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBhd2Fp
dCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcs
IDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAx
NzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKworICAg
IGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xl
IDogJ2VuY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHNlbmRl
cldyaXRlciA9IHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsKKyAgICBjb25z
dCBzZW5kZXJSZWFkZXIgPSBzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUuZ2V0UmVhZGVyKCk7CisK
KyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0o
eyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0
IHJlY2VpdmVyV3JpdGVyID0gcmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7
CisgICAgY29uc3QgcmVjZWl2ZXJSZWFkZXIgPSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5n
ZXRSZWFkZXIoKTsKKworICAgIHNlbmRlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7
CisgICAgcmVjZWl2ZXJUcmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAgY29u
c3QgY2h1bmsgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisKKyAgICAvLyBkZWNyeXB0aW9uIHNob3Vs
ZCBmYWlsLCBsZWFkaW5nIHRvIGFuIGVtcHR5IGFycmF5IGJ1ZmZlci4KKyAgICBhd2FpdCByZWNl
aXZlcldyaXRlci53cml0ZShjaHVuayk7CisgICAgbGV0IHJlY2VpdmVkID0gYXdhaXQgcmVjZWl2
ZXJSZWFkZXIucmVhZCgpOworICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFsdWUuYnl0ZUxl
bmd0aCwgMCk7CisKKyAgICAvLyBXZSB3cml0ZSBhZ2FpbiBidXQgdGhpcyB0aW1lIHdpdGggYSBj
aHVuayB3ZSBjYW4gZGVjcnlwdC4KKyAgICBhd2FpdCBzZW5kZXJXcml0ZXIud3JpdGUoY2h1bmsp
OworICAgIGNvbnN0IGVuY3J5cHRlZCA9IGF3YWl0IHNlbmRlclJlYWRlci5yZWFkKCk7CisgICAg
YXdhaXQgcmVjZWl2ZXJXcml0ZXIud3JpdGUoZW5jcnlwdGVkLnZhbHVlKTsKKyAgICByZWNlaXZl
ZCA9IGF3YWl0IHJlY2VpdmVyUmVhZGVyLnJlYWQoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlY2Vp
dmVkLnZhbHVlLmJ5dGVMZW5ndGgsIDgpOworfSwgIlNGcmFtZSBkZWNyeXB0aW9uIHdpdGggYXJy
YXkgYnVmZmVyIHRoYXQgaXMgdG9vIHNtYWxsIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2
LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2
ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworCisgICAgY29uc3QgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBu
ZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6ICdkZWNyeXB0JywgYXV0aGVudGljYXRp
b25TaXplOiAxMCB9KTsKKyAgICBjb25zdCByZWNlaXZlcldyaXRlciA9IHJlY2VpdmVyVHJhbnNm
b3JtLndyaXRhYmxlLmdldFdyaXRlcigpOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNldEVuY3J5
cHRpb25LZXkoa2V5KTsKKworICAgIC8vIGRlY3J5cHRpb24gc2hvdWxkIGZhaWwsIGxlYWRpbmcg
dG8gZXJyb3JpbmcgdGhlIHRyYW5zZm9ybS4KKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanMo
dGVzdCwgVHlwZUVycm9yLCByZWNlaXZlcldyaXRlci53cml0ZSh7IH0pKTsKKyAgICBhd2FpdCBw
cm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZWNlaXZlcldyaXRlci5jbG9zZWQp
OworfSwgIlNGcmFtZSB0cmFuc2Zvcm0gZ2V0cyBlcnJvcmVkIGlmIHRyeWluZyB0byBwcm9jZXNz
IHVuZXhwZWN0ZWQgdmFsdWUgdHlwZXMiKTsKKwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2Jv
ZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414919</attachid>
            <date>2020-11-27 00:46:51 -0800</date>
            <delta_ts>2020-11-27 01:04:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127094648.patch</filename>
            <type>text/plain</type>
            <size>202642</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWQzYWQ3NjEzNjhhZmRiZmJkZmMz
NjE4NTRhZWUzNjQyYWYxNWVjMi4uZTdhNTE0NWRjYjE1YWI1MDg0MTQ2OTM4NThiMjY4YzU5ZGVh
MmY1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTI3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVhZGFibGUvd3Jp
dGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIGEgbmV3IHRlc3QgYXMgZmxha3kgaW4gaU9TIHNp
bXVsYXRvci4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogdGVzdHMtb3B0aW9ucy5qc29uOgorCiAyMDIwLTExLTI2ICBG
dWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5D
YWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggZWI3MTdiMjNhZGJhMzc2OWRhNzdkNzkzNTEyZTI4YjYyNmI4ZjFmNC4uMzYzYTQ3
MWMyODY3ODUwMGM5MzA0NDc3MGU4ZWZiMTc4OGRlZWVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0
YWJsZSB0byBSVENSdHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YzogUmVzeW5j
ZWQuCisKIDIwMjAtMTEtMjAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW2Nzcy1mbGV4XSBJbWFnZXMgYXMgZmxleCBpdGVtcyBzaG91bGQgdXNl
IHRoZSBvdmVycmlkaW5nTG9naWNhbFdpZHRoIHdoZW4gZGVmaW5lZCB0byBjb21wdXRlIHRoZSBs
b2dpY2FsIGhlaWdodApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQKaW5kZXggZWFmNWJlNzNi
MTg2NWQyYThmNmZlYjMyNTNiY2Q4YTQ2ZDRjYzUwMi4uMzgwYzQ3Y2I3YWRkZjEwNjk2N2MyYzBm
ZTExYzdjZWQxNTU2OWFhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CkBAIC0xMjAs
NyArMTIwLDcgQEAgRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGNyZWRlbnRp
YWxUeXBlIHRva2VuIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IKICAgICAgIH1dIH0pIiBkaWQgbm90
IHRocm93CiBQQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB1cmwgZmll
bGQgc2hvdWxkIHRocm93IFR5cGVFcnJvcgogUEFTUyBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykg
LSB3aXRoIHVybCBmaWVsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yCi1GQUlMIG5ldyBSVENQZWVy
Q29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBh
c3N3b3JkLCBhbmQgUlRDT2F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IElu
dmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CitGQUlM
IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRl
bnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgb2JqZWN0IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IElu
dmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAg
ICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFt
cGxlLm9yZycsCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAncGFzc3dvcmQnLApAQCAtMTMwLDcg
KzEzMCw3IEBAIEZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5z
IHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsCiAgICAgICAgICAgYWNjZXNzVG9rZW46
ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZp
Z3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNz
d29yZCwgYW5kIFJUQ09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZh
bGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBz
ZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5
cGUgcGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFj
Y2Vzc0Vycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQ
Yyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3Jn
JywKICAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdwYXNzd29yZCcsCkBAIC0xNTQsMTIgKzE1NCw0
IEBAIEZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNy
ZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyCiAgICAgICAgIHVzZXJuYW1lOiAndXNlcicsCiAg
ICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZB
SUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3Jl
ZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3Vs
ZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0g
d2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoIGFuZCBSVENPQXV0aENyZWRl
bnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
c3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBib3RoIHR1cm5zIGFuZCBzdHVuIHNlcnZl
ciwgY3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFs
IHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIg
YnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25m
aWcpIC0gd2l0aCBib3RoIHR1cm5zIGFuZCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1
dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHN0dW4g
c2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3Vs
ZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0g
d2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVu
dGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAib2F1
dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVj
dGlvbihjb25maWcpIC0gd2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQs
IGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAicGFzc3dvcmQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggc3R1biBzZXJ2
ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRl
bnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgInBh
c3N3b3JkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1
cmF0aW9uLWljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4
IDJlZjk5YmY1OWM4Y2MxMTI3M2U5OTM4OGIxNDQ0YmYyNTA2N2NiMjIuLjFjYmYxZDZjMWRhNDdi
ODBkOWIzZDcxNzNmNzgwNjJmMmU0OWJmMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2Vy
dmVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCkBAIC0yOSwyMSArMjks
MTQgQEAKIAogICAgIDQuMi4yLiAgUlRDSWNlQ3JlZGVudGlhbFR5cGUgRW51bQogICAgICAgZW51
bSBSVENJY2VDcmVkZW50aWFsVHlwZSB7Ci0gICAgICAgICJwYXNzd29yZCIsCi0gICAgICAgICJv
YXV0aCIKLSAgICAgIH07Ci0KLSAgICA0LjIuMy4gIFJUQ09BdXRoQ3JlZGVudGlhbCBEaWN0aW9u
YXJ5Ci0gICAgICBkaWN0aW9uYXJ5IFJUQ09BdXRoQ3JlZGVudGlhbCB7Ci0gICAgICAgIHJlcXVp
cmVkIERPTVN0cmluZyBtYWNLZXk7Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBhY2Nlc3NU
b2tlbjsKKyAgICAgICAgInBhc3N3b3JkIgogICAgICAgfTsKIAogICAgIDQuMi40LiAgUlRDSWNl
U2VydmVyIERpY3Rpb25hcnkKICAgICAgIGRpY3Rpb25hcnkgUlRDSWNlU2VydmVyIHsKICAgICAg
ICAgcmVxdWlyZWQgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSB1cmxzOwogICAg
ICAgICAgICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1l
OwotICAgICAgICAgICAgICAgICAoRE9NU3RyaW5nIG9yIFJUQ09BdXRoQ3JlZGVudGlhbCkgIGNy
ZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlZGVudGlhbDsKICAgICAgICAgICAgICAgICAgUlRDSWNlQ3JlZGVudGlhbFR5cGUg
ICAgICAgICAgICAgICBjcmVkZW50aWFsVHlwZSA9ICJwYXNzd29yZCI7CiAgICAgICB9OwogICAg
Ki8KQEAgLTM3NSw3ICszNjgsNyBAQAogICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJwogICAgICAg
ICB9CiAgICAgICB9XSB9KSk7Ci0gIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5
cGUgcGFzc3dvcmQsIGFuZCBSVENPYXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgdGhy
b3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CisgIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVu
dGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52
YWxpZEFjY2Vzc0Vycm9yJyk7CiAKICAgLyoKICAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3Vy
YXRpb24KQEAgLTM5MywxMDIgKzM4Niw2IEBACiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIHR1
cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBz
aG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAKLSAgY29uZmlnX3Rlc3QobWFrZVBj
ID0+IHsKLSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxz
OiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCi0gICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRo
JywKLSAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICBjcmVkZW50aWFsOiB7Ci0gICAgICAg
IG1hY0tleTogJ21hYycsCi0gICAgICAgIGFjY2Vzc1Rva2VuOiAndG9rZW4nCi0gICAgICB9Ci0g
ICAgfV0gfSk7Ci0KLSAgICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdldENvbmZpZ3VyYXRp
b24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKGljZVNlcnZlcnMubGVuZ3RoLCAxKTsKLQotICAgIGNv
bnN0IHNlcnZlciA9IGljZVNlcnZlcnNbMF07Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZXJ2
ZXIudXJscywgWyd0dXJuczp0dXJuLmV4YW1wbGUub3JnJ10pOwotICAgIGFzc2VydF9lcXVhbHMo
c2VydmVyLmNyZWRlbnRpYWxUeXBlLCAnb2F1dGgnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZl
ci51c2VybmFtZSwgJ3VzZXInKTsKLQotICAgIGNvbnN0IHsgY3JlZGVudGlhbCB9ID0gc2VydmVy
OwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5tYWNLZXksICdtYWMnKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGNyZWRlbnRpYWwuYWNjZXNzVG9rZW4sICd0b2tlbicpOwotCi0gIH0sIGB3aXRo
IHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlh
bCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkYCk7Ci0KLSAgY29uZmlnX3Rlc3QobWFrZVBjID0+
IHsKLSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxzOiBb
J3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLCAnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCddLAotICAg
ICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcsCi0gICAgICB1c2VybmFtZTogJ3VzZXInLAotICAg
ICAgY3JlZGVudGlhbDogewotICAgICAgICBtYWNLZXk6ICdtYWMnLAotICAgICAgICBhY2Nlc3NU
b2tlbjogJ3Rva2VuJwotICAgICAgfQotICAgIH1dIH0pOwotCi0gICAgY29uc3QgeyBpY2VTZXJ2
ZXJzIH0gPSBwYy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpY2VTZXJ2
ZXJzLmxlbmd0aCwgMSk7Ci0KLSAgICBjb25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJzWzBdOwotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsndHVybnM6dHVybi5leGFtcGxlLm9y
ZycsICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0J10pOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVy
LmNyZWRlbnRpYWxUeXBlLCAnb2F1dGgnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci51c2Vy
bmFtZSwgJ3VzZXInKTsKLQotICAgIGNvbnN0IHsgY3JlZGVudGlhbCB9ID0gc2VydmVyOwotICAg
IGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5tYWNLZXksICdtYWMnKTsKLSAgICBhc3NlcnRfZXF1
YWxzKGNyZWRlbnRpYWwuYWNjZXNzVG9rZW4sICd0b2tlbicpOwotCi0gIH0sIGB3aXRoIGJvdGgg
dHVybnMgYW5kIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCBhbmQgUlRDT0F1dGhD
cmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWRgKTsKLQotICAvLyBjcmVkZW50aWFs
IHR5cGUgdmFsaWRhdGlvbiBpcyBpZ25vcmVkIHdoZW4gc2NoZW1lIG5hbWUgaXMgc3R1bgotICBj
b25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGNvbnN0IHBjID0gbWFrZVBjKHsgaWNlU2VydmVy
czogW3sKLSAgICAgIHVybHM6ICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywKLSAgICAgIGNyZWRl
bnRpYWxUeXBlOiAnb2F1dGgnLAotICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgIGNyZWRl
bnRpYWw6ICdjcmVkJwotICAgIH1dIH0pOwotCi0gICAgY29uc3QgeyBpY2VTZXJ2ZXJzIH0gPSBw
Yy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpY2VTZXJ2ZXJzLmxlbmd0
aCwgMSk7Ci0gICAgY29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1swXTsKLQotICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCddKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwgJ29hdXRoJyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhzZXJ2ZXIudXNlcm5hbWUsICd1c2VyJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhz
ZXJ2ZXIuY3JlZGVudGlhbCwgJ2NyZWQnKTsKLQotICB9LCAnd2l0aCBzdHVuIHNlcnZlciwgY3Jl
ZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCcp
OwotCi0gIC8vIGNyZWRlbnRpYWwgdHlwZSB2YWxpZGF0aW9uIGlzIGlnbm9yZWQgd2hlbiBzY2hl
bWUgbmFtZSBpcyBzdHVuCi0gIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgY29uc3QgcGMg
PSBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgdXJsczogJ3N0dW46c3R1bjEuZXhhbXBs
ZS5uZXQnLAotICAgICAgY3JlZGVudGlhbFR5cGU6ICdwYXNzd29yZCcsCi0gICAgICB1c2VybmFt
ZTogJ3VzZXInLAotICAgICAgY3JlZGVudGlhbDogewotICAgICAgICBtYWNLZXk6ICcnLAotICAg
ICAgICBhY2Nlc3NUb2tlbjogJycKLSAgICAgIH0KLSAgICB9XSB9KTsKLQotICAgIGNvbnN0IHsg
aWNlU2VydmVycyB9ID0gcGMuZ2V0Q29uZmlndXJhdGlvbigpOwotICAgIGFzc2VydF9lcXVhbHMo
aWNlU2VydmVycy5sZW5ndGgsIDEpOwotCi0gICAgY29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1sw
XTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlcnZlci51cmxzLCBbJ3N0dW46c3R1bjEuZXhh
bXBsZS5uZXQnXSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIuY3JlZGVudGlhbFR5cGUsICdw
YXNzd29yZCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLnVzZXJuYW1lLCAndXNlcicpOwot
Ci0gICAgY29uc3QgeyBjcmVkZW50aWFsIH0gPSBzZXJ2ZXI7Ci0gICAgYXNzZXJ0X2VxdWFscyhj
cmVkZW50aWFsLm1hY0tleSwgJycpOwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5hY2Nl
c3NUb2tlbiwgJycpOwotCi0gIH0sICd3aXRoIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBw
YXNzd29yZCwgYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVk
Jyk7Ci0KICAgLyoKICAgICBUZXN0ZWQKICAgICAgIDQuMy4yLiAgVG8gc2V0IGEgY29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
NzQ5YmVjMWY0Y2ZlMjVjMWU5NWEzYThlOTE5NmEzMmU0M2UzZGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBA
QAorCitQQVNTIFNldHRpbmcgYmluYXJ5VHlwZSB0byAnYmxvYicgc2hvdWxkIHN1Y2NlZWQKK1BB
U1MgU2V0dGluZyBiaW5hcnlUeXBlIHRvICdhcnJheWJ1ZmZlcicgc2hvdWxkIHN1Y2NlZWQKK0ZB
SUwgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5cGUgJ2plbGx5ZmlzaCcgc2hvdWxkIHRocm93IFN5
bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgZGMu
YmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgfSIgdGhyZXcgb2JqZWN0ICJUeXBlTWlzbWF0
Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2JqZWN0IHdhcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
ZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzc29jaWF0ZWQgdG8gdGhlIG9iamVjdC4i
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIg
aXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVkIDEyCitGQUlMIFNldHRpbmcgaW52YWxpZCBiaW5hcnlU
eXBlICdhcnJheWJ1ZmZlciAnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dz
X2RvbTogZnVuY3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBl
OworICAgIH0iIHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFu
IG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBh
cmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3LCBleHBlY3Rl
ZCAxMgorRkFJTCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAnJyBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBkYy5i
aW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBp
cyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKK0ZBSUwgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5
cGUgJ251bGwnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVu
Y3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOworICAgIH0i
IHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFuIG9iamVjdCB3
YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBh
c3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3LCBleHBlY3RlZCAxMgorRkFJ
TCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAndW5kZWZpbmVkJyBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBkYy5i
aW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBp
cyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5
VHlwZS53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1i
aW5hcnlUeXBlLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjMyODFiZDUxYjBhMDFkZTI3Nzg1YzFl
MTQ3OTJhNmI1MWUwNjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53
aW5kb3cuanMKQEAgLTAsMCArMSwyNyBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCB2YWxpZEJp
bmFyeVR5cGVzID0gWydibG9iJywgJ2FycmF5YnVmZmVyJ107Citjb25zdCBpbnZhbGlkQmluYXJ5
VHlwZXMgPSBbJ2plbGx5ZmlzaCcsICdhcnJheWJ1ZmZlciAnLCAnJywgbnVsbCwgdW5kZWZpbmVk
XTsKKworZm9yIChjb25zdCBiaW5hcnlUeXBlIG9mIHZhbGlkQmluYXJ5VHlwZXMpIHsKKyAgdGVz
dCgodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCd0ZXN0LWJpbmFyeS10eXBlJyk7CisKKyAgICBkYy5iaW5hcnlUeXBlID0g
YmluYXJ5VHlwZTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjLmJpbmFyeVR5cGUsIGJpbmFyeVR5cGUs
IGBkYy5iaW5hcnlUeXBlIHNob3VsZCBiZSAnJHtiaW5hcnlUeXBlfSdgKTsKKyAgfSwgYFNldHRp
bmcgYmluYXJ5VHlwZSB0byAnJHtiaW5hcnlUeXBlfScgc2hvdWxkIHN1Y2NlZWRgKTsKK30KKwor
Zm9yIChjb25zdCBiaW5hcnlUeXBlIG9mIGludmFsaWRCaW5hcnlUeXBlcykgeworICB0ZXN0KCh0
KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJ3Rlc3QtYmluYXJ5LXR5cGUnKTsKKworICAgIGFzc2VydF90aHJvd3NfZG9tKCdT
eW50YXhFcnJvcicsICgpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOwor
ICAgIH0pOworICB9LCBgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5cGUgJyR7YmluYXJ5VHlwZX0n
IHNob3VsZCB0aHJvdyBTeW50YXhFcnJvcmApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1n
ZXRSZW1vdGVDZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVD
ZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGZkMDBjN2NmZGU2MDQ2MWJjMDg0NzVhMjlj
Mzk2YjMxOWI0ODNjNWMuLjNlNWE1OTFhMDYzYWIyNzE0YWFhMGYxNmUxNWNmZmQxYjFhM2ZhODAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSwzIEBACiAKLUZBSUwgUlRDRHRsc1RyYW5zcG9ydC5wcm90b3R5cGUuZ2V0UmVtb3Rl
Q2VydGlmaWNhdGVzIENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ1NjdHBUcmFuc3BvcnQKK0ZBSUwg
UlRDRHRsc1RyYW5zcG9ydC5wcm90b3R5cGUuZ2V0UmVtb3RlQ2VydGlmaWNhdGVzIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkdGxzVHJhbnNwb3J0LnN0YXRlJykKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKaW5kZXggOGFmOTVhODRkNTc0ZTIwZjli
MGJiZmY5NjRlZDA2NGU0ZTE3ZTYyZi4uODk5ZTYwM2NiZTBmZTFmMDIzYzhkNzYzMDU1YzU3OGVm
NjJiYjk2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sCkBAIC00MiwyMyAr
NDIsMTMgQEAKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAotICAgIHBjMS5jcmVhdGVEYXRhQ2hh
bm5lbCgndGVzdCcpOworICAgIHBjMS5hZGRUcmFjayh0cmFja0ZhY3Rvcmllcy5hdWRpbygpKTsK
ICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwogCiAgICAgZXhjaGFuZ2VPZmZl
ckFuc3dlcihwYzEsIHBjMikKICAgICAudGhlbih0LnN0ZXBfZnVuYygoKSA9PiB7Ci0gICAgICAv
LyBwYy5zY3RwIGlzIHNldCB3aGVuIHNldCpEZXNjcmlwdGlvbihhbnN3ZXIpIGlzIGNhbGxlZAot
ICAgICAgY29uc3Qgc2N0cFRyYW5zcG9ydDEgPSBwYzEuc2N0cDsKLSAgICAgIGNvbnN0IHNjdHBU
cmFuc3BvcnQyID0gcGMyLnNjdHA7Ci0KLSAgICAgIGFzc2VydF90cnVlKHNjdHBUcmFuc3BvcnQx
IGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9ydCwKLSAgICAgICAgJ0V4cGVjdCBwYy5zY3RwIHRv
IGJlIHNldCB0byB2YWxpZCBSVENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAgICAgIGFzc2VydF90cnVl
KHNjdHBUcmFuc3BvcnQyIGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9ydCwKLSAgICAgICAgJ0V4
cGVjdCBwYy5zY3RwIHRvIGJlIHNldCB0byB2YWxpZCBSVENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAg
ICAgIGNvbnN0IGR0bHNUcmFuc3BvcnQxID0gc2N0cFRyYW5zcG9ydDEudHJhbnNwb3J0OwotICAg
ICAgY29uc3QgZHRsc1RyYW5zcG9ydDIgPSBzY3RwVHJhbnNwb3J0Mi50cmFuc3BvcnQ7CisgICAg
ICBjb25zdCBkdGxzVHJhbnNwb3J0MSA9IHBjMS5nZXRTZW5kZXJzKClbMF0udHJhbnNwb3J0Owor
ICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydDIgPSBwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhbnNw
b3J0OwogCiAgICAgICBjb25zdCB0ZXN0ZWRUcmFuc3BvcnRzID0gbmV3IFNldCgpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGNiN2ViNTc5MzQ4NGI4Y2E5NTE0NDcxODU2NWU5MmZkYWI1ZWIwNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uIGFuZCBzZXRSZW1vdGVEZXNjcmlw
dGlvbiBhcmUgbm90IHJhY3kgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21w
YXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRp
bWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2YmRlMDZjOTYzNDI2OWIxN2NkNTY1YjIwYmM4
MGI0MTFkMWQ5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWlu
Zy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxl
PjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
KzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgc2lnbmFsaW5nU3RhdGVzID0gW107CisgIHBjLm9uc2ln
bmFsaW5nc3RhdGVjaGFuZ2UgPSBldiA9PiBzaWduYWxpbmdTdGF0ZXMucHVzaChwYy5zaWduYWxp
bmdTdGF0ZSk7CisgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zv
bmx5J30pOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGNvbnN0
IHNsZFByb21pc2UgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3Qgc3Jk
UHJvbWlzZSA9IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwoW3NsZFByb21pc2UsIHNyZFByb21pc2VdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
aWduYWxpbmdTdGF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgWydoYXZlLWxvY2FsLW9mZmVy
Jywnc3RhYmxlJywnaGF2ZS1yZW1vdGUtb2ZmZXInXSk7Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlv
biBhbmQgc2V0UmVtb3RlRGVzY3JpcHRpb24gYXJlIG5vdCByYWN5Jyk7CisKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVw
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzU4Mzc0M2QyNzI5YjY3MzBhNjJhOWY5OWUyY2Zi
OTkyMjM1OGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWNvbm5lY3Rpb25TZXR1cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgQ2Fu
ZGlkYXRlcyBhcmUgYWRkZWQgZHluYW1pY2FsbHk7IGNvbm5lY3Rpb24gc2hvdWxkIHdvcmsgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0
YXRlJykiCitGQUlMIENhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMTsgY29ubmVjdGlvbiBzaG91
bGQgd29yayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0
cmFuc3BvcnQuc3RhdGUnKSIKK0ZBSUwgQ2FuZGlkYXRlcyBhcmUgYWRkZWQgYXQgUEMyOyBjb25u
ZWN0aW9uIHNob3VsZCB3b3JrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1h
ZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFmYzRlNGZhMGMyMjJk
ZjRlMTQ2OWE1MjU4Mjk1YmYzNzAzNTIzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbApAQCAtMCwwICsxLDEwNiBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VGVzdCBSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUu
YWRkSWNlQ2FuZGlkYXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisvLyBUaGlzIHRlc3Qg
bWF5IGJlIGZsYWt5LCBzbyBpdCdzIGluIGl0cyBvd24gZmlsZS4KKy8vIFRoZSB0ZXN0IGJlbG9u
Z3MgaW4gUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLgorCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKKworICBleGNo
YW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyKHBjMSwg
cGMyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICAvLyBO
b3RlIHRoYXQgc2VxdWVuY2Ugb2YgdGhlIGZvbGxvd2luZyB0d28gY2FsbHMgaXMgY3JpdGljYWwK
KyAgLy8gZm9yIHRlc3Qgc3RhYmlsaXR5LgorICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAg
YXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0
ZWQnKTsKK30sICdDYW5kaWRhdGVzIGFyZSBhZGRlZCBkeW5hbWljYWxseTsgY29ubmVjdGlvbiBz
aG91bGQgd29yaycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRU
cmFuc2NlaXZlcigndmlkZW8nKTsKKworICBsZXQgY2FuZGlkYXRlczF0bzIgPSBbXTsKKyAgbGV0
IGNhbmRpZGF0ZXMydG8xID0gW107CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsK
KyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMXRvMi5wdXNoKGV2
ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50
ID0+IHsKKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMnRvMS5w
dXNoKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9CisgIGNvbnN0IHBjMkdhdGhlcmVkQ2Fu
ZGlkYXRlcyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgcGMyLmFkZEV2ZW50TGlz
dGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgaWYgKHBjMi5p
Y2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7CisgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgIH0KKyAgICB9KTsKKyAgfSk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIocGMxLCBwYzIpOwor
ICBsZXQgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyR2F0aGVyZWRDYW5kaWRhdGVzOworICAvLyBBZGQgY2Fu
ZGlkYXRlcyB0byBwYzEsIGVuc3VyaW5nIHRoYXQgaXQgZ29lcyB0byAiY29ubmVjdGluZyIgc3Rh
dGUgYmVmb3JlICJjb25uZWN0ZWQiLgorICBmb3IgKGxldCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRl
czJ0bzEpIHsKKyAgICBhd2FpdCBwYzEuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgIH0K
KyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25u
ZWN0aW5nJyk7CisgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0cmFuc2NlaXZlci5zZW5kZXIudHJhbnNw
b3J0LCAnY29ubmVjdGVkJyk7Cit9LCAnQ2FuZGlkYXRlcyBhcmUgYWRkZWQgYXQgUEMxOyBjb25u
ZWN0aW9uIHNob3VsZCB3b3JrJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworCisgIGxldCBjYW5kaWRhdGVzMXRvMiA9IFtd
OworICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBbXTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZXZl
bnQgPT4geworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0ZXMxdG8y
LnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0KKyAgcGMyLm9uaWNlY2FuZGlkYXRl
ID0gZXZlbnQgPT4geworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0
ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0KKyAgY29uc3QgcGMxR2F0
aGVyZWRDYW5kaWRhdGVzID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBwYzEuYWRk
RXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICBp
ZiAocGMxLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0ZScpIHsKKyAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfQorICAgIH0pOworICB9KTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlcihwYzEs
IHBjMik7CisgIGxldCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzFHYXRoZXJlZENhbmRpZGF0ZXM7CisgIC8v
IEFkZCBjYW5kaWRhdGVzIHRvIHBjMgorICBmb3IgKGxldCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRl
czF0bzIpIHsKKyAgICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgIH0K
KyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25u
ZWN0ZWQnKTsKK30sICdDYW5kaWRhdGVzIGFyZSBhZGRlZCBhdCBQQzI7IGNvbm5lY3Rpb24gc2hv
dWxkIHdvcmsnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVj
dGVkLnR4dAppbmRleCBjNmUzOTRmYmEyZmNmYTBjM2NmNjY3NjQ5ODIxNmVjY2YyMDRhMjhkLi42
NmMwMGFjNTVhYmJlZDYyMGU2YzMyMGFjNjA4OWJiNjc5MmIxMWFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIEZBSUwgYWRkSWNlQ2Fu
ZGlkYXRlKHt9KSBpbiBzdGFibGUgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlk
YXRlcyB0byBiCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogdXNlcm5h
bWVGcmFnbWVudDEsIHNkcE1pZDogc2RwTWlkMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5k
LW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogRXhwZWN0
IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBh
bmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VDYW5kaWRhdGUo
e3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQyLCBzZHBNTGluZUluZGV4OiAxfSkg
c2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1z
ZWN0aW9uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VD
YW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6ICJubyBzdWNoIHVmcmFnIn0pIHNob3VsZCBub3Qg
d29yayBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBBZGQgSUNFIGNhbmRpZGF0ZSBhZnRlciBzZXR0
aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZAorRkFJTCBBZGQgSUNFIGNhbmRp
ZGF0ZSBhZnRlciBzZXR0aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCBhc3Nl
cnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGFmdGVyIG1lZGlhIGxp
bmUgbT1hdWRpbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBBZGQgSUNFIGNhbmRpZGF0
ZSB3aXRoIFJUQ0ljZUNhbmRpZGF0ZSBzaG91bGQgc3VjY2VlZAogUEFTUyBBZGQgY2FuZGlkYXRl
IHdpdGggb25seSB2YWxpZCBzZHBNaWQgc2hvdWxkIHN1Y2NlZWQKIFBBU1MgQWRkIGNhbmRpZGF0
ZSB3aXRoIG9ubHkgdmFsaWQgc2RwTWlkIGFuZCBSVENJY2VDYW5kaWRhdGUgc2hvdWxkIHN1Y2Nl
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKaW5kZXggYzY4ZTQ0MmEyZDUwOTRmMjJkNTA4ZWM4
YjY4MDRiYzJhNThkMDcyZi4uNWZjYjZlODY0YThhMjIzZDUwNjJiMjJiN2E4ZjVlODlmYmY5ZDRj
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKQEAgLTIsNiArMiw3IEBACiA8dGl0bGU+VGVz
dCBSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuYWRkSWNlQ2FuZGlkYXRlPC90aXRsZT4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAg
J3VzZSBzdHJpY3QnOwogCkBAIC0yMjQsMTggKzIyNSwyMCBAQCBhPXJ0Y3AtcnNpemUKICAgICAg
IHBjLmFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogIm5vIHN1Y2ggdWZyYWcifSkp
OwogICB9LCAnYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiAibm8gc3VjaCB1ZnJh
ZyJ9KSBzaG91bGQgbm90IHdvcmsnKTsKIAotICBwcm9taXNlX3Rlc3QodCA9PiB7CisgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOwogCiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKIAotICAgIHJldHVy
biBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKLSAgICAudGhlbigoKSA9PiBw
Yy5hZGRJY2VDYW5kaWRhdGUoeworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNl
c3Npb25EZXNjKQorICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZSh7CiAgICAgICBjYW5kaWRh
dGU6IGNhbmRpZGF0ZVN0cjEsCiAgICAgICBzZHBNaWQ6IHNkcE1pZDEsCiAgICAgICBzZHBNTGlu
ZUluZGV4OiBzZHBNTGluZUluZGV4MSwKICAgICAgIHVzZXJuYW1lRnJhZ2VtZW50OiB1c2VybmFt
ZUZyYWdtZW50MQotICAgIH0pKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVf
YWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZWRpYUxpbmUxLCBjYW5kaWRhdGVTdHIxKTsKICAgfSwgJ0FkZCBJQ0UgY2FuZGlk
YXRlIGFmdGVyIHNldHRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCBzdWNjZWVkJyk7CiAK
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewpAQCAtMjU2LDcgKzI1OSw2IEBAIGE9cnRjcC1yc2l6ZQog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOwotCiAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKHNlc3Npb25EZXNjKQogICAgICAgLnRoZW4oKCkgPT4gcGMuYWRkSWNlQ2FuZGlkYXRlKHsK
ICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5k
aWRhdGUtaW4tc2RwLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWZmN2UzZTg1YTMx
M2UxNWUyZDFlN2IwOWVkNDAyNDgzYWJmYzUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgbG9jYWxEZXNjcmlwdGlvbiBjb250YWlucyBjYW5kaWRhdGVzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNh
bmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yzk3YWZlOTRhZTU5NzQzODk2
YzlkMjZiYjg1MGNjNzU0ZjU3ZTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2Fu
ZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgbGV0IHJlc29sdmVJY2VDYW5kaWRh
dGVQcm9taXNlID0gbnVsbDsKKyAgY29uc3QgaWNlQ2FuZGlkYXRlUHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHIgPT4gcmVzb2x2ZUljZUNhbmRpZGF0ZVByb21pc2UgPSByKTsKKyAgcGMub25pY2VjYW5k
aWRhdGUgPSBlID0+IHsKKyAgICByZXNvbHZlSWNlQ2FuZGlkYXRlUHJvbWlzZShwYy5sb2NhbERl
c2NyaXB0aW9uLnNkcCk7CisgICAgcGMub25pY2VjYW5kaWRhdGUgPSBudWxsOworICB9CisgIHBj
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICBhc3NlcnRfZmFsc2UocGMubG9jYWxEZXNjcmlw
dGlvbi5zZHAuaW5jbHVkZXMoImE9Y2FuZGlkYXRlOiIpLAorICAgICAgICAgICAgICAgImxvY2Fs
RGVzY3JpcHRpb24gaXMgbWlzc2luZyBjYW5kaWRhdGUgYmVmb3JlIG9uaWNlY2FuZGlkYXRlIik7
CisgIC8vIFRoZSBsb2NhbERlc2NyaXB0aW9uIGF0IHRoZSB0aW1lIG9mIHRoZSBvbmljZWNhbmRp
ZGF0ZSBldmVudC4KKyAgY29uc3QgbG9jYWxEZXNjcmlwdGlvblNkcCA9IGF3YWl0IGljZUNhbmRp
ZGF0ZVByb21pc2U7CisgIGFzc2VydF90cnVlKGxvY2FsRGVzY3JpcHRpb25TZHAuaW5jbHVkZXMo
ImE9Y2FuZGlkYXRlOiIpLAorICAgICAgICAgICAgICAgImxvY2FsRGVzY3JpcHRpb24gY29udGFp
bnMgY2FuZGlkYXRlIGFmdGVyIG9uaWNlY2FuZGlkYXRlIik7Cit9LCAnbG9jYWxEZXNjcmlwdGlv
biBjb250YWlucyBjYW5kaWRhdGVzJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0
YXRlLmh0dHBzLmh0bWwKaW5kZXggNWRiODI3MmRmMzA3MjYwZjlkYjBjNDMzM2MyM2M3YWQ0YzQ0
MzJiNi4uZDc3MTZhMWQ0ZGExOWFjYWYzYmQ4YzAxNjU0M2RkMWM3NWI0NzFkNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKQEAgLTI4NSw3ICsyODUsNyBAQAogCiAgICAg
cGMyLm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRfZnVuYygpOwogICAgIHBj
Mi5jbG9zZSgpOwotICAgIGFzc2VydF90cnVlKHBjMi5jb25uZWN0aW9uU3RhdGUgPT09ICdjbG9z
ZWQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5jb25uZWN0aW9uU3RhdGUsICdjbG9zZWQnKTsK
ICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMCkpOwogICB9
LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBjb25uZWN0aW9uc3Rh
dGVjaGFuZ2UgZXZlbnQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlRGF0YUNoYW5uZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5u
ZWwtZXhwZWN0ZWQudHh0CmluZGV4IGE4NzkwMGMxMTI5NmUwMmQ0ZmYyMjJlMGQ4MmYxMGJkYzM4
OGVkODYuLmQ1Yzk1OTczZTcxOGViYjdkZTYxNzQ5MjFiYTlhMjYyMzM3OWU2ZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1leHBlY3RlZC50eHQKQEAgLTcwLDkgKzcwLDcgQEAg
RkFJTCBSZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlkIHRoYXQgaXMgaW4gdXNlIChhZnRlciBzZXRS
ZW1vdGVEZXNjcmlwdGlvbiwgbmVnb3QKIFBBU1MgTmV3IGRhdGFjaGFubmVsIHNob3VsZCBiZSBp
biB0aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiAoYWZ0ZXIgY29ubmVjdGlvbiBl
c3RhYmxpc2htZW50KQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBkYXRhY2hhbm5lbCwg
c2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBk
YXRhY2hhbm5lbCwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5kbGUgaXMg
dXNlZAotRkFJTCBTdG9wcGluZyB0aGUgYnVuZGxlLXRhZyB3aGVuIHRoZXJlIGlzIGEgZGF0YWNo
YW5uZWwgaW4gdGhlIGJ1bmRsZSBzaG91bGQga2lsbCB0aGUgRGF0YUNoYW5uZWwgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJy
b3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBk
ZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3aXRoIG1pZD0nMSc6IEZhaWxlZCB0byBzZXR1cCBS
VENQIG11eC4iCiBQQVNTIE5ldyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBpbiB0
aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiAoYWZ0ZXIgY29ubmVjdGlvbiBlc3Rh
Ymxpc2htZW50KQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBuZWdvdGlhdGVkIGRhdGFj
aGFubmVsLCBzaG91bGQgbmVnb3RpYXRlIHByb3Blcmx5CiBQQVNTIGFkZFRyYWNrLCB0aGVuIGNy
ZWF0aW5nIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVybHkg
d2hlbiBtYXgtYnVuZGxlIGlzIHVzZWQKLUZBSUwgU3RvcHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hl
biB0aGVyZSBpcyBhIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgaW4gdGhlIGJ1bmRsZSBzaG91bGQg
a2lsbCB0aGUgRGF0YUNoYW5uZWwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5z
d2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBkZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3
aXRoIG1pZD0nMSc6IEZhaWxlZCB0byBzZXR1cCBSVENQIG11eC4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRh
Q2hhbm5lbC5odG1sCmluZGV4IDg3ODY3NjY0YjU4YTY3ODdiZDk2Y2ZiODU1NTliNGYxMTcxZTI2
M2YuLjdhZDhiZjdkNDZlY2Q3YTM3MDI1NDJkOGI0ODQxMzJhZmNjOTRkNjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlRGF0YUNoYW5uZWwuaHRtbApAQCAtNzA3LDYgKzcwNywxMSBAQCBmb3IgKGNvbnN0IG9wdGlv
bnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgIGF3YWl0IGNyZWF0
ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOwogICB9LCBgYWRkVHJhY2ssIHRoZW4g
Y3JlYXRpbmcgJHttb2RlfSwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5k
bGUgaXMgdXNlZGApOwogCisvKgorVGhpcyB0ZXN0IGlzIGRpc2FibGVkIHVudGlsIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2VicnRjLXBjL2lzc3Vlcy8yNTYyCitoYXMgYmVlbiByZXNvbHZlZDsg
aXQgcHJlc3VwcG9zZXMgdGhhdCBzdG9wcGluZyB0aGUgZmlyc3QgdHJhbnNjZWl2ZXIKK2JyZWFr
cyB0aGUgdHJhbnNwb3J0LgorCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1idW5kbGUi
fSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC03MjYsNiAr
NzMxLDcgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRydWUsIGlk
OiAwfV0pIHsKICAgICBhd2FpdCBkYzFDbG9zZWQ7CiAgIH0sIGBTdG9wcGluZyB0aGUgYnVuZGxl
LXRhZyB3aGVuIHRoZXJlIGlzIGEgJHttb2RlfSBpbiB0aGUgYnVuZGxlIGAgKwogICAgICBgc2hv
dWxkIGtpbGwgdGhlIERhdGFDaGFubmVsYCk7CisqLwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYxMzdiZmI4NWQ2MmMyNDRkODBlYzVkMzNkZWE3OGQyZGUwNGYx
ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVz
LXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK0ZBSUwgcGVuZGlu
Z0xvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2Vx
dWFsczogcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNl
IHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9u
RGVzY3JpcHRpb25dIgorRkFJTCBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQg
YXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFsczogcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9u
IGlzIHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKK0ZBSUwgY3VycmVudExv
Y2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFs
czogY3VycmVudExvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBl
bmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9uRGVz
Y3JpcHRpb25dIgorRkFJTCBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQg
dGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFsczogY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlz
IHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmQyNTY1YzNlMWUwNzM0YTQyMjMxNTIyZDc3MTI5NTA2NDkxZDJjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw4MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48
L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVP
ZmZlcigpOworCisgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51
bGwsCisgICAgICAgICAgICAgICAgJ3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIG51bGwgYmVm
b3JlIHNldExvY2FsRGVzY3JpcHRpb24nKTsKKyAgY29uc3QgcHJvbWlzZSA9IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24ob2ZmZXIpOworICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBp
cyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZycpOworICBhd2FpdCBwcm9taXNlOwor
ICBhc3NlcnRfbm90X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgJ3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIG5vdCBudWxsIGFm
dGVyIGF3YWl0Jyk7Cit9LCAicGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQg
dGhlIHJpZ2h0IHRpbWUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisKKyAgYXNz
ZXJ0X2VxdWFscyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAg
ICAgICAgJ3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBudWxsIGJlZm9yZSBzZXRSZW1vdGVE
ZXNjcmlwdGlvbicpOworICBjb25zdCBwcm9taXNlID0gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIpOworICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVs
bCwKKyAgICAgICAgICAgICAgICAncGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIGlzIHN0aWxsIG51
bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nJyk7CisgIGF3YWl0IHByb21pc2U7CisgIGFzc2VydF9u
b3RfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAg
ICAgICAgICAgJ3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBub3QgbnVsbCBhZnRlciBhd2Fp
dCcpOworfSwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmln
aHQgdGltZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdh
aXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpOworCisgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRMb2Nh
bERlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBudWxsIGJlZm9yZSBzZXRMb2NhbERlc2NyaXB0aW9uJyk7CisgIGNvbnN0IHByb21p
c2UgPSBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhc3NlcnRfZXF1YWxzKHBj
Mi5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAgICAgICAnY3VycmVu
dExvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcnKTsK
KyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLmN1cnJlbnRMb2NhbERl
c2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAnY3VycmVudExvY2FsRGVzY3Jp
cHRpb24gaXMgbm90IG51bGwgYWZ0ZXIgYXdhaXQnKTsKK30sICJjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworCisgIGFz
c2VydF9lcXVhbHMocGMxLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAg
ICAgICAgICAnY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIG51bGwgYmVmb3JlIHNldFJlbW90
ZURlc2NyaXB0aW9uJyk7CisgIGNvbnN0IHByb21pc2UgPSBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
LCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3Rp
bGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcnKTsKKyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNz
ZXJ0X25vdF9lcXVhbHMocGMxLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAg
ICAgICAgICAgICAgICAgJ2N1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBub3QgbnVsbCBhZnRl
ciBhd2FpdCcpOworfSwgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0
aGUgcmlnaHQgdGltZSIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWV4
cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMzVkNzI0YjE4YWQxYWQ5YmNhY2QxNDhiN2VjM2NlYmQ2MWEyZDM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3Rh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCByb2xsaW5nIGJhY2sgYW4gSUNFIHJlc3RhcnQg
d2hlbiBnYXRoZXJpbmcgaXMgY29tcGxldGUgc2hvdWxkIG5vdCByZXN1bHQgaW4gaWNlR2F0aGVy
aW5nU3RhdGUgY2hhbmdlcyBUZXN0IHRpbWVkIG91dAorTk9UUlVOIHNldExvY2FsRGVzY3JpcHRp
b24ocm9sbGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdT
dGF0ZSB0byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJjb21wbGV0ZSIKK05PVFJVTiBz
ZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1
c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiZ2F0
aGVyaW5nIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VH
YXRoZXJpbmdTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2staWNlR2F0
aGVyaW5nU3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzFmZTAxNGJkOWVlMThiYjZhOWFiNjVlYTdh
YTNlZWJiY2UxMjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9s
bGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJv
dG90eXBlLmljZUdhdGhlcmluZ1N0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKyAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyV2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNp
dGlvbnMoCisgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKyAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VS
ZXN0YXJ0OiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBj
MSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0
ZUNoYW5nZXModCwgcGMxKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6
ICdyb2xsYmFjayd9KTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChy
LCAxMDAwKSk7Cit9LCAncm9sbGluZyBiYWNrIGFuIElDRSByZXN0YXJ0IHdoZW4gZ2F0aGVyaW5n
IGlzIGNvbXBsZXRlIHNob3VsZCBub3QgcmVzdWx0IGluIGljZUdhdGhlcmluZ1N0YXRlIGNoYW5n
ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAorICAgIGF3YWl0IHBjLmNyZWF0ZU9mZmVyKHtv
ZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7CisgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKKyAgYXdhaXQgaWNlR2F0aGVyaW5n
U3RhdGVUcmFuc2l0aW9ucyhwYywgJ25ldycpOworfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocm9s
bGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0
byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJjb21wbGV0ZSInKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBhd2FpdCBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKAorICAgIGF3YWl0IHBjLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlv
OiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0
aGVyaW5nJyk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFj
ayd9KTsKKyAgLy8gV2UgbWlnaHQgZ28gZGlyZWN0bHkgdG8gJ25ldycsIG9yIHdlIG1pZ2h0IGdv
IHRvICdjb21wbGV0ZScgZmlyc3QsCisgIC8vIGRlcGVuZGluZyBvbiB0aW1pbmcuIEFsbG93IGVp
dGhlci4KKyAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbCisgICAg
aWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ25ldycpLAorICAgIGljZUdhdGhlcmlu
Z1N0YXRlVHJhbnNpdGlvbnMocGMsICdjb21wbGV0ZScsICduZXcnKV0pOworICBhc3NlcnRfdHJ1
ZShyZXN1bHRzLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT0gJ2Z1bGZpbGxlZCcpLAor
ICAgICdJQ0UgZ2F0aGVyaW5nIHN0YXRlIHNob3VsZCBnbyBiYWNrIHRvICJuZXciLCBwb3NzaWJs
eSB0aHJvdWdoICJjb21wbGV0ZSInKTsKK30sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNr
KSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVh
Y2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiZ2F0aGVyaW5nIicpOworCis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjg2ZWUyY2U2YmY2ODNmZmRkNDI5M2I3ZjI4ZTc4YjhiMTM1
Mjg0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2Vy
dmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2VydmVyIFJUQ1BlZXJDb25uZWN0
aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ1JUQ1BlZXJD
b25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCknLCAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0
RGVmYXVsdEljZVNlcnZlcnMnIGlzIHVuZGVmaW5lZCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VT
ZXJ2ZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZGJkYjhkZWM0NmRl
NTQ5YzA3Nzk0OWVkOTQ2YTdhMzEwZTliNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hh
cnNldD11dGYtOD4KLTx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVy
czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0
aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAotCi0gIC8qCi0gICAgICBbQ29u
c3RydWN0b3Iob3B0aW9uYWwgUlRDQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKV0KLSAgICAg
IGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgc3Rh
dGljIHNlcXVlbmNlPFJUQ0ljZVNlcnZlcj4gICAgICBnZXREZWZhdWx0SWNlU2VydmVycygpOwot
ICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGRpY3Rpb25hcnkgUlRDSWNlU2VydmVyIHsK
LSAgICAgICAgcmVxdWlyZWQgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSB1cmxz
OwotICAgICAgICAgICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJuYW1lOwotICAgICAgICAgICAgICAgICAoRE9NU3RyaW5nIG9yIFJUQ09BdXRoQ3JlZGVudGlh
bCkgIGNyZWRlbnRpYWw7Ci0gICAgICAgICAgICAgICAgIFJUQ0ljZUNyZWRlbnRpYWxUeXBlICAg
ICAgICAgICAgICAgY3JlZGVudGlhbFR5cGUgPSAicGFzc3dvcmQiOwotICAgICAgfTsKLQotICAg
ICAgZGljdGlvbmFyeSBSVENPQXV0aENyZWRlbnRpYWwgewotICAgICAgICByZXF1aXJlZCBET01T
dHJpbmcgbWFjS2V5OwotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgYWNjZXNzVG9rZW47Ci0g
ICAgICB9OwotCi0gICAgICBlbnVtIFJUQ0ljZUNyZWRlbnRpYWxUeXBlIHsKLSAgICAgICAgInBh
c3N3b3JkIiwKLSAgICAgICAgIm9hdXRoIgotICAgICAgfTsKLSAgICovCi0KLSAgdGVzdCgoKSA9
PiB7Ci0gICAgY29uc3QgaWNlU2VydmVycyA9IFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJ
Y2VTZXJ2ZXJzKCk7Ci0KLSAgICBhc3NlcnRfdHJ1ZShBcnJheS5pc0FycmF5KGljZVNlcnZlcnMp
LAotICAgICAgJ0V4cGVjdCBpY2VTZXJ2ZXJzIHRvIGJlIGFuIGFycmF5Jyk7Ci0KLSAgICAvLyBk
aWN0aW9uYXJ5IElETCBjYW5ub3QgYmUgdGVzdGVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgaWRsaGFy
bmVzcwotICAgIGZvcihjb25zdCBzZXJ2ZXIgb2YgaWNlU2VydmVycykgewotICAgICAgY29uc3Qg
eyB1cmxzLCB1c2VybmFtZSwgY3JlZGVudGlhbCwgY3JlZGVudGlhbFR5cGUgfSA9IHNlcnZlcjsK
LQotICAgICAgaWYoQXJyYXkuaXNBcnJheSh1cmxzKSkgewotICAgICAgICBmb3IoY29uc3QgdXJs
IG9mIHVybHMpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB1cmwsICdzdHJpbmcn
LAotICAgICAgICAgICAgJ0V4cGVjdCBlbGVtZW50cyBpbiB1cmxzIGFycmF5IHRvIGJlIHN0cmlu
ZycpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnRfZXF1YWxzKHR5
cGVvZiB1cmxzLCAnc3RyaW5nJywKLSAgICAgICAgICAnRXhwZWN0IHVybHMgdG8gYmUgZWl0aGVy
IHN0cmluZyBvciBhcnJheScpOwotICAgICAgfQotCi0gICAgICBpZih1c2VybmFtZSAhPT0gdW5k
ZWZpbmVkKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHVzZXJuYW1lLCAnc3RyaW5n
JywKLSAgICAgICAgICAnRXhwZWN0IHVzZXJuYW1lIHRvIGJlIGVpdGhlciB1bmRlZmluZWQgb3Ig
c3RyaW5nJyk7Ci0gICAgICB9Ci0KLSAgICAgIGFzc2VydF90cnVlKGNyZWRlbnRpYWxUeXBlID09
PSAncGFzc3dvcmQnIHx8IGNyZWRlbnRpYWxUeXBlID09PSAnb2F1dGgnLAotICAgICAgICAnRXhw
ZWN0IGNyZWRlbnRpYWxUeXBlIHRvIGJlIGVpdGhlciBwYXNzd29yZCBvciBvYXV0aCcpCi0KLSAg
ICAgIGlmKGNyZWRlbnRpYWwpIHsKLSAgICAgICAgaWYodHlwZW9mKGNyZWRlbnRpYWwpID09PSAn
b2JqZWN0JykgewotICAgICAgICAgIGNvbnN0IHsgbWFjS2V5LCBhY2Nlc3NUb2tlbiB9ID0gY3Jl
ZGVudGlhbDsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBtYWNLZXksICdzdHJpbmcn
LAotICAgICAgICAgICAgJ0V4cGVjdCBtYWNLZXkgdG8gYmUgc3RyaW5nJyk7Ci0KLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBhY2Nlc3NUb2tlbiwgJ3N0cmluZycsCi0gICAgICAgICAg
ICAnRXhwZWN0IGFjY2Vzc1Rva2VuIHRvIGJlIHN0cmluZycpOwotCi0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgY3JlZGVudGlhbCwgJ3N0cmluZycsCi0g
ICAgICAgICAgICAnRXhwZWN0IGNyZWRlbnRpYWwgdG8gYmUgZWl0aGVyIHVuZGVmaW5lZCwgc3Ry
aW5nLCBvciBSVENPYXV0aENyZWRlbnRpYWwgZGljdGlvbmFyeScpOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgfQotCi0gICAgLy8gRXhwZWN0IGRlZmF1bHQgaWNlIHNlcnZlcnMgdG8gYmUgYWNj
ZXB0ZWQgYXMgdmFsaWQgY29uZmlndXJhdGlvbgotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKHsgaWNlU2VydmVycyB9KTsKLQotICAgIC8vIE9ubHkgbWFrZSBzdXJlIHRoZXJl
IGFyZSBzYW1lIG51bWJlciBvZiBpY2Ugc2VydmVycyBjb25maWd1cmVkCi0gICAgLy8gYW5kIG5v
dCBkbyBhbnkgZGVlcCBlcXVhbGl0eSBjaGVja2luZwotICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0
Q29uZmlndXJhdGlvbigpLmljZVNlcnZlcnMubGVuZ3RoLCBpY2VTZXJ2ZXJzLmxlbmd0aCk7Ci0K
LSAgfSwgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCkgc2hvdWxkIHJl
dHVybiBhcnJheSBvZiBSVENJY2VTZXJ2ZXInKTsKLQotICAvKgotICAgIENvdmVyYWdlIFJlcG9y
dAotICAgICAgU2luY2UgdGhlcmUgaXMgbm8gc3RlcHMgaW52b2x2ZWQgYW5kIHdlIGFyZSBvbmx5
IGNoZWNraW5nIGJhc2ljIGNhbGwsCi0gICAgICBUaGlzIGlzIGNvdW50ZWQgYXMgMSB0cml2aWFs
IHRlc3QgY292ZXJhZ2UuCi0KLSAgICAgIFRlc3RlZCAgICAxCi0gICAgICBUb3RhbCAgICAgMQot
ICAgKi8KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDAwOTY3YTk1MTY1OWRiODk1M2MxOTQ5MzdmOTBjMWFiNjE5MWQ4MzUuLmE0Njc0NzI4NTRm
MGNjZDc3YjJhZjBkOTNiZDkzZjBjZjEwMDA0N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTQsMTIgKzQsMTcgQEAgUEFTUyBnZXRTdGF0cyhudWxsKSBzaG91
bGQgc3VjY2VlZAogRkFJTCBnZXRTdGF0cygpIHdpdGggdHJhY2sgbm90IGFkZGVkIHRvIGNvbm5l
Y3Rpb24gc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdW5yZWFj
aGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQogUEFTUyBnZXRTdGF0cygpIHdpdGggdHJhY2sgYWRkZWQgdmlhIGFkZFRyYWNrIHNob3Vs
ZCBzdWNjZWVkCiBQQVNTIGdldFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhbnNj
ZWl2ZXIgc2hvdWxkIHN1Y2NlZWQKLUZBSUwgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0
ZWQgd2l0aCBtb3JlIHRoYW4gb25lIHNlbmRlciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZEFj
Y2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmlu
ZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBGQUlMIGdldFN0YXRzKCkgd2l0aCB0cmFjayBh
c3NvY2lhdGVkIHdpdGggYm90aCBzZW5kZXIgYW5kIHJlY2VpdmVyIHNob3VsZCByZWplY3Qgd2l0
aCBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIFBBU1MgZ2V0U3RhdHMoKSB3
aXRoIG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVl
ci1jb25uZWN0aW9uIHN0YXRzIG9uIGFuIGVtcHR5IFBDCi1GQUlMIGdldFN0YXRzKCkgd2l0aCBu
byBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIHBlZXItY29u
bmVjdGlvbiBzdGF0cyBhbmQgb3V0Ym91bmQtdHJhY2stc3RhdHMgYXNzZXJ0X3RydWU6IEV4cGVj
dCBzdGF0c1JlcG9ydCB0byBjb250YWluIHN0YXRzIG9iamVjdCBvZiB0eXBlIG91dGJvdW5kLXJ0
cCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBnZXRTdGF0cygpIHdpdGggbm8gYXJndW1l
bnQgc2hvdWxkIHJldHVybiBzdGF0cyBmb3Igbm8tc3RyZWFtIHRyYWNrcyBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgZGljdGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3Rl
ZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIGdldFN0YXRzKCkgb24gdHJhY2sg
YXNzb2NpYXRlZCB3aXRoIFJ0cFNlbmRlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250
YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFy
eS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVyIiBidXQgZ290
ICJ1bmRlZmluZWQiCi1GQUlMIGdldFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJ0
cFJlY2VpdmVyIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgaW5ib3VuZC1y
dHAgc3RhdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkuY29kZWNJZCB0byBiZSBz
dHJpbmcgZXhwZWN0ZWQgInN0cmluZyIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFTUyBnZXRTdGF0
cygpIHRyYWNrIHdpdGggc3RyZWFtIHJldHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3Vu
ZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3RhdHMoKSB0cmFjayB3aXRob3V0IHN0cmVhbSByZXR1cm5z
IHBlZXItY29ubmVjdGlvbiBhbmQgb3V0Ym91bmQtcnRwIHN0YXRzCitQQVNTIGdldFN0YXRzKCkg
YXVkaW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHMKK1BBU1MgZ2V0
U3RhdHMoKSB2aWRlbyBvdXRib3VuZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cwor
RkFJTCBnZXRTdGF0cygpIGF1ZGlvIGFuZCB2aWRlbyB2YWxpZGF0ZSBhbGwgbWFuZGF0b3J5IHN0
YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8g
YmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK1BBU1MgZ2V0
U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwU2VuZGVyIHNob3VsZCByZXR1
cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRzCitQQVNTIGdldFN0
YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJUQ1J0cFJlY2VpdmVyIHNob3VsZCByZXR1
cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgaW5ib3VuZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3Rh
dHMoKSBpbmJvdW5kLXJ0cCBjb250YWlucyBhbGwgbWFuZGF0b3J5IHN0YXRzCiBGQUlMIGdldFN0
YXRzKCkgd2l0aCBjb25uZWN0ZWQgcGVlciBjb25uZWN0aW9ucyBoYXZpbmcgdHJhY2tzIGFuZCBk
YXRhIGNoYW5uZWwgc2hvdWxkIHJldHVybiBhbGwgbWFuZGF0b3J5IHRvIGltcGxlbWVudCBzdGF0
cyBhc3NlcnRfdW5yZWFjaGVkOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkudG90YWxBdWRpb0VuZXJneSB0byBiZSBudW1iZXIg
ZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIiBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK0ZBSUwgZ2V0U3RhdHModHJhY2spIHNob3VsZCBub3Qgd29yayBpZiBtdWx0aXBsZSBz
ZW5kZXJzIGhhdmUgdGhlIHNhbWUgdHJhY2sgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUg
cmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUlRDU3Rh
dHMudGltZXN0YW1wIGluY3JlYXNlcyB3aXRoIHRpbWUgcGFzc2luZwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0
cHMuaHRtbAppbmRleCBlZGUwYWIxZWZjMTA3OTlkMTI0NzM0MzdlNTNmMmVjNTU1YWE2MjVmLi40
OWY4ODEzMWMzZTFmNzViOGI3Y2I5MjY3OTJmOWFjNzFmNDFlOGVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLmh0bWwKQEAgLTkwLDIzICs5MCw2IEBACiAgICAgcmV0dXJuIHBjLmdldFN0YXRzKHRyYWNr
KTsKICAgfSwgJ2dldFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhbnNjZWl2ZXIg
c2hvdWxkIHN1Y2NlZWQnKTsKIAotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOwotICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAu
dGhlbigoW3RyYWNrLCBtZWRpYVN0cmVhbV0pID0+IHsKLSAgICAgIC8vIGFkZFRyYW5zY2VpdmVy
IGFsbG93cyBhZGRpbmcgc2FtZSB0cmFjayBtdWx0aXBsZSB0aW1lcwotICAgICAgY29uc3QgdHJh
bnNjZWl2ZXIxID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwotICAgICAgY29uc3QgdHJhbnNj
ZWl2ZXIyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwotCi0gICAgICBhc3NlcnRfbm90X2Vx
dWFscyh0cmFuc2NlaXZlcjEsIHRyYW5zY2VpdmVyMik7Ci0gICAgICBhc3NlcnRfbm90X2VxdWFs
cyh0cmFuc2NlaXZlcjEuc2VuZGVyLCB0cmFuc2NlaXZlcjIuc2VuZGVyKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIxLnNlbmRlci50cmFjaywgdHJhbnNjZWl2ZXIyLnNlbmRlci50
cmFjayk7Ci0KLSAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNj
ZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFjaykpOwotICAgIH0pOwotICB9LCBgZ2V0U3RhdHMo
KSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4gb25lIHNlbmRlciBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yYCk7Ci0KICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKQEAgLTEzNSwzNSArMTE4LDY5IEBACiAgICAgfSk7CiAg
IH0sICdnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHJldHVybiBzdGF0cyByZXBv
cnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24gc3RhdHMgb24gYW4gZW1wdHkgUEMnKTsKIAot
ICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBn
ZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAudGhlbigoW3RyYWNrLCBtZWRpYVN0
cmVhbV0pID0+IHsKLSAgICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7Ci0gICAg
ICByZXR1cm4gcGMuZ2V0U3RhdHMoKTsKLSAgICB9KQotICAgIC50aGVuKHN0YXRzUmVwb3J0ID0+
IHsKLS8vICAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7Ci0vLyAgICAgIGFz
c2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBbJ3BlZXItY29ubmVjdGlv
biddKTsKLSAgICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBb
J291dGJvdW5kLXJ0cCddKTsKLSAgICB9KTsKLSAgfSwgJ2dldFN0YXRzKCkgd2l0aCBubyBhcmd1
bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIHBlZXItY29ubmVjdGlv
biBzdGF0cyBhbmQgb3V0Ym91bmQtdHJhY2stc3RhdHMnKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0
KTsKKyAgICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOwor
ICAgIGNvbnN0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1l
ZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7CisgICAg
ZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIocGMsIHBjMik7CisgICAgYXdhaXQgbGlzdGVuVG9Db25uZWN0ZWQocGMpOworICAgIGNv
bnN0IHN0YXRzUmVwb3J0ID0gYXdhaXQgcGMuZ2V0U3RhdHMoKTsKKyAgICBnZXRSZXF1aXJlZFN0
YXRzKHN0YXRzUmVwb3J0LCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgZ2V0UmVxdWlyZWRTdGF0
cyhzdGF0c1JlcG9ydCwgJ291dGJvdW5kLXJ0cCcpOworICB9LCAnZ2V0U3RhdHMoKSB0cmFjayB3
aXRoIHN0cmVhbSByZXR1cm5zIHBlZXItY29ubmVjdGlvbiBhbmQgb3V0Ym91bmQtcnRwIHN0YXRz
Jyk7CiAKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICBy
ZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpCi0gICAgLnRoZW4oKFt0cmFjaywg
bWVkaWFTdHJlYW1dKSA9PiB7Ci0gICAgICBwYy5hZGRUcmFjayh0cmFjayk7Ci0gICAgICByZXR1
cm4gcGMuZ2V0U3RhdHMoKTsKLSAgICB9KQotICAgIC50aGVuKHN0YXRzUmVwb3J0ID0+IHsKLSAg
ICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOwotICAgICAgYXNzZXJ0X3N0YXRz
X3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVlci1jb25uZWN0aW9uJ10pOwotICAg
ICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsnb3V0Ym91bmQt
cnRwJ10pOwotICAgIH0pOwotICB9LCAnZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3Vs
ZCByZXR1cm4gc3RhdHMgZm9yIG5vLXN0cmVhbSB0cmFja3MnKTsKKyAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51
cCh0KTsKKyAgICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQp
OworICAgIGNvbnN0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNl
ck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKHRyYWNrKTsKKyAgICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywg
cGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNS
ZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHNS
ZXBvcnQsICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBnZXRSZXF1aXJlZFN0YXRzKHN0YXRzUmVw
b3J0LCAnb3V0Ym91bmQtcnRwJyk7CisgIH0sICdnZXRTdGF0cygpIHRyYWNrIHdpdGhvdXQgc3Ry
ZWFtIHJldHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3VuZC1ydHAgc3RhdHMnKTsKKwor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29u
bmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0
aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2Fp
dCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ss
IG1lZGlhU3RyZWFtKTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nv
bm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygp
OworICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBbJ291dGJv
dW5kLXJ0cCddKTsKKyAgfSwgJ2dldFN0YXRzKCkgYXVkaW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5z
IGFsbCBtYW5kYXRvcnkgc3RhdHMnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNv
bnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3Qg
W3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ3ZpZGVv
Jyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKKyAgICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywg
cGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNS
ZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFz
X3N0YXRzKHN0YXRzUmVwb3J0LCBbJ291dGJvdW5kLXJ0cCddKTsKKyAgfSwgJ2dldFN0YXRzKCkg
dmlkZW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHMnKTsKKworICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVj
dGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9u
V2l0aENsZWFudXAodCk7CisgICAgY29uc3QgW2F1ZGlvVHJhY2ssIGF1ZGlvU3RyZWFtXSA9IGF3
YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFjayhhdWRp
b1RyYWNrLCBhdWRpb1N0cmVhbSk7CisgICAgY29uc3QgW3ZpZGVvVHJhY2ssIHZpZGVvU3RyZWFt
XSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgndmlkZW8nKTsKKyAgICBwYy5hZGRUcmFj
ayh2aWRlb1RyYWNrLCB2aWRlb1N0cmVhbSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
LCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMsIHBjMik7CisgICAgYXdh
aXQgbGlzdGVuVG9Db25uZWN0ZWQocGMpOworICAgIGNvbnN0IHN0YXRzUmVwb3J0ID0gYXdhaXQg
cGMuZ2V0U3RhdHMoKTsKKyAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKKyAg
fSwgJ2dldFN0YXRzKCkgYXVkaW8gYW5kIHZpZGVvIHZhbGlkYXRlIGFsbCBtYW5kYXRvcnkgc3Rh
dHMnKTsKIAogICAvKgogICAgIDguNS4gIFRoZSBzdGF0cyBzZWxlY3Rpb24gYWxnb3JpdGhtCkBA
IC0xODEsMTIgKzE5OCwxMCBAQAogICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7
CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjLCBwYzIpOwogICAgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMsIHBjMik7Ci0gICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQocGMp
OworICAgIGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKICAgICBjb25zdCBzdGF0cyA9IGF3
YWl0IHBjLmdldFN0YXRzKHRyYWNrKTsKLSAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzKTsK
LSAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0cywgWydvdXRib3VuZC1ydHAn
XSk7Ci0gIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBTZW5kZXIg
c2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBvdXRib3VuZC1ydHAgc3RhdHNg
KTsKLQorICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHMsICdvdXRib3VuZC1ydHAnKTsKKyAgfSwg
YGdldFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJUQ1J0cFNlbmRlciBzaG91bGQg
cmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0c2ApOwogCiAg
IC8qCiAgICAgOC41LiAgVGhlIHN0YXRzIHNlbGVjdGlvbiBhbGdvcml0aG0KQEAgLTIxMyw5ICsy
MjgsMjggQEAKICAgICAgIH0pOwogICAgIH0KICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHBjMi5n
ZXRTdGF0cyhwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2spOwotICAgIHZhbGlkYXRlU3RhdHNS
ZXBvcnQoc3RhdHMpOwotICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzLCBb
J2luYm91bmQtcnRwJ10pOwotICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdp
dGggUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBpbmJv
dW5kLXJ0cCBzdGF0c2ApOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHMsICdpbmJvdW5kLXJ0
cCcpOworICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwUmVj
ZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBpbmJvdW5kLXJ0cCBz
dGF0c2ApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNy
ZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRl
UGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKworICAgIGxldCBbdHJhY2ssIG1lZGlhU3Ry
ZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRU
cmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywg
cGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIC8vIFdh
aXQgZm9yIHVubXV0ZSBpZiB0aGUgdHJhY2sgaXMgbm90IGFscmVhZHkgdW5tdXRlZC4KKyAgICAv
LyBBY2NvcmRpbmcgdG8gc3BlYywgaXQgc2hvdWxkIGJlIG11dGVkIHdoZW4gYmVpbmcgY3JlYXRl
ZCwgYnV0IHRoaXMKKyAgICAvLyBpcyBub3Qgd2hhdCB0aGlzIHRlc3QgaXMgdGVzdGluZywgc28g
YWxsb3cgaXQgdG8gYmUgdW5tdXRlZC4KKyAgICBpZiAocGMyLmdldFJlY2VpdmVycygpWzBdLnRy
YWNrLm11dGVkKSB7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
ICAgcGMyLmdldFJlY2VpdmVycygpWzBdLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3VubXV0ZScs
IHJlc29sdmUpOworICAgICAgfSk7CisgICAgfQorICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMy
LmdldFN0YXRzKHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFjayk7CisgICAgZ2V0UmVxdWlyZWRT
dGF0cyhzdGF0cywgJ2luYm91bmQtcnRwJyk7CisgIH0sIGBnZXRTdGF0cygpIGluYm91bmQtcnRw
IGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHNgKTsKIAogICAvKgogICAgIDguNiAgIE1hbmRh
dG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKQEAgLTMzOSw0ICszNzMsMzQgQEAKIAogICB9LCBgZ2V0
U3RhdHMoKSB3aXRoIGNvbm5lY3RlZCBwZWVyIGNvbm5lY3Rpb25zIGhhdmluZyB0cmFja3MgYW5k
IGRhdGEgY2hhbm5lbCBzaG91bGQgcmV0dXJuIGFsbCBtYW5kYXRvcnkgdG8gaW1wbGVtZW50IHN0
YXRzYCk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgICBjb25zdCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVz
ZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7CisgICAgcGMu
YWRkVHJhbnNjZWl2ZXIodHJhY2spOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwg
J0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYWNrKSk7CisgIH0sIGBnZXRTdGF0
cyh0cmFjaykgc2hvdWxkIG5vdCB3b3JrIGlmIG11bHRpcGxlIHNlbmRlcnMgaGF2ZSB0aGUgc2Ft
ZSB0cmFja2ApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBrTWlu
aW11bVRpbWVFbGFwc2VkQmV0d2VlbkdldFN0YXRzQ2FsbHNNcyA9IDUwMDsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgICAgY29uc3QgdDAgPSBNYXRoLmZsb29yKHBlcmZvcm1hbmNlLm5vdygpKTsK
KyAgICBjb25zdCB0MFN0YXRzID0gZ2V0UmVxdWlyZWRTdGF0cyhhd2FpdCBwYy5nZXRTdGF0cygp
LCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgYXdhaXQgbmV3IFByb21pc2UoCisgICAgICAgIHIg
PT4gdC5zdGVwX3RpbWVvdXQociwga01pbmltdW1UaW1lRWxhcHNlZEJldHdlZW5HZXRTdGF0c0Nh
bGxzTXMpKTsKKyAgICBjb25zdCB0MVN0YXRzID0gZ2V0UmVxdWlyZWRTdGF0cyhhd2FpdCBwYy5n
ZXRTdGF0cygpLCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgY29uc3QgdDEgPSBNYXRoLmNlaWwo
cGVyZm9ybWFuY2Uubm93KCkpOworICAgIGNvbnN0IG1heGltdW1UaW1lRWxhcHNlZEJldHdlZW5H
ZXRTdGF0c0NhbGxzTXMgPSB0MSAtIHQwOworICAgIGNvbnN0IGRlbHRhVGltZXN0YW1wTXMgPSB0
MVN0YXRzLnRpbWVzdGFtcCAtIHQwU3RhdHMudGltZXN0YW1wOworICAgIC8vIFRoZSBkZWx0YSBt
dXN0IGJlIGF0IGxlYXN0IHRoZSB0aW1lIHdlIHdhaXRlZCBiZXR3ZWVuIGNhbGxzLgorICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZGVsdGFUaW1lc3RhbXBNcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtNaW5pbXVtVGltZUVsYXBzZWRCZXR3ZWVuR2V0U3RhdHNDYWxsc01z
KTsKKyAgICAvLyBUaGUgZGVsdGEgbXVzdCBiZSBhdCBtb3N0IHRoZSB0aW1lIGVsYXBzZWQgYmVm
b3JlIHRoZSBmaXJzdCBnZXRTdGF0cygpCisgICAgLy8gY2FsbCBhbmQgYWZ0ZXIgdGhlIHNlY29u
ZCBnZXRTdGF0cygpIGNhbGwuCisgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChkZWx0YVRpbWVz
dGFtcE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVRpbWVFbGFwc2VkQmV0
d2VlbkdldFN0YXRzQ2FsbHNNcyk7CisgIH0sIGBSVENTdGF0cy50aW1lc3RhbXAgaW5jcmVhc2Vz
IHdpdGggdGltZSBwYXNzaW5nYCk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3QtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NDg5NjkwYTc5NWRmYzM4M2ViYmJhY2U2Yzk1MTVhOTc3
ZTk1MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgU2V0dGluZyB1cCBhIGNvbm5lY3Rpb24gdXNp
bmcgaGVscGVycyBhbmQgZGVmYXVsdHMgc2hvdWxkIHdvcmsgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0YXRlJykiCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVz
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQyZjY2NTJhYzRjNGIyMTY1ZDkxODkyOTk3Nzg4OGM1NWRhZGRk
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC5odG1sCkBAIC0w
LDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIgdGVzdHM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcigndmlk
ZW8nKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2Vp
dmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0ZWQnKTsKK30sICdTZXR0aW5nIHVwIGEgY29u
bmVjdGlvbiB1c2luZyBoZWxwZXJzIGFuZCBkZWZhdWx0cyBzaG91bGQgd29yaycpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMKaW5kZXggMDc2MjZiZDBjY2MzOWU5MzAzNGJlYWYxZjc0NWJiYzQ5YTk0MzhjMS4uNWFl
ZjBhOGUyMWU0MmZhZmU1ODcxOWMwZmIyNDZhOTE5ZDFiMTVkMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwpAQCAtMjMyLDYgKzIz
MiwxMiBAQCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29ubmVjdGlvblN0YXRlQ2hhbmdlKHBjLCB3
YW50ZWRTdGF0ZXMpIHsKICAgfQogfQogCithc3luYyBmdW5jdGlvbiB3YWl0Rm9ySWNlR2F0aGVy
aW5nU3RhdGUocGMsIHdhbnRlZFN0YXRlcykgeworICB3aGlsZSAoIXdhbnRlZFN0YXRlcy5pbmNs
dWRlcyhwYy5pY2VHYXRoZXJpbmdTdGF0ZSkpIHsKKyAgICBhd2FpdCB3YWl0VW50aWxFdmVudChw
YywgJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJyk7CisgIH0KK30KKwogLy8gUmVzb2x2ZXMgd2hl
biBSVFAgcGFja2V0cyBoYXZlIGJlZW4gcmVjZWl2ZWQuCiBhc3luYyBmdW5jdGlvbiBsaXN0ZW5G
b3JTU1JDcyh0LCByZWNlaXZlcikgewogICB3aGlsZSAodHJ1ZSkgewpAQCAtMzkyLDcgKzM5OCw3
IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewogICAgIHJldHVybiBkc3Quc3RyZWFtLmdldEF1
ZGlvVHJhY2tzKClbMF07CiAgIH0sCiAKLSAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQgPSA0
ODAsIHNpZ25hbCA9IG51bGx9ID0ge30pIHsKKyAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQg
PSA0ODAsIHNpZ25hbH0gPSB7fSkgewogICAgIGNvbnN0IGNhbnZhcyA9IE9iamVjdC5hc3NpZ24o
CiAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwge3dpZHRoLCBoZWlnaHR9
CiAgICAgKTsKQEAgLTQwMCwxNSArNDA2LDE3IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewog
ICAgIGNvbnN0IHN0cmVhbSA9IGNhbnZhcy5jYXB0dXJlU3RyZWFtKCk7CiAKICAgICBsZXQgY291
bnQgPSAwOwotICAgIHNldEludGVydmFsKCgpID0+IHsKKyAgICBjb25zdCBpbnRlcnZhbCA9IHNl
dEludGVydmFsKCgpID0+IHsKICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7Y291bnQlMjU1
fSwgJHtjb3VudCpjb3VudCUyNTV9LCAke2NvdW50JTI1NX0pYDsKICAgICAgIGNvdW50ICs9IDE7
CiAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAvLyBJZiBz
aWduYWwgaXMgc2V0LCBhZGQgYSBjb25zdGFudC1jb2xvciBib3ggdG8gdGhlIHZpZGVvIGZyYW1l
Ci0gICAgICAvLyBhdCBjb29yZGluYXRlcyAxMCB0byAzMCBpbiBib3RoIFggYW5kIFkgZGlyZWN0
aW9uLgotICAgICAgaWYgKHNpZ25hbCAhPT0gbnVsbCkgeworICAgICAgLy8gSWYgc2lnbmFsIGlz
IHNldCAoMC0yNTUpLCBhZGQgYSBjb25zdGFudC1jb2xvciBib3ggb2YgdGhhdCBsdW1pbmFuY2Ug
dG8KKyAgICAgIC8vIHRoZSB2aWRlbyBmcmFtZSBhdCBjb29yZGluYXRlcyAyMCB0byA2MCBpbiBi
b3RoIFggYW5kIFkgZGlyZWN0aW9uLgorICAgICAgLy8gKGJpZyBlbm91Z2ggdG8gYXZvaWQgY29s
b3IgYmxlZWQgZnJvbSBzdXJyb3VuZGluZyB2aWRlbyBpbiBzb21lIGNvZGVjcywKKyAgICAgIC8v
IGZvciBtb3JlIHN0YWJsZSB0ZXN0cykuCisgICAgICBpZiAoc2lnbmFsICE9IHVuZGVmaW5lZCkg
ewogICAgICAgICBjdHguZmlsbFN0eWxlID0gYHJnYigke3NpZ25hbH0sICR7c2lnbmFsfSwgJHtz
aWduYWx9KWA7Ci0gICAgICAgIGN0eC5maWxsUmVjdCgxMCwgMTAsIDIwLCAyMCk7CisgICAgICAg
IGN0eC5maWxsUmVjdCgyMCwgMjAsIDQwLCA0MCk7CiAgICAgICB9CiAgICAgfSwgMTAwKTsKIApA
QCAtNDE3LDI1ICs0MjUsMzQgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgfSBlbHNl
IHsKICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAo
KSA9PiB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLSAgICAg
IH0pOworICAgICAgfSwge29uY2U6IHRydWV9KTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyZWFt
LmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgLy8gSW1wbGVtZW50IHRyYWNrLnN0b3AoKSBmb3Ig
cGVyZm9ybWFuY2UgaW4gc29tZSB0ZXN0cyBvbiBzb21lIHBsYXRmb3JtcworICAgIGNvbnN0IHRy
YWNrID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgY29uc3QgbmF0aXZlU3RvcCA9
IHRyYWNrLnN0b3A7CisgICAgdHJhY2suc3RvcCA9IGZ1bmN0aW9uIHN0b3AoKSB7CisgICAgICBj
bGVhckludGVydmFsKGludGVydmFsKTsKKyAgICAgIG5hdGl2ZVN0b3AuYXBwbHkodGhpcyk7Cisg
ICAgICBpZiAoZG9jdW1lbnQuYm9keSAmJiBjYW52YXMucGFyZW50RWxlbWVudCA9PSBkb2N1bWVu
dC5ib2R5KSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoY2FudmFzKTsKKyAg
ICAgIH0KKyAgICB9OworICAgIHJldHVybiB0cmFjazsKICAgfQogfTsKIAogLy8gR2V0IHRoZSBz
aWduYWwgZnJvbSBhIHZpZGVvIGVsZW1lbnQgaW5zZXJ0ZWQgYnkgY3JlYXRlTm9pc2VTdHJlYW0K
IGZ1bmN0aW9uIGdldFZpZGVvU2lnbmFsKHYpIHsKLSAgaWYgKHYudmlkZW9XaWR0aCA8IDIxIHx8
IHYudmlkZW9IZWlnaHQgPCAyMSkgewotICAgIHJldHVybiBudWxsOworICBpZiAodi52aWRlb1dp
ZHRoIDwgNjAgfHwgdi52aWRlb0hlaWdodCA8IDYwKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCdn
ZXRWaWRlb1NpZ25hbDogdmlkZW8gdG9vIHNtYWxsIGZvciB0ZXN0Jyk7CiAgIH0KICAgY29uc3Qg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGNhbnZhcy53aWR0
aCA9IHYudmlkZW9XaWR0aDsKLSAgY2FudmFzLmhlaWdodCA9IHYudmlkZW9IZWlnaHQ7CisgIGNh
bnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSA2MDsKICAgY29uc3QgY29udGV4dCA9IGNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOwotICBjb250ZXh0LmRyYXdJbWFnZSh2LCAwLCAwLCB2LnZpZGVv
V2lkdGgsIHYudmlkZW9IZWlnaHQpOwotICAvLyBFeHRyYWN0IHBpeGVsIHZhbHVlIGF0IHBvc2l0
aW9uIDIwLCAyMAotICBjb25zdCBwaXhlbCA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDIwLCAyMCwg
MSwgMSk7CisgIGNvbnRleHQuZHJhd0ltYWdlKHYsIDAsIDApOworICAvLyBFeHRyYWN0IHBpeGVs
IHZhbHVlIGF0IHBvc2l0aW9uIDQwLCA0MAorICBjb25zdCBwaXhlbCA9IGNvbnRleHQuZ2V0SW1h
Z2VEYXRhKDQwLCA0MCwgMSwgMSk7CiAgIC8vIFVzZSBsdW1hIHJlY29uc3RydWN0aW9uIHRvIGdl
dCBiYWNrIG9yaWdpbmFsIHZhbHVlIGFjY29yZGluZyB0bwogICAvLyBJVFUtUiByZWMgQlQuNzA5
CiAgIHJldHVybiAocGl4ZWwuZGF0YVswXSAqIDAuMjEgKyBwaXhlbC5kYXRhWzFdICogMC43MiAr
IHBpeGVsLmRhdGFbMl0gKiAwLjA3KTsKQEAgLTQ0Myw4ICs0NjAsOSBAQCBmdW5jdGlvbiBnZXRW
aWRlb1NpZ25hbCh2KSB7CiAKIGFzeW5jIGZ1bmN0aW9uIGRldGVjdFNpZ25hbCh0LCB2LCB2YWx1
ZSkgewogICB3aGlsZSAodHJ1ZSkgewotICAgIGNvbnN0IHNpZ25hbCA9IGdldFZpZGVvU2lnbmFs
KHYpOwotICAgIGlmIChzaWduYWwgIT09IG51bGwgJiYgc2lnbmFsIDwgdmFsdWUgKyAxICYmIHNp
Z25hbCA+IHZhbHVlIC0gMSkgeworICAgIGNvbnN0IHNpZ25hbCA9IGdldFZpZGVvU2lnbmFsKHYp
LnRvRml4ZWQoKTsKKyAgICAvLyBhbGxvdyBvZmYtYnktdHdvIHBpeGVsIGVycm9yIChvYnNlcnZl
ZCBpbiBzb21lIGltcGxlbWVudGF0aW9ucykKKyAgICBpZiAodmFsdWUgLSAyIDw9IHNpZ25hbCAm
JiBzaWduYWwgPD0gdmFsdWUgKyAyKSB7CiAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFdl
IHdvdWxkIGxpa2UgdG8gd2FpdCBmb3IgZWFjaCBuZXcgZnJhbWUgaW5zdGVhZCBoZXJlLApAQCAt
NTIxLDggKzUzOSwxMiBAQCBhc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyKGNhbGxlciwgY2Fs
bGVlKSB7CiB9CiAvLyBQZXJmb3JtcyBhbiBhbnN3ZXIgZXhjaGFuZ2UgY2FsbGVyIC0+IGNhbGxl
ZS4KIGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlKSB7Ci0gIGF3
YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIo
KSk7Ci0gIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihjYWxsZWUubG9jYWxEZXNj
cmlwdGlvbik7CisgIC8vIE5vdGUgdGhhdCBjYWxsZXIncyByZW1vdGUgZGVzY3JpcHRpb24gbXVz
dCBiZSBzZXQgZmlyc3Q7IGlmIG5vdCwKKyAgLy8gdGhlcmUncyBhIGNoYW5jZSB0aGF0IGNhbmRp
ZGF0ZXMgZnJvbSBjYWxsZWUgYXJyaXZlIGF0IGNhbGxlciBiZWZvcmUKKyAgLy8gaXQgaGFzIGEg
cmVtb3RlIGRlc2NyaXB0aW9uIHRvIGFwcGx5IHRoZW0gdG8uCisgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dl
cik7CiB9CiBhc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVl
KSB7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpOwpAQCAtNjQ4LDMgKzY3
MCw0MCBAQCBjbGFzcyBVbmlxdWVTZXQgZXh0ZW5kcyBTZXQgewogICAgIHN1cGVyLmFkZCh2YWx1
ZSk7CiAgIH0KIH0KKworY29uc3QgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyA9IGFzeW5j
IChwYywgLi4uc3RhdGVzKSA9PiB7CisgIGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgcGMuYWRk
RXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAg
IGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSBzdGF0ZSkgeworICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZWplY3QoYFVuZXhwZWN0ZWQgZ2F0aGVy
aW5nIHN0YXRlOiAke3BjLmljZUdhdGhlcmluZ1N0YXRlfSwgd2FzIGV4cGVjdGluZyAke3N0YXRl
fWApOworICAgICAgICB9CisgICAgICB9LCB7b25jZTogdHJ1ZX0pOworICAgIH0pOworICB9Cit9
OworCitjb25zdCBpbml0aWFsT2ZmZXJBbnN3ZXJXaXRoSWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0
aW9ucyA9CisgICAgYXN5bmMgKHBjMSwgcGMyLCBvZmZlck9wdGlvbnMpID0+IHsKKyAgICAgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKAorICAgICAgICBhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIob2ZmZXJPcHRpb25zKSk7CisgICAgICBjb25zdCBwYzFUcmFuc2l0aW9ucyA9CisgICAgICAg
ICAgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxl
dGUnKTsKKyAgICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIu
Y3JlYXRlQW5zd2VyKCkpOworICAgICAgY29uc3QgcGMyVHJhbnNpdGlvbnMgPQorICAgICAgICAg
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMyLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRl
Jyk7CisgICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgICAgYXdhaXQgcGMxVHJhbnNpdGlvbnM7CisgICAgICBhd2FpdCBwYzJUcmFu
c2l0aW9uczsKKyAgICB9OworCitjb25zdCBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5n
ZXMgPSBhc3luYyAodCwgcGMpID0+IHsKKyAgcGMub25pY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSA9
CisgICAgICB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICAgICAgICAnU2hvdWxkIG5vdCBnZXQgYW4gaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2Ugcmln
aHQgbm93IScpOworICAgICAgfSk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHR0cHMuaHRtbAppbmRleCBkMzEyNjA2NWI5OTc3OGYzMmI1ZTMxMzIxMTA4NWQ1NWMwNjRmZTFl
Li4zMjBiMDNkZmM4MGY4ZTdlNGEyMGQ5ZTI0M2I5Y2M4N2M4ODg4MWM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbApAQCAtMzkzLDcgKzM5Myw3IEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKIAogICBwYzIub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2Ug
PSB0LnVucmVhY2hlZF9mdW5jKCk7CiAgIHBjMi5jbG9zZSgpOwotICBhc3NlcnRfdHJ1ZShwYzIu
aWNlQ29ubmVjdGlvblN0YXRlID09PSAnY2xvc2VkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLmlj
ZUNvbm5lY3Rpb25TdGF0ZSwgJ2Nsb3NlZCcpOwogICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQu
c3RlcF90aW1lb3V0KHIsIDEwMCkpOwogfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91
bGQgbm90IGZpcmUgaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VH
YXRoZXJpbmdTdGF0ZS5odG1sCmluZGV4IDNmMDEyOGJiODQzZGRiZGQxMjlmOGExMGI2MDFiMjFj
MjFjZTdkZTQuLjg3MGU2YWQ3MmVjMzU2ZWNlZmJjYTY4ODc4ZGE3MzFlMzQ3ZWQxN2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbApAQCAtODQsNDMgKzg0LDEzIEBACiAgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKGBVbmhhbmRsZWQgcmVqZWN0aW9uICR7ZXJyLm5hbWV9OiAke2Vyci5tZXNz
YWdlfWApKSk7CiAgIH0sICdpY2VHYXRoZXJpbmdTdGF0ZSBzaG91bGQgZXZlbnR1YWxseSBiZWNv
bWUgY29tcGxldGUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbicpOwogCi0gIGNvbnN0IGljZUdh
dGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMgPSBhc3luYyAocGMsIC4uLnN0YXRlcykgPT4gewotICAg
IGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdh
dGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4gewotICAgICAgICAgIGlmIChwYy5pY2VHYXRoZXJp
bmdTdGF0ZSA9PSBzdGF0ZSkgewotICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICByZWplY3QoYFVuZXhwZWN0ZWQgZ2F0aGVyaW5nIHN0YXRlOiAk
e3BjLmljZUdhdGhlcmluZ1N0YXRlfSwgd2FzIGV4cGVjdGluZyAke3N0YXRlfWApOwotICAgICAg
ICAgIH0KLSAgICAgICAgfSwge29uY2U6IHRydWV9KTsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsK
LQotICBjb25zdCBpbml0aWFsT2ZmZXJBbnN3ZXIgPSBhc3luYyAocGMxLCBwYzIsIG9mZmVyT3B0
aW9ucykgPT4gewotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMxLmNyZWF0ZU9mZmVyKG9mZmVyT3B0aW9ucykpOwotICAgIGNvbnN0IHBjMVRyYW5zaXRp
b25zID0gaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29t
cGxldGUnKTsKLSAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKSk7Ci0gICAgY29uc3QgcGMyVHJhbnNpdGlvbnMgPSBpY2VHYXRoZXJpbmdT
dGF0ZVRyYW5zaXRpb25zKHBjMiwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOwotICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgICBh
d2FpdCBwYzFUcmFuc2l0aW9uczsKLSAgICBhd2FpdCBwYzJUcmFuc2l0aW9uczsKLSAgfTsKLQot
ICBjb25zdCBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5nZXMgPSBhc3luYyAodCwgcGMp
ID0+IHsKLSAgICBwYy5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlID0gdC5zdGVwX2Z1bmMoKCkg
PT4gYXNzZXJ0X3VucmVhY2hlZCgnU2hvdWxkIG5vdCBnZXQgYW4gaWNlZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UgcmlnaHQgbm93IScpKTsKLSAgfTsKLQogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdh
aXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1
ZX0pOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcldpdGhJY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKAorICAgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9
KTsKIAogICAgIGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzEpOwogICAg
IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzIpOwpAQCAtMTM0LDIyICsx
MDQsMjEgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dl
cihwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKLSAgICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRy
dWV9KSk7Ci0gICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRo
ZXJpbmcnLCAnY29tcGxldGUnKTsKKwogICAgIGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hh
bmdlcyh0LCBwYzEpOwotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAn
cm9sbGJhY2snfSk7Ci0gICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChy
LCAxMDAwKSk7Ci0gIH0sICdyb2xsaW5nIGJhY2sgYW4gSUNFIHJlc3RhcnQgd2hlbiBnYXRoZXJp
bmcgaXMgY29tcGxldGUgc2hvdWxkIG5vdCByZXN1bHQgaW4gaWNlR2F0aGVyaW5nU3RhdGUgY2hh
bmdlcycpOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKCkpOworCisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91
dChyLCA1MDApKTsKKyAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24oKSB3aXRoIG5vIHRyYW5zcG9y
dHMgc2hvdWxkIG5vdCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBjaGFuZ2UnKTsKIAogICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7
b2ZmZXJUb1JlY2VpdmVBdWRpbzp0cnVlfSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2Vy
V2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMoCisgICAgICAgIHBjMSwgcGMyLCB7b2Zm
ZXJUb1JlY2VpdmVBdWRpbzp0cnVlfSk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiB0cnVlfSkpOwogICAgIGF3YWl0
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRl
Jyk7CiAgIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJlb2ZmZXIpIHdpdGggYSBuZXcgdHJhbnNw
b3J0IHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBnbyB0byAiY2hlY2tpbmciIGFu
ZCB0aGVuICJjb21wbGV0ZSInKTsKQEAgLTE2NSw0OCArMTM0LDMxIEBACiAgICAgYXdhaXQgcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOwotICB9LCAnc1JEIGRvZXMgbm90IGNhdXNlIElDRSBnYXRoZXJpbmcg
c3RhdGUgY2hhbmdlcycpCi0KLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLSAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7Ci0gICAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmluZycsICdjb21wbGV0
ZScpOwotICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9
KTsKLSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3Jyk7Ci0g
IH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91
bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBp
biAiY29tcGxldGUiJyk7Ci0KLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLSAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7Ci0gICAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmluZycpOwotICAgIGF3
YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKLSAgICAvLyBX
ZSBtaWdodCBnbyBkaXJlY3RseSB0byAnbmV3Jywgb3Igd2UgbWlnaHQgZ28gdG8gJ2NvbXBsZXRl
JyBmaXJzdCwKLSAgICAvLyBkZXBlbmRpbmcgb24gdGltaW5nLiBBbGxvdyBlaXRoZXIuCi0gICAg
Y29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbCi0gICAgICBpY2VHYXRo
ZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3JyksCi0gICAgICBpY2VHYXRoZXJpbmdTdGF0
ZVRyYW5zaXRpb25zKHBjLCAnY29tcGxldGUnLCAnbmV3JyldKTsKLSAgICBhc3NlcnRfdHJ1ZShy
ZXN1bHRzLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT0gJ2Z1bGZpbGxlZCcpLAotICAg
ICAgJ0lDRSBnYXRoZXJpbmcgc3RhdGUgc2hvdWxkIGdvIGJhY2sgdG8gIm5ldyIsIHBvc3NpYmx5
IHRocm91Z2ggImNvbXBsZXRlIicpOwotICB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFj
aykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJl
YWNoICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImdhdGhlcmluZyInKTsKKyAgfSwgJ3NSRCBkb2Vz
IG5vdCBjYXVzZSBJQ0UgZ2F0aGVyaW5nIHN0YXRlIGNoYW5nZXMnKTsKIAogICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1Jl
Y2VpdmVBdWRpbzogdHJ1ZX0pOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcldpdGhJY2VH
YXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKAorICAgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNl
aXZlQXVkaW86IHRydWV9KTsKIAorICAgIGNvbnN0IHBjMXdhaXRlciA9IGljZUdhdGhlcmluZ1N0
YXRlVHJhbnNpdGlvbnMocGMxLCAnbmV3Jyk7CisgICAgY29uc3QgcGMyd2FpdGVyID0gaWNlR2F0
aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzIsICduZXcnKTsKICAgICBwYzEuZ2V0VHJhbnNjZWl2
ZXJzKClbMF0uc3RvcCgpOwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMxLmxvY2FsRGVzY3JpcHRpb24pOwogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7Ci0gICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVU
cmFuc2l0aW9ucyhwYzIsICduZXcnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDAsCisgICAgICAgICAgICAgICAgICdQQzIgdHJhbnNjZWl2ZXJzIHNo
b3VsZCBiZSBpbnZpc2libGUgYWZ0ZXIgbmVnb3RpYXRpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHBjMi5pY2VHYXRoZXJpbmdTdGF0ZSwgJ25ldycpOworICAgIGF3YWl0IHBjMndhaXRlcjsKICAg
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwot
ICAgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnbmV3Jyk7CisgICAg
YXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwLAorICAgICAgICAg
ICAgICAgICAgJ1BDMSB0cmFuc2NlaXZlcnMgc2hvdWxkIGJlIGludmlzaWJsZSBhZnRlciBuZWdv
dGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3
Jyk7CisgICAgYXdhaXQgcGMxd2FpdGVyOwogICB9LCAncmVuZWdvdGlhdGlvbiB0aGF0IGNsb3Nl
cyBhbGwgdHJhbnNwb3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcgc3RhdGUgIm5l
dyInKTsKIAogICAvKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRz
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbApp
bmRleCA1MDE1OGQ0Y2VhMGNkZTNhZTVmNTgzMTQwODU5ZGU2ZGE3OWJhMGJkLi43ZGExNGNkNWUw
ZjNmNWM3ZTgwN2I2MWNiMGU3ZWNjNzIxNmZmMDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1t
YW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnkt
Z2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMjQsMTIgKzI0LDE3IEBAIGNvbnN0IG1hbmRhdG9yeSA9
IHsKICAgICAicGFja2V0c0xvc3QiLAogICAgICJqaXR0ZXIiLAogICAgICJwYWNrZXRzRGlzY2Fy
ZGVkIiwKKyAgICAiZnJhbWVzRHJvcHBlZCIKICAgXSwKICAgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzOiBbCi0gICAgInRyYWNrSWQiLAogICAgICJyZWNlaXZlcklkIiwKICAgICAicmVtb3RlSWQi
LAogICAgICJmcmFtZXNEZWNvZGVkIiwKKyAgICAibmFja0NvdW50IiwKKyAgICAiZnJhbWVzUmVj
ZWl2ZWQiLAorICAgICJieXRlc1JlY2VpdmVkIiwKKyAgICAidG90YWxBdWRpb0VuZXJneSIsCisg
ICAgInRvdGFsU2FtcGxlc0R1cmF0aW9uIgogICBdLAogICBSVENSZW1vdGVJbmJvdW5kUnRwU3Ry
ZWFtU3RhdHM6IFsKICAgICAibG9jYWxJZCIsCkBAIC00MCwxMCArNDUsMTEgQEAgY29uc3QgbWFu
ZGF0b3J5ID0gewogICAgICJieXRlc1NlbnQiCiAgIF0sCiAgIFJUQ091dGJvdW5kUnRwU3RyZWFt
U3RhdHM6IFsKLSAgICAidHJhY2tJZCIsCiAgICAgInNlbmRlcklkIiwKICAgICAicmVtb3RlSWQi
LAogICAgICJmcmFtZXNFbmNvZGVkIiwKKyAgICAibmFja0NvdW50IiwKKyAgICAiZnJhbWVzU2Vu
dCIKICAgXSwKICAgUlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0czogWwogICAgICJsb2Nh
bElkIiwKQEAgLTU0LDYgKzYwLDcgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJkYXRhQ2hh
bm5lbHNDbG9zZWQiLAogICBdLAogICBSVENEYXRhQ2hhbm5lbFN0YXRzOiBbCisgICAgImxhYmVs
IiwKICAgICAicHJvdG9jb2wiLAogICAgICJkYXRhQ2hhbm5lbElkZW50aWZpZXIiLAogICAgICJz
dGF0ZSIsCkBAIC02MiwzNSArNjksMzQgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJtZXNz
YWdlc1JlY2VpdmVkIiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCiAgIF0sCi0gIFJUQ01lZGlhU3Ry
ZWFtU3RhdHM6IFsKLSAgICAic3RyZWFtSWRlbnRpZmVyIiwKLSAgICAidHJhY2tJZHMiLAorICBS
VENNZWRpYVNvdXJjZVN0YXRzOiBbCisgICAgInRyYWNrSWRlbnRpZmllciIsCisgICAgICJraW5k
IgorICBdLAorICBSVENBdWRpb1NvdXJjZVN0YXRzOiBbCisgICAgInRvdGFsQXVkaW9FbmVyZ3ki
LAorICAgICAidG90YWxTYW1wbGVzRHVyYXRpb24iCisgIF0sCisgIFJUQ1ZpZGVvU291cmNlU3Rh
dHM6IFsKKyAgICAid2lkdGgiLAorICAgICJoZWlnaHQiLAorICAgICJmcmFtZXNQZXJTZWNvbmQi
CiAgIF0sCiAgIFJUQ01lZGlhSGFuZGxlclN0YXRzOiBbCiAgICAgInRyYWNrSWRlbnRpZmllciIs
Ci0gICAgInJlbW90ZVNvdXJjZSIsCi0gICAgImVuZGVkIiwKICAgXSwKICAgUlRDQXVkaW9IYW5k
bGVyU3RhdHM6IFsKLSAgICAiYXVkaW9MZXZlbCIsCiAgIF0sCiAgIFJUQ1ZpZGVvSGFuZGxlclN0
YXRzOiBbCi0gICAgImZyYW1lV2lkdGgiLAotICAgICJmcmFtZUhlaWdodCIsCi0gICAgImZyYW1l
c1BlclNlY29uZCIsCiAgIF0sCiAgIFJUQ1ZpZGVvU2VuZGVyU3RhdHM6IFsKLSAgICAiZnJhbWVz
U2VudCIsCiAgIF0sCiAgIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0czogWwotICAgICJmcmFtZXNSZWNl
aXZlZCIsCi0gICAgImZyYW1lc0RlY29kZWQiLAotICAgICJmcmFtZXNEcm9wcGVkIiwKLSAgICAi
cGFydGlhbEZyYW1lc0xvc3QiLAogICBdLAogICBSVENDb2RlY1N0YXRzOiBbCiAgICAgInBheWxv
YWRUeXBlIiwKICAgICAiY29kZWNUeXBlIiwKKyAgICAibWltZVR5cGUiLAogICAgICJjbG9ja1Jh
dGUiLAogICAgICJjaGFubmVscyIsCiAgICAgInNkcEZtdHBMaW5lIiwKQEAgLTk4LDcgKzEwNCw2
IEBAIGNvbnN0IG1hbmRhdG9yeSA9IHsKICAgUlRDVHJhbnNwb3J0U3RhdHM6IFsKICAgICAiYnl0
ZXNTZW50IiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCi0gICAgInJ0Y3BUcmFuc3BvcnRTdGF0c0lk
IiwKICAgICAic2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQiLAogICAgICJsb2NhbENlcnRpZmljYXRl
SWQiLAogICAgICJyZW1vdGVDZXJ0aWZpY2F0ZUlkIiwKQEAgLTEwOCwxMiArMTEzLDExIEBAIGNv
bnN0IG1hbmRhdG9yeSA9IHsKICAgICAibG9jYWxDYW5kaWRhdGVJZCIsCiAgICAgInJlbW90ZUNh
bmRpZGF0ZUlkIiwKICAgICAic3RhdGUiLAotICAgICJwcmlvcml0eSIsCiAgICAgIm5vbWluYXRl
ZCIsCiAgICAgImJ5dGVzU2VudCIsCiAgICAgImJ5dGVzUmVjZWl2ZWQiLAogICAgICJ0b3RhbFJv
dW5kVHJpcFRpbWUiLAotICAgICJjdXJyZW50Um91bmRUcmlwVGltZSIsCisgICAgImN1cnJlbnRS
b3VuZFRyaXBUaW1lIgogICBdLAogICBSVENJY2VDYW5kaWRhdGVTdGF0czogWwogICAgICJhZGRy
ZXNzIiwKQEAgLTE0MSw3ICsxNDUsMTAgQEAgY29uc3QgZGljdGlvbmFyeU5hbWVzID0gewogICAi
Y3NyYyI6ICJSVENSdHBDb250cmlidXRpbmdTb3VyY2VTdGF0cyIsCiAgICJwZWVyLWNvbm5lY3Rp
b24iOiAiUlRDUGVlckNvbm5lY3Rpb25TdGF0cyIsCiAgICJkYXRhLWNoYW5uZWwiOiAiUlRDRGF0
YUNoYW5uZWxTdGF0cyIsCi0gICJzdHJlYW0iOiAiUlRDTWVkaWFTdHJlYW1TdGF0cyIsCisgICJt
ZWRpYS1zb3VyY2UiOiB7CisgICAgYXVkaW86ICJSVENBdWRpb1NvdXJjZVN0YXRzIiwKKyAgICB2
aWRlbzogIlJUQ1ZpZGVvU291cmNlU3RhdHMiCisgIH0sCiAgICJ0cmFjayI6IHsKICAgICB2aWRl
bzogIlJUQ1NlbmRlclZpZGVvVHJhY2tBdHRhY2htZW50U3RhdHMiLAogICAgIGF1ZGlvOiAiUlRD
U2VuZGVyQXVkaW9UcmFja0F0dGFjaG1lbnRTdGF0cyIKQEAgLTE2NiwxMCArMTczLDEyIEBAIGNv
bnN0IGRpY3Rpb25hcnlOYW1lcyA9IHsKIGNvbnN0IHBhcmVudHMgPSB7CiAgIFJUQ1ZpZGVvSGFu
ZGxlclN0YXRzOiAiUlRDTWVkaWFIYW5kbGVyU3RhdHMiLAogICBSVENWaWRlb1NlbmRlclN0YXRz
OiAiUlRDVmlkZW9IYW5kbGVyU3RhdHMiLAorICBSVENWaWRlb1NvdXJjZVN0YXRzOiAiUlRDTWVk
aWFTb3VyY2VTdGF0cyIsCiAgIFJUQ1NlbmRlclZpZGVvVHJhY2tBdHRhY2htZW50U3RhdHM6ICJS
VENWaWRlb1NlbmRlclN0YXRzIiwKICAgUlRDVmlkZW9SZWNlaXZlclN0YXRzOiAiUlRDVmlkZW9I
YW5kbGVyU3RhdHMiLAogICBSVENBdWRpb0hhbmRsZXJTdGF0czogIlJUQ01lZGlhSGFuZGxlclN0
YXRzIiwKICAgUlRDQXVkaW9TZW5kZXJTdGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKKyAg
UlRDQXVkaW9Tb3VyY2VTdGF0czogIlJUQ01lZGlhU291cmNlU3RhdHMiLAogICBSVENTZW5kZXJB
dWRpb1RyYWNrQXR0YWNobWVudFN0YXRzOiAiUlRDQXVkaW9TZW5kZXJTdGF0cyIsCiAgIFJUQ0F1
ZGlvUmVjZWl2ZXJTdGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKICAgUlRDUmVjZWl2ZWRS
dHBTdHJlYW1TdGF0czogIlJUQ1J0cFN0cmVhbVN0YXRzIiwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLW9uZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbApp
bmRleCA0NmZlOGUwZjUxYjFiMWE4NTVmMDZkNTRjODE5Nzg0ZDZmNTQyNTA4Li4wMzQzNjU1MDhi
NmJjYTE0Njk4NTM3ODE5ZDg2YzUzZmMxMjI2ZDVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bmRhdGFjaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCkBA
IC0yNTUsNyArMjU1LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IGRj
MSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcsIHsKICAgICBvcmRlcmVkOiBmYWxzZSwK
ICAgICBtYXhSZXRyYW5zbWl0czogMSwKLSAgICBwcm90b2NvbDogJ2N1c3RvbScsCisgICAgcHJv
dG9jb2w6ICdjdXN0b20nCiAgIH0pOwogCiAgIGFzc2VydF9lcXVhbHMoZGMxLmxhYmVsLCAndGVz
dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCmluZGV4IDJlZGE3YjViMzQxY2E5
NjVkY2E5NzBjZGZhNWM3M2IyZjU3ZTMxODkuLmE4NzU1MWE1OGM3ZGQ1Njg3ZTNjMWVlZTQ4OGM5
MmZiODViMWRlMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKQEAgLTI4OCw3
ICsyODgsNyBAQAogICAgICAgcmVtb3ZlVHJhY2sKICAgICAgICAgMTIuIFVwZGF0ZSB0aGUgbmVn
b3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCiAgICovCi0gIGFzeW5jX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAKQEAgLTI5NiwyMCArMjk2LDIwIEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
dHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBj
b25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRlciA9IHBj
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOwotICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0
LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7Ci0gICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0g
dC5zdGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5l
Z290aWF0aW9ubmVlZGVkIG1pc2ZpcmVkJyk7Ci0gICAgICB9KTsKLSAgICAgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKLSAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOwogCi0gICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBnZW5lcmF0ZUFuc3dl
cihvZmZlcik7Ci0gICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwot
Ci0gICAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSkKLSAgICAgIHQuZG9u
ZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHJlc29sdmUpOworICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVu
YygoKSA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290aWF0aW9ubmVlZGVkIG1p
c2ZpcmVkJyk7CiAgICAgfSk7CisKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9m
ZmVyKCk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICBj
b25zdCBhbnN3ZXIgPSBhd2FpdCBnZW5lcmF0ZUFuc3dlcihvZmZlcik7CisgICAgYXdhaXQgcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICAgIHBjLnJlbW92ZVRyYWNrKHNlbmRl
cik7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcmVzb2x2ZSkKICAgfSwgJ3JlbW92ZVRyYWNrIHNob3VsZCBjYXVzZSBuZWdvdGlhdGlv
bm5lZWRlZCB0byBmaXJlIG9uIHRoZSBjYWxsZXInKTsKIAogICAvKgpAQCAtMzE4LDcgKzMxOCw3
IEBACiAgICAgICByZW1vdmVUcmFjawogICAgICAgICAxMi4gVXBkYXRlIHRoZSBuZWdvdGlhdGlv
bi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KICAgKi8KLSAgYXN5bmNfdGVzdChhc3luYyB0
ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IGNhbGxlciA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNs
b3NlKCkpOwogICAgIGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidy
ZWN2b25seSd9KTsKQEAgLTMzMiwxOCArMzMyLDE3IEBACiAgICAgY29uc3QgW3RyYWNrXSA9IHN0
cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCBzZW5kZXIgPSBjYWxsZWUuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSk7CiAKLSAgICBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9m
dW5jKGFzeW5jICgpID0+IHsKLSAgICAgIGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5z
dGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290
aWF0aW9ubmVlZGVkIG1pc2ZpcmVkJyk7Ci0gICAgICB9KTsKLSAgICAgIGF3YWl0IGNhbGxlZS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Ci0gICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBj
YWxsZWUuY3JlYXRlQW5zd2VyKCk7Ci0gICAgICBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOwotCi0gICAgICBjYWxsZWUucmVtb3ZlVHJhY2soc2VuZGVyKTsKLSAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNv
bHZlKQotICAgICAgdC5kb25lKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBj
YWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpOworICAgIGNhbGxlZS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1bmMoKCkgPT4geworICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgnb25uZWdvdGlhdGlvbm5lZWRlZCBtaXNmaXJlZCcpOwogICAgIH0pOworCisgICAgYXdhaXQg
Y2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBh
d2FpdCBjYWxsZWUuY3JlYXRlQW5zd2VyKCk7CisgICAgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKworICAgIGNhbGxlZS5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNv
bHZlKQogICB9LCAncmVtb3ZlVHJhY2sgc2hvdWxkIGNhdXNlIG5lZ290aWF0aW9ubmVlZGVkIHRv
IGZpcmUgb24gdGhlIGNhbGxlZScpOwogCiAgIC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNzQzNGFkNmE2
M2UxMTU1MjM2YTFkZTg3NDBlYzZmYzdmYzMwYWNkNS4uODIyY2EzMWNiYzZjMTAyYTI0ZDAwZmMx
NGQ3YTE4MWYyYmU5OWEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0
ZWNoYW5nZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5n
c3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIAogUEFTUyBO
ZWdvdGlhdGlvbiBtZXRob2RzIGZpcmUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnRzCiBGQUlM
IENsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZpcmUgc2lnbmFsaW5nc3RhdGVj
aGFuZ2UgZXZlbnQgYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQ
QVNTIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGlzIHRoZSBmaXJzdCBldmVudCB0byBmaXJlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCmluZGV4IDBj
ODQwNTc3MGI2MTZkMWQwZjNiZTIyNmE4MTU3ODBjYzFhZDA0MTMuLmFkOTJiZjVmYzYwOWQzZDk3
NTI1ZmY4MjUxYzM2ZjM5YzY5OGRhZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFs
aW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdz
dGF0ZWNoYW5nZWQuaHR0cHMuaHRtbApAQCAtNDksOCArNDksMjMgQEAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewogCiAgIHBjMi5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRf
ZnVuYygpOwogICBwYzIuY2xvc2UoKTsKLSAgYXNzZXJ0X3RydWUocGMyLnNpZ25hbGluZ1N0YXRl
ID09PSAnY2xvc2VkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLnNpZ25hbGluZ1N0YXRlLCAnY2xv
c2VkJyk7CiAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwKSk7
CiB9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxpbmdz
dGF0ZWNoYW5nZSBldmVudCcpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMi5hZGRUcmFuc2NlaXZlcign
dmlkZW8nKTsKKworICBwYzEub250cmFjayA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgcGMxLm9u
c2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYyhlID0+IHsKKyAgICBwYzEub250cmFj
ayA9IG51bGw7CisgIH0pOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQg
cGMyLmNyZWF0ZU9mZmVyKCkpOworfSwgJ3NpZ25hbGluZ3N0YXRlY2hhbmdlIGlzIHRoZSBmaXJz
dCBldmVudCB0byBmaXJlJyk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
b250cmFjay5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCAzMjIwOWFjNWNkNWNhOTgxMWUxM2U1NjNjYThmOGUyNmU2MGM5MTc1
Li40ZDdhYzUzN2UwMGI1NTFkOThlNmFhNGQ5ODI3MjIzYWY2NjY1MDcyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw0ICs0LDYgQEAgUEFTUyBzZXRSZW1vdGVE
ZXNjcmlwdGlvbigpIHdpdGggbT0gbGluZSBvZiByZWN2b25seSBkaXJlY3Rpb24gc2hvdWxkIG5v
dCB0cmlnZ2UKIFBBU1MgYWRkVHJhY2soKSBzaG91bGQgY2F1c2UgcmVtb3RlIGNvbm5lY3Rpb24g
dG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQogUEFTUyBhZGRUcmFu
c2NlaXZlcigndmlkZW8nKSBzaG91bGQgY2F1c2UgcmVtb3RlIGNvbm5lY3Rpb24gdG8gZmlyZSBv
bnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQogUEFTUyBhZGRUcmFuc2NlaXZlcigp
IHdpdGggaW5hY3RpdmUgZGlyZWN0aW9uIHNob3VsZCBub3QgY2F1c2UgcmVtb3RlIGNvbm5lY3Rp
b24gdG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQorUEFTUyBVc2lu
ZyBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNob3VsZCBvbmx5
IGNhdXNlIGEgYXVkaW8gdHJhY2sgZXZlbnQgdG8gZmlyZSwgaWYgYXVkaW8gd2FzIHRoZSBvbmx5
IHR5cGUgbmVnb3RpYXRlZAorUEFTUyBVc2luZyBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBvZmZl
clRvUmVjZWl2ZVZpZGVvIHNob3VsZCBvbmx5IGNhdXNlIGEgdmlkZW8gdHJhY2sgZXZlbnQgdG8g
ZmlyZSwgaWYgdmlkZW8gd2FzIHRoZSBvbmx5IHR5cGUgbmVnb3RpYXRlZAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0
dHBzLmh0bWwKaW5kZXggOTlmMzBjMjY0YjM2NDhkNTJmZGE2YmI1MGRlOTgwYmNiZTg0YmUzYy4u
Y2NkZDI5ZjZhNTBkYTk0ZDY4OWI3NjU0ZDE4YTNjMDdlZTRiYzZkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0
cHMuaHRtbApAQCAtMjMwLDQgKzIzMCwyOSBAQCBhPXNzcmM6MTAwMSBjbmFtZTpzb21lCiAgICAg
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDAp
KTsKICAgfSwgYGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBpbmFjdGl2ZSBkaXJlY3Rpb24gc2hvdWxk
IG5vdCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9udHJhY2sgd2hlbiBzZXRSZW1v
dGVEZXNjcmlwdGlvbigpYCk7CiAKKyAgWyJhdWRpbyIsICJ2aWRlbyJdLmZvckVhY2godHlwZSA9
PiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBjaGVja05vVW5leHBlY3RlZFRyYWNrID0g
KHt0cmFja30pID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgdHlwZSwgYG9u
dHJhY2sgZXZlbnQgc2hvdWxkIG5vdCBmaXJlIGZvciAke3RyYWNrLmtpbmR9YCk7CisgICAgfTsK
KworICAgIHBjMi5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoY2hlY2tOb1VuZXhwZWN0ZWRUcmFjayk7
CisgICAgcGMxLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyhjaGVja05vVW5leHBlY3RlZFRyYWNrKTsK
KworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZl
cigKKyAgICAgIHsgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVBdWRp
bzogdHJ1ZSB9KSk7CisKKyAgICBwYzIuYWRkVHJhY2soLi4uYXdhaXQgZ2V0VHJhY2tGcm9tVXNl
ck1lZGlhKHR5cGUpKTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDApKTsKKyAgfSwgYFVzaW5nIG9mZmVyVG9S
ZWNlaXZlQXVkaW8gYW5kIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIG9ubHkgY2F1c2UgYSAk
e3R5cGV9IHRyYWNrIGV2ZW50IHRvIGZpcmUsIGlmICR7dHlwZX0gd2FzIHRoZSBvbmx5IHR5cGUg
bmVnb3RpYXRlZGApKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJm
ZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24taGVscGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YzQ3NmVjNDA5ZTFiNWY1M2VhZTQxYWZmOTM0ODY4
YWJlYjY5MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0
aW9uLWhlbHBlci5qcwpAQCAtMCwwICsxLDE1MSBAQAorJ3VzZSBzdHJpY3QnCisKK2Z1bmN0aW9u
IHBlZXIob3RoZXIsIHBvbGl0ZSwgZmFpbCA9IG51bGwpIHsKKyAgY29uc3Qgc2VuZCA9ICh0Z3Qs
IG1zZykgPT4gdGd0LnBvc3RNZXNzYWdlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobXNnKSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiIpOworICBp
ZiAoIWZhaWwpIGZhaWwgPSBlID0+IHNlbmQod2luZG93LnBhcmVudCwge2Vycm9yOiBgJHtlLm5h
bWV9OiAke2UubWVzc2FnZX1gfSk7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisKKyAgaWYgKCF3aW5kb3cuYXNzZXJ0X2VxdWFscykgeworICAgIHdpbmRvdy5hc3NlcnRf
ZXF1YWxzID0gKGEsIGIsIG1zZykgPT4gYSA9PT0gYiB8fAorICAgICAgICBmYWlsKG5ldyBFcnJv
cihgJHttc2d9IGV4cGVjdGVkICR7Yn0gYnV0IGdvdCAke2F9YCkpOworICB9CisKKyAgY29uc3Qg
Y29tbWFuZHMgPSB7CisgICAgYXN5bmMgYWRkVHJhbnNjZWl2ZXIoKSB7CisgICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYy5hZGRFdmVudExpc3RlbmVyKCJuZWdvdGlhdGVkIiwgciwge29uY2U6
IHRydWV9KSk7CisgICAgICBpZiAoIXRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24pIHsKKyAg
ICAgICAgLy8gTWlnaHQgaGF2ZSBqdXN0IG1pc3NlZCB0aGUgbmVnb3RpYXRpb24gdHJhaW4uIENh
dGNoIG5leHQgb25lLgorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50
TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKKyAgICAgIH0KKyAgICAg
IGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgInNlbmRvbmx5Iiwg
ImhhdmUgZGlyZWN0aW9uIik7CisgICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoOworICAgIH0sCisgICAgYXN5bmMgc2ltcGxlQ29ubmVjdCgpIHsKKyAgICAgIGNvbnN0IHAg
PSBjb21tYW5kcy5hZGRUcmFuc2NlaXZlcigpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYy5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9CisgICAgICAgICAgICAgICAgICAgICAg
ICAoKSA9PiBwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKTsKKyAg
ICAgIHJldHVybiBhd2FpdCBwOworICAgIH0sCisgICAgYXN5bmMgZ2V0TnVtVHJhbnNjZWl2ZXJz
KCkgeworICAgICAgcmV0dXJuIHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aDsKKyAgICB9LAor
ICB9OworCisgIHRyeSB7CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwg
KHtjYW5kaWRhdGV9KSA9PiBzZW5kKG90aGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FuZGlkYXRlfSkpOworICAgIGxl
dCBtYWtpbmdPZmZlciA9IGZhbHNlLCBpZ25vcmVPZmZlciA9IGZhbHNlOworICAgIGxldCBzcmRB
bnN3ZXJQZW5kaW5nID0gZmFsc2U7CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRp
b25uZWVkZWQiLCBhc3luYyAoKSA9PiB7CisgICAgICB0cnkgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm5lZ290aWF0aW9ubmVlZGVkIGFsd2F5
cyBmaXJlcyBpbiBzdGFibGUgc3RhdGUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhtYWtpbmdP
ZmZlciwgZmFsc2UsICJuZWdvdGlhdGlvbm5lZWRlZCBub3QgYWxyZWFkeSBpbiBwcm9ncmVzcyIp
OworICAgICAgICBtYWtpbmdPZmZlciA9IHRydWU7CisgICAgICAgIGF3YWl0IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwg
ImhhdmUtbG9jYWwtb2ZmZXIiLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IHJhY2luZyB3aXRoIG9u
bWVzc2FnZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24udHlw
ZSwgIm9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIFNMRCB3b3JrZWQiKTsKKyAgICAgICAgc2Vu
ZChvdGhlciwge2Rlc2NyaXB0aW9uOiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7CisgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGZhaWwoZSk7CisgICAgICB9IGZpbmFsbHkgeworICAgICAgICBt
YWtpbmdPZmZlciA9IGZhbHNlOworICAgICAgfQorICAgIH0pOworICAgIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBhc3luYyAoe2RhdGE6IHtkZXNjcmlwdGlvbiwgY2FuZGlkYXRlLCBydW59fSkgPT4gewor
ICAgICAgdHJ5IHsKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgLy8gSWYg
d2UgaGF2ZSBhIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5zd2VyIG9wZXJhdGlvbiBwZW5kaW5n
LCB0aGVuCisgICAgICAgICAgLy8gd2Ugd2lsbCBiZSAic3RhYmxlIiBieSB0aGUgdGltZSB0aGUg
bmV4dCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGlzCisgICAgICAgICAgLy8gZXhlY3V0ZWQsIHNv
IHdlIGNvdW50IHRoaXMgYmVpbmcgc3RhYmxlIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0bworICAg
ICAgICAgIC8vIGlnbm9yZSB0aGUgb2ZmZXIuCisgICAgICAgICAgbGV0IGlzU3RhYmxlID0KKyAg
ICAgICAgICAgICAgcGMuc2lnbmFsaW5nU3RhdGUgPT0gInN0YWJsZSIgfHwKKyAgICAgICAgICAg
ICAgKHBjLnNpZ25hbGluZ1N0YXRlID09ICJoYXZlLWxvY2FsLW9mZmVyIiAmJiBzcmRBbnN3ZXJQ
ZW5kaW5nKTsKKyAgICAgICAgICBpZ25vcmVPZmZlciA9IGRlc2NyaXB0aW9uLnR5cGUgPT0gIm9m
ZmVyIiAmJiAhcG9saXRlICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2luZ09mZmVy
IHx8ICFpc1N0YWJsZSk7CisgICAgICAgICAgaWYgKGlnbm9yZU9mZmVyKSB7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi50eXBlID09
ICJhbnN3ZXIiKQorICAgICAgICAgICAgc3JkQW5zd2VyUGVuZGluZyA9IHRydWU7CisgICAgICAg
ICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgICAgICAg
IHNyZEFuc3dlclBlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgICBpZiAoZGVzY3JpcHRpb24udHlw
ZSA9PSAib2ZmZXIiKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0
YXRlLCAiaGF2ZS1yZW1vdGUtb2ZmZXIiLCAiUmVtb3RlIG9mZmVyIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIsICJTUkQgd29y
a2VkIik7CisgICAgICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm9ubWVz
c2FnZSBub3QgcmFjaW5nIHdpdGggbmVnb3RpYXRpb25uZWVkZWQiKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIm9ubWVzc2Fn
ZSBTTEQgd29ya2VkIik7CisgICAgICAgICAgICBzZW5kKG90aGVyLCB7ZGVzY3JpcHRpb246IHBj
LmxvY2FsRGVzY3JpcHRpb259KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIkFuc3dlciB3
YXMgc2V0Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAi
c3RhYmxlIiwgImFuc3dlcmVkIik7CisgICAgICAgICAgICBwYy5kaXNwYXRjaEV2ZW50KG5ldyBF
dmVudCgibmVnb3RpYXRlZCIpKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2Fu
ZGlkYXRlKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0IHBjLmFkZEljZUNh
bmRpZGF0ZShjYW5kaWRhdGUpOworICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
IGlmICghaWdub3JlT2ZmZXIpIHRocm93IGU7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
aWYgKHJ1bikgeworICAgICAgICAgIHNlbmQod2luZG93LnBhcmVudCwge1tydW4uaWRdOiBhd2Fp
dCBjb21tYW5kc1tydW4uY21kXSgpIHx8IDB9KTsKKyAgICAgICAgfQorICAgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBmYWlsKGUpOworICAgICAgfQorICAgIH07CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICBmYWlsKGUpOworICB9CisgIHJldHVybiBwYzsKK30KKworYXN5bmMgZnVuY3Rpb24gc2V0
dXBQZWVySWZyYW1lKHQsIHBvbGl0ZSkgeworICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3Zl
KCkpOworICBpZnJhbWUuc3JjZG9jID0KKyAgIGA8aHRtbFw+PHNjcmlwdFw+KCR7cGVlci50b1N0
cmluZygpfSkod2luZG93LnBhcmVudCwgJHtwb2xpdGV9KTs8L3NjcmlwdFw+PC9odG1sXD5gOwor
ICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKworICBjb25z
dCBmYWlsQ2F0Y2hlciA9IHQuc3RlcF9mdW5jKCh7ZGF0YX0pID0+CisgICAgICAoImVycm9yIiBp
biBkYXRhKSAmJiBhc3NlcnRfdW5yZWFjaGVkKGBFcnJvciBpbiBpZnJhbWU6ICR7ZGF0YS5lcnJv
cn1gKSk7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZmFpbENhdGNoZXIp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZmFpbENhdGNoZXIpKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBpZnJhbWUub25s
b2FkID0gcik7CisgIHJldHVybiBpZnJhbWU7Cit9CisKK2Z1bmN0aW9uIHNldHVwUGVlclRvcExl
dmVsKHQsIG90aGVyLCBwb2xpdGUpIHsKKyAgY29uc3QgcGMgPSBwZWVyKG90aGVyLCBwb2xpdGUs
IHQuc3RlcF9mdW5jKGUgPT4geyB0aHJvdyBlOyB9KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
eyBwYy5jbG9zZSgpOyB3aW5kb3cub25tZXNzYWdlID0gbnVsbDsgfSk7Cit9CisKK2xldCBjb3Vu
dGVyID0gMDsKK2FzeW5jIGZ1bmN0aW9uIHJ1bih0YXJnZXQsIGNtZCkgeworICBjb25zdCBpZCA9
IGByZXN1bHQke2NvdW50ZXIrK31gOworICB0YXJnZXQucG9zdE1lc3NhZ2Uoe3J1bjoge2NtZCwg
aWR9fSwgIioiKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZW4oe2RhdGF9KSB7CisgICAgaWYgKCEoaWQgaW4gZGF0
YSkpIHJldHVybjsKKyAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGxp
c3Rlbik7CisgICAgcihkYXRhW2lkXSk7CisgIH0pKTsKK30KKworbGV0IGlmcmFtZTsKK2FzeW5j
IGZ1bmN0aW9uIHNldHVwQUIodCwgcG9saXRlQSwgcG9saXRlQikgeworICBpZnJhbWUgPSBhd2Fp
dCBzZXR1cFBlZXJJZnJhbWUodCwgcG9saXRlQik7CisgIHJldHVybiBzZXR1cFBlZXJUb3BMZXZl
bCh0LCBpZnJhbWUuY29udGVudFdpbmRvdywgcG9saXRlQSk7Cit9Citjb25zdCBydW5BID0gY21k
ID0+IHJ1bih3aW5kb3csIGNtZCk7Citjb25zdCBydW5CID0gY21kID0+IHJ1bihpZnJhbWUuY29u
dGVudFdpbmRvdywgY21kKTsKK2NvbnN0IHJ1bkJvdGggPSAoY21kQSwgY21kQiA9IGNtZEEpID0+
IFByb21pc2UuYWxsKFtydW5BKGNtZEEpLCBydW5CKGNtZEIpXSk7CisKK2FzeW5jIGZ1bmN0aW9u
IHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGYsIG5hbWUpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIHRydWUsIGZhbHNlKSksIG5hbWUpOworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNldHVwQUIodCwgZmFsc2UsIHRydWUpKSwK
KyAgICAgICAgICAgICAgIGAke25hbWV9IHdpdGggcm9sZXMgcmV2ZXJzZWRgKTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVh
ci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0
cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZWYzN2Q2
YjI4NGE5Y2NlYWM2YTFhMDM0YWMxYWQwZjFjNDJhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3Ry
ZXNzIGdsYXJlIGxpbmVhciBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJl
bnQgc2lnbmFsaW5nIHN0YXRlCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJl
IGxpbmVhciB3aXRoIHJvbGVzIHJldmVyc2VkIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlm
cmFtZTogSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdp
dGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxp
bmVhci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3Mt
Z2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4YmRmMjJlMmRlNTNhMGQyODI2
MzE1MGNkODNmNWQ5NTRiNmQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMp
ID0+IHsKKyAgY29uc3QgcHMgPSBbXTsKKyAgZm9yIChsZXQgaSA9IDEwOyBpID4gMDsgaS0tKSB7
CisgICAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgfQorICBwcy5wdXNoKHJ1bkJv
dGgoImFkZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChwcyk7CisgIGNvbnN0
IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOworICBh
c3NlcnRfZXF1YWxzKG51bUEsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOworICBh
c3NlcnRfZXF1YWxzKG51bUIsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOworfSwg
IlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVz
cy1nbGFyZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI2ZTA3MjA3OTM2ODFiMGRj
ZDg5YTExNGQ4MjcxNzY0N2E4NzI2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
cmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBEZXNjcmlw
dGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlCitGQUlM
IFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNz
ZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1u
ZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzNGViMjAw
NjM2NmNhYzYxYzcxOTBiOGRjMTExNDRkMDY4MTMzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEg
bmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0
LCBwYykgPT4geworICBjb25zdCBwcyA9IFtdOworICBmb3IgKGxldCBpID0gMTA7IGkgPiAwOyBp
LS0pIHsKKyAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgaSAtIDEpKTsKKyAgfQorICBwcy5w
dXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChwcyk7
CisgIGNvbnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVy
cyIpOworICBhc3NlcnRfZXF1YWxzKG51bUEsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUg
QSIpOworICBhc3NlcnRfZXF1YWxzKG51bUIsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUg
QiIpOworfSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIik7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggNmQwM2MwZTU2YmYzYWUwZDhlYTAzZDI1YTNhMTU4YzhkOTFjZjcxZS4uMjM0MjZm
MTcwYjM2ODdlMmNhZjkxMGM4N2YyOGNmZjFkYmE4MTRiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw0IEBA
IFBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBjb25uZWN0cwogUEFTUyBQZXJmZWN0IG5l
Z290aWF0aW9uIHNldHVwIGNvbm5lY3RzIHdpdGggcm9sZXMgcmV2ZXJzZWQKIEZBSUwgUGVyZmVj
dCBuZWdvdGlhdGlvbiBnbGFyZSBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1
cnJlbnQgc2lnbmFsaW5nIHN0YXRlCiBGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xhcmUgd2l0
aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFs
aWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQg
c2lnbmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBQZXJmZWN0IG5l
Z290aWF0aW9uIHN0cmVzcyBnbGFyZSBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlCi1GQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNz
IGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZy
YW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0
aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwg
UGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIERlc2NyaXB0aW9uIHR5cGUg
aW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKLUZBSUwgUGVyZmVjdCBu
ZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0
X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRp
b24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRw
cy5odG1sCmluZGV4IGFkMjcyNWMzM2NhNjZiMzAzOTU5ZjMyZDEwN2FlNTE2YmFkZTRhNjEuLmQw
MWIxMTYxNjI2MzY2MWU3MjFkNDQ0NTEyMTU5MzFlYThlNGYzYzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1w
ZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKQEAgLTQsMTQ4ICs0LDEwIEBACiA8dGl0bGU+
PC90aXRsZT4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLWZ1bmN0aW9uIHBlZXIo
b3RoZXIsIHBvbGl0ZSwgZmFpbCA9IG51bGwpIHsKLSAgY29uc3Qgc2VuZCA9ICh0Z3QsIG1zZykg
PT4gdGd0LnBvc3RNZXNzYWdlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobXNnKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiIpOwotICBpZiAoIWZh
aWwpIGZhaWwgPSBlID0+IHNlbmQod2luZG93LnBhcmVudCwge2Vycm9yOiBgJHtlLm5hbWV9OiAk
e2UubWVzc2FnZX1gfSk7Ci0gIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0K
LSAgaWYgKCF3aW5kb3cuYXNzZXJ0X2VxdWFscykgewotICAgIHdpbmRvdy5hc3NlcnRfZXF1YWxz
ID0gKGEsIGIsIG1zZykgPT4gYSA9PT0gYiB8fAotICAgICAgICBmYWlsKG5ldyBFcnJvcihgJHtt
c2d9IGV4cGVjdGVkICR7Yn0gYnV0IGdvdCAke2F9YCkpOwotICB9Ci0KLSAgY29uc3QgY29tbWFu
ZHMgPSB7Ci0gICAgYXN5bmMgYWRkVHJhbnNjZWl2ZXIoKSB7Ci0gICAgICBjb25zdCB0cmFuc2Nl
aXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwotICAgICAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYy5hZGRFdmVudExpc3RlbmVyKCJuZWdvdGlhdGVkIiwgciwge29uY2U6IHRydWV9
KSk7Ci0gICAgICBpZiAoIXRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24pIHsKLSAgICAgICAg
Ly8gTWlnaHQgaGF2ZSBqdXN0IG1pc3NlZCB0aGUgbmVnb3RpYXRpb24gdHJhaW4uIENhdGNoIG5l
eHQgb25lLgotICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVu
ZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKLSAgICAgIH0KLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgInNlbmRvbmx5IiwgImhhdmUg
ZGlyZWN0aW9uIik7Ci0gICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOwot
ICAgIH0sCi0gICAgYXN5bmMgc2ltcGxlQ29ubmVjdCgpIHsKLSAgICAgIGNvbnN0IHAgPSBjb21t
YW5kcy5hZGRUcmFuc2NlaXZlcigpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5v
bmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKSA9
PiBwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKTsKLSAgICAgIHJl
dHVybiBhd2FpdCBwOwotICAgIH0sCi0gICAgYXN5bmMgZ2V0TnVtVHJhbnNjZWl2ZXJzKCkgewot
ICAgICAgcmV0dXJuIHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aDsKLSAgICB9LAotICB9Owot
Ci0gIHRyeSB7Ci0gICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwgKHtjYW5k
aWRhdGV9KSA9PiBzZW5kKG90aGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FuZGlkYXRlfSkpOwotICAgIGxldCBtYWtp
bmdPZmZlciA9IGZhbHNlLCBpZ25vcmVPZmZlciA9IGZhbHNlOwotICAgIHBjLmFkZEV2ZW50TGlz
dGVuZXIoIm5lZ290aWF0aW9ubmVlZGVkIiwgYXN5bmMgKCkgPT4gewotICAgICAgdHJ5IHsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJuZWdvdGlh
dGlvbm5lZWRlZCBhbHdheXMgZmlyZXMgaW4gc3RhYmxlIHN0YXRlIik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMobWFraW5nT2ZmZXIsIGZhbHNlLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IGFscmVh
ZHkgaW4gcHJvZ3Jlc3MiKTsKLSAgICAgICAgbWFraW5nT2ZmZXIgPSB0cnVlOwotICAgICAgICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocGMu
c2lnbmFsaW5nU3RhdGUsICJoYXZlLWxvY2FsLW9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIG5v
dCByYWNpbmcgd2l0aCBvbm1lc3NhZ2UiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5sb2Nh
bERlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIsICJuZWdvdGlhdGlvbm5lZWRlZCBTTEQgd29ya2Vk
Iik7Ci0gICAgICAgIHNlbmQob3RoZXIsIHtkZXNjcmlwdGlvbjogcGMubG9jYWxEZXNjcmlwdGlv
bn0pOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBmYWlsKGUpOwotICAgICAgfSBmaW5h
bGx5IHsKLSAgICAgICAgbWFraW5nT2ZmZXIgPSBmYWxzZTsKLSAgICAgIH0KLSAgICB9KTsKLSAg
ICB3aW5kb3cub25tZXNzYWdlID0gYXN5bmMgKHtkYXRhOiB7ZGVzY3JpcHRpb24sIGNhbmRpZGF0
ZSwgcnVufX0pID0+IHsKLSAgICAgIHRyeSB7Ci0gICAgICAgIGlmIChkZXNjcmlwdGlvbikgewot
ICAgICAgICAgIGlnbm9yZU9mZmVyID0gZGVzY3JpcHRpb24udHlwZSA9PSAib2ZmZXIiICYmICFw
b2xpdGUgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAobWFraW5nT2ZmZXIgfHwgcGMuc2ln
bmFsaW5nU3RhdGUgIT0gInN0YWJsZSIpOwotICAgICAgICAgIGlmIChpZ25vcmVPZmZlcikgewot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLSAgICAgICAgICBhd2FpdCBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Ci0gICAgICAgICAgaWYgKGRlc2NyaXB0aW9u
LnR5cGUgPT0gIm9mZmVyIikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxp
bmdTdGF0ZSwgImhhdmUtcmVtb3RlLW9mZmVyIiwgIlJlbW90ZSBvZmZlciIpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiLCAiU1JE
IHdvcmtlZCIpOwotICAgICAgICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJv
bm1lc3NhZ2Ugbm90IHJhY2luZyB3aXRoIG5lZ290aWF0aW9ubmVlZGVkIik7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJvbm1l
c3NhZ2UgU0xEIHdvcmtlZCIpOwotICAgICAgICAgICAgc2VuZChvdGhlciwge2Rlc2NyaXB0aW9u
OiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMocGMucmVtb3RlRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJBbnN3
ZXIgd2FzIHNldCIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0
ZSwgInN0YWJsZSIsICJhbnN3ZXJlZCIpOwotICAgICAgICAgICAgcGMuZGlzcGF0Y2hFdmVudChu
ZXcgRXZlbnQoIm5lZ290aWF0ZWQiKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYg
KGNhbmRpZGF0ZSkgewotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBhd2FpdCBwYy5hZGRJ
Y2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgICBpZiAoIWlnbm9yZU9mZmVyKSB0aHJvdyBlOwotICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIGlmIChydW4pIHsKLSAgICAgICAgICBzZW5kKHdpbmRvdy5wYXJlbnQsIHtbcnVuLmlkXTog
YXdhaXQgY29tbWFuZHNbcnVuLmNtZF0oKSB8fCAwfSk7Ci0gICAgICAgIH0KLSAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgZmFpbChlKTsKLSAgICAgIH0KLSAgICB9OwotICB9IGNhdGNoIChl
KSB7Ci0gICAgZmFpbChlKTsKLSAgfQotICByZXR1cm4gcGM7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9u
IHNldHVwUGVlcklmcmFtZSh0LCBwb2xpdGUpIHsKLSAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJl
bW92ZSgpKTsKLSAgaWZyYW1lLnNyY2RvYyA9Ci0gICBgPGh0bWxcPjxzY3JpcHRcPigke3BlZXIu
dG9TdHJpbmcoKX0pKHdpbmRvdy5wYXJlbnQsICR7cG9saXRlfSk7PC9zY3JpcHRcPjwvaHRtbFw+
YDsKLSAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0KLSAg
Y29uc3QgZmFpbENhdGNoZXIgPSB0LnN0ZXBfZnVuYygoe2RhdGF9KSA9PgotICAgICAgKCJlcnJv
ciIgaW4gZGF0YSkgJiYgYXNzZXJ0X3VucmVhY2hlZChgRXJyb3IgaW4gaWZyYW1lOiAke2RhdGEu
ZXJyb3J9YCkpOwotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZhaWxDYXRj
aGVyKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGZhaWxDYXRjaGVyKSk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gaWZyYW1l
Lm9ubG9hZCA9IHIpOwotICByZXR1cm4gaWZyYW1lOwotfQotCi1mdW5jdGlvbiBzZXR1cFBlZXJU
b3BMZXZlbCh0LCBvdGhlciwgcG9saXRlKSB7Ci0gIGNvbnN0IHBjID0gcGVlcihvdGhlciwgcG9s
aXRlLCB0LnN0ZXBfZnVuYyhlID0+IHsgdGhyb3cgZTsgfSkpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHsgcGMuY2xvc2UoKTsgd2luZG93Lm9ubWVzc2FnZSA9IG51bGw7IH0pOwotfQotCi1sZXQg
Y291bnRlciA9IDA7Ci1hc3luYyBmdW5jdGlvbiBydW4odGFyZ2V0LCBjbWQpIHsKLSAgY29uc3Qg
aWQgPSBgcmVzdWx0JHtjb3VudGVyKyt9YDsKLSAgdGFyZ2V0LnBvc3RNZXNzYWdlKHtydW46IHtj
bWQsIGlkfX0sICIqIik7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyID0+IHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gbGlzdGVuKHtkYXRhfSkgewotICAgIGlmICghKGlkIGlu
IGRhdGEpKSByZXR1cm47Ci0gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCBsaXN0ZW4pOwotICAgIHIoZGF0YVtpZF0pOwotICB9KSk7Ci19Ci0KLWxldCBpZnJhbWU7Ci1h
c3luYyBmdW5jdGlvbiBzZXR1cEFCKHQsIHBvbGl0ZUEsIHBvbGl0ZUIpIHsKLSAgaWZyYW1lID0g
YXdhaXQgc2V0dXBQZWVySWZyYW1lKHQsIHBvbGl0ZUIpOwotICByZXR1cm4gc2V0dXBQZWVyVG9w
TGV2ZWwodCwgaWZyYW1lLmNvbnRlbnRXaW5kb3csIHBvbGl0ZUEpOwotfQotY29uc3QgcnVuQSA9
IGNtZCA9PiBydW4od2luZG93LCBjbWQpOwotY29uc3QgcnVuQiA9IGNtZCA9PiBydW4oaWZyYW1l
LmNvbnRlbnRXaW5kb3csIGNtZCk7Ci1jb25zdCBydW5Cb3RoID0gKGNtZEEsIGNtZEIgPSBjbWRB
KSA9PiBQcm9taXNlLmFsbChbcnVuQShjbWRBKSwgcnVuQihjbWRCKV0pOwotCi1hc3luYyBmdW5j
dGlvbiBwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhmLCBuYW1lKSB7Ci0gIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IGYodCwgYXdhaXQgc2V0dXBBQih0LCB0cnVlLCBmYWxzZSkpLCBuYW1lKTsKLSAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIGZhbHNlLCB0cnVl
KSksCi0gICAgICAgICAgICAgICBgJHtuYW1lfSB3aXRoIHJvbGVzIHJldmVyc2VkYCk7Ci19Ci0K
IHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4gewogICBhc3NlcnRfZXF1
YWxzKGF3YWl0IHJ1bkEoInNpbXBsZUNvbm5lY3QiKSwgMSwgIm9uZSB0cmFuc2NlaXZlciIpOwog
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJ1bkIoImFkZFRyYW5zY2VpdmVyIiksIDIsICJ0d28gdHJh
bnNjZWl2ZXJzIik7CkBAIC0xNTcsMzAgKzE5LDQgQEAgcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMo
YXN5bmMgKHQsIHBjKSA9PiB7CiAgIGFzc2VydF9lcXVhbHMobnVtQSwgMiwgInR3byB0cmFuc2Nl
aXZlcnMgb24gc2lkZSBBIik7CiAgIGFzc2VydF9lcXVhbHMobnVtQiwgMiwgInR3byB0cmFuc2Nl
aXZlcnMgb24gc2lkZSBCIik7CiB9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSIpOwotCi1w
cm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsKLSAgY29uc3QgcHMgPSBb
XTsKLSAgZm9yIChsZXQgaSA9IDIwOyBpID4gMDsgaS0tKSB7Ci0gICAgcHMucHVzaChydW5Cb3Ro
KCJhZGRUcmFuc2NlaXZlciIpKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90
aW1lb3V0KHIsIGkgLSAxKSk7Ci0gIH0KLSAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZl
ciIpKTsKLSAgYXdhaXQgUHJvbWlzZS5hbGwocHMpOwotICBjb25zdCBbbnVtQSwgbnVtQl0gPSBh
d2FpdCBydW5Cb3RoKCJnZXROdW1UcmFuc2NlaXZlcnMiKTsKLSAgYXNzZXJ0X2VxdWFscyhudW1B
LCA0MiwgIjQyIHRyYW5zY2VpdmVycyBvbiBzaWRlIEEiKTsKLSAgYXNzZXJ0X2VxdWFscyhudW1C
LCA0MiwgIjQyIHRyYW5zY2VpdmVycyBvbiBzaWRlIEIiKTsKLX0sICJQZXJmZWN0IG5lZ290aWF0
aW9uIHN0cmVzcyBnbGFyZSIpOwotCi1wcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwg
cGMpID0+IHsKLSAgY29uc3QgcHMgPSBbXTsKLSAgZm9yIChsZXQgaSA9IDIwOyBpID4gMDsgaS0t
KSB7Ci0gICAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKLSAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKLSAgfQotICBwcy5wdXNoKHJ1
bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICBhd2FpdCBQcm9taXNlLmFsbChwcyk7Ci0gIGNv
bnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOwot
ICBhc3NlcnRfZXF1YWxzKG51bUEsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOwot
ICBhc3NlcnRfZXF1YWxzKG51bUIsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOwot
fSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciIpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci1leHBlY3Rl
ZC50eHQKaW5kZXggZTg3MWExYTljMDcyMjc4ZTBhYzFiNzY3ZjdlMzkwNDBkODUxNWI0Ny4uNmQ2
MDg3MWU0OTk2ZTlhY2M0YjczZWZlMzk2ZDVlYjU1NWRhZTJjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0
LDUgQEAgUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgd2l0aCBtPSBzZWN0aW9uIGFu
ZCBubyBleGlzdGluZyB0cmFuc2NlaXZlciBzaG8KIEZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbihy
b2xsYmFjaykgc2hvdWxkIHVuc2V0IHRyYW5zY2VpdmVyLm1pZCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVz
Y3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIK
IEZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIG9ubHkgdW5zZXQgdHJh
bnNjZWl2ZXIgbWlkcyBhc3NvY2lhdGVkIHdpdGggY3VycmVudCByb3VuZCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJv
cjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBz
dGF0ZSIKIEZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24ocm9sbGJhY2spIHNob3VsZCByZW1vdmUg
bmV3bHkgY3JlYXRlZCB0cmFuc2NlaXZlciBmcm9tIHRyYW5zY2VpdmVyIGxpc3QgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxp
bmcgc3RhdGUiCi1QQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzdG9wIHRoZSB0cmFu
c2NlaXZlciBpZiBpdHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQKK1BBU1Mg
c2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIHNldCB0cmFuc2NlaXZlciBpbmFjdGl2ZSBpZiBp
dHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLmh0bWwKaW5kZXggYTgwNTZkNDczY2Q3YWQzYTNiZGQz
NDhiYzY4OWFhYjc1NmZhYjc3OC4uOWJiYWIzMGQ1NmUyMmYxZjExODQ2ZjhkMmY2Y2Y2NTQ2MzE4
MzJmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci5odG1sCkBA
IC0yNDgsMTggKzI0OCwxNCBAQAogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogCi0gICAg
YXNzZXJ0X2ZhbHNlKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wcGVkLCAnVHJhbnNjZWl2
ZXIgaXMgbm90IHN0b3BwZWQnKTsKLQogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcik7CiAgICAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKICAgICBjb25z
dCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAKICAgICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAotICAgIGFzc2VydF90cnVlKHBjMS5nZXRUcmFu
c2NlaXZlcnMoKVswXS5zdG9wcGVkLCAnVHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCcpOwotICAgIGFz
c2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2dldFJlY2VpdmVycyBk
b2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAwLCAnZ2V0U2VuZGVycyBk
b2VzIG5vdCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyJyk7Ci0gIH0s
ICdzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgc3RvcCB0aGUgdHJhbnNjZWl2ZXIgaWYgaXRz
IGNvcnJlc3BvbmRpbmcgbSBzZWN0aW9uIGlzIHJlamVjdGVkJyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uY3VycmVudERpcmVjdGlvbiwgJ2luYWN0aXZlJywg
J0Egc3RvcHBlZCBtLWxpbmUgc2hvdWxkIGdpdmUgYW4gaW5hY3RpdmUgdHJhbnNjZWl2ZXInKTsK
KyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzZXQgdHJhbnNjZWl2ZXIgaW5hY3Rp
dmUgaWYgaXRzIGNvcnJlc3BvbmRpbmcgbSBzZWN0aW9uIGlzIHJlamVjdGVkJyk7CiAKICAgLyoK
ICAgICBUT0RPCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1v
ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZl
ci1leHBlY3RlZC50eHQKaW5kZXggOWMyYTM2MjdhNmFiNWJlNzFmYWFmYTQxNTZjOWFhYjliZTY3
MDhlMy4uNjdjYmM4ZGEzMWU2NzY4ODA4OTU1MDZjZDNlZGY5MDcxZGU5Zjc5OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dApA
QCAtMTMsNCArMTMsNSBAQCBOT1RSVU4gTmFpdmUgcm9sbGJhY2sgYXBwcm9hY2ggaXMgbm90IGds
YXJlLXByb29mIChjb250cm9sKQogTk9UUlVOIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBm
cm9tIGhhdmUtbG9jYWwtb2ZmZXIgaXMgZ2xhcmUtcHJvb2YKIE5PVFJVTiBzZXRSZW1vdGVEZXNj
cmlwdGlvbihpbnZhbGlkT2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBkb2VzIG5vdCB1bmRv
IHJvbGxiYWNrCiBOT1RSVU4gcmVwZWF0ZWQgc1JEKG9mZmVyKSB3b3JrcworTk9UUlVOIHNSRChy
ZW9mZmVyKSB3aXRoIGNhbmRpZGF0ZXMgYW5kIHdpdGhvdXQgdHJpY2tsZSB3b3JrcwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXIuaHRtbAppbmRleCBiNDcwMjQ0NjYx
MzI1NWRhZWM3ZGI1MzI1ZjY0MDg5YTkxN2ZkZWU5Li5hNTBlOTY5NjM3Mjk0YWVjOGVlYWZlNjgy
ZGE1ZDI1OGUyYTkwZGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlw
dGlvbi1vZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9m
ZmVyLmh0bWwKQEAgLTMyNSw0ICszMjUsMTYgQEAKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKICAgfSwgJ3JlcGVhdGVkIHNSRChvZmZlcikgd29ya3MnKTsKIAor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICAg
IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICAgIGF3YWl0IHdhaXRGb3JJ
Y2VHYXRoZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxldGUnXSk7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBj
MiwgWydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pOworICB9LCAnc1JEKHJlb2ZmZXIpIHdpdGgg
Y2FuZGlkYXRlcyBhbmQgd2l0aG91dCB0cmlja2xlIHdvcmtzJyk7CisKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXZpZGVvRGV0ZWN0b3JUZXN0Lmh0bWwKaW5kZXggNzFmZmZkYzY4NjAzNDY1YjIyYjMyZGE3Mzhh
YjVmZWRhYjM3OGY0MS4uNjc4NmJkNDllZGU2OGVhYTA3NWZkYjJkMTI3ZDQwNzRlNWU5MDAzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCkBAIC0yMiwzOCArMjIsMzggQEAKIC8vIHRo
ZSB0ZXN0IHRpbWVzIG91dC4KIAogYXN5bmMgZnVuY3Rpb24gc2lnbmFsU2V0dGxlbWVudFRpbWUo
dCwgdiwgc2VuZGVyLCBzaWduYWwsIGJhY2tncm91bmRUcmFjaykgewotICBjb25zdCBkZXRlY3Rp
b25TdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IHNpZ25hbH19
KTsKKyAgY29uc3QgZGV0ZWN0aW9uU3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVv
OiB7c2lnbmFsfX0pOwogICBjb25zdCBbZGV0ZWN0aW9uVHJhY2tdID0gZGV0ZWN0aW9uU3RyZWFt
LmdldFRyYWNrcygpOwotICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKGRldGVjdGlvblRyYWNr
KTsKLSAgY29uc3QgZnJhbWVzQmVmb3JlID0gdi5nZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgpLnRv
dGFsVmlkZW9GcmFtZXM7Ci0gIGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCBzaWduYWwpOwotICBj
b25zdCBmcmFtZXNBZnRlciA9IHYuZ2V0VmlkZW9QbGF5YmFja1F1YWxpdHkoKS50b3RhbFZpZGVv
RnJhbWVzOwotICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKGJhY2tncm91bmRUcmFjayk7Ci0g
IGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCAxMDApOwotICBkZXRlY3Rpb25TdHJlYW0uZ2V0VHJh
Y2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpOwotICByZXR1cm4gKGZyYW1lc0Fm
dGVyIC0gZnJhbWVzQmVmb3JlKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBzZW5kZXIucmVwbGFjZVRy
YWNrKGRldGVjdGlvblRyYWNrKTsKKyAgICBjb25zdCBmcmFtZXNCZWZvcmUgPSB2LmdldFZpZGVv
UGxheWJhY2tRdWFsaXR5KCkudG90YWxWaWRlb0ZyYW1lczsKKyAgICBhd2FpdCBkZXRlY3RTaWdu
YWwodCwgdiwgc2lnbmFsKTsKKyAgICBjb25zdCBmcmFtZXNBZnRlciA9IHYuZ2V0VmlkZW9QbGF5
YmFja1F1YWxpdHkoKS50b3RhbFZpZGVvRnJhbWVzOworICAgIGF3YWl0IHNlbmRlci5yZXBsYWNl
VHJhY2soYmFja2dyb3VuZFRyYWNrKTsKKyAgICBhd2FpdCBkZXRlY3RTaWduYWwodCwgdiwgMTAw
KTsKKyAgICByZXR1cm4gZnJhbWVzQWZ0ZXIgLSBmcmFtZXNCZWZvcmU7CisgIH0gZmluYWxseSB7
CisgICAgZGV0ZWN0aW9uVHJhY2suc3RvcCgpOworICB9CiB9CiAKIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CiAg
IHYuYXV0b3BsYXkgPSB0cnVlOwogICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAgIGNvbnN0IHN0cmVhbTEg
PSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IDEwMH19KTsKLSAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBzdHJlYW0xLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2su
c3RvcCgpKSk7CiAgIGNvbnN0IFt0cmFjazFdID0gc3RyZWFtMS5nZXRUcmFja3MoKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiB0cmFjazEuc3RvcCgpKTsKKwogICBjb25zdCBzZW5kZXIgPSBwYzEu
YWRkVHJhY2sodHJhY2sxKTsKLSAgcGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYygoZSkgPT4gewot
ICAgIHYuc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFtlLnRyYWNrXSk7Ci0gIH0pOwotICBj
b25zdCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAg
IHYuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCByZXNvbHZlKTsKLSAgfSk7Cisg
IGNvbnN0IGhhdmVUcmFja0V2ZW50ID0gbmV3IFByb21pc2UociA9PiBwYzIub250cmFjayA9IHIp
OwogICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwotICBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjMSwgcGMyKTsKLSAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgdi5zcmNPYmplY3QgPSBuZXcgTWVkaWFTdHJl
YW0oWyhhd2FpdCBoYXZlVHJhY2tFdmVudCkudHJhY2tdKTsKKyAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiB2Lm9ubG9hZGVkbWV0YWRhdGEgPSByKTsKICAgLy8gVGhlIGJhc2ljIHNpZ25hbCBpcyBh
IHRyYWNrIHdpdGggc2lnbmFsIDEwMC4gV2UgcmVwbGFjZSB0aGlzCiAgIC8vIHdpdGggdHJhY2tz
IHdpdGggc2lnbmFsIGZyb20gMCB0byAyNTUgYW5kIHNlZSBpZiB0aGV5IGFyZSBhbGwKICAgLy8g
cmVsaWFibHkgZGV0ZWN0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjg5NjYwMTNhZjI0NzllNzQxNTAyMjMzOTk1YjBiZWI5NTBlOTM3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgY29uc3RydWN0
ZWQgZnJvbSBpbml0IHBhcmFtZXRlcnMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJv
ckV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDM0Y2ZkMjhiN2ViNzYxZGYxYzExNTcxZmE3YzUwY2U1ZjMyYmJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rlc3QoKCkg
PT4geworICBpbml0ID0geworICAgIGFkZHJlc3M6ICIxNjguMy40LjUiLAorICAgIHBvcnQ6IDQ3
MTEsCisgICAgdXJsOiAidHVybjp0dXJuLmV4YW1wbGUub3JnIiwKKyAgICBlcnJvckNvZGU6IDcw
MywKKyAgICBlcnJvclRleHQ6ICJUZXN0IGVycm9yIgorICB9OworICBldmVudCA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ3R5cGUnLCBpbml0KTsKKyAgYXNzZXJ0X2VxdWFs
cyhldmVudC50eXBlLCAndHlwZScpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50LmFkZHJlc3MsICcx
NjguMy40LjUnKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudC5wb3J0LCA0NzExKTsKKyAgYXNzZXJ0
X2VxdWFscyhldmVudC51cmwsICJ0dXJuOnR1cm4uZXhhbXBsZS5vcmciKTsKKyAgYXNzZXJ0X2Vx
dWFscyhldmVudC5lcnJvckNvZGUsIDcwMyk7CisgIGFzc2VydF9lcXVhbHMoZXZlbnQuZXJyb3JU
ZXh0LCAiVGVzdCBlcnJvciIpOworfSwgJ1JUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBj
b25zdHJ1Y3RlZCBmcm9tIGluaXQgcGFyYW1ldGVycycpOworCis8L3NjcmlwdD4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29k
aW5ncy5odG1sCmluZGV4IDUzOWIyNjkyODA2OTM0MjU0YzRlYzRiOGQ4YmIxNGVmMTI5NjIwN2Qu
LmUxYTZlNjI1Mzc5ZWYxZjZhODc1NThhNzQ0ZmMxMzY0Yzg4OTY0ODEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBh
cmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbApA
QCAtMTIwLDcgKzEyMCw2IEBACiAgICAgICBzZW5kRW5jb2RpbmdzOiBbewogICAgICAgICBhY3Rp
dmU6IGZhbHNlLAogICAgICAgICBtYXhCaXRyYXRlOiA4LAotICAgICAgICBtYXhGcmFtZXJhdGU6
IDI1LAogICAgICAgICByaWQ6ICdmb28nCiAgICAgICB9XQogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcwppbmRleCAxN2VjZmJh
Zjk5ZThmZjEzMzM3M2YxNDg3YTI4MmRiYWFiNzU2MmY2Li5kNzY1M2MzYThhZmJmZTYwYzdlZWI2
NGZlNTBiYTI1MGMyNzFjZTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWhlbHBlci5qcwpAQCAtNTAsNiArNTAsMTEgQEAgYXN5bmMgZnVuY3Rpb24g
ZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIGNhbGxlcikgewogZnVuY3Rpb24gdmFsaWRhdGVTZW5k
ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSk7
CiAKKyAgYXNzZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnZW5jb2RpbmdzJyk7CisgIGZvcihjb25z
dCBlbmNvZGluZyBvZiBwYXJhbS5lbmNvZGluZ3MpIHsKKyAgICB2YWxpZGF0ZUVuY29kaW5nUGFy
YW1ldGVycyhlbmNvZGluZyk7CisgIH0KKwogICBhc3NlcnRfbm90X2VxdWFscyhwYXJhbS50cmFu
c2FjdGlvbklkLCB1bmRlZmluZWQsCiAgICAgJ0V4cGVjdCBzZW5kZXIgcGFyYW0udHJhbnNhY3Rp
b25JZCB0byBiZSBzZXQnKTsKIApAQCAtMTAxLDIwICsxMDYsMTAgQEAgZnVuY3Rpb24gdmFsaWRh
dGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0pIHsKICAgICBzZXF1ZW5jZTxSVENSdHBDb2Rl
Y1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7CiAgIH07CiAKLSAgZW51bSBSVENEZWdyYWRh
dGlvblByZWZlcmVuY2UgewotICAgICJtYWludGFpbi1mcmFtZXJhdGUiLAotICAgICJtYWludGFp
bi1yZXNvbHV0aW9uIiwKLSAgICAiYmFsYW5jZWQiCi0gIH07CiAgKi8KIGZ1bmN0aW9uIHZhbGlk
YXRlUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxk
KHBhcmFtLCAndHJhbnNhY3Rpb25JZCcpOwogCi0gIGFzc2VydF9hcnJheV9maWVsZChwYXJhbSwg
J2VuY29kaW5ncycpOwotICBmb3IoY29uc3QgZW5jb2Rpbmcgb2YgcGFyYW0uZW5jb2RpbmdzKSB7
Ci0gICAgdmFsaWRhdGVFbmNvZGluZ1BhcmFtZXRlcnMoZW5jb2RpbmcpOwotICB9Ci0KICAgYXNz
ZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnaGVhZGVyRXh0ZW5zaW9ucycpOwogICBmb3IoY29uc3Qg
aGVhZGVyRXh0IG9mIHBhcmFtLmhlYWRlckV4dGVuc2lvbnMpIHsKICAgICB2YWxpZGF0ZUhlYWRl
ckV4dGVuc2lvblBhcmFtZXRlcnMoaGVhZGVyRXh0KTsKQEAgLTEzMSwxMyArMTI2LDggQEAgZnVu
Y3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAKIC8qCiAgIGRpY3Rpb25hcnkg
UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzIHsKLSAgICBSVENEdHhTdGF0dXMgICAgICAgIGR0eDsK
ICAgICBib29sZWFuICAgICAgICAgICAgIGFjdGl2ZTsKLSAgICBSVENQcmlvcml0eVR5cGUgICAg
IHByaW9yaXR5OwotICAgIFJUQ1ByaW9yaXR5VHlwZSAgICAgbmV0d29ya1ByaW9yaXR5OwotICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgcHRpbWU7CiAgICAgdW5zaWduZWQgbG9uZyAgICAgICBtYXhC
aXRyYXRlOwotICAgIGRvdWJsZSAgICAgICAgICAgICAgbWF4RnJhbWVyYXRlOwogCiAgICAgW3Jl
YWRvbmx5XQogICAgIERPTVN0cmluZyAgICAgICAgICAgcmlkOwpAQCAtMTQ1LDMxICsxMzUsMTAg
QEAgZnVuY3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgICAgZG91YmxlICAg
ICAgICAgICAgICBzY2FsZVJlc29sdXRpb25Eb3duQnk7CiAgIH07CiAKLSAgZW51bSBSVENEdHhT
dGF0dXMgewotICAgICJkaXNhYmxlZCIsCi0gICAgImVuYWJsZWQiCi0gIH07Ci0KLSAgZW51bSBS
VENQcmlvcml0eVR5cGUgewotICAgICJ2ZXJ5LWxvdyIsCi0gICAgImxvdyIsCi0gICAgIm1lZGl1
bSIsCi0gICAgImhpZ2giCi0gIH07CiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlRW5jb2RpbmdQYXJh
bWV0ZXJzKGVuY29kaW5nKSB7Ci0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKGVuY29kaW5n
LCAnZHR4JywKLSAgICBbJ2Rpc2FibGVkJywgJ2VuYWJsZWQnXSk7Ci0KICAgYXNzZXJ0X29wdGlv
bmFsX2Jvb2xlYW5fZmllbGQoZW5jb2RpbmcsICdhY3RpdmUnKTsKLSAgYXNzZXJ0X29wdGlvbmFs
X2VudW1fZmllbGQoZW5jb2RpbmcsICdwcmlvcml0eScsCi0gICAgWyd2ZXJ5LWxvdycsICdsb3cn
LCAnbWVkaXVtJywgJ2hpZ2gnXSk7Ci0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKGVuY29k
aW5nLCAnbmV0d29ya1ByaW9yaXR5JywKLSAgICBbJ3ZlcnktbG93JywgJ2xvdycsICdtZWRpdW0n
LCAnaGlnaCddKTsKLQotICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKGVuY29k
aW5nLCAncHRpbWUnKTsKICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChlbmNv
ZGluZywgJ21heEJpdHJhdGUnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChlbmNv
ZGluZywgJ21heEZyYW1lcmF0ZScpOwogCiAgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQo
ZW5jb2RpbmcsICdyaWQnKTsKICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChlbmNvZGlu
ZywgJ3NjYWxlUmVzb2x1dGlvbkRvd25CeScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFy
YW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dAppbmRleCBmNjY2YWI4YjE4ZDM5NWI5NzE4OGY4OTY5NTQwMDA3ZDM2NWQyOWEwLi4yNjMyNTRk
ZThkNDIzZTRkOGU4MGM4NWQ5ODlhMmZmMWI5MjhiZWIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1n
ZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4
cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCBh
dWRpbyByZWNlaXZlciBhc3NlcnRfdHJ1ZTogRXhwZWN0IGRpY3Rpb25hcnkuZW5jb2RpbmdzIHRv
IGJlIGFycmF5IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIGdldFBhcmFtZXRlcnMoKSB3
aXRoIHZpZGVvIHJlY2VpdmVyIGFzc2VydF90cnVlOiBFeHBlY3QgZGljdGlvbmFyeS5lbmNvZGlu
Z3MgdG8gYmUgYXJyYXkgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgZ2V0UGFyYW1ldGVy
cygpIHdpdGggc2ltdWxjYXN0IHZpZGVvIHJlY2VpdmVyIGFzc2VydF90cnVlOiBFeHBlY3QgZGlj
dGlvbmFyeS5lbmNvZGluZ3MgdG8gYmUgYXJyYXkgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgZ2V0UGFyYW1ldGVycygpIHdpdGggYXVkaW8gcmVjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhw
ZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIg
YnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCB2aWRlbyByZWNl
aXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9i
amVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIGdldFBhcmFt
ZXRlcnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyByZWNlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBi
dXQgZ290ICJ1bmRlZmluZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbAppbmRleCA0YmUwZTNiOTVlYzQ1YmQ5
NjkzYTRkYTM4YjE0NmM1OGIzNzgxMGY4Li43MDQ3Y2U3ZDFmMzYzYjdkMmUwNmViYmViZWExMTcz
NmFiY2NjZjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sCkBAIC0zNiwxMiArMzYsMTEgQEAKICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRp
bycpOwogICAgIGNvbnN0IGNhbGxlZSA9IGF3YWl0IGRvT2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBw
Yyk7Ci0gICAgY29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF0uZ2V0UGFyYW1l
dGVycygpOworICAgIGNvbnN0IHBhcmFtID0gY2FsbGVlLmdldFRyYW5zY2VpdmVycygpWzBdLnJl
Y2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKICAgICB2YWxpZGF0ZVJlY2VpdmVyUnRwUGFyYW1ldGVy
cyhwYXJhbSk7CiAKICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHBhcmFtLmhlYWRlckV4dGVuc2lv
bnMubGVuZ3RoLCAwKTsKICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHBhcmFtLmNvZGVjcy5sZW5n
dGgsIDApOwotICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZW5jb2RpbmdzLmxlbmd0aCwgMSk7CiAg
IH0sICdnZXRQYXJhbWV0ZXJzKCkgd2l0aCBhdWRpbyByZWNlaXZlcicpOwogCiAgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKQEAgLTQ5LDEyICs0OCwxMSBAQAogICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CiAgICAg
Y29uc3QgY2FsbGVlID0gYXdhaXQgZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKLSAgICBj
b25zdCBwYXJhbSA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKVswXS5nZXRQYXJhbWV0ZXJzKCk7Cisg
ICAgY29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIuZ2V0
UGFyYW1ldGVycygpOwogICAgIHZhbGlkYXRlUmVjZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsK
IAogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uaGVhZGVyRXh0ZW5zaW9ucy5sZW5ndGgs
IDApOwogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uY29kZWNzLmxlbmd0aCwgMCk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGluZ3MubGVuZ3RoLCAxKTsKICAgfSwgJ2dldFBh
cmFtZXRlcnMoKSB3aXRoIHZpZGVvIHJlY2VpdmVyJyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewpAQCAtNjcsMTUgKzY1LDkgQEAKICAgICAgIF0KICAgICB9KTsKICAgICBjb25zdCBj
YWxsZWUgPSBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOwotICAgIGNvbnN0IHBh
cmFtID0gY2FsbGVlLmdldFJlY2VpdmVycygpWzBdLmdldFBhcmFtZXRlcnMoKTsKKyAgICBjb25z
dCBwYXJhbSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci5nZXRQYXJhbWV0
ZXJzKCk7CiAgICAgdmFsaWRhdGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0pOwotCiAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5oZWFkZXJFeHRlbnNpb25zLmxlbmd0aCwgMCk7CiAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5jb2RlY3MubGVuZ3RoLCAwKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKHBhcmFtLmVuY29kaW5ncy5sZW5ndGgsIDIsICdsYXllciBjb3VudCBtdXN0IG1h
dGNoJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGluZ3NbMF0ucmlkLCAicmlkMSIs
Ci0gICAgICAnc2ltdWxjYXN0IHJpZHMgbXVzdCBtYXRjaCcpOwotICAgIGFzc2VydF9lcXVhbHMo
cGFyYW0uZW5jb2RpbmdzWzFdLnJpZCwgInJpZDIiLAotICAgICAgJ3NpbXVsY2FzdCByaWRzIG11
c3QgbWF0Y2gnKTsKICAgfSwgJ2dldFBhcmFtZXRlcnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyBy
ZWNlaXZlcicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJh
Y2stdHdpY2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3
aWNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDRhODZhZDUwYjhiNTVkY2M2NTgw
NzYyM2FiYTg5NzBlOGIyNmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1l
LXRyYWNrLXR3aWNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
d28gUlRDUnRwU2VuZGVycyBlbmNvZGluZyB0aGUgc2FtZSB0cmFjaworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBT
ZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUt
c2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ODU0M2RhNzBmODM2MGE4
MGY5ZWQwZTYzM2Y1NWYzNWY1N2FhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2Rl
LXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBBIGdlbmVyb3Vz
IHRlc3RpbmcgZHVyYXRpb24gdGhhdCB3aWxsIG5vdCB0aW1lIG91dCBvbiBib3RzLgorICBjb25z
dCBrRW5jb2RlRHVyYXRpb25NcyA9IDEwMDAwOworCisgIC8vIFRoZSBjcmFzaCB0aGlzIHRlc3Qg
YWltcyB0byByZXBybyB3YXMgZWFzeSB0byByZXByb2R1Y2UgdXNpbmcgYSBub3JtYWwKKyAgLy8g
Z2V0VXNlck1lZGlhKCkgdHJhY2sgd2hlbiBydW5uaW5nIHRoZSBicm93c2VyIG5vcm1hbGx5LCBl
LmcuIGJ5IG5hdmlnYXRpbmcKKyAgLy8gdG8gaHR0cHM6Ly9qc2ZpZGRsZS5uZXQvaGVuYm9zL2Zj
N2drM3ZlLzExLy4gQnV0IGZvciBzb21lIHJlYXNvbiwgdGhlIGZha2UKKyAgLy8gdHJhY2tzIHJl
dHVybmVkIGJ5IGdldFVzZXJNZWRpYSgpIHdoZW4gaW5zaWRlIHRoaXMgdGVzdGluZyBlbnZpcm9u
bWVudCBoYWQKKyAgLy8gYSBtdWNoIGhhcmRlciB0aW1lIHdpdGggcmVwcm9kdWNpYmlsaXR5Lgor
ICAvLworICAvLyBCeSBjcmVhdGluZyBhIGhpZ2ggRlBTIGNhbnZhcyBjYXB0dXJlIHRyYWNrIHdl
IGFyZSBhYmxlIHRvIHJlcHJvIHJlbGlhYmx5CisgIC8vIGluIHRoaXMgV1BUIGVudmlyb25tZW50
IGFzIHdlbGwuCisgIGZ1bmN0aW9uIHdoaXRlTm9pc2Uod2lkdGgsIGhlaWdodCkgeworICAgIGNv
bnN0IGNhbnZhcyA9CisgICAgICAgIE9iamVjdC5hc3NpZ24oZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnY2FudmFzJyksIHt3aWR0aCwgaGVpZ2h0fSk7CisgICAgY29uc3QgY3R4ID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJyk7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwor
ICAgIGNvbnN0IHAgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBkcmF3ICgpIHsKKyAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgcC5kYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNvbnN0IGNvbG9yID0g
TWF0aC5yYW5kb20oKSAqIDI1NTsKKyAgICAgICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAg
ICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAgICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAg
ICAgIH0KKyAgICAgIGN0eC5wdXRJbWFnZURhdGEocCwgMCwgMCk7CisgICAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZHJhdyk7CisgICAgfSk7CisgICAgcmV0dXJuIGNhbnZhcy5jYXB0dXJlU3Ry
ZWFtKCk7CisgIH0KKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSB3
aGl0ZU5vaXNlKDY0MCwgNDgwKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNr
cygpOworICAgIGNvbnN0IHQxID0gcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIsIHtkaXJlY3Rp
b246InNlbmRvbmx5In0pOworICAgIGNvbnN0IHQyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRl
byIsIHtkaXJlY3Rpb246InNlbmRvbmx5In0pOworICAgIGF3YWl0IHQxLnNlbmRlci5yZXBsYWNl
VHJhY2sodHJhY2spOworICAgIGF3YWl0IHQyLnNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2spOwor
CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbigpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
KTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRp
b24pOworCisgICAgLy8gSW4gQ2hyb21pdW0sIGVhY2ggc2VuZGVyIGluc3RhbnRpYXRlcyBhIFZp
ZGVvU3RyZWFtRW5jb2RlciBkdXJpbmcKKyAgICAvLyBuZWdvdGlhdGlvbi4gVGhpcyB0ZXN0IHJl
cHJvZHVjZXMgaHR0cHM6Ly9jcmJ1Zy5jb20vd2VicnRjLzExNDg1IHdoZXJlIGEKKyAgICAvLyBy
YWNlIGNhdXNlcyBhIGNyYXNoIHdoZW4gbXVsdGlwbGUgVmlkZW9TdHJlYW1FbmNvZGVycyBhcmUg
ZW5jb2RpbmcgdGhlCisgICAgLy8gc2FtZSBNZWRpYVN0cmVhbVRyYWNrLgorICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwga0VuY29kZUR1cmF0
aW9uTXMpKTsKKyAgfSwgIlR3byBSVENSdHBTZW5kZXJzIGVuY29kaW5nIHRoZSBzYW1lIHRyYWNr
Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5j
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMWU5ZjdjODEzNTc0OGZmMzFiMTU0YjExNjk5NjI4YjJiNDI0OWRjOS4uNDFm
MWZkMzNlZTk2NjA2NDVhYThkMDA4Mjc0NmI2MWZjOWFkNDNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKQEAgLTE2LDQgKzE2LDYgQEAgUEFTUyBz
ZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjbG9jayByYXRlIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW8KIFBBU1Mgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZp
ZWQgY29kZWMgY2hhbm5lbCBjb3VudCBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIHBhcmFt
ZXRlcnMgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcgogUEFTUyBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBh
YmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yCitQQVNTIHNl
dENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3JkZXIgb2YgYXVkaW8gY29kZWNzIGlu
IGNyZWF0ZU9mZmVyCitGQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3Jk
ZXIgb2YgdmlkZW8gY29kZWNzIGluIGNyZWF0ZU9mZmVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJWUDgiIGJ1dCBnb3QgIkgyNjQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVj
UHJlZmVyZW5jZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbApp
bmRleCBhMDI4MjQ2N2Q4M2NkZTI0NTI2NGM5OTAzNzBmOWIyODZiYzIxYTA5Li5hNWRmNmE5ZDJi
MjE3MTRjMWZkOGZjYWQxMjkzYjQ5NWU5NWZjYjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1z
ZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJl
bmNlcy5odG1sCkBAIC0zLDYgKzMsNyBAQAogPHRpdGxlPlJUQ1J0cFRyYW5zY2VpdmVyLnByb3Rv
dHlwZS5zZXRDb2RlY1ByZWZlcmVuY2VzPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3RoaXJkX3BhcnR5L3Nk
cC9zZHAuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgJ3VzZSBzdHJpY3QnOwogCkBAIC0yOCw0
MSArMjksNDcgQEAKICAgICAgICAgICBjb2RlY3MgZG9lcyBub3QgZnVsZmlsbCB0aGVzZSByZXF1
aXJlbWVudHMsIHRoZSB1c2VyIGFnZW50IE1VU1QgdGhyb3cKICAgICAgICAgICBhbiBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3IuCiAgICAqLworICAvKgorICAgKiBDaHJvbWl1bSBub3RlOiB0aGlz
IHJlcXVpcmVzIGJ1aWxkIGJvdHMgd2l0aCBIMjY0IHN1cHBvcnQuIFNlZQorICAgKiAgIGh0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQor
ICAgKiBmb3IgZGV0YWlscyBvbiBob3cgdG8gZW5hYmxlIHN1cHBvcnQuCisgICAqLwogCi0gIHRl
c3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNv
bnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3Qg
Y2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAg
ICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxpdGllcy5jb2RlY3MpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgb24gYXVkaW8gdHJhbnNjZWl2ZXIgd2l0aCBj
b2RlY3MgcmV0dXJuZWQgZnJvbSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycp
IHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcigndmlkZW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBSZWNlaXZlci5n
ZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJyk7CiAgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJl
bmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygp
IG9uIHZpZGVvIHRyYW5zY2VpdmVyIHdpdGggY29kZWNzIHJldHVybmVkIGZyb20gUlRDUnRwUmVj
ZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpIHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVz
dCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29u
c3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBj
YXBhYmlsaXRpZXMxID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAg
ICBjb25zdCBjYXBhYmlsaXRpZXMyID0gUlRDUnRwUmVjZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCdh
dWRpbycpOwogICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoWy4uLmNhcGFiaWxp
dGllczEuY29kZWNzLCAuLi4gY2FwYWJpbGl0aWVzMi5jb2RlY3NdKTsKLQogICB9LCBgc2V0Q29k
ZWNQcmVmZXJlbmNlcygpIHdpdGggYm90aCBzZW5kZXIgcmVjZWl2ZXIgY29kZWNzIGNvbWJpbmVk
IHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKFtdKTsK
LQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcyhbXSkgc2hvdWxkIHN1Y2NlZWRgKTsKIAotICB0
ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0
IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAg
ICAgY29uc3QgeyBjb2RlY3MgfSA9IGNhcGFiaWxpdGllczsKQEAgLTc0LDExICs4MSwxMSBAQAog
ICAgIH0KIAogICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKLQog
ICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggcmVvcmRlcmVkIGNvZGVjcyBzaG91bGQg
c3VjY2VlZGApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3Zp
ZGVvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKTsKICAgICBjb25zdCB7IGNvZGVjcyB9ID0gY2FwYWJpbGl0aWVzOwpAQCAt
MTA4LDcgKzExNSw3IEBACiAgICAgICAgIHRyaWVkID0gdHJ1ZTsKICAgICAgIH0KICAgICB9KTsK
LSAgICBhc3NlcnRfdHJ1ZSh0cmllZCwgJ1ZQOCB2aWRlbyBjb2RlYyB3YXMgZm91bmQgYW5kIHRy
aWVkJyk7CisgICAgYXNzZXJ0X3RydWUodHJpZWQsICdIMjY0IHZpZGVvIGNvZGVjIHdhcyBmb3Vu
ZCBhbmQgdHJpZWQnKTsKICAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG9ubHkgSDI2
NCBzaG91bGQgc3VjY2VlZGApOwogCiAgIGFzeW5jIGZ1bmN0aW9uIGdldFJUUE1hcExpbmVzV2l0
aENvZGVjQXNGaXJzdChmaXJzdENvZGVjKQpAQCAtMTQzLDE2ICsxNTAsMTcgQEAKICAgICBhc3Nl
cnRfdHJ1ZShsaW5lc1swXS5pbmRleE9mKCJWUDgiKSAhPT0gLTEsICJWUDggc2hvdWxkIGJlIHRo
ZSBmaXJzdCBjb2RlYyIpOwogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHNob3VsZCBhbGxv
dyBzZXR0aW5nIFZQOCBhcyBmaXJzdCBjb2RlY2ApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0
KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKICAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQ
cmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVy
ZW5jZXMoKSBvbiBhdWRpbyB0cmFuc2NlaXZlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdl
dENhcGFiaWxpdGllcygndmlkZW8nKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KTsKICAgICBjb25zdCBjb2RlY3MgPSBbewogICAgICAgbWltZVR5cGU6ICdkYXRhJywKQEAgLTE2
MiwxMSArMTcwLDExIEBACiAgICAgfV07CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNl
cyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZp
bmVkIGNvZGVjIHdpdGggaW52YWxpZCBtaW1lVHlwZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nKTsKICAgICBjb25zdCBjb2RlY3MgPSBbewogICAgICAgbWltZVR5cGU6ICdhdWRp
by9waWVwaXBlcicsCkBAIC0xNzYsMTEgKzE4NCwxMSBAQAogICAgIH1dOwogCiAgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVy
LnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVyZW5j
ZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJp
bGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFsKQEAgLTE5Myw0NCArMjAxLDQ0
IEBACiAgICAgICB9XTsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykp
OwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMg
dG9nZXRoZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91
bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7Cisg
IHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMg
PSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVj
cyA9IFtjYXBhYmlsaXRpZXMuY29kZWNzWzBdXTsKICAgICBjb2RlY3NbMF0uY2xvY2tSYXRlID0g
Y29kZWNzWzBdLmNsb2NrUmF0ZSAvIDI7CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNl
cyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQg
Y29kZWMgY2xvY2sgcmF0ZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAg
ICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRp
bycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFtjYXBhYmlsaXRpZXMuY29kZWNzWzBdXTsKICAgICBj
b2RlY3NbMF0uY2hhbm5lbHMgPSBjb2RlY3NbMF0uY2hhbm5lbHMgKyAxMTsKIAogICAgIGFzc2Vy
dF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZl
ci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVu
Y2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjaGFubmVsIGNvdW50IHNob3VsZCB0aHJvdyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4g
ewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRl
ci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxp
dGllcy5jb2RlY3NbMF1dOwogICAgIGNvZGVjc1swXS5zZHBGbXRwTGluZSA9ICJtb2RpZmllZHBh
cmFtZXRlcj0xIjsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBwYXJhbWV0
ZXJzIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgp
ID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFi
aWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAKQEAgLTI0
Myw3ICsyNTEsNzIgQEAKICAgICBjb2RlYy5jaGFubmVscyA9IGNoYW5uZWxzKzE7CiAKICAgICBh
c3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNj
ZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVm
ZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0
aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCisgIHByb21p
c2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGNvbnN0IHtjb2Rl
Y3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKKyAgICAvLyBSZW9y
ZGVyIGNvZGVjcywgcHV0IFBDTVUvUENNQSBmaXJzdC4KKyAgICBsZXQgZmlyc3RDb2RlYzsKKyAg
ICBsZXQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY29kZWNzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICBjb25zdCBjb2RlYyA9IGNvZGVjc1tpXTsKKyAgICAgIGlmIChjb2RlYy5taW1lVHlwZSA9PT0g
J2F1ZGlvL1BDTVUnIHx8IGNvZGVjLm1pbWVUeXBlID09PSAnYXVkaW8vUENNQScpIHsKKyAgICAg
ICAgY29kZWNzLnNwbGljZShpLCAxKTsKKyAgICAgICAgY29kZWNzLnVuc2hpZnQoY29kZWMpOwor
ICAgICAgICBmaXJzdENvZGVjID0gY29kZWMubWltZVR5cGUuc3Vic3RyKDYpOworICAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RDb2RlYywg
dW5kZWZpbmVkLCAnUENNVSBvciBQQ01BIGNvZGVjIG5vdCBmb3VuZCcpOworICAgIHRyYW5zY2Vp
dmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBjb25zdCBtZWRpYVNlY3Rpb24gPSBTRFBVdGlscy5n
ZXRNZWRpYVNlY3Rpb25zKG9mZmVyLnNkcClbMF07CisgICAgY29uc3QgcnRwUGFyYW1ldGVycyA9
IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhtZWRpYVNlY3Rpb24pOworICAgIGFzc2VydF9l
cXVhbHMocnRwUGFyYW1ldGVycy5jb2RlY3NbMF0ubmFtZSwgZmlyc3RDb2RlYyk7CisgIH0sIGBz
ZXRDb2RlY1ByZWZlcmVuY2VzKCkgbW9kaWZpZXMgdGhlIG9yZGVyIG9mIGF1ZGlvIGNvZGVjcyBp
biBjcmVhdGVPZmZlcmApOworCisgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCd2aWRlbycpOworICAgIGNvbnN0IHtjb2RlY3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKTsKKyAgICAvLyBSZW9yZGVyIGNvZGVjcywgc3dhcCBIMjY0IGFuZCBWUDgu
CisgICAgbGV0IHZwOCA9IC0xOworICAgIGxldCBoMjY0ID0gLTE7CisgICAgbGV0IGZpcnN0Q29k
ZWM7CisgICAgbGV0IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGNvZGVjcy5sZW5ndGg7IGkrKykg
eworICAgICAgY29uc3QgY29kZWMgPSBjb2RlY3NbaV07CisgICAgICBpZiAoY29kZWMubWltZVR5
cGUgPT09ICd2aWRlby9WUDgnKSB7CisgICAgICAgIHZwOCA9IGk7CisgICAgICAgIGlmIChoMjY0
ICE9PSAtMSkgeworICAgICAgICAgIGNvZGVjc1t2cDhdID0gY29kZWNzW2gyNjRdOworICAgICAg
ICAgIGNvZGVjc1toMjY0XSA9IGNvZGVjOworICAgICAgICAgIGZpcnN0Q29kZWMgPSAnVlA4JzsK
KyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKGNvZGVjLm1p
bWVUeXBlID09PSAndmlkZW8vSDI2NCcpIHsKKyAgICAgICAgaDI2NCA9IGk7CisgICAgICAgIGlm
ICh2cDggIT09IC0xKSB7CisgICAgICAgICAgY29kZWNzW2gyNjRdID0gY29kZWNzW3ZwOF07Cisg
ICAgICAgICAgY29kZWNzW3ZwOF0gPSBjb2RlYzsKKyAgICAgICAgICBmaXJzdENvZGVjID0gJ0gy
NjQnOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIGFz
c2VydF9ub3RfZXF1YWxzKGZpcnN0Q29kZWMsIHVuZGVmaW5lZCwgJ1ZQOCBhbmQgSDI2NCBjb2Rl
Y3Mgbm90IGZvdW5kJyk7CisgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2Rl
Y3MpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgIGNv
bnN0IG1lZGlhU2VjdGlvbiA9IFNEUFV0aWxzLmdldE1lZGlhU2VjdGlvbnMob2ZmZXIuc2RwKVsw
XTsKKyAgICBjb25zdCBydHBQYXJhbWV0ZXJzID0gU0RQVXRpbHMucGFyc2VSdHBQYXJhbWV0ZXJz
KG1lZGlhU2VjdGlvbik7CisgICAgYXNzZXJ0X2VxdWFscyhydHBQYXJhbWV0ZXJzLmNvZGVjc1sw
XS5uYW1lLCBmaXJzdENvZGVjKTsKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmll
cyB0aGUgb3JkZXIgb2YgdmlkZW8gY29kZWNzIGluIGNyZWF0ZU9mZmVyYCk7CisKICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXItc3RvcC1leHBlY3RlZC50eHQKaW5kZXggYmJkZTU4OTRhNzA4NmQyY2ZmYzUzNzhlNzlhNjdj
ODdlYTMzMzA2OC4uMGViYmZlNGY3MmUyNTczYTgzZTNiYzAwZDdmYTY3NDFmM2I3MDJlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c3RvcC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwxMCBAQAogCiBQQVNTIEEgdHJhbnNjZWl2ZXIg
YWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9mZmVyIGdlbmVyYXRpb24gc2hv
dWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCiBQQVNTIER1cmlu
ZyByZW5lZ290aWF0aW9uLCBhZGRpbmcgYW5kIHN0b3BwaW5nIGEgdHJhbnNjZWl2ZXIgc2hvdWxk
IG5vdCB0cmlnZ2VyIGEgcmVuZWdvdGlhdGVkIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCi1G
QUlMIEEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUgYSBzZW5k
b25seSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIGFzc2VydF90cnVlOiBUaGUgYXVkaW8gbS1zZWN0
aW9uIHNob3VsZCBiZSBzZW5kb25seSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBBIHN0
b3BwZWQgc2VuZG9ubHkgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0t
c2VjdGlvbiBpbiB0aGUgb2ZmZXIKIFBBU1MgQSBzdG9wcGVkIGluYWN0aXZlIHRyYW5zY2VpdmVy
IHNob3VsZCBnZW5lcmF0ZSBhbiBpbmFjdGl2ZSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyCitQQVNT
IElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5nIGEgbG9jYWxseSBn
ZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrCitQQVNTIElmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCByZW1vdGVseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBz
aG91bGQgc3RpbGwgd29yaworRkFJTCBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5z
Y2VpdmVycywgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBlYXIgYWZ0ZXIgb2Zm
ZXIvYW5zd2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDAgYnV0IGdvdCAxCitGQUlMIElmIGEg
dHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3Rh
dGUgc3RvcHBlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInN0
b3BwZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVy
LXN0b3AuaHRtbAppbmRleCA0ZjU3ZGM3YjZkMzQ4NDg2ZTI3MTVhZmYxZTdkN2U3NzNjMjlkMGUz
Li40ZjNhOWNlODVmYTI0NGJjNjczNDQ3ZmEzODlmNDRiZGMzODFiMjMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBU
cmFuc2NlaXZlci1zdG9wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCkBAIC01OSw4
ICs1OSw4IEBAIHByb21pc2VfdGVzdChhc3luYyAodCk9PiB7CiAKICAgICBjb25zdCBvZmZlciA9
IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogCi0gICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmlu
Y2x1ZGVzKCJhPXNlbmRvbmx5IiksICJUaGUgYXVkaW8gbS1zZWN0aW9uIHNob3VsZCBiZSBzZW5k
b25seSIpOwotfSwgIkEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJh
dGUgYSBzZW5kb25seSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIik7CisgICAgYXNzZXJ0X3RydWUo
b2ZmZXIuc2RwLmluY2x1ZGVzKCJhPWluYWN0aXZlIiksICJUaGUgYXVkaW8gbS1zZWN0aW9uIHNo
b3VsZCBiZSBpbmFjdGl2ZSIpOworfSwgIkEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBz
aG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlciIpOwogCiBw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwpAQCAtNzksNCArNzksNjUgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsK
IAogICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRlcygiYT1pbmFjdGl2ZSIpLCAiVGhl
IGF1ZGlvIG0tc2VjdGlvbiBzaG91bGQgYmUgaW5hY3RpdmUiKTsKIH0sICJBIHN0b3BwZWQgaW5h
Y3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBp
biB0aGUgb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCkpOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5n
IGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrJyk7CisKK3Byb21p
c2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsK
KyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzIsIHBjMSk7CisgIGF3YWl0IHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKK30sICdJZiBhIHRyYW5z
Y2VpdmVyIGlzIHN0b3BwZWQgcmVtb3RlbHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBh
bnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNj
ZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwor
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBhc3Nl
cnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsK
KyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgYXNz
ZXJ0X2VxdWFscyhwYzEuZ2V0U2VuZGVycygpLmxlbmd0aCwgMCwgJ2NhbGxlciBzZW5kZXJzJyk7
CisgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2NhbGxlciBy
ZWNlaXZlcnMnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0U2VuZGVycygpLmxlbmd0aCwgMCwg
J2NhbGxlZSBzZW5kZXJzJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLmdldFJlY2VpdmVycygpLmxl
bmd0aCwgMCwgJ2NhbGxlZSByZWNlaXZlcnMnKTsKK30sICdJZiBhIHRyYW5zY2VpdmVyIGlzIHN0
b3BwZWQsIHRyYW5zY2VpdmVycywgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBl
YXIgYWZ0ZXIgb2ZmZXIvYW5zd2VyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4gewor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2Vp
dmVyKCJhdWRpbyIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAg
YXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKyAgYXNzZXJ0
X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKyAgcGMxVHJhbnNjZWl2
ZXIgPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgIHBjMlRyYW5zY2VpdmVyID0gcGMyLmdl
dFRyYW5zY2VpdmVycygpWzBdOworICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXNzZXJ0X2VxdWFscygn
c3RvcHBlZCcsIHBjMVRyYW5zY2VpdmVyLmRpcmVjdGlvbik7CisgIGFzc2VydF9lcXVhbHMoJ3N0
b3BwZWQnLCBwYzJUcmFuc2NlaXZlci5kaXJlY3Rpb24pOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCcp
OworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci5odHRwcy5odG1sCmluZGV4IDQ4Nzc3NDk4MjI5ODM3NmI3Y2UyN2EyY2JmYWVhN2Fk
M2M3MTZlMjguLmM5ZGNlNDVkNzM4ODRiY2U3NGYxNjRiYTMwNmNlNjdiY2M3MzkyMDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRt
bApAQCAtMTk5LDcgKzE5OSw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAog
ICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAot
ICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAg
ICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIiwgcmVhZHlTdGF0ZTogImxpdmUiLCBt
dXRlZDogdHJ1ZX19LApAQCAtMjA3LDcgKzIwNiw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAi
c2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0p
OwogICB9OwpAQCAtMjMyLDcgKzIzMCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJl
Y3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAg
ICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19LApAQCAtMjQwLDcgKzIz
Nyw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDog
bnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3Bw
ZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMjY1LDcgKzI2MSw2IEBA
CiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwK
ICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZh
bHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7
a2luZDogInZpZGVvIn19LApAQCAtMjczLDcgKzI2OCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9u
OiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGly
ZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAg
IF0pOwogICB9OwpAQCAtMjkzLDcgKzI4Nyw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVj
dm9ubHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsK
ICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19LApAQCAtMzAxLDcg
KzI5NCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIG1p
ZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0
b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMzM2LDcgKzMyOCw2
IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlv
bjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAg
ICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMzY1LDcg
KzM1Niw2IEBACiAgICAgICAgICAgLy8gcnRjd2ViLWpzZXAgc2F5cyB0aGlzIGlzIHJlY3Zvbmx5
LCB3M2Mtd2VicnRjIGRvZXMgbm90Li4uCiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHki
LAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC00MjUsNiArNDE1LDcgQEAKIAog
ICAgIC8vIFJlbW92ZSBtaWQgYXR0cgogICAgIG9mZmVyLnNkcCA9IG9mZmVyLnNkcC5yZXBsYWNl
KCJhPW1pZDoiLCAiYT11bmtub3duYXR0cjoiKTsKKyAgICBvZmZlci5zZHAgPSBvZmZlci5zZHAu
cmVwbGFjZSgiYT1ncm91cDoiLCAiYT11bmtub3duYXR0cjoiKTsKICAgICBhd2FpdCBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwogCiAgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBj
Mi5nZXRUcmFuc2NlaXZlcnMoKSwKQEAgLTQzNCw3ICs0MjUsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiBudWxsfSwKICAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAg
ICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQog
ICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtNDY1LDcgKzQ1NSw2IEBACiAgICAgICAgICAgc2Vu
ZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2Vu
ZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3Rv
cHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTQ4NSw3ICs0NzQsNiBAQAog
ICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIGRp
cmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9u
bHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlLAogICAgICAgICAgIG1pZDogbGFzdE1pZAog
ICAgICAgICB9CiAgICAgICBdKTsKQEAgLTQ5OSw3ICs0ODcsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRy
ZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9ubHkiLAotICAgICAgICAg
IHN0b3BwZWQ6IGZhbHNlLAogICAgICAgICAgIG1pZDogbGFzdE1pZAogICAgICAgICB9CiAgICAg
ICBdKTsKQEAgLTEyNDgsMTkgKzEyMzUsMTcgQEAKICAgICAgIHN0b3BwZWRUcmFuc2NlaXZlci5y
ZWNlaXZlci50cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsKICAgICB9KTsKICAgICBzdG9wcGVkVHJh
bnNjZWl2ZXIuc3RvcCgpOwotICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxl
bmd0aCwgMCwgJ2dldFJlY2VpdmVycyBkb2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0
b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCku
bGVuZ3RoLCAwLCAnZ2V0U2VuZGVycyBkb2VzIG5vdCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9w
cGVkIHRyYW5zY2VpdmVyJyk7Ci0KKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRSZWNlaXZlcnMo
KS5sZW5ndGgsIDEsICdnZXRSZWNlaXZlcnMgZXhwb3NlcyBhIHJlY2VpdmVyIG9mIGEgc3RvcHBl
ZCB0cmFuc2NlaXZlciBiZWZvcmUgbmVnb3RpYXRpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
MS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAxLCAnZ2V0U2VuZGVycyBleHBvc2VzIGEgc2VuZGVyIG9m
IGEgc3RvcHBlZCB0cmFuc2NlaXZlciBiZWZvcmUgbmVnb3RpYXRpb24nKTsKICAgICBhd2FpdCBv
bmVuZGVkOwotCisgICAgLy8gVGhlIHRyYW5zY2VpdmVyIGhhcyBbW3N0b3BwaW5nXV0gPSB0cnVl
LCBbW3N0b3BwZWRdXSA9IGZhbHNlCiAgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRU
cmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3Ry
YWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5k
OiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5kZWQifX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1
ZSwKLSAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIGRpcmVjdGlv
bjogInNlbmRyZWN2IgorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCisg
ICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAg
LTEyODcsMjkgKzEyNzIsMzggQEAKICAgICBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
OwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAotICAgIHN0b3Bw
ZWRUcmFuc2NlaXZlciA9IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICBjb25zdCBzdG9w
cGVkQ2FsbGVlVHJhbnNjZWl2ZXIgPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CiAgICAgb25l
bmRlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgc3RvcHBlZFRyYW5zY2VpdmVy
LnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOworICAgICAgc3RvcHBlZENhbGxlZVRy
YW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOwogICAgIH0pOwogCiAg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKIAogICAgIGF3YWl0IG9u
ZW5kZWQ7Ci0KKyAgICAvLyBwYzIncyB0cmFuc2NlaXZlciB3YXMgc3RvcHBlZCByZW1vdGVseS4K
KyAgICAvLyBUaGUgdHJhY2sgZW5kcyB3aGVuIHNldFJlbWVvdGVEZXNjcmlwdGlvbihvZmZlcikg
aXMgc2V0LgogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAg
ICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAg
ICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5k
ZWQifX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwsCi0g
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiAic3RvcHBlZCIsCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiCiAgICAgICAg
IH0KICAgICAgIF0pOworICAgIC8vIEFmdGVyIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSwg
dGhlIHRyYW5zY2VpdmVyIGhhcworICAgIC8vIFtbc3RvcHBpbmddXSA9IHRydWUsIFtbc3RvcHBl
ZF1dID0gdHJ1ZSwgYW5kIGlzIHJlbW92ZWQgZnJvbSBwYzIuCisgICAgY29uc3Qgc3RvcHBpbmdB
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oc3RvcHBpbmdBbnN3ZXIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRy
YW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0UmVjZWl2
ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVy
IG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2Vy
dF9lcXVhbHMocGMyLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90
IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgYWZ0ZXIgbmVnb3RpYXRp
b24nKTsKIAogICAgIC8vIFNob3VsZG4ndCB0aHJvdyBlaXRoZXIKICAgICBzdG9wcGVkVHJhbnNj
ZWl2ZXIuc3RvcCgpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihzdG9wcGlu
Z0Fuc3dlcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAw
LCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0
cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdl
dFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRl
ciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgYWZ0ZXIgbmVnb3RpYXRpb24nKTsKIAogICAgIHBj
MS5jbG9zZSgpOwogICAgIHBjMi5jbG9zZSgpOwpAQCAtMTMzNCwxMyArMTMyOCwxNCBAQAogCiAg
ICAgbGV0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CiAKLSAgICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOwotCisgICAgY29uc3QgdHJhbnNjZWl2ZXJUaGF0V2FzU3Rv
cHBlZCA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICB0cmFuc2NlaXZlclRoYXRXYXNT
dG9wcGVkLnN0b3AoKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
CiAgICAgdHJpY2tsZSh0LCBwYzEsIHBjMik7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOwogCiAgICAgbGV0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIo
KTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0ZXIgPSBuZWdvdGlhdGlvbk5lZWRl
ZChwYzEpOwogICAgIGNvbnN0IHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRp
b25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CiAgICAgLy8gU3BlYyBsYW5ndWFnZSBk
b2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCBjaGVja2luZyB3aGV0aGVyIHRoZSB0cmFuc2NlaXZl
cgogICAgIC8vIGlzIHN0b3BwZWQgaGVyZS4KQEAgLTEzNTIsMTYgKzEzNDcsMjAgQEAKICAgICAg
ICAgfQogICAgICAgXSk7CiAKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyVGhhdFdhc1N0
b3BwZWQsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXSk7CisgICAgLy8gVGhlIHRyYW5zY2VpdmVy
IHNob3VsZCBzdGlsbCBiZSBbW3N0b3BwaW5nXV09dHJ1ZSwgW1tzdG9wcGVkXV09ZmFsc2UuCiAg
ICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsK
ICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCisgICAgICAgICAgY3VycmVudERp
cmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIgogICAg
ICAgICB9CiAgICAgICBdKTsKIAotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkKHBjMSk7Cisg
ICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyOwogCiAgICAgdHJpY2tsZSh0LCBwYzIs
IHBjMSk7CisKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwogCiAg
ICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CkBAIC0xMzczLDIyICsxMzcyLDggQEAKICAgICBh
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAgICAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24o
YW5zd2VyKTsKLQotICAgIGhhc1Byb3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsK
LSAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxs
Ci0gICAgICAgIH0KLSAgICAgIF0pOwotCi0gICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVy
cygpLAotICAgICAgWwotICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAg
ICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQotICAgICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyhw
YzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOwogICB9OwogCiAgIGNvbnN0IGNoZWNrU3RvcEFm
dGVyU2V0TG9jYWxPZmZlciA9IGFzeW5jIHQgPT4gewpAQCAtMTQxMiw2ICsxMzk3LDcgQEAKICAg
ICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwogCiAgICAgbGV0IGFuc3dlciA9IGF3
YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0
ZXIgPSBuZWdvdGlhdGlvbk5lZWRlZChwYzEpOwogICAgIGNvbnN0IHRyYWNrRXZlbnRzID0gYXdh
aXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CiAg
ICAgLy8gU3BlYyBsYW5ndWFnZSBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCBjaGVja2luZyB3
aGV0aGVyIHRoZSB0cmFuc2NlaXZlcgogICAgIC8vIGlzIHN0b3BwZWQgaGVyZS4KQEAgLTE0MjYs
MTAgKzE0MTIsMTEgQEAKICAgICBoYXNQcm9wc0FuZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2Vp
dmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKKyAg
ICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiAic2VuZHJlY3YiCiAgICAgICAgIH0KICAgICAgIF0pOwotICAgIGF3YWl0IG5lZ290aWF0aW9u
TmVlZGVkKHBjMSk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyOwogCiAgICAg
dHJpY2tsZSh0LCBwYzIsIHBjMSk7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKTsKQEAgLTE0NDQsMjEgKzE0MzEsOCBAQAogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0g
ICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbAot
ICAgICAgICB9Ci0gICAgICBdKTsKLQotICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KSwKLSAgICAgIFsKLSAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAg
ICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAgICAgIF0pOworICAgIGFzc2VydF9lcXVhbHMocGMx
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0
VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRl
clNldFJlbW90ZU9mZmVyID0gYXN5bmMgdCA9PiB7CkBAIC0xNDc4LDIyICsxNDUyLDM1IEBACiAg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKQogICAgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAotICAgIC8vIFN0b3Agb24gX2Fuc3dlcmVyX3Np
ZGUgbm93LiBTaG91bGQgdGFrZSBlZmZlY3QgaW4gYW5zd2VyLgorICAgIC8vIFN0b3Agb24gX2Fu
c3dlcmVyXyBzaWRlIG5vdy4gU2hvdWxkIG5vdCBzdG9wIHRyYW5zY2VpdmVyIGluIGFuc3dlciwK
KyAgICAvLyBidXQgY2F1c2UgZmlyaW5nIG9mIG5lZ290aWF0aW9uTmVlZGVkIGF0IHBjMiwgYW5k
IGRpc2FibGluZworICAgIC8vIG9mIHRoZSB0cmFuc2NlaXZlciB3aXRoIGRpcmVjdGlvbiA9IGlu
YWN0aXZlIGluIGFuc3dlci4KICAgICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiwgJ3N0
b3BwZWQnKTsKIAogICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
ICAgICBjb25zdCB0cmFja0V2ZW50cyA9IGF3YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJu
VHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOwogICAgIGhhc1Byb3BzKHRyYWNrRXZlbnRzLCBbXSk7
CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgaGFzUHJvcHMocGMy
LmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBl
ZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9w
cGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAogICAgICAgICB9CiAgICAg
ICBdKTsKIAorICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkQXdhaXRlciA9IG5lZ290aWF0aW9u
TmVlZGVkKHBjMik7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
KyAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgICBbCisgICAgICAgIHsK
KyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiAiaW5hY3RpdmUiLAorICAgICAgICB9CisgICAgICBdKTsKKworICAgIGF3YWl0IG5lZ290
aWF0aW9uTmVlZGVkQXdhaXRlcjsKICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRlckNyZWF0
ZUFuc3dlciA9IGFzeW5jIHQgPT4gewpAQCAtMTUzMSwxNCArMTUxOCwyNSBAQAogICAgIGhhc1By
b3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAg
IHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAgICAgIGRpcmVjdGlvbjogInN0b3Bw
ZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCiAgICAgICAgIH0KICAgICAg
IF0pOwogCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBjMSk7CisgICAgLy8gVGhlIG5lZ290aWF0aW9u
bmVlZGVkIGV2ZW50IGlzIGZpcmVkIGR1cmluZyBwcm9jZXNzaW5nIG9mCisgICAgLy8gc2V0TG9j
YWxEZXNjcmlwdGlvbigpCisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyID0gbmVn
b3RpYXRpb25OZWVkZWQocGMyKTsKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOworICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCks
CisgICAgICBbCisgICAgICAgIHsKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAg
ICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICB9CisgICAgICBd
KTsKIAotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkKHBjMik7CisgICAgYXdhaXQgbmVnb3Rp
YXRpb25OZWVkZWRBd2FpdGVyOwogICAgIGF3YWl0IGljZUNvbm5lY3RlZChwYzEpOwogICAgIGF3
YWl0IGljZUNvbm5lY3RlZChwYzIpOwogCkBAIC0xNTQ5LDE5ICsxNTQ3LDIyIEBACiAgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAorICAgIC8vIFNpbmNlIHRoaXMgb2ZmZXIvYW5zd2Vy
IGV4Y2hhbmdlIHdhcyBpbml0aWF0ZWQgZnJvbSBwYzEsCisgICAgLy8gcGMyIHN0aWxsIGRvZXNu
J3QgZ2V0IHRvIHNheSB0aGF0IGl0IGhhcyBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIsCisgICAgLy8g
YnV0IGRvZXMgZ2V0IHRvIHNldCBpdCB0byBpbmFjdGl2ZS4KICAgICBoYXNQcm9wcyhwYzEuZ2V0
VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0
cnVlLAotICAgICAgICAgIG1pZDogbnVsbAorICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2
IiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAiaW5hY3RpdmUiLAogICAgICAgICB9CiAg
ICAgICBdKTsKIAogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsK
ICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxs
CisgICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIsCisgICAgICAgICAgY3VycmVudERpcmVj
dGlvbjogImluYWN0aXZlIiwKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0xNjA0LDcg
KzE2MDUsOCBAQAogICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJz
KCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAg
ICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJz
ZW5kcmVjdiIsCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xNjEyLDI4ICsxNjE0LDE3IEBA
CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBj
Mik7CiAKLSAgICBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwotICAgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKLSAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOwotICAgIGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
LSAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwotICAgIGF3YWl0IHBj
MS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwotCi0gICAgaGFzUHJvcHMocGMxLmdldFRy
YW5zY2VpdmVycygpLAotICAgICAgWwotICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1
ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQotICAgICAgXSk7CisgICAgLy8gSW5p
dGlhdGUgYW4gb2ZmZXIvYW5zd2VyIGV4Y2hhbmdlIGZyb20gcGMyIGluIG9yZGVyCisgICAgLy8g
dG8gbmVnb3RpYXRlIHRoZSBzdG9wcGVkIHRyYW5zY2VpdmVyLgorICAgIG9mZmVyID0gYXdhaXQg
cGMyLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgYW5z
d2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0g
ICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbAot
ICAgICAgICB9Ci0gICAgICBdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZl
cnMoKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygp
Lmxlbmd0aCwgMCk7CiAgIH07CiAKICAgY29uc3QgY2hlY2tTdG9wQWZ0ZXJDbG9zZSA9IGFzeW5j
IHQgPT4gewpAQCAtMTY4MCw3ICsxNjcxLDYgQEAKICAgICAgICAgICBzZW5kZXI6IHt0cmFja30s
CiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJl
Y3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAg
XSk7CiAKQEAgLTE3MDAsNyArMTY5MCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZG9u
bHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBA
IC0xNzEwLDcgKzE2OTksMTEgQEAKICAgICBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7
CiAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwog
Ci0gICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksIFt7IHN0b3BwZWQ6IHRydWUgfV0p
OworICAgIGhhc1Byb3BzKHBjLmdldFRyYW5zY2VpdmVycygpLCBbCisgICAgICB7CisgICAgICAg
IGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgfQorICAgIF0pOwogICB9OwogCiAgIGNvbnN0
IGNoZWNrUm9sbGJhY2tBbmRTZXRSZW1vdGVPZmZlcldpdGhEaWZmZXJlbnRUeXBlID0gYXN5bmMg
dCA9PiB7CkBAIC0xNzQxLDcgKzE3MzQsNiBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRy
ZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjog
bnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApA
QCAtMTc1Myw3ICsxNzQ1LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAg
ICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0g
ICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE3Njcs
MTQgKzE3NTgsMTIgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAg
ICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHJlY2Vp
dmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0sCiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6
IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiAicmVjdm9ubHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAg
ICAgIH0KICAgICAgIF0pOwogCkBAIC0xNzg1LDcgKzE3NzQsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiB2aWRlb1RyYWNrfSwKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIs
CiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRvbmx5IiwKLSAgICAgICAgICBzdG9w
cGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTgyMCw3ICsxODA4LDYgQEAK
IAogICAgIGhhc1Byb3BzKHJlbW92ZWRUcmFuc2NlaXZlciwKICAgICAgIHsKLSAgICAgICAgc3Rv
cHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsCiAgICAgICB9CkBAIC0xODMxLDcgKzE4MTgsNiBAQAogICAgIGhhc1Byb3BzKHJlbW92
ZWRUcmFuc2NlaXZlciwKICAgICAgIHsKICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazoge3JlYWR5
U3RhdGU6ICJlbmRlZCJ9fSwKLSAgICAgICAgc3RvcHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBu
dWxsLAogICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsCiAgICAgICB9CkBAIC0xODQ2LDcg
KzE4MzIsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBudWxsfSwKICAgICAgICAgICBk
aXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwK
LSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTg2
Niw3ICsxODUxLDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAg
ICAgbWlkOiBtaWQwLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE4ODYsNyArMTg3
MCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIG1pZDog
bWlkMCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3Bw
ZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xOTAwLDcgKzE4ODMsNiBAQAog
ICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG1pZDAsCiAg
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxz
ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTkxNCw3ICsxODk2LDYgQEAKICAgICAgICAg
ICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAg
ICAgfQogICAgICAgXSk7CiAKQEAgLTE5MjMsNiArMTkwNCw4IEBACiAKICAgICAvLyBBZnRlciBh
bGwgdGhpcyBTUkQvcm9sbGJhY2ssIHdlIHNob3VsZCBzdGlsbCBnZXQgdGhlIHRyYWNrIGV2ZW50
CiAgICAgbGV0IHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5U
cmFja0V2ZW50cyhwYzIsIG9mZmVyKTsKKworICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMu
bGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAg
ewpAQCAtMTkzNiw2ICsxOTE5LDcgQEAKIAogICAgIC8vIE1ha2Ugc3VyZSBhbGwgdGhpcyByb2xs
YmFjayBoYXNuJ3QgbWVzc2VkIHVwIHRoZSBzaWduYWxpbmcKICAgICB0cmFja0V2ZW50cyA9IGF3
YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJuVHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOwor
ICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMubGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0
cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAgewpAQCAtMTk1MSw3ICsxOTM1LDYgQEAKICAg
ICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBtaWQwLAogICAg
ICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE5NjYsNiArMTk0OSw4IEBACiAKICAg
ICB0cmFja0V2ZW50cyA9CiAgICAgICBhd2FpdCBzZXRSZW1vdGVEZXNjcmlwdGlvblJldHVyblRy
YWNrRXZlbnRzKHBjMiwge3R5cGU6ICJyb2xsYmFjayJ9KTsKKworICAgIGFzc2VydF9lcXVhbHMo
dHJhY2tFdmVudHMubGVuZ3RoLCAxLCAndHJhY2sgZXZlbnQgZnJvbSByZW1vdGUgcm9sbGJhY2sn
KTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAgewpAQCAtMTk4
NywyMSArMTk3MiwyMCBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAg
ICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAg
ICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0KICAgICAgIF0pOwogCiAgICAgLy8gc3RvcCgp
IGNhbm5vdCBiZSByb2xsZWQgYmFjayEKKyAgICAvLyBUcmFuc2NlaXZlciBzaG91bGQgaGF2ZSBb
W3N0b3BwaW5nXV09dHJ1ZSwgW1tzdG9wcGVkXV09ZmFsc2UKICAgICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKICAgICBoYXNQcm9wcyhwYzIuZ2V0
VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjog
e3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2lu
ZDogImF1ZGlvIn19LAotICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAg
ICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKICAgICAgICAgICBtaWQ6IG51bGwsCi0gICAgICAgICAg
Y3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlCisgICAgICAg
ICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgfQogICAgICAgXSk7CiAg
IH07CkBAIC0yMDU5LDcgKzIwNDMsNiBAQAogICAgICAgICB7CiAgICAgICAgICAgbWlkOiBudWxs
LAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDog
dHJ1ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMjA2OCw3ICsyMDUxLDYgQEAKICAgICAg
ICAgewogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IHRydWUKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAg
LTIwODQsNyArMjA2Niw2IEBACiAgICAgaGFzUHJvcHMocGMxLmdldFRyYW5zY2VpdmVycygpLAog
ICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAog
ICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHRyYWNrMn0KQEAgLTIxMDAsNyAr
MjA4MSw2IEBACiAgICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwog
ICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7
CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2t9CkBAIC0yMTc4LDcgKzIxNTgsNiBAQAogICAgICAg
ICB9LAogICAgICAgICB7CiAgICAgICAgICAgbWlkOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBu
dWxsfSwKQEAgLTIyMDMsNyArMjE4Miw2IEBACiAgICAgICBbCiAgICAgICAgIHt9LAogICAgICAg
ICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAg
ICAgICAgbWlkOiBtaWQxLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
U2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDU4Yzg4M2Q1MzM3NzUyZjljZmY4
NzI3MjZmNmQ5ODVhNjQ3MjI5Y2EuLjQ4NDk2N2Y3NmI1YzlkNTI1MDdjNmYyZjY2MmI0MWI0NmZm
OTgyZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJh
bnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTg2LDcgKzg2LDcgQEAgZnVuY3Rpb24gdmFsaWRh
dGVTY3RwVHJhbnNwb3J0KHNjdHApIHsKICAgYXNzZXJ0X2VxdWFscyhzY3RwLnN0YXRlLCAnY29u
bmVjdGluZycsICdSVENTY3RwVHJhbnNwb3J0IHNob3VsZCBiZSBpbiB0aGUgY29ubmVjdGluZyBz
dGF0ZScpOwogCiAgIC8vIE5vdGU6IFllcywgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIGlzIGFs
c28gYSAnbnVtYmVyJwotICBhc3NlcnRfdHJ1ZSh0eXBlb2Ygc2N0cC5tYXhNZXNzYWdlU2l6ZSA9
PT0gJ251bWJlcicsCisgIGFzc2VydF9lcXVhbHModHlwZW9mIHNjdHAubWF4TWVzc2FnZVNpemUs
ICdudW1iZXInLAogICAgICdFeHBlY3Qgc2N0cC5tYXhNZXNzYWdlU2l6ZSB0byBiZSBhIG51bWJl
cicpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SVENQZWVyQ29ubmVjdGlvbi1wYXlsb2FkVHlwZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NjcwMTA3ZGViNjMzOGUwYWUxODIyYzlkYzU1ZTdmMmVhOGYzYTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjcmVhdGVPZmZlciB3aXRoIHRoZSBt
YXhpbXVtIHNldCBvZiBjb2RlY3MgZG9lcyBub3QgZ2VuZXJhdGUgaW52YWxpZCBwYXlsb2FkIHR5
cGVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBlcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFj
YmYzOGEwZjYxMjhlZmRjZDU5N2Y5OTViZjg3MmY1NTlhODgyYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBlcy5odG1sCkBAIC0wLDAgKzEsNDcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlv
biBSVFAgcGF5bG9hZCB0eXBlczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKKy8vIFRl
c3QgdGhhdCB3aGVuIGNyZWF0aW5nIGFuIG9mZmVyIHdlIGRvIG5vdCBydW4gb3V0IG9mIHZhbGlk
IHBheWxvYWQgdHlwZXMuCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7b2ZmZXJUb1Jl
Y2VpdmVBdWRpbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZX0pOworCisgIC8vIEV4
dHJhY3QgYWxsIHBheWxvYWQgdHlwZXMgZnJvbSB0aGUgbT0gbGluZXMuCisgIGNvbnN0IHBheWxv
YWRUeXBlcyA9IG9mZmVyLnNkcC5zcGxpdCgnXG4nKQorICAgIC5tYXAobGluZSA9PiBsaW5lLnRy
aW0oKSkKKyAgICAuZmlsdGVyKGxpbmUgPT4gbGluZS5zdGFydHNXaXRoKCdtPScpKQorICAgIC5t
YXAobGluZSA9PiBsaW5lLnNwbGl0KCcgJykuc2xpY2UoMykuam9pbignICcpKQorICAgIC5qb2lu
KCcgJykKKyAgICAuc3BsaXQoJyAnKQorICAgIC5tYXAocGF5bG9hZFR5cGUgPT4gcGFyc2VJbnQo
cGF5bG9hZFR5cGUsIDEwKSk7CisKKyAgLy8gVGhlIGxpc3Qgb2YgYWxsb3dlZCBwYXlsb2FkIHR5
cGVzIGlzIHRha2VuIGZyb20gaGVyZQorICAvLyBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25t
ZW50cy9ydHAtcGFyYW1ldGVycy9ydHAtcGFyYW1ldGVycy54aHRtbCNydHAtcGFyYW1ldGVycy0x
LgorICBjb25zdCBmb3JiaWRkZW5QYXlsb2FkVHlwZXMgPSBwYXlsb2FkVHlwZXMKKyAgICAuZmls
dGVyKHBheWxvYWRUeXBlID0+IHsKKyAgICAgIGlmIChwYXlsb2FkVHlwZSA+PSA5NiAmJiBwYXls
b2FkVHlwZSA8PSAxMjcpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAg
aWYgKHBheWxvYWRUeXBlID49IDcyICYmIHBheWxvYWRUeXBlIDwgOTYpIHsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICB9CisgICAgICBpZiAocGF5bG9hZFR5cGUgPj0gMzUgJiYgcGF5bG9h
ZFR5cGUgPCA3MikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICAvLyBU
T0RPOiBDaGVjayBhZ2FpbnN0IHN0YXRpYyBwYXlsb2FkIHR5cGUgbGlzdC4KKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhmb3JiaWRkZW5QYXlsb2FkVHlwZXMu
bGVuZ3RoLCAwKQorfSwgJ2NyZWF0ZU9mZmVyIHdpdGggdGhlIG1heGltdW0gc2V0IG9mIGNvZGVj
cyBkb2VzIG5vdCBnZW5lcmF0ZSBpbnZhbGlkIHBheWxvYWQgdHlwZXMnKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggNjQwZDI1YmJmYjllMTJkMzIxMjMzZDM2NmNlZThjZjY2MGNjMTQ4OC4uNTFhMGMxN2E1
N2M1ZmE4MDdkM2VmMzhmNTdhZmQ4NjU1MzRlZWU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRl
LWV4Y2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2Uu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNiBAQCBGQUlMIEFkZGluZyBvbmx5IGNhbGxl
ciAtPiBjYWxsZWUgY2FuZGlkYXRlcyBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBV
bgogRkFJTCBBZGRpbmcgb25seSBjYWxsZWUgLT4gY2FsbGVyIGNhbmRpZGF0ZXMgZ2l2ZXMgYSBj
b25uZWN0aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J3BjMi5zY3RwLnRyYW5zcG9ydCcpIgogRkFJTCBBZGRpbmcgY2FsbGVlIC0+IGNhbGxlciBjYW5k
aWRhdGVzIGZyb20gZW5kLW9mLWNhbmRpZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9uIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMi5zY3RwLnRyYW5zcG9y
dCcpIgogRkFJTCBFeHBsaWNpdCBvZmZlci9hbnN3ZXIgZXhjaGFuZ2UgZ2l2ZXMgYSBjb25uZWN0
aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5z
Y3RwLnRyYW5zcG9ydCcpIgorUEFTUyBDYW5kaWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIgc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcikgcmVzb2x2ZXMKK1BBU1MgQ2FuZGlkYXRlcyBhbHdheXMg
YXJyaXZlIGFmdGVyIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSByZXNvbHZlcwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1l
eGNoYW5nZS5odHRwcy5odG1sCmluZGV4IDUzMmJjNGQwZDEzZDcyMTcwZjllNTIxY2JlZGE3ZDJl
NjU2ZTMxN2YuLmM1NGYyNmU2ZDgwZGQ5MDU2ZThlYmMxMWRmOTI5YjUxZjY5Zjg4ZWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0
ZS1leGNoYW5nZS5odHRwcy5odG1sCkBAIC0xMCwyMyArMTAsNiBAQAogPGJvZHk+CiA8c2NyaXB0
PgogCi1mdW5jdGlvbiBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYykgewotICBjb25zdCB3
YWl0ZXIgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGV2ZW50SGFuZGxl
ciA9ICgpID0+IHsKLSAgICAgIGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUn
KSB7Ci0gICAgICAgIHBjLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hh
bmdlJywgZXZlbnRIYW5kbGVyLCBmYWxzZSk7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0K
LSAgICB9OwotICAgIGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7Ci0g
ICAgICByZXNvbHZlKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIo
J2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgZXZlbnRIYW5kbGVyLCBmYWxzZSk7Ci0gICAgfQot
ICB9KTsKLSAgcmV0dXJuIHdhaXRlcjsKLX0KLQogY2xhc3MgU3RhdGVMb2dnZXIgewogICBjb25z
dHJ1Y3Rvcihzb3VyY2UsIGV2ZW50bmFtZSwgZmllbGQpIHsKICAgICBzb3VyY2UuYWRkRXZlbnRM
aXN0ZW5lcihldmVudG5hbWUsIGV2ZW50ID0+IHsKQEAgLTc0LDcgKzU3LDcgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICAvLyBDYW5kaWRhdGVzIGZyb20gUEMyIGFyZSBub3QgZGVsaXZl
cmVkIHRvIHBjMSwgc28gcGMxIHdpbGwgdXNlCiAgIC8vIHBlZXItcmVmbGV4aXZlIGNhbmRpZGF0
ZXMuCiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwotICBjb25zdCB3YWl0
ZXIgPSBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYzEpOworICBjb25zdCB3YWl0ZXIgPSB3
YWl0Rm9ySWNlR2F0aGVyaW5nU3RhdGUocGMxLCBbJ2NvbXBsZXRlJ10pOwogICBhd2FpdCB3YWl0
ZXI7CiAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsKICAgICBpZiAoY2Fu
ZGlkYXRlKSB7CkBAIC0xMDUsNyArODgsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
IC8vIENhbmRpZGF0ZXMgZnJvbSBwYzEgYXJlIG5vdCBkZWxpdmVyZWQgdG8gcGMyLiAgc28gcGMy
IHdpbGwgdXNlCiAgIC8vIHBlZXItcmVmbGV4aXZlIGNhbmRpZGF0ZXMuCiAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwotICBjb25zdCB3YWl0ZXIgPSBpY2VHYXRoZXJpbmdD
b21wbGV0ZVdhaXRlcihwYzIpOworICBjb25zdCB3YWl0ZXIgPSB3YWl0Rm9ySWNlR2F0aGVyaW5n
U3RhdGUocGMyLCBbJ2NvbXBsZXRlJ10pOwogICBhd2FpdCB3YWl0ZXI7CiAgIGZvciAoY29uc3Qg
Y2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsKICAgICBpZiAoY2FuZGlkYXRlKSB7CkBAIC0xNzQs
NyArMTU3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBQcm9taXNlLmFs
bChbcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpLAogICAgICAgICAgICAgICAgICAgICAg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOwogICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYzIuY3JlYXRlQW5zd2VyKCk7Ci0gIGF3YWl0IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVy
KHBjMSk7CisgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxldGUn
XSk7CiAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikudGhlbigoKSA9PiB7
CiAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgcGMxVG9QYzJDYW5kaWRhdGVzKSB7CiAgICAg
ICBpZiAoY2FuZGlkYXRlKSB7CkBAIC0xODIsNyArMTY1LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogICAgICAgfQogICAgIH0KICAgfSk7Ci0gIGF3YWl0IGljZUdhdGhlcmluZ0NvbXBs
ZXRlV2FpdGVyKHBjMik7CisgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzIsIFsn
Y29tcGxldGUnXSk7CiAgIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpLnRoZW4oYXN5
bmMgKCkgPT4gewogICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIHBjMlRvUGMxQ2FuZGlkYXRl
cykgewogICAgICAgaWYgKGNhbmRpZGF0ZSkgewpAQCAtMjAzLDYgKzE4NiwzMyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMocGMySWNlU3RhdGVzLmV2
ZW50cywgWyduZXcnLCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOwogfSwgJ0V4cGxpY2l0IG9m
ZmVyL2Fuc3dlciBleGNoYW5nZSBnaXZlcyBhIGNvbm5lY3Rpb24nKTsKIAorcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5l
bCgnZGF0YWNoYW5uZWwnKTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gYXNzZXJ0X3VucmVhY2hl
ZDsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMx
LnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKKyAgICBwYzEub25pY2VjYW5kaWRhdGUgPSByZXNvbHZlOworICB9KTsKK30sICdDYW5k
aWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikgcmVz
b2x2ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5l
bCcpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBhc3NlcnRfdW5yZWFjaGVkOworICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBw
YzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAg
ICBwYzIub25pY2VjYW5kaWRhdGUgPSByZXNvbHZlOworICB9KTsKK30sICdDYW5kaWRhdGVzIGFs
d2F5cyBhcnJpdmUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIHJlc29sdmVzJyk7
CisKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1
aXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbAppbmRleCBmMWI2MDU2
MWExNDBkMjIzOGYwZjBhMmQ3OWIwNzU5YzcxZDc1NDgwLi5mMTNmMjIxYjg4ZDcxZjA4N2MxZjcw
NmVkNTk1MWI5YjRjNjY5N2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBjb25z
dCBhY2NlcHRhYmxlVmFsdWVzID0gewogfTsKIAogZnVuY3Rpb24gdmVyaWZ5U3RhdChuYW1lLCB0
cmFuc3BvcnRTdGF0cykgewotICBhc3NlcnRfdHJ1ZSh0eXBlb2YgdHJhbnNwb3J0U3RhdHMgIT09
ICd1bmRlZmluZWQnKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHModHlwZW9mIHRyYW5zcG9ydFN0YXRz
LCAndW5kZWZpbmVkJyk7CiAgIGFzc2VydF90cnVlKG5hbWUgaW4gdHJhbnNwb3J0U3RhdHMsICdW
YWx1ZSBwcmVzZW50OicpOwogICBhc3NlcnRfdHJ1ZShhY2NlcHRhYmxlVmFsdWVzW25hbWVdLmhh
cyh0cmFuc3BvcnRTdGF0c1tuYW1lXSkpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyNjY3OTM1
M2UyZDRlOWM5NDkyN2M0YTE2OWEyODNhMWJhMWI5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9o
YW5kb3Zlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgTmVnb3RpYXRpb24g
b2YgaGFuZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlciB3b3JrcworUEFTUyBOZWdvdGlhdGlvbiBv
ZiBoYW5kb3ZlciBpbml0aWF0ZWQgYXQgY2FsbGVlIHdvcmtzCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hh
bmRvdmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3OGQ2NWZmYzMyMGJm
MGFjNmE2YTE2NjkwZGQ5OTJkMGY1ZTUzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zl
ci5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBIYW5kb3ZlcnM8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3Vz
ZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyUGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5zd2VyUGNGaXJzdCA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICBvZmZlclBjLmNsb3Nl
KCk7CisgICAgYW5zd2VyUGNGaXJzdC5jbG9zZSgpOworICAgIGFuc3dlclBjU2Vjb25kLmNsb3Nl
KCk7CisgIH0pOworICBvZmZlclBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAvLyBOZWdv
dGlhdGUgY29ubmVjdGlvbiB3aXRoIFBDIDEKKyAgY29uc3Qgb2ZmZXIxID0gYXdhaXQgb2ZmZXJQ
Yy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIxKTsKKyAgYXdhaXQgYW5zd2VyUGNGaXJzdC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjEp
OworICBjb25zdCBhbnN3ZXIxID0gYXdhaXQgYW5zd2VyUGNGaXJzdC5jcmVhdGVBbnN3ZXIoKTsK
KyAgYXdhaXQgb2ZmZXJQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIxKTsKKyAgYXdhaXQg
YW5zd2VyUGNGaXJzdC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjEpOworICAvLyBSZW5lZ290
aWF0ZSB3aXRoIFBDIDIKKyAgY29uc3Qgb2ZmZXIyID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZl
cigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdh
aXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgY29uc3Qg
YW5zd2VyMiA9IGF3YWl0IGFuc3dlclBjU2Vjb25kLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBv
ZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjIpOworICBhd2FpdCBhbnN3ZXJQY1Nl
Y29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjIpOworfSwgJ05lZ290aWF0aW9uIG9mIGhh
bmRvdmVyIGluaXRpYXRlZCBhdCBjYWxsZXIgd29ya3MnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBvZmZlclBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNv
bnN0IGFuc3dlclBjRmlyc3QgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5z
d2VyUGNTZWNvbmQgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiB7CisgICAgb2ZmZXJQYy5jbG9zZSgpOworICAgIGFuc3dlclBjRmlyc3QuY2xvc2UoKTsK
KyAgICBhbnN3ZXJQY1NlY29uZC5jbG9zZSgpOworICB9KTsKKyAgb2ZmZXJQYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKKyAgLy8gTmVnb3RpYXRlIGNvbm5lY3Rpb24gd2l0aCBQQyAxCisgIGNv
bnN0IG9mZmVyMSA9IGF3YWl0IG9mZmVyUGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgb2ZmZXJQ
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIxKTsKKyAgY29uc3QgYW5zd2VyMSA9IGF3YWl0IGFuc3dl
clBjRmlyc3QuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0TG9jYWxEZXNjcmlwdGlv
bihhbnN3ZXIxKTsKKyAgLy8gUmVuZWdvdGlhdGUgd2l0aCBQQyAyCisgIC8vIFRoZSBvZmZlciBm
cm9tIFBDIDIgbmVlZHMgdG8gYmUgY29uc2lzdGVudCBvbiBhdCBsZWFzdCB0aGUgZm9sbG93aW5n
OgorICAvLyAtIE51bWJlciwgdHlwZSBhbmQgb3JkZXIgb2YgbWVkaWEgc2VjdGlvbnMKKyAgLy8g
LSBNSUQgdmFsdWVzCisgIC8vIC0gUGF5bG9hZCB0eXBlIHZhbHVlcworICAvLyBEbyBhICJmYWtl
IiBvZmZlci9hbnN3ZXIgdXNpbmcgdGhlIG9yaWdpbmFsIG9mZmVyIGFnYWluc3QgUEMyIHRvIGFj
aGlldmUgdGhpcy4KKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIxKTsKKyAgLy8gRGlzY2FyZCB0aGUgb3V0cHV0IG9mIHRoaXMgcm91bmQuCisgIGF3YWl0
IGFuc3dlclBjU2Vjb25kLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgYW5zd2VyUGNTZWNvbmQu
Y3JlYXRlQW5zd2VyKCkpOworCisgIC8vIE5vdyB3ZSBjYW4gaW5pdGlhdGUgYW4gb2ZmZXIgZnJv
bSB0aGUgbmV3IFBDLgorICBjb25zdCBvZmZlcjIgPSBhd2FpdCBhbnN3ZXJQY1NlY29uZC5jcmVh
dGVPZmZlcigpOworICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyMik7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAg
Y29uc3QgYW5zd2VyMiA9IGF3YWl0IG9mZmVyUGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IGFu
c3dlclBjU2Vjb25kLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjIpOworICBhd2FpdCBvZmZl
clBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7Cit9LCAnTmVnb3RpYXRpb24gb2YgaGFu
ZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlZSB3b3JrcycpOworCisKKworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTIwMTg0ZGU3Njg4NDNlMTY2NTA0Nzg4ODJjOWJiYWI5
YzlmN2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworUEFTUyBDYW4gZGVtdXggdHdvIHZpZGVvIHRyYWNrcyB3aXRoIGRp
ZmZlcmVudCBwYXlsb2FkIHR5cGVzIG9uIGEgYnVuZGxlZCBjb25uZWN0aW9uCitQQVNTIENhbiBk
ZW11eCB0d28gdmlkZW8gdHJhY2tzIHdpdGggdGhlIHNhbWUgcGF5bG9hZCB0eXBlIG9uIGFuIHVu
YnVuZGxlZCBjb25uZWN0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvcnRwLWRlbXV4aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI4ZGNlM2I0NWRhYjBkMzY5ZTQ5NDk4
ZTE5YjJmYjAzNjYzNTcxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1s
CkBAIC0wLDAgKzEsMTA4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gcGF5bG9hZCB0eXBlIGRlbXV4aW5nPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyd1c2Ugc3RyaWN0JzsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2Fs
bGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2Fs
bGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGV4Y2hhbmdlSWNlQ2Fu
ZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9p
c2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIHN0cmVhbS5nZXRU
cmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0cmFjaywgc3RyZWFtKSk7
CisgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0
cmFjay5jbG9uZSgpLCBzdHJlYW0uY2xvbmUoKSkpOworCisgIGxldCBjYWxsQ291bnQgPSAwOwor
ICBsZXQgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
Y2FsbGVlLm9udHJhY2sgPSAoZSkgPT4geworICAgICAgY29uc3Qgc3RyZWFtID0gZS5zdHJlYW1z
WzBdOworICAgICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cisg
ICAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICAgIHYuc3JjT2JqZWN0ID0gc3RyZWFtOworICAg
ICAgdi5pZCA9IHN0cmVhbS5pZAorICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRh
ZGF0YScsICgpID0+IHsKKyAgICAgICAgaWYgKCsrY2FsbENvdW50ID09PSAyKSB7CisgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9OworICB9KTsKKworICAv
LyBSZXN0cmljdCBmaXJzdCB0cmFuc2NlaXZlciB0byBWUDgsIHNlY29uZCB0byBIMjY0LgorICBj
b25zdCB7Y29kZWNzfSA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJyk7Cisg
IGNvbnN0IHZwOCA9IGNvZGVjcy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL1ZQOCcp
OworICBjb25zdCBoMjY0ID0gY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8v
SDI2NCcpOworICBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2V0Q29kZWNQcmVmZXJlbmNl
cyhbdnA4XSk7CisgIGNhbGxlci5nZXRUcmFuc2NlaXZlcnMoKVsxXS5zZXRDb2RlY1ByZWZlcmVu
Y2VzKFtoMjY0XSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIo
KTsKKyAgLy8gUmVwbGFjZSB0aGUgbWlkIGhlYWRlciBleHRlbnNpb24gYW5kIGFsbCBzc3JjIGxp
bmVzCisgIC8vIHdpdGggYm9ndXMuIFRoZSByZWNlaXZlciB3aWxsIGJlIGZvcmNlZCB0byBkbyBw
YXlsb2FkIHR5cGUgZGVtdXhpbmcuCisgIGNvbnN0IHNkcCA9IG9mZmVyLnNkcAorICAgIC5yZXBs
YWNlKC9ydHAtaGRyZXh0OnNkZXMvZywgJ3J0cC1oZHJleHQ6c29tZXRoaW5nJykKKyAgICAucmVw
bGFjZSgvYT1zc3JjOi9nLCAnYT1ub3Rzc3JjJyk7CisKKyAgYXdhaXQgY2FsbGVlLnNldFJlbW90
ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KTsKKyAgYXdhaXQgY2FsbGVyLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5j
cmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dl
cik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXdh
aXQgbWV0YWRhdGFUb0JlTG9hZGVkOworfSwgJ0NhbiBkZW11eCB0d28gdmlkZW8gdHJhY2tzIHdp
dGggZGlmZmVyZW50IHBheWxvYWQgdHlwZXMgb24gYSBidW5kbGVkIGNvbm5lY3Rpb24nKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oe2J1bmRsZVBvbGljeTogJ21heC1jb21wYXQnfSk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGV4Y2hh
bmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisKKyAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
c3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIHN0
cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0cmFjaywg
c3RyZWFtKSk7CisgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5h
ZGRUcmFjayh0cmFjay5jbG9uZSgpLCBzdHJlYW0uY2xvbmUoKSkpOworCisgIGxldCBjYWxsQ291
bnQgPSAwOworICBsZXQgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgY2FsbGVlLm9udHJhY2sgPSAoZSkgPT4geworICAgICAgY29uc3Qgc3RyZWFtID0g
ZS5zdHJlYW1zWzBdOworICAgICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICAgIHYuc3JjT2JqZWN0ID0gc3Ry
ZWFtOworICAgICAgdi5pZCA9IHN0cmVhbS5pZAorICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCds
b2FkZWRtZXRhZGF0YScsICgpID0+IHsKKyAgICAgICAgaWYgKCsrY2FsbENvdW50ID09PSAyKSB7
CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9OworICB9
KTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAvLyBS
ZXBsYWNlIEJVTkRMRSwgdGhlIG1pZCBoZWFkZXIgZXh0ZW5zaW9uIGFuZCBhbGwgc3NyYyBsaW5l
cworICAvLyB3aXRoIGJvZ3VzLiBUaGUgcmVjZWl2ZXIgd2lsbCBiZSBmb3JjZWQgdG8gZG8gcGF5
bG9hZCB0eXBlIGRlbXV4aW5nCisgIC8vIHdoaWNoIGlzIHN0aWxsIHBvc3NpYmxlIGJlY2F1c2Ug
dGhlIGRpZmZlcmVudCBtLWxpbmVzIGFycml2ZSBvbgorICAvLyBkaWZmZXJlbnQgcG9ydHMvc29j
a2V0cy4KKyAgY29uc3Qgc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoJ0JVTkRMRScsICdTT01FVEhJ
TkcnKQorICAgIC5yZXBsYWNlKC9ydHAtaGRyZXh0OnNkZXMvZywgJ3J0cC1oZHJleHQ6c29tZXRo
aW5nJykKKyAgICAucmVwbGFjZSgvYT1zc3JjOi9nLCAnYT1ub3Rzc3JjJyk7CisKKyAgYXdhaXQg
Y2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KTsKKyAgYXdh
aXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURl
c2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7CisKKyAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworfSwgJ0NhbiBkZW11eCB0d28g
dmlkZW8gdHJhY2tzIHdpdGggdGhlIHNhbWUgcGF5bG9hZCB0eXBlIG9uIGFuIHVuYnVuZGxlZCBj
b25uZWN0aW9uJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NTRkN2RmNTc3MDhkMjFmM2VlM2NhMDg0YjZjYjgwYmEwYTA3YTk0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK1BBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA5
Ni0xMjcgd29ya3MKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRo
ZSByYW5nZSAzNS02MyB3b3JrcyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA2NC05
NSB0aHJvd3MgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBo
YXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ODA2ZTc1ZWQ1MTRjMDQ5NjhkMDNiNmQ4NDEzZGFhMzhiODNkMDUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCkBAIC0wLDAgKzEsNTgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5wYXlsb2Fk
IHR5cGUgaGFuZGxpbmcgKGFzc3VtaW5nIHJ0Y3AtbXV4KTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmlj
dCc7CisvLyBUZXN0cyBiZWhhdmlvdXIgZnJvbSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
cmZjNTc2MSNzZWN0aW9uLTQKKworZnVuY3Rpb24gY3JlYXRlT2ZmZXJTZHAob3B1c1BheWxvYWRU
eXBlKSB7CisgIHJldHVybiBgdj0wCitvPS0gMCAzIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0w
IDAKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiBBNzoyNDo3MjpDQTo2RTowMjo1NTozOTpCQTo2NjpE
Rjo2RTpDQzo0QzpEODpCMDoxQTpCRjoxQTo1Njo2NTo3RDpGNDowMzpBRDo3RTo3Nzo0MzoyQToy
OTpFQzo5MworYT1pY2UtdWZyYWc6NkhISGR6emVJaGtFMENLagorYT1pY2UtcHdkOlhZREdWcGZ2
a2xRSUVuWjZZbnlMc0FldworbT1hdWRpbyA5IFJUUC9TQVZQRiAke29wdXNQYXlsb2FkVHlwZX0K
K2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOmF1ZGlvCith
PXJ0cG1hcDoke29wdXNQYXlsb2FkVHlwZX0gb3B1cy80ODAwMC8yCithPXNldHVwOmFjdHBhc3MK
K2A7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgZm9yIChsZXQgcGF5bG9hZFR5
cGUgPSA5NjsgcGF5bG9hZFR5cGUgPD0gMTI3OyBwYXlsb2FkVHlwZSsrKSB7CisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBjcmVhdGVPZmZlclNkcChwYXlsb2FkVHlwZSl9
KTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgICBhc3Nl
cnRfdHJ1ZShhbnN3ZXIuc2RwLmluY2x1ZGVzKGBhPXJ0cG1hcDoke3BheWxvYWRUeXBlfSBvcHVz
LzQ4MDAwLzJgKSk7CisgICAgcGMuY2xvc2UoKTsKKyAgfQorfSwgJ3NldFJlbW90ZURlc2NyaXB0
aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUgcmFuZ2UgOTYtMTI3IHdvcmtzJyk7CisKKy8vIFRoaXMg
aXMgd3JpdHRlbiBhcyBhIHNlcGFyYXRlIHRlc3Qgc2luY2UgaXQgY3VycmVudGx5IGZhaWxzIGlu
IENocm9tZS4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgZm9yIChsZXQgcGF5bG9hZFR5
cGUgPSAzNTsgcGF5bG9hZFR5cGUgPD0gNjM7IHBheWxvYWRUeXBlKyspIHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKHBheWxvYWRUeXBlKX0p
OworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICAgIGFzc2Vy
dF90cnVlKGFuc3dlci5zZHAuaW5jbHVkZXMoYGE9cnRwbWFwOiR7cGF5bG9hZFR5cGV9IG9wdXMv
NDgwMDAvMmApKTsKKyAgICBwYy5jbG9zZSgpOworICB9Cit9LCAnc2V0UmVtb3RlRGVzY3JpcHRp
b24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSAzNS02MyB3b3JrcycpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGZvciAobGV0IHBheWxvYWRUeXBlID0gNjQ7IHBheWxvYWRUeXBl
IDw9IDk1OyBwYXlsb2FkVHlwZSsrKSB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNz
RXJyb3InLAorICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNk
cDogY3JlYXRlT2ZmZXJTZHAoNjQpfSkpOworICAgIHBjLmNsb3NlKCk7CisgIH0KK30sICdzZXRS
ZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDY0LTk1IHRocm93cyBh
biBJbnZhbGlkQWNjZXNzRXJyb3InKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKaW5kZXggMTAyNzcxZTIzYTUzNjg0OGYw
MDI0OTE2NmVjZTEwMjE3NzY2YTM4MC4uNWViODMyOTUxN2ZiZWZlOTQ2ODJmZTc5MWFlODE3Njlk
MDNkYTE5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5o
dHRwcy5odG1sCkBAIC01Myw3ICs1Myw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKIAog
ICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOwogICBjb25zdCBzZWN0
aW9ucyA9IFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMob2ZmZXIuc2RwKTsKLSAgLy8gcmVtb3ZlIHRo
ZSBhPWdyb3VwOkJVTkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxpbmcuCisgIC8vIFJlbW92
ZSB0aGUgYT1ncm91cDpCVU5ETEUgZnJvbSB0aGUgU0RQIHdoZW4gc2lnbmFsaW5nLgogICBjb25z
dCBidW5kbGUgPSBTRFBVdGlscy5tYXRjaFByZWZpeChzZWN0aW9uc1swXSwgJ2E9Z3JvdXA6QlVO
RExFJylbMF07CiAgIHNlY3Rpb25zWzBdID0gc2VjdGlvbnNbMF0ucmVwbGFjZShidW5kbGUgKyAn
XHJcbicsICcnKTsKIApAQCAtNjgsNiArNjgsMTggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogICBjb25zdCBhbnN3ZXJWaWRlbyA9IGF3YWl0IGNhbGxlZVZpZGVvLmNyZWF0ZUFuc3dlcigp
OwogICBjb25zdCBhdWRpb1NlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhhbnN3ZXJB
dWRpby5zZHApOwogICBjb25zdCB2aWRlb1NlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9u
cyhhbnN3ZXJWaWRlby5zZHApOworCisgIC8vIFJlbW92ZSB0aGUgZmluZ2VycHJpbnQgZnJvbSB0
aGUgc2Vzc2lvbiBwYXJ0IG9mIHRoZSBTRFAgaWYgcHJlc2VudAorICAvLyBhbmQgbW92ZSBpdCB0
byB0aGUgbWVkaWEgc2VjdGlvbi4KKyAgU0RQVXRpbHMubWF0Y2hQcmVmaXgoYXVkaW9TZWN0aW9u
c1swXSwgJ2E9ZmluZ2VycHJpbnQ6JykuZm9yRWFjaChsaW5lID0+IHsKKyAgICBhdWRpb1NlY3Rp
b25zWzBdID0gYXVkaW9TZWN0aW9uc1swXS5yZXBsYWNlKGxpbmUgKyAnXHJcbicsICcnKTsKKyAg
ICBhdWRpb1NlY3Rpb25zWzFdICs9IGxpbmUgKyAnXHJcbic7CisgIH0pOworICBTRFBVdGlscy5t
YXRjaFByZWZpeCh2aWRlb1NlY3Rpb25zWzBdLCAnYT1maW5nZXJwcmludDonKS5mb3JFYWNoKGxp
bmUgPT4geworICAgIHZpZGVvU2VjdGlvbnNbMF0gPSB2aWRlb1NlY3Rpb25zWzBdLnJlcGxhY2Uo
bGluZSArICdcclxuJywgJycpOworICAgIHZpZGVvU2VjdGlvbnNbMV0gKz0gbGluZSArICdcclxu
JzsKKyAgfSk7CisKICAgY29uc3Qgc2RwID0gYXVkaW9TZWN0aW9uc1swXSArIGF1ZGlvU2VjdGlv
bnNbMV0gKyB2aWRlb1NlY3Rpb25zWzFdOwogICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oe3R5cGU6ICdhbnN3ZXInLCBzZHB9KTsKICAgYXdhaXQgY2FsbGVlQXVkaW8uc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXJBdWRpbyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlh
dHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMzlhZmUwY2FkY2JhOWQzYTZjZjlhNWU3N2ZjZmYzMTVjNTYwYmMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBVbmtub3duIG1lZGlhIHR5cGVzIGFyZSByZWplY3RlZCB3aXRoIHRo
ZSBwb3J0IHNldCB0byAwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogRmFpbGVkIHRvIHNldCByZW1vdGUgb2Zm
ZXIgc2RwOiBUaGUgQlVORExFIGdyb3VwIGNvbnRhaW5zIE1JRD0nMCcgbWF0Y2hpbmcgbm8gbT0g
c2VjdGlvbi4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
dW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUxNzZkMWM4N2I2YTJhMTQyODFj
NjAzZjRhNDkxZWZkODZjODI2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0
eXBlcy5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5SVENQZWVyY29ubmVjdGlvbiBTRFAgaGFuZGxpbmcgb2YgdW5rbm93
biBtZWRpYSB0eXBlczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAg
Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgIHBj
MS5hZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbih7CisgICAgdHlwZTogJ29mZmVyJywKKyAgICBzZHA6IG9mZmVyLnNkcAorICAgICAgICAu
cmVwbGFjZSgnbT1hdWRpbyAnLCAnbT11bmljb3JucyAnKQorICB9KTsKKyAgYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3Jl
YXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Cisg
IC8vIERvIG5vdCBhdHRlbXB0IHRvIGNhbGwgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uLgorCisg
IGNvbnN0IFtwcmVhbWJsZSwgbWVkaWFfc2VjdGlvbiwgcG9zdGFtYmxlXSA9IGFuc3dlci5zZHAu
c3BsaXQoJ1xyXG5tPScpOworICBhc3NlcnRfdHJ1ZSh0eXBlb2YocG9zdGFtYmxlKSA9PT0gJ3Vu
ZGVmaW5lZCcpOworICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1lZGlhX3NlY3Rpb24uc2VhcmNoKAor
ICAgIC9edW5pY29ybnMgMC8pLCAtMSk7Cit9LCAnVW5rbm93biBtZWRpYSB0eXBlcyBhcmUgcmVq
ZWN0ZWQgd2l0aCB0aGUgcG9ydCBzZXQgdG8gMCcpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCmlu
ZGV4IGE0OTA1YWU0NDFhOTEyNzk3Nzg4ZDZkMGIwNjVhNmM4NjFkNzA4YjguLjRjZTA2MThiY2Ez
MDA3ZTQxOTNiOThhOTViMGE2ZDAzMGNjMjRiNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVj
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCkBAIC03LDYgKzcs
MTEgQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKKy8qCisgKiBDaHJvbWl1bSBub3RlOiB0
aGlzIHJlcXVpcmVzIGJ1aWxkIGJvdHMgd2l0aCBIMjY0IHN1cHBvcnQuIFNlZQorICogICBodHRw
czovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD04NDA2NTkK
KyAqIGZvciBkZXRhaWxzIG9uIGhvdyB0byBlbmFibGUgc3VwcG9ydC4KKyAqLwogLy8gVGVzdHMg
Zm9yIGNvbmZvcm1hbmNlIHRvIFJGQyA3NzQyLAogLy8gIldlYlJUQyBWaWRlbyBQcm9jZXNzaW5n
IGFuZCBDb2RlYyBSZXF1aXJlbWVudHMiCiAvLyBUaGUgZG9jdW1lbnQgd2FzIGZvcm1lcmx5IGtu
b3duIGFzIGRyYWZ0LWlldGYtcnRjd2ViLXZpZGVvLWNvZGVjcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKaW5kZXggZjk0ZDc5YTU0N2U2YzVkYzBk
MzVmYWEyNjU3NTk1OTZlZjBhZTY5NC4uNGUzYzgxZTU5NzM2NmIzNDIxYjUyNTI4M2RhNTY2MTU5
NmZjNjlmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDE3ICsxNSwyMiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvUkVBRE1FLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBl
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmlu
dC12YWxpZGF0aW9uLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2pzZXAtaW5pdGlhbC1vZmZlci5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvbWlzc2luZy1maWVsZHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3J0cC1kZW11eGluZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1m
b3JtYXQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1hbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1vZmZl
ci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCmluZGV4IDg5ZTE4YmNkNTFjZjAyOWI0Zjk1Mjgx
NjRlNmI5MDMwNmYyMTA1MjYuLjI2ZWQyZTkwNGE4YjM1MTdjOWRkMzVhZjI3NjMzMGQ1MzQxZDcz
ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMu
aHRtbApAQCAtOCw2ICs4LDExIEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorLyoKKyAqIENocm9taXVtIG5vdGU6IHRoaXMgcmVx
dWlyZXMgYnVpbGQgYm90cyB3aXRoIEgyNjQgc3VwcG9ydC4gU2VlCisgKiAgIGh0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQorICogZm9y
IGRldGFpbHMgb24gaG93IHRvIGVuYWJsZSBzdXBwb3J0LgorICovCiBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0
cFNlbmRlciwgJ1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwog
ICBhc3NlcnRfaW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycp
LmNvZGVjcy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL0gyNjQnKSwgJ0gyNjQgbm90
IHN1cHBvcnRlZCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwppbmRleCBhMzk3
ZDhlNzZjMjc3ZTRmYzY3YmYyNmQwNzk2YzQ5Y2JmNmEzYmEyLi41MTRiNjFmZjFlZDYzMDg2OGJk
ZjM1NGRiY2JjYmUwMTM4M2ZlYmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMjgsNiArMjgsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItaW5zZXJ0RFRNRi5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UtbG9uZy5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRl
ci1vbnRvbmVjaGFuZ2UuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1pZC5odG1sCkBAIC00MiwyMSArNDMsMjYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFu
c3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZVRyYW5zcG9ydC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWFkZC10cmFjay1uby1kZWFkbG9jay5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2Fu
ZGlkYXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhblRyaWNrbGVJY2VD
YW5kaWRhdGVzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUtaW4tc2RwLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNv
bnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3ZXIuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZh
dWx0SWNlU2VydmVycy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWdldFRyYW5zY2VpdmVycy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3Qu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS5odHRwcy5odG1sCkBAIC02OCw2ICs3NCw5IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9u
dHJhY2suaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVy
ZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0
bWwKQEAgLTkyLDYgKzEwMSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2st
c3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JF
dmVudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC1jb25zdHJ1Y3Rvci5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwQ2FwYWJp
bGl0aWVzLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtY29kZWNzLmh0bWwKQEAgLTEwNSw2ICsxMTUs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2Vp
dmVyLWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFNlbmRlci1nZXRDYXBhYmlsaXRpZXMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0cy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
MTc0Y2MzMjBhNmNmNDlmODgxZGQ1YjYyMzYwYWJlMmE3NTJmNzc5Li44MzY2Zjk3NGY3Yzc4OGJk
YmI0YzRlYWM3MmFhYmZlYzQ3NWI3Yzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkyLDYgKzkyLDcg
QEAgd2Via2l0Lm9yZy9iLzIxNDczMCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm4KIHdlYmtpdC5vcmcvYi8yMTQ3MzAgWyBEZWJ1ZyBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
Y29uc3RydWN0b3IuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIxNDY2MSBbIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1l
dmVudHMuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIxNDczMCBbIERlYnVnIF0gd2VicnRj
L3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMTQzNTggZmFzdC9zY3JvbGxpbmcv
aW9zL3Byb2dyYW1tYXRpYy1zY3JvbGwtd2hpbGUtem9vbWVkLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlvdXRU
ZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMmZiNDAzZjk3OTkzMTlhZWU1NWE4ZTAzYTE2
ZGU1OGUyYjYyODMwZi4uYjkyZDg3MzU5MjMxNTdjOTI3MWJlYWIyYTI2NTgyZjk5Y2JhMmRjMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91dFRl
c3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtMjk2Myw2ICsyOTYzLDkgQEAKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNh
bmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBA
IC0yOTc1LDYgKzI5NzgsMTIgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3Ry
ZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAor
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sIjogWworICAg
ICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC0yOTk2LDYgKzMwMDUsOSBAQAogICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRT
eW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAg
IF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNl
bmRlci1lbmNvZGUtc2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xv
dyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93Igog
ICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414921</attachid>
            <date>2020-11-27 01:04:49 -0800</date>
            <delta_ts>2020-11-27 01:06:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127100443.patch</filename>
            <type>text/plain</type>
            <size>202642</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWQzYWQ3NjEzNjhhZmRiZmJkZmMz
NjE4NTRhZWUzNjQyYWYxNWVjMi4uZTdhNTE0NWRjYjE1YWI1MDg0MTQ2OTM4NThiMjY4YzU5ZGVh
MmY1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTI3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVhZGFibGUvd3Jp
dGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYXJrIGEgbmV3IHRlc3QgYXMgZmxha3kgaW4gaU9TIHNp
bXVsYXRvci4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogdGVzdHMtb3B0aW9ucy5qc29uOgorCiAyMDIwLTExLTI2ICBG
dWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5D
YWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggZWI3MTdiMjNhZGJhMzc2OWRhNzdkNzkzNTEyZTI4YjYyNmI4ZjFmNC4uMzYzYTQ3
MWMyODY3ODUwMGM5MzA0NDc3MGU4ZWZiMTc4OGRlZWVmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0
YWJsZSB0byBSVENSdHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0YzogUmVzeW5j
ZWQuCisKIDIwMjAtMTEtMjAgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW2Nzcy1mbGV4XSBJbWFnZXMgYXMgZmxleCBpdGVtcyBzaG91bGQgdXNl
IHRoZSBvdmVycmlkaW5nTG9naWNhbFdpZHRoIHdoZW4gZGVmaW5lZCB0byBjb21wdXRlIHRoZSBs
b2dpY2FsIGhlaWdodApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQKaW5kZXggZWFmNWJlNzNi
MTg2NWQyYThmNmZlYjMyNTNiY2Q4YTQ2ZDRjYzUwMi4uMzgwYzQ3Y2I3YWRkZjEwNjk2N2MyYzBm
ZTExYzdjZWQxNTU2OWFhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CkBAIC0xMjAs
NyArMTIwLDcgQEAgRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGNyZWRlbnRp
YWxUeXBlIHRva2VuIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IKICAgICAgIH1dIH0pIiBkaWQgbm90
IHRocm93CiBQQVNTIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB1cmwgZmll
bGQgc2hvdWxkIHRocm93IFR5cGVFcnJvcgogUEFTUyBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykg
LSB3aXRoIHVybCBmaWVsZCBzaG91bGQgdGhyb3cgVHlwZUVycm9yCi1GQUlMIG5ldyBSVENQZWVy
Q29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBh
c3N3b3JkLCBhbmQgUlRDT2F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IElu
dmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CitGQUlM
IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRl
bnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgb2JqZWN0IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IElu
dmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAg
ICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFt
cGxlLm9yZycsCiAgICAgICAgIGNyZWRlbnRpYWxUeXBlOiAncGFzc3dvcmQnLApAQCAtMTMwLDcg
KzEzMCw3IEBAIEZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5z
IHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsCiAgICAgICAgICAgYWNjZXNzVG9rZW46
ICcnCiAgICAgICAgIH0KICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIHNldENvbmZp
Z3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNz
d29yZCwgYW5kIFJUQ09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZh
bGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBz
ZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5
cGUgcGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFj
Y2Vzc0Vycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQ
Yyh7IGljZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3Jn
JywKICAgICAgICAgY3JlZGVudGlhbFR5cGU6ICdwYXNzd29yZCcsCkBAIC0xNTQsMTIgKzE1NCw0
IEBAIEZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNy
ZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyCiAgICAgICAgIHVzZXJuYW1lOiAndXNlcicsCiAg
ICAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZB
SUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3Jl
ZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3Vs
ZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0g
d2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoIGFuZCBSVENPQXV0aENyZWRl
bnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAo
c3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIG5ldyBS
VENQZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBib3RoIHR1cm5zIGFuZCBzdHVuIHNlcnZl
ciwgY3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFs
IHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIg
YnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25m
aWcpIC0gd2l0aCBib3RoIHR1cm5zIGFuZCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1
dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1
bmRlZmluZWQKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHN0dW4g
c2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3Vs
ZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0g
d2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVu
dGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAib2F1
dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIG5ldyBSVENQZWVyQ29ubmVj
dGlvbihjb25maWcpIC0gd2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQs
IGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAicGFzc3dvcmQiIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggc3R1biBzZXJ2
ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRl
bnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgInBh
c3N3b3JkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1
cmF0aW9uLWljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCmluZGV4
IDJlZjk5YmY1OWM4Y2MxMTI3M2U5OTM4OGIxNDQ0YmYyNTA2N2NiMjIuLjFjYmYxZDZjMWRhNDdi
ODBkOWIzZDcxNzNmNzgwNjJmMmU0OWJmMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2Vy
dmVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy5odG1sCkBAIC0yOSwyMSArMjks
MTQgQEAKIAogICAgIDQuMi4yLiAgUlRDSWNlQ3JlZGVudGlhbFR5cGUgRW51bQogICAgICAgZW51
bSBSVENJY2VDcmVkZW50aWFsVHlwZSB7Ci0gICAgICAgICJwYXNzd29yZCIsCi0gICAgICAgICJv
YXV0aCIKLSAgICAgIH07Ci0KLSAgICA0LjIuMy4gIFJUQ09BdXRoQ3JlZGVudGlhbCBEaWN0aW9u
YXJ5Ci0gICAgICBkaWN0aW9uYXJ5IFJUQ09BdXRoQ3JlZGVudGlhbCB7Ci0gICAgICAgIHJlcXVp
cmVkIERPTVN0cmluZyBtYWNLZXk7Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBhY2Nlc3NU
b2tlbjsKKyAgICAgICAgInBhc3N3b3JkIgogICAgICAgfTsKIAogICAgIDQuMi40LiAgUlRDSWNl
U2VydmVyIERpY3Rpb25hcnkKICAgICAgIGRpY3Rpb25hcnkgUlRDSWNlU2VydmVyIHsKICAgICAg
ICAgcmVxdWlyZWQgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSB1cmxzOwogICAg
ICAgICAgICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1l
OwotICAgICAgICAgICAgICAgICAoRE9NU3RyaW5nIG9yIFJUQ09BdXRoQ3JlZGVudGlhbCkgIGNy
ZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlZGVudGlhbDsKICAgICAgICAgICAgICAgICAgUlRDSWNlQ3JlZGVudGlhbFR5cGUg
ICAgICAgICAgICAgICBjcmVkZW50aWFsVHlwZSA9ICJwYXNzd29yZCI7CiAgICAgICB9OwogICAg
Ki8KQEAgLTM3NSw3ICszNjgsNyBAQAogICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJwogICAgICAg
ICB9CiAgICAgICB9XSB9KSk7Ci0gIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5
cGUgcGFzc3dvcmQsIGFuZCBSVENPYXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgdGhy
b3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CisgIH0sICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVu
dGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52
YWxpZEFjY2Vzc0Vycm9yJyk7CiAKICAgLyoKICAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3Vy
YXRpb24KQEAgLTM5MywxMDIgKzM4Niw2IEBACiAgICAgICB9XSB9KSk7CiAgIH0sICd3aXRoIHR1
cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBz
aG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CiAKLSAgY29uZmlnX3Rlc3QobWFrZVBj
ID0+IHsKLSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxz
OiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCi0gICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRo
JywKLSAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICBjcmVkZW50aWFsOiB7Ci0gICAgICAg
IG1hY0tleTogJ21hYycsCi0gICAgICAgIGFjY2Vzc1Rva2VuOiAndG9rZW4nCi0gICAgICB9Ci0g
ICAgfV0gfSk7Ci0KLSAgICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdldENvbmZpZ3VyYXRp
b24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKGljZVNlcnZlcnMubGVuZ3RoLCAxKTsKLQotICAgIGNv
bnN0IHNlcnZlciA9IGljZVNlcnZlcnNbMF07Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzZXJ2
ZXIudXJscywgWyd0dXJuczp0dXJuLmV4YW1wbGUub3JnJ10pOwotICAgIGFzc2VydF9lcXVhbHMo
c2VydmVyLmNyZWRlbnRpYWxUeXBlLCAnb2F1dGgnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZl
ci51c2VybmFtZSwgJ3VzZXInKTsKLQotICAgIGNvbnN0IHsgY3JlZGVudGlhbCB9ID0gc2VydmVy
OwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5tYWNLZXksICdtYWMnKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKGNyZWRlbnRpYWwuYWNjZXNzVG9rZW4sICd0b2tlbicpOwotCi0gIH0sIGB3aXRo
IHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlh
bCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkYCk7Ci0KLSAgY29uZmlnX3Rlc3QobWFrZVBjID0+
IHsKLSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxzOiBb
J3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLCAnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCddLAotICAg
ICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcsCi0gICAgICB1c2VybmFtZTogJ3VzZXInLAotICAg
ICAgY3JlZGVudGlhbDogewotICAgICAgICBtYWNLZXk6ICdtYWMnLAotICAgICAgICBhY2Nlc3NU
b2tlbjogJ3Rva2VuJwotICAgICAgfQotICAgIH1dIH0pOwotCi0gICAgY29uc3QgeyBpY2VTZXJ2
ZXJzIH0gPSBwYy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpY2VTZXJ2
ZXJzLmxlbmd0aCwgMSk7Ci0KLSAgICBjb25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJzWzBdOwotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsndHVybnM6dHVybi5leGFtcGxlLm9y
ZycsICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0J10pOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVy
LmNyZWRlbnRpYWxUeXBlLCAnb2F1dGgnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci51c2Vy
bmFtZSwgJ3VzZXInKTsKLQotICAgIGNvbnN0IHsgY3JlZGVudGlhbCB9ID0gc2VydmVyOwotICAg
IGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5tYWNLZXksICdtYWMnKTsKLSAgICBhc3NlcnRfZXF1
YWxzKGNyZWRlbnRpYWwuYWNjZXNzVG9rZW4sICd0b2tlbicpOwotCi0gIH0sIGB3aXRoIGJvdGgg
dHVybnMgYW5kIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCBhbmQgUlRDT0F1dGhD
cmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWRgKTsKLQotICAvLyBjcmVkZW50aWFs
IHR5cGUgdmFsaWRhdGlvbiBpcyBpZ25vcmVkIHdoZW4gc2NoZW1lIG5hbWUgaXMgc3R1bgotICBj
b25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGNvbnN0IHBjID0gbWFrZVBjKHsgaWNlU2VydmVy
czogW3sKLSAgICAgIHVybHM6ICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywKLSAgICAgIGNyZWRl
bnRpYWxUeXBlOiAnb2F1dGgnLAotICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgIGNyZWRl
bnRpYWw6ICdjcmVkJwotICAgIH1dIH0pOwotCi0gICAgY29uc3QgeyBpY2VTZXJ2ZXJzIH0gPSBw
Yy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpY2VTZXJ2ZXJzLmxlbmd0
aCwgMSk7Ci0gICAgY29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1swXTsKLQotICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCddKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwgJ29hdXRoJyk7Ci0gICAgYXNz
ZXJ0X2VxdWFscyhzZXJ2ZXIudXNlcm5hbWUsICd1c2VyJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhz
ZXJ2ZXIuY3JlZGVudGlhbCwgJ2NyZWQnKTsKLQotICB9LCAnd2l0aCBzdHVuIHNlcnZlciwgY3Jl
ZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCcp
OwotCi0gIC8vIGNyZWRlbnRpYWwgdHlwZSB2YWxpZGF0aW9uIGlzIGlnbm9yZWQgd2hlbiBzY2hl
bWUgbmFtZSBpcyBzdHVuCi0gIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgY29uc3QgcGMg
PSBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgdXJsczogJ3N0dW46c3R1bjEuZXhhbXBs
ZS5uZXQnLAotICAgICAgY3JlZGVudGlhbFR5cGU6ICdwYXNzd29yZCcsCi0gICAgICB1c2VybmFt
ZTogJ3VzZXInLAotICAgICAgY3JlZGVudGlhbDogewotICAgICAgICBtYWNLZXk6ICcnLAotICAg
ICAgICBhY2Nlc3NUb2tlbjogJycKLSAgICAgIH0KLSAgICB9XSB9KTsKLQotICAgIGNvbnN0IHsg
aWNlU2VydmVycyB9ID0gcGMuZ2V0Q29uZmlndXJhdGlvbigpOwotICAgIGFzc2VydF9lcXVhbHMo
aWNlU2VydmVycy5sZW5ndGgsIDEpOwotCi0gICAgY29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1sw
XTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlcnZlci51cmxzLCBbJ3N0dW46c3R1bjEuZXhh
bXBsZS5uZXQnXSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIuY3JlZGVudGlhbFR5cGUsICdw
YXNzd29yZCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLnVzZXJuYW1lLCAndXNlcicpOwot
Ci0gICAgY29uc3QgeyBjcmVkZW50aWFsIH0gPSBzZXJ2ZXI7Ci0gICAgYXNzZXJ0X2VxdWFscyhj
cmVkZW50aWFsLm1hY0tleSwgJycpOwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5hY2Nl
c3NUb2tlbiwgJycpOwotCi0gIH0sICd3aXRoIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBw
YXNzd29yZCwgYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVk
Jyk7Ci0KICAgLyoKICAgICBUZXN0ZWQKICAgICAgIDQuMy4yLiAgVG8gc2V0IGEgY29uZmlndXJh
dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRm
NzQ5YmVjMWY0Y2ZlMjVjMWU5NWEzYThlOTE5NmEzMmU0M2UzZGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBA
QAorCitQQVNTIFNldHRpbmcgYmluYXJ5VHlwZSB0byAnYmxvYicgc2hvdWxkIHN1Y2NlZWQKK1BB
U1MgU2V0dGluZyBiaW5hcnlUeXBlIHRvICdhcnJheWJ1ZmZlcicgc2hvdWxkIHN1Y2NlZWQKK0ZB
SUwgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5cGUgJ2plbGx5ZmlzaCcgc2hvdWxkIHRocm93IFN5
bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgZGMu
YmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgfSIgdGhyZXcgb2JqZWN0ICJUeXBlTWlzbWF0
Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2JqZWN0IHdhcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUg
ZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzc29jaWF0ZWQgdG8gdGhlIG9iamVjdC4i
IHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIg
aXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVkIDEyCitGQUlMIFNldHRpbmcgaW52YWxpZCBiaW5hcnlU
eXBlICdhcnJheWJ1ZmZlciAnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dz
X2RvbTogZnVuY3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBl
OworICAgIH0iIHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFu
IG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBh
cmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3LCBleHBlY3Rl
ZCAxMgorRkFJTCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAnJyBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBkYy5i
aW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBp
cyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKK0ZBSUwgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5
cGUgJ251bGwnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dzX2RvbTogZnVu
Y3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOworICAgIH0i
IHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFuIG9iamVjdCB3
YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBh
c3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBTeW50
YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3LCBleHBlY3RlZCAxMgorRkFJ
TCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAndW5kZWZpbmVkJyBzaG91bGQgdGhyb3cgU3lu
dGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBkYy5i
aW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIg
dGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBp
cyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5
VHlwZS53aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmh0bWwKQEAgLTAsMCArMSBAQAor
PCEtLSBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJl
IHRvIHJ1biB0aGUgdGVtcGxhdGVkIHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1i
aW5hcnlUeXBlLndpbmRvdy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjMyODFiZDUxYjBhMDFkZTI3Nzg1YzFl
MTQ3OTJhNmI1MWUwNjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53
aW5kb3cuanMKQEAgLTAsMCArMSwyNyBAQAorJ3VzZSBzdHJpY3QnOworCitjb25zdCB2YWxpZEJp
bmFyeVR5cGVzID0gWydibG9iJywgJ2FycmF5YnVmZmVyJ107Citjb25zdCBpbnZhbGlkQmluYXJ5
VHlwZXMgPSBbJ2plbGx5ZmlzaCcsICdhcnJheWJ1ZmZlciAnLCAnJywgbnVsbCwgdW5kZWZpbmVk
XTsKKworZm9yIChjb25zdCBiaW5hcnlUeXBlIG9mIHZhbGlkQmluYXJ5VHlwZXMpIHsKKyAgdGVz
dCgodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0
ZURhdGFDaGFubmVsKCd0ZXN0LWJpbmFyeS10eXBlJyk7CisKKyAgICBkYy5iaW5hcnlUeXBlID0g
YmluYXJ5VHlwZTsKKyAgICBhc3NlcnRfZXF1YWxzKGRjLmJpbmFyeVR5cGUsIGJpbmFyeVR5cGUs
IGBkYy5iaW5hcnlUeXBlIHNob3VsZCBiZSAnJHtiaW5hcnlUeXBlfSdgKTsKKyAgfSwgYFNldHRp
bmcgYmluYXJ5VHlwZSB0byAnJHtiaW5hcnlUeXBlfScgc2hvdWxkIHN1Y2NlZWRgKTsKK30KKwor
Zm9yIChjb25zdCBiaW5hcnlUeXBlIG9mIGludmFsaWRCaW5hcnlUeXBlcykgeworICB0ZXN0KCh0
KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0
YUNoYW5uZWwoJ3Rlc3QtYmluYXJ5LXR5cGUnKTsKKworICAgIGFzc2VydF90aHJvd3NfZG9tKCdT
eW50YXhFcnJvcicsICgpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOwor
ICAgIH0pOworICB9LCBgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5cGUgJyR7YmluYXJ5VHlwZX0n
IHNob3VsZCB0aHJvdyBTeW50YXhFcnJvcmApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1n
ZXRSZW1vdGVDZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVD
ZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0CmluZGV4IGZkMDBjN2NmZGU2MDQ2MWJjMDg0NzVhMjlj
Mzk2YjMxOWI0ODNjNWMuLjNlNWE1OTFhMDYzYWIyNzE0YWFhMGYxNmUxNWNmZmQxYjFhM2ZhODAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy1leHBlY3RlZC50eHQKQEAg
LTEsMyArMSwzIEBACiAKLUZBSUwgUlRDRHRsc1RyYW5zcG9ydC5wcm90b3R5cGUuZ2V0UmVtb3Rl
Q2VydGlmaWNhdGVzIENhbid0IGZpbmQgdmFyaWFibGU6IFJUQ1NjdHBUcmFuc3BvcnQKK0ZBSUwg
UlRDRHRsc1RyYW5zcG9ydC5wcm90b3R5cGUuZ2V0UmVtb3RlQ2VydGlmaWNhdGVzIHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdkdGxzVHJhbnNwb3J0LnN0YXRlJykKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKaW5kZXggOGFmOTVhODRkNTc0ZTIwZjli
MGJiZmY5NjRlZDA2NGU0ZTE3ZTYyZi4uODk5ZTYwM2NiZTBmZTFmMDIzYzhkNzYzMDU1YzU3OGVm
NjJiYjk2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sCkBAIC00MiwyMyAr
NDIsMTMgQEAKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKIAotICAgIHBjMS5jcmVhdGVEYXRhQ2hh
bm5lbCgndGVzdCcpOworICAgIHBjMS5hZGRUcmFjayh0cmFja0ZhY3Rvcmllcy5hdWRpbygpKTsK
ICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwogCiAgICAgZXhjaGFuZ2VPZmZl
ckFuc3dlcihwYzEsIHBjMikKICAgICAudGhlbih0LnN0ZXBfZnVuYygoKSA9PiB7Ci0gICAgICAv
LyBwYy5zY3RwIGlzIHNldCB3aGVuIHNldCpEZXNjcmlwdGlvbihhbnN3ZXIpIGlzIGNhbGxlZAot
ICAgICAgY29uc3Qgc2N0cFRyYW5zcG9ydDEgPSBwYzEuc2N0cDsKLSAgICAgIGNvbnN0IHNjdHBU
cmFuc3BvcnQyID0gcGMyLnNjdHA7Ci0KLSAgICAgIGFzc2VydF90cnVlKHNjdHBUcmFuc3BvcnQx
IGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9ydCwKLSAgICAgICAgJ0V4cGVjdCBwYy5zY3RwIHRv
IGJlIHNldCB0byB2YWxpZCBSVENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAgICAgIGFzc2VydF90cnVl
KHNjdHBUcmFuc3BvcnQyIGluc3RhbmNlb2YgUlRDU2N0cFRyYW5zcG9ydCwKLSAgICAgICAgJ0V4
cGVjdCBwYy5zY3RwIHRvIGJlIHNldCB0byB2YWxpZCBSVENTY3RwVHJhbnNwb3J0Jyk7Ci0KLSAg
ICAgIGNvbnN0IGR0bHNUcmFuc3BvcnQxID0gc2N0cFRyYW5zcG9ydDEudHJhbnNwb3J0OwotICAg
ICAgY29uc3QgZHRsc1RyYW5zcG9ydDIgPSBzY3RwVHJhbnNwb3J0Mi50cmFuc3BvcnQ7CisgICAg
ICBjb25zdCBkdGxzVHJhbnNwb3J0MSA9IHBjMS5nZXRTZW5kZXJzKClbMF0udHJhbnNwb3J0Owor
ICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydDIgPSBwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhbnNw
b3J0OwogCiAgICAgICBjb25zdCB0ZXN0ZWRUcmFuc3BvcnRzID0gbmV3IFNldCgpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGNiN2ViNTc5MzQ4NGI4Y2E5NTE0NDcxODU2NWU5MmZkYWI1ZWIwNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uIGFuZCBzZXRSZW1vdGVEZXNjcmlw
dGlvbiBhcmUgbm90IHJhY3kgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGgg
dmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21w
YXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRp
bWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2YmRlMDZjOTYzNDI2OWIxN2NkNTY1YjIwYmM4
MGI0MTFkMWQ5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWlu
Zy5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxl
PjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4K
KzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgc2lnbmFsaW5nU3RhdGVzID0gW107CisgIHBjLm9uc2ln
bmFsaW5nc3RhdGVjaGFuZ2UgPSBldiA9PiBzaWduYWxpbmdTdGF0ZXMucHVzaChwYy5zaWduYWxp
bmdTdGF0ZSk7CisgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zv
bmx5J30pOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGNvbnN0
IHNsZFByb21pc2UgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3Qgc3Jk
UHJvbWlzZSA9IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgUHJvbWlz
ZS5hbGwoW3NsZFByb21pc2UsIHNyZFByb21pc2VdKTsKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
aWduYWxpbmdTdGF0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgWydoYXZlLWxvY2FsLW9mZmVy
Jywnc3RhYmxlJywnaGF2ZS1yZW1vdGUtb2ZmZXInXSk7Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlv
biBhbmQgc2V0UmVtb3RlRGVzY3JpcHRpb24gYXJlIG5vdCByYWN5Jyk7CisKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVw
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzU4Mzc0M2QyNzI5YjY3MzBhNjJhOWY5OWUyY2Zi
OTkyMjM1OGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWNvbm5lY3Rpb25TZXR1cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK0ZBSUwgQ2Fu
ZGlkYXRlcyBhcmUgYWRkZWQgZHluYW1pY2FsbHk7IGNvbm5lY3Rpb24gc2hvdWxkIHdvcmsgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0
YXRlJykiCitGQUlMIENhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMTsgY29ubmVjdGlvbiBzaG91
bGQgd29yayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0
cmFuc3BvcnQuc3RhdGUnKSIKK0ZBSUwgQ2FuZGlkYXRlcyBhcmUgYWRkZWQgYXQgUEMyOyBjb25u
ZWN0aW9uIHNob3VsZCB3b3JrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1h
ZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTFmYzRlNGZhMGMyMjJk
ZjRlMTQ2OWE1MjU4Mjk1YmYzNzAzNTIzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbApAQCAtMCwwICsxLDEwNiBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VGVzdCBSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUu
YWRkSWNlQ2FuZGlkYXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisvLyBUaGlzIHRlc3Qg
bWF5IGJlIGZsYWt5LCBzbyBpdCdzIGluIGl0cyBvd24gZmlsZS4KKy8vIFRoZSB0ZXN0IGJlbG9u
Z3MgaW4gUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLgorCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBj
b25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKKworICBleGNo
YW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyKHBjMSwg
cGMyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICAvLyBO
b3RlIHRoYXQgc2VxdWVuY2Ugb2YgdGhlIGZvbGxvd2luZyB0d28gY2FsbHMgaXMgY3JpdGljYWwK
KyAgLy8gZm9yIHRlc3Qgc3RhYmlsaXR5LgorICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAg
YXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0
ZWQnKTsKK30sICdDYW5kaWRhdGVzIGFyZSBhZGRlZCBkeW5hbWljYWxseTsgY29ubmVjdGlvbiBz
aG91bGQgd29yaycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRU
cmFuc2NlaXZlcigndmlkZW8nKTsKKworICBsZXQgY2FuZGlkYXRlczF0bzIgPSBbXTsKKyAgbGV0
IGNhbmRpZGF0ZXMydG8xID0gW107CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsK
KyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMXRvMi5wdXNoKGV2
ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50
ID0+IHsKKyAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMnRvMS5w
dXNoKGV2ZW50LmNhbmRpZGF0ZSk7CisgICAgfQorICB9CisgIGNvbnN0IHBjMkdhdGhlcmVkQ2Fu
ZGlkYXRlcyA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgcGMyLmFkZEV2ZW50TGlz
dGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgaWYgKHBjMi5p
Y2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7CisgICAgICAgIHJlc29sdmUoKTsKKyAg
ICAgIH0KKyAgICB9KTsKKyAgfSk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIocGMxLCBwYzIpOwor
ICBsZXQgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyR2F0aGVyZWRDYW5kaWRhdGVzOworICAvLyBBZGQgY2Fu
ZGlkYXRlcyB0byBwYzEsIGVuc3VyaW5nIHRoYXQgaXQgZ29lcyB0byAiY29ubmVjdGluZyIgc3Rh
dGUgYmVmb3JlICJjb25uZWN0ZWQiLgorICBmb3IgKGxldCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRl
czJ0bzEpIHsKKyAgICBhd2FpdCBwYzEuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgIH0K
KyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25u
ZWN0aW5nJyk7CisgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0cmFuc2NlaXZlci5zZW5kZXIudHJhbnNw
b3J0LCAnY29ubmVjdGVkJyk7Cit9LCAnQ2FuZGlkYXRlcyBhcmUgYWRkZWQgYXQgUEMxOyBjb25u
ZWN0aW9uIHNob3VsZCB3b3JrJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworCisgIGxldCBjYW5kaWRhdGVzMXRvMiA9IFtd
OworICBsZXQgY2FuZGlkYXRlczJ0bzEgPSBbXTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZXZl
bnQgPT4geworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0ZXMxdG8y
LnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0KKyAgcGMyLm9uaWNlY2FuZGlkYXRl
ID0gZXZlbnQgPT4geworICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0
ZXMydG8xLnB1c2goZXZlbnQuY2FuZGlkYXRlKTsKKyAgICB9CisgIH0KKyAgY29uc3QgcGMxR2F0
aGVyZWRDYW5kaWRhdGVzID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBwYzEuYWRk
RXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICBp
ZiAocGMxLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0ZScpIHsKKyAgICAgICAgcmVzb2x2
ZSgpOworICAgICAgfQorICAgIH0pOworICB9KTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlcihwYzEs
IHBjMik7CisgIGxldCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzFHYXRoZXJlZENhbmRpZGF0ZXM7CisgIC8v
IEFkZCBjYW5kaWRhdGVzIHRvIHBjMgorICBmb3IgKGxldCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRl
czF0bzIpIHsKKyAgICBhd2FpdCBwYzIuYWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgIH0K
KyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25u
ZWN0ZWQnKTsKK30sICdDYW5kaWRhdGVzIGFyZSBhZGRlZCBhdCBQQzI7IGNvbm5lY3Rpb24gc2hv
dWxkIHdvcmsnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVj
dGVkLnR4dAppbmRleCBjNmUzOTRmYmEyZmNmYTBjM2NmNjY3NjQ5ODIxNmVjY2YyMDRhMjhkLi42
NmMwMGFjNTVhYmJlZDYyMGU2YzMyMGFjNjA4OWJiNjc5MmIxMWFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3IEBAIEZBSUwgYWRkSWNlQ2Fu
ZGlkYXRlKHt9KSBpbiBzdGFibGUgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlk
YXRlcyB0byBiCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogdXNlcm5h
bWVGcmFnbWVudDEsIHNkcE1pZDogc2RwTWlkMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5k
LW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogRXhwZWN0
IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGJldHdlZW4gbWVkaWEgbGluZXMgbT1hdWRpbyBh
bmQgbT12aWRlbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VDYW5kaWRhdGUo
e3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQyLCBzZHBNTGluZUluZGV4OiAxfSkg
c2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRlcyB0byB0aGUgZmlyc3QgbS1z
ZWN0aW9uIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogRkFJTCBhZGRJY2VD
YW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6ICJubyBzdWNoIHVmcmFnIn0pIHNob3VsZCBub3Qg
d29yayBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJl
YWNoZWQgdW5yZWFjaGFibGUgY29kZQotUEFTUyBBZGQgSUNFIGNhbmRpZGF0ZSBhZnRlciBzZXR0
aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZAorRkFJTCBBZGQgSUNFIGNhbmRp
ZGF0ZSBhZnRlciBzZXR0aW5nIHJlbW90ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCBhc3Nl
cnRfdHJ1ZTogRXhwZWN0IGNhbmRpZGF0ZSBsaW5lIHRvIGJlIGZvdW5kIGFmdGVyIG1lZGlhIGxp
bmUgbT1hdWRpbyBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogUEFTUyBBZGQgSUNFIGNhbmRpZGF0
ZSB3aXRoIFJUQ0ljZUNhbmRpZGF0ZSBzaG91bGQgc3VjY2VlZAogUEFTUyBBZGQgY2FuZGlkYXRl
IHdpdGggb25seSB2YWxpZCBzZHBNaWQgc2hvdWxkIHN1Y2NlZWQKIFBBU1MgQWRkIGNhbmRpZGF0
ZSB3aXRoIG9ubHkgdmFsaWQgc2RwTWlkIGFuZCBSVENJY2VDYW5kaWRhdGUgc2hvdWxkIHN1Y2Nl
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKaW5kZXggYzY4ZTQ0MmEyZDUwOTRmMjJkNTA4ZWM4
YjY4MDRiYzJhNThkMDcyZi4uNWZjYjZlODY0YThhMjIzZDUwNjJiMjJiN2E4ZjVlODlmYmY5ZDRj
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwKQEAgLTIsNiArMiw3IEBACiA8dGl0bGU+VGVz
dCBSVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuYWRkSWNlQ2FuZGlkYXRlPC90aXRsZT4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAg
J3VzZSBzdHJpY3QnOwogCkBAIC0yMjQsMTggKzIyNSwyMCBAQCBhPXJ0Y3AtcnNpemUKICAgICAg
IHBjLmFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFnbWVudDogIm5vIHN1Y2ggdWZyYWcifSkp
OwogICB9LCAnYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiAibm8gc3VjaCB1ZnJh
ZyJ9KSBzaG91bGQgbm90IHdvcmsnKTsKIAotICBwcm9taXNlX3Rlc3QodCA9PiB7CisgIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOwogCiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKIAotICAgIHJldHVy
biBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKLSAgICAudGhlbigoKSA9PiBw
Yy5hZGRJY2VDYW5kaWRhdGUoeworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHNl
c3Npb25EZXNjKQorICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZSh7CiAgICAgICBjYW5kaWRh
dGU6IGNhbmRpZGF0ZVN0cjEsCiAgICAgICBzZHBNaWQ6IHNkcE1pZDEsCiAgICAgICBzZHBNTGlu
ZUluZGV4OiBzZHBNTGluZUluZGV4MSwKICAgICAgIHVzZXJuYW1lRnJhZ2VtZW50OiB1c2VybmFt
ZUZyYWdtZW50MQotICAgIH0pKTsKKyAgICB9KTsKKyAgICBhc3NlcnRfY2FuZGlkYXRlX2xpbmVf
YWZ0ZXIocGMucmVtb3RlRGVzY3JpcHRpb24uc2RwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtZWRpYUxpbmUxLCBjYW5kaWRhdGVTdHIxKTsKICAgfSwgJ0FkZCBJQ0UgY2FuZGlk
YXRlIGFmdGVyIHNldHRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCBzdWNjZWVkJyk7CiAK
ICAgcHJvbWlzZV90ZXN0KHQgPT4gewpAQCAtMjU2LDcgKzI1OSw2IEBAIGE9cnRjcC1yc2l6ZQog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjLmNsb3NlKCkpOwotCiAgICAgcmV0dXJuIHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKHNlc3Npb25EZXNjKQogICAgICAgLnRoZW4oKCkgPT4gcGMuYWRkSWNlQ2FuZGlkYXRlKHsK
ICAgICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5k
aWRhdGUtaW4tc2RwLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWZmN2UzZTg1YTMx
M2UxNWUyZDFlN2IwOWVkNDAyNDgzYWJmYzUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgbG9jYWxEZXNjcmlwdGlvbiBjb250YWlucyBjYW5kaWRhdGVzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNh
bmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Yzk3YWZlOTRhZTU5NzQzODk2
YzlkMjZiYjg1MGNjNzU0ZjU3ZTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2Fu
ZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgbGV0IHJlc29sdmVJY2VDYW5kaWRh
dGVQcm9taXNlID0gbnVsbDsKKyAgY29uc3QgaWNlQ2FuZGlkYXRlUHJvbWlzZSA9IG5ldyBQcm9t
aXNlKHIgPT4gcmVzb2x2ZUljZUNhbmRpZGF0ZVByb21pc2UgPSByKTsKKyAgcGMub25pY2VjYW5k
aWRhdGUgPSBlID0+IHsKKyAgICByZXNvbHZlSWNlQ2FuZGlkYXRlUHJvbWlzZShwYy5sb2NhbERl
c2NyaXB0aW9uLnNkcCk7CisgICAgcGMub25pY2VjYW5kaWRhdGUgPSBudWxsOworICB9CisgIHBj
LmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCkpOworICBhc3NlcnRfZmFsc2UocGMubG9jYWxEZXNjcmlw
dGlvbi5zZHAuaW5jbHVkZXMoImE9Y2FuZGlkYXRlOiIpLAorICAgICAgICAgICAgICAgImxvY2Fs
RGVzY3JpcHRpb24gaXMgbWlzc2luZyBjYW5kaWRhdGUgYmVmb3JlIG9uaWNlY2FuZGlkYXRlIik7
CisgIC8vIFRoZSBsb2NhbERlc2NyaXB0aW9uIGF0IHRoZSB0aW1lIG9mIHRoZSBvbmljZWNhbmRp
ZGF0ZSBldmVudC4KKyAgY29uc3QgbG9jYWxEZXNjcmlwdGlvblNkcCA9IGF3YWl0IGljZUNhbmRp
ZGF0ZVByb21pc2U7CisgIGFzc2VydF90cnVlKGxvY2FsRGVzY3JpcHRpb25TZHAuaW5jbHVkZXMo
ImE9Y2FuZGlkYXRlOiIpLAorICAgICAgICAgICAgICAgImxvY2FsRGVzY3JpcHRpb24gY29udGFp
bnMgY2FuZGlkYXRlIGFmdGVyIG9uaWNlY2FuZGlkYXRlIik7Cit9LCAnbG9jYWxEZXNjcmlwdGlv
biBjb250YWlucyBjYW5kaWRhdGVzJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0
YXRlLmh0dHBzLmh0bWwKaW5kZXggNWRiODI3MmRmMzA3MjYwZjlkYjBjNDMzM2MyM2M3YWQ0YzQ0
MzJiNi4uZDc3MTZhMWQ0ZGExOWFjYWYzYmQ4YzAxNjU0M2RkMWM3NWI0NzFkNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKQEAgLTI4NSw3ICsyODUsNyBAQAogCiAgICAg
cGMyLm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRfZnVuYygpOwogICAgIHBj
Mi5jbG9zZSgpOwotICAgIGFzc2VydF90cnVlKHBjMi5jb25uZWN0aW9uU3RhdGUgPT09ICdjbG9z
ZWQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5jb25uZWN0aW9uU3RhdGUsICdjbG9zZWQnKTsK
ICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMCkpOwogICB9
LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBjb25uZWN0aW9uc3Rh
dGVjaGFuZ2UgZXZlbnQnKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlRGF0YUNoYW5uZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5u
ZWwtZXhwZWN0ZWQudHh0CmluZGV4IGE4NzkwMGMxMTI5NmUwMmQ0ZmYyMjJlMGQ4MmYxMGJkYzM4
OGVkODYuLmQ1Yzk1OTczZTcxOGViYjdkZTYxNzQ5MjFiYTlhMjYyMzM3OWU2ZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1leHBlY3RlZC50eHQKQEAgLTcwLDkgKzcwLDcgQEAg
RkFJTCBSZXVzaW5nIGEgZGF0YSBjaGFubmVsIGlkIHRoYXQgaXMgaW4gdXNlIChhZnRlciBzZXRS
ZW1vdGVEZXNjcmlwdGlvbiwgbmVnb3QKIFBBU1MgTmV3IGRhdGFjaGFubmVsIHNob3VsZCBiZSBp
biB0aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiAoYWZ0ZXIgY29ubmVjdGlvbiBl
c3RhYmxpc2htZW50KQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBkYXRhY2hhbm5lbCwg
c2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBk
YXRhY2hhbm5lbCwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5kbGUgaXMg
dXNlZAotRkFJTCBTdG9wcGluZyB0aGUgYnVuZGxlLXRhZyB3aGVuIHRoZXJlIGlzIGEgZGF0YWNo
YW5uZWwgaW4gdGhlIGJ1bmRsZSBzaG91bGQga2lsbCB0aGUgRGF0YUNoYW5uZWwgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJy
b3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5zd2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBk
ZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3aXRoIG1pZD0nMSc6IEZhaWxlZCB0byBzZXR1cCBS
VENQIG11eC4iCiBQQVNTIE5ldyBuZWdvdGlhdGVkIGRhdGFjaGFubmVsIHNob3VsZCBiZSBpbiB0
aGUgY29ubmVjdGluZyBzdGF0ZSBhZnRlciBjcmVhdGlvbiAoYWZ0ZXIgY29ubmVjdGlvbiBlc3Rh
Ymxpc2htZW50KQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBuZWdvdGlhdGVkIGRhdGFj
aGFubmVsLCBzaG91bGQgbmVnb3RpYXRlIHByb3Blcmx5CiBQQVNTIGFkZFRyYWNrLCB0aGVuIGNy
ZWF0aW5nIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVybHkg
d2hlbiBtYXgtYnVuZGxlIGlzIHVzZWQKLUZBSUwgU3RvcHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hl
biB0aGVyZSBpcyBhIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgaW4gdGhlIGJ1bmRsZSBzaG91bGQg
a2lsbCB0aGUgRGF0YUNoYW5uZWwgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdp
dGggdmFsdWU6IG9iamVjdCAiT3BlcmF0aW9uRXJyb3I6IEZhaWxlZCB0byBzZXQgbG9jYWwgYW5z
d2VyIHNkcDogRmFpbGVkIHRvIGFwcGx5IHRoZSBkZXNjcmlwdGlvbiBmb3IgbT0gc2VjdGlvbiB3
aXRoIG1pZD0nMSc6IEZhaWxlZCB0byBzZXR1cCBSVENQIG11eC4iCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRh
Q2hhbm5lbC5odG1sCmluZGV4IDg3ODY3NjY0YjU4YTY3ODdiZDk2Y2ZiODU1NTliNGYxMTcxZTI2
M2YuLjdhZDhiZjdkNDZlY2Q3YTM3MDI1NDJkOGI0ODQxMzJhZmNjOTRkNjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlRGF0YUNoYW5uZWwuaHRtbApAQCAtNzA3LDYgKzcwNywxMSBAQCBmb3IgKGNvbnN0IG9wdGlv
bnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAgIGF3YWl0IGNyZWF0
ZURhdGFDaGFubmVsUGFpcih0LCBvcHRpb25zLCBwYzEpOwogICB9LCBgYWRkVHJhY2ssIHRoZW4g
Y3JlYXRpbmcgJHttb2RlfSwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5k
bGUgaXMgdXNlZGApOwogCisvKgorVGhpcyB0ZXN0IGlzIGRpc2FibGVkIHVudGlsIGh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2VicnRjLXBjL2lzc3Vlcy8yNTYyCitoYXMgYmVlbiByZXNvbHZlZDsg
aXQgcHJlc3VwcG9zZXMgdGhhdCBzdG9wcGluZyB0aGUgZmlyc3QgdHJhbnNjZWl2ZXIKK2JyZWFr
cyB0aGUgdHJhbnNwb3J0LgorCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oe2J1bmRsZVBvbGljeTogIm1heC1idW5kbGUi
fSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBAIC03MjYsNiAr
NzMxLDcgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6IHRydWUsIGlk
OiAwfV0pIHsKICAgICBhd2FpdCBkYzFDbG9zZWQ7CiAgIH0sIGBTdG9wcGluZyB0aGUgYnVuZGxl
LXRhZyB3aGVuIHRoZXJlIGlzIGEgJHttb2RlfSBpbiB0aGUgYnVuZGxlIGAgKwogICAgICBgc2hv
dWxkIGtpbGwgdGhlIERhdGFDaGFubmVsYCk7CisqLwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYxMzdiZmI4NWQ2MmMyNDRkODBlYzVkMzNkZWE3OGQyZGUwNGYx
ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVz
LXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK0ZBSUwgcGVuZGlu
Z0xvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2Vx
dWFsczogcGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNl
IHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9u
RGVzY3JpcHRpb25dIgorRkFJTCBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQg
YXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFsczogcGVuZGluZ1JlbW90ZURlc2NyaXB0aW9u
IGlzIHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwgYnV0IGdv
dCBvYmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKK0ZBSUwgY3VycmVudExv
Y2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFs
czogY3VycmVudExvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBl
bmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBSVENTZXNzaW9uRGVz
Y3JpcHRpb25dIgorRkFJTCBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQg
dGhlIHJpZ2h0IHRpbWUgYXNzZXJ0X2VxdWFsczogY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlz
IHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwgYnV0IGdvdCBv
YmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmQyNTY1YzNlMWUwNzM0YTQyMjMxNTIyZDc3MTI5NTA2NDkxZDJjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw4MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48
L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVP
ZmZlcigpOworCisgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51
bGwsCisgICAgICAgICAgICAgICAgJ3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIG51bGwgYmVm
b3JlIHNldExvY2FsRGVzY3JpcHRpb24nKTsKKyAgY29uc3QgcHJvbWlzZSA9IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24ob2ZmZXIpOworICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBp
cyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZycpOworICBhd2FpdCBwcm9taXNlOwor
ICBhc3NlcnRfbm90X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAg
ICAgICAgICAgICAgICAgICAgJ3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIG5vdCBudWxsIGFm
dGVyIGF3YWl0Jyk7Cit9LCAicGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQg
dGhlIHJpZ2h0IHRpbWUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisKKyAgYXNz
ZXJ0X2VxdWFscyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAg
ICAgICAgJ3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBudWxsIGJlZm9yZSBzZXRSZW1vdGVE
ZXNjcmlwdGlvbicpOworICBjb25zdCBwcm9taXNlID0gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIpOworICBhc3NlcnRfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVs
bCwKKyAgICAgICAgICAgICAgICAncGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uIGlzIHN0aWxsIG51
bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nJyk7CisgIGF3YWl0IHByb21pc2U7CisgIGFzc2VydF9u
b3RfZXF1YWxzKHBjLnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAg
ICAgICAgICAgJ3BlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBub3QgbnVsbCBhZnRlciBhd2Fp
dCcpOworfSwgInBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmln
aHQgdGltZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdh
aXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpOworCisgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRMb2Nh
bERlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBudWxsIGJlZm9yZSBzZXRMb2NhbERlc2NyaXB0aW9uJyk7CisgIGNvbnN0IHByb21p
c2UgPSBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhc3NlcnRfZXF1YWxzKHBj
Mi5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAgICAgICAnY3VycmVu
dExvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcnKTsK
KyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMyLmN1cnJlbnRMb2NhbERl
c2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAnY3VycmVudExvY2FsRGVzY3Jp
cHRpb24gaXMgbm90IG51bGwgYWZ0ZXIgYXdhaXQnKTsKK30sICJjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMS5zZXRMb2Nh
bERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9m
ZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworCisgIGFz
c2VydF9lcXVhbHMocGMxLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAg
ICAgICAgICAnY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIG51bGwgYmVmb3JlIHNldFJlbW90
ZURlc2NyaXB0aW9uJyk7CisgIGNvbnN0IHByb21pc2UgPSBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuY3VycmVudFJlbW90ZURlc2NyaXB0aW9u
LCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3Rp
bGwgbnVsbCB3aGlsZSBwcm9taXNlIHBlbmRpbmcnKTsKKyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNz
ZXJ0X25vdF9lcXVhbHMocGMxLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAg
ICAgICAgICAgICAgICAgJ2N1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBub3QgbnVsbCBhZnRl
ciBhd2FpdCcpOworfSwgImN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0
aGUgcmlnaHQgdGltZSIpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWV4
cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMzVkNzI0YjE4YWQxYWQ5YmNhY2QxNDhiN2VjM2NlYmQ2MWEyZDM4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3Rh
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCitIYXJuZXNzIEVycm9yIChUSU1FT1VU
KSwgbWVzc2FnZSA9IG51bGwKKworVElNRU9VVCByb2xsaW5nIGJhY2sgYW4gSUNFIHJlc3RhcnQg
d2hlbiBnYXRoZXJpbmcgaXMgY29tcGxldGUgc2hvdWxkIG5vdCByZXN1bHQgaW4gaWNlR2F0aGVy
aW5nU3RhdGUgY2hhbmdlcyBUZXN0IHRpbWVkIG91dAorTk9UUlVOIHNldExvY2FsRGVzY3JpcHRp
b24ocm9sbGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdT
dGF0ZSB0byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJjb21wbGV0ZSIKK05PVFJVTiBz
ZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1
c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiZ2F0
aGVyaW5nIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VH
YXRoZXJpbmdTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2staWNlR2F0
aGVyaW5nU3RhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzFmZTAxNGJkOWVlMThiYjZhOWFiNjVlYTdh
YTNlZWJiY2UxMjAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9s
bGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24ucHJv
dG90eXBlLmljZUdhdGhlcmluZ1N0YXRlPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKyAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyV2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNp
dGlvbnMoCisgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKKyAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VS
ZXN0YXJ0OiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBj
MSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworICBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0
ZUNoYW5nZXModCwgcGMxKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6
ICdyb2xsYmFjayd9KTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChy
LCAxMDAwKSk7Cit9LCAncm9sbGluZyBiYWNrIGFuIElDRSByZXN0YXJ0IHdoZW4gZ2F0aGVyaW5n
IGlzIGNvbXBsZXRlIHNob3VsZCBub3QgcmVzdWx0IGluIGljZUdhdGhlcmluZ1N0YXRlIGNoYW5n
ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAorICAgIGF3YWl0IHBjLmNyZWF0ZU9mZmVyKHtv
ZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7CisgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKKyAgYXdhaXQgaWNlR2F0aGVyaW5n
U3RhdGVUcmFuc2l0aW9ucyhwYywgJ25ldycpOworfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocm9s
bGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0
byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJjb21wbGV0ZSInKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBhd2FpdCBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKAorICAgIGF3YWl0IHBjLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlv
OiB0cnVlfSkpOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0
aGVyaW5nJyk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFj
ayd9KTsKKyAgLy8gV2UgbWlnaHQgZ28gZGlyZWN0bHkgdG8gJ25ldycsIG9yIHdlIG1pZ2h0IGdv
IHRvICdjb21wbGV0ZScgZmlyc3QsCisgIC8vIGRlcGVuZGluZyBvbiB0aW1pbmcuIEFsbG93IGVp
dGhlci4KKyAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbCisgICAg
aWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ25ldycpLAorICAgIGljZUdhdGhlcmlu
Z1N0YXRlVHJhbnNpdGlvbnMocGMsICdjb21wbGV0ZScsICduZXcnKV0pOworICBhc3NlcnRfdHJ1
ZShyZXN1bHRzLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT0gJ2Z1bGZpbGxlZCcpLAor
ICAgICdJQ0UgZ2F0aGVyaW5nIHN0YXRlIHNob3VsZCBnbyBiYWNrIHRvICJuZXciLCBwb3NzaWJs
eSB0aHJvdWdoICJjb21wbGV0ZSInKTsKK30sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNr
KSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVh
Y2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiZ2F0aGVyaW5nIicpOworCis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYjg2ZWUyY2U2YmY2ODNmZmRkNDI5M2I3ZjI4ZTc4YjhiMTM1
Mjg0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLQotRkFJTCBSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2Vy
dmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2VydmVyIFJUQ1BlZXJDb25uZWN0
aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzIGlzIG5vdCBhIGZ1bmN0aW9uLiAoSW4gJ1JUQ1BlZXJD
b25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCknLCAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0
RGVmYXVsdEljZVNlcnZlcnMnIGlzIHVuZGVmaW5lZCkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VT
ZXJ2ZXJzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZGJkYjhkZWM0NmRl
NTQ5YzA3Nzk0OWVkOTQ2YTdhMzEwZTliNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPG1ldGEgY2hh
cnNldD11dGYtOD4KLTx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVy
czwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotICAndXNlIHN0cmljdCc7Ci0KLSAgLy8gVGVzdCBpcyBiYXNlZCBvbiB0
aGUgZm9sbG93aW5nIGVkaXRvciBkcmFmdDoKLSAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dl
YnJ0Yy1wYy9hcmNoaXZlcy8yMDE3MDYwNS93ZWJydGMuaHRtbAotCi0gIC8qCi0gICAgICBbQ29u
c3RydWN0b3Iob3B0aW9uYWwgUlRDQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKV0KLSAgICAg
IGludGVyZmFjZSBSVENQZWVyQ29ubmVjdGlvbiA6IEV2ZW50VGFyZ2V0IHsKLSAgICAgICAgc3Rh
dGljIHNlcXVlbmNlPFJUQ0ljZVNlcnZlcj4gICAgICBnZXREZWZhdWx0SWNlU2VydmVycygpOwot
ICAgICAgICAuLi4KLSAgICAgIH07Ci0KLSAgICAgIGRpY3Rpb25hcnkgUlRDSWNlU2VydmVyIHsK
LSAgICAgICAgcmVxdWlyZWQgKERPTVN0cmluZyBvciBzZXF1ZW5jZTxET01TdHJpbmc+KSB1cmxz
OwotICAgICAgICAgICAgICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIHVz
ZXJuYW1lOwotICAgICAgICAgICAgICAgICAoRE9NU3RyaW5nIG9yIFJUQ09BdXRoQ3JlZGVudGlh
bCkgIGNyZWRlbnRpYWw7Ci0gICAgICAgICAgICAgICAgIFJUQ0ljZUNyZWRlbnRpYWxUeXBlICAg
ICAgICAgICAgICAgY3JlZGVudGlhbFR5cGUgPSAicGFzc3dvcmQiOwotICAgICAgfTsKLQotICAg
ICAgZGljdGlvbmFyeSBSVENPQXV0aENyZWRlbnRpYWwgewotICAgICAgICByZXF1aXJlZCBET01T
dHJpbmcgbWFjS2V5OwotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgYWNjZXNzVG9rZW47Ci0g
ICAgICB9OwotCi0gICAgICBlbnVtIFJUQ0ljZUNyZWRlbnRpYWxUeXBlIHsKLSAgICAgICAgInBh
c3N3b3JkIiwKLSAgICAgICAgIm9hdXRoIgotICAgICAgfTsKLSAgICovCi0KLSAgdGVzdCgoKSA9
PiB7Ci0gICAgY29uc3QgaWNlU2VydmVycyA9IFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJ
Y2VTZXJ2ZXJzKCk7Ci0KLSAgICBhc3NlcnRfdHJ1ZShBcnJheS5pc0FycmF5KGljZVNlcnZlcnMp
LAotICAgICAgJ0V4cGVjdCBpY2VTZXJ2ZXJzIHRvIGJlIGFuIGFycmF5Jyk7Ci0KLSAgICAvLyBk
aWN0aW9uYXJ5IElETCBjYW5ub3QgYmUgdGVzdGVkIGF1dG9tYXRpY2FsbHkgdXNpbmcgaWRsaGFy
bmVzcwotICAgIGZvcihjb25zdCBzZXJ2ZXIgb2YgaWNlU2VydmVycykgewotICAgICAgY29uc3Qg
eyB1cmxzLCB1c2VybmFtZSwgY3JlZGVudGlhbCwgY3JlZGVudGlhbFR5cGUgfSA9IHNlcnZlcjsK
LQotICAgICAgaWYoQXJyYXkuaXNBcnJheSh1cmxzKSkgewotICAgICAgICBmb3IoY29uc3QgdXJs
IG9mIHVybHMpIHsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiB1cmwsICdzdHJpbmcn
LAotICAgICAgICAgICAgJ0V4cGVjdCBlbGVtZW50cyBpbiB1cmxzIGFycmF5IHRvIGJlIHN0cmlu
ZycpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnRfZXF1YWxzKHR5
cGVvZiB1cmxzLCAnc3RyaW5nJywKLSAgICAgICAgICAnRXhwZWN0IHVybHMgdG8gYmUgZWl0aGVy
IHN0cmluZyBvciBhcnJheScpOwotICAgICAgfQotCi0gICAgICBpZih1c2VybmFtZSAhPT0gdW5k
ZWZpbmVkKSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHVzZXJuYW1lLCAnc3RyaW5n
JywKLSAgICAgICAgICAnRXhwZWN0IHVzZXJuYW1lIHRvIGJlIGVpdGhlciB1bmRlZmluZWQgb3Ig
c3RyaW5nJyk7Ci0gICAgICB9Ci0KLSAgICAgIGFzc2VydF90cnVlKGNyZWRlbnRpYWxUeXBlID09
PSAncGFzc3dvcmQnIHx8IGNyZWRlbnRpYWxUeXBlID09PSAnb2F1dGgnLAotICAgICAgICAnRXhw
ZWN0IGNyZWRlbnRpYWxUeXBlIHRvIGJlIGVpdGhlciBwYXNzd29yZCBvciBvYXV0aCcpCi0KLSAg
ICAgIGlmKGNyZWRlbnRpYWwpIHsKLSAgICAgICAgaWYodHlwZW9mKGNyZWRlbnRpYWwpID09PSAn
b2JqZWN0JykgewotICAgICAgICAgIGNvbnN0IHsgbWFjS2V5LCBhY2Nlc3NUb2tlbiB9ID0gY3Jl
ZGVudGlhbDsKLSAgICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBtYWNLZXksICdzdHJpbmcn
LAotICAgICAgICAgICAgJ0V4cGVjdCBtYWNLZXkgdG8gYmUgc3RyaW5nJyk7Ci0KLSAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBhY2Nlc3NUb2tlbiwgJ3N0cmluZycsCi0gICAgICAgICAg
ICAnRXhwZWN0IGFjY2Vzc1Rva2VuIHRvIGJlIHN0cmluZycpOwotCi0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgY3JlZGVudGlhbCwgJ3N0cmluZycsCi0g
ICAgICAgICAgICAnRXhwZWN0IGNyZWRlbnRpYWwgdG8gYmUgZWl0aGVyIHVuZGVmaW5lZCwgc3Ry
aW5nLCBvciBSVENPYXV0aENyZWRlbnRpYWwgZGljdGlvbmFyeScpOwotICAgICAgICB9Ci0gICAg
ICB9Ci0gICAgfQotCi0gICAgLy8gRXhwZWN0IGRlZmF1bHQgaWNlIHNlcnZlcnMgdG8gYmUgYWNj
ZXB0ZWQgYXMgdmFsaWQgY29uZmlndXJhdGlvbgotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKHsgaWNlU2VydmVycyB9KTsKLQotICAgIC8vIE9ubHkgbWFrZSBzdXJlIHRoZXJl
IGFyZSBzYW1lIG51bWJlciBvZiBpY2Ugc2VydmVycyBjb25maWd1cmVkCi0gICAgLy8gYW5kIG5v
dCBkbyBhbnkgZGVlcCBlcXVhbGl0eSBjaGVja2luZwotICAgIGFzc2VydF9lcXVhbHMocGMuZ2V0
Q29uZmlndXJhdGlvbigpLmljZVNlcnZlcnMubGVuZ3RoLCBpY2VTZXJ2ZXJzLmxlbmd0aCk7Ci0K
LSAgfSwgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCkgc2hvdWxkIHJl
dHVybiBhcnJheSBvZiBSVENJY2VTZXJ2ZXInKTsKLQotICAvKgotICAgIENvdmVyYWdlIFJlcG9y
dAotICAgICAgU2luY2UgdGhlcmUgaXMgbm8gc3RlcHMgaW52b2x2ZWQgYW5kIHdlIGFyZSBvbmx5
IGNoZWNraW5nIGJhc2ljIGNhbGwsCi0gICAgICBUaGlzIGlzIGNvdW50ZWQgYXMgMSB0cml2aWFs
IHRlc3QgY292ZXJhZ2UuCi0KLSAgICAgIFRlc3RlZCAgICAxCi0gICAgICBUb3RhbCAgICAgMQot
ICAgKi8KLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDAwOTY3YTk1MTY1OWRiODk1M2MxOTQ5MzdmOTBjMWFiNjE5MWQ4MzUuLmE0Njc0NzI4NTRm
MGNjZDc3YjJhZjBkOTNiZDkzZjBjZjEwMDA0N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTQsMTIgKzQsMTcgQEAgUEFTUyBnZXRTdGF0cyhudWxsKSBzaG91
bGQgc3VjY2VlZAogRkFJTCBnZXRTdGF0cygpIHdpdGggdHJhY2sgbm90IGFkZGVkIHRvIGNvbm5l
Y3Rpb24gc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdW5yZWFj
aGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQogUEFTUyBnZXRTdGF0cygpIHdpdGggdHJhY2sgYWRkZWQgdmlhIGFkZFRyYWNrIHNob3Vs
ZCBzdWNjZWVkCiBQQVNTIGdldFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhbnNj
ZWl2ZXIgc2hvdWxkIHN1Y2NlZWQKLUZBSUwgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0
ZWQgd2l0aCBtb3JlIHRoYW4gb25lIHNlbmRlciBzaG91bGQgcmVqZWN0IHdpdGggSW52YWxpZEFj
Y2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmlu
ZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBGQUlMIGdldFN0YXRzKCkgd2l0aCB0cmFjayBh
c3NvY2lhdGVkIHdpdGggYm90aCBzZW5kZXIgYW5kIHJlY2VpdmVyIHNob3VsZCByZWplY3Qgd2l0
aCBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0
ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIFBBU1MgZ2V0U3RhdHMoKSB3
aXRoIG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVl
ci1jb25uZWN0aW9uIHN0YXRzIG9uIGFuIGVtcHR5IFBDCi1GQUlMIGdldFN0YXRzKCkgd2l0aCBu
byBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIHBlZXItY29u
bmVjdGlvbiBzdGF0cyBhbmQgb3V0Ym91bmQtdHJhY2stc3RhdHMgYXNzZXJ0X3RydWU6IEV4cGVj
dCBzdGF0c1JlcG9ydCB0byBjb250YWluIHN0YXRzIG9iamVjdCBvZiB0eXBlIG91dGJvdW5kLXJ0
cCBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBnZXRTdGF0cygpIHdpdGggbm8gYXJndW1l
bnQgc2hvdWxkIHJldHVybiBzdGF0cyBmb3Igbm8tc3RyZWFtIHRyYWNrcyBhc3NlcnRfZXF1YWxz
OiBFeHBlY3QgZGljdGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3Rl
ZCAibnVtYmVyIiBidXQgZ290ICJ1bmRlZmluZWQiCi1GQUlMIGdldFN0YXRzKCkgb24gdHJhY2sg
YXNzb2NpYXRlZCB3aXRoIFJ0cFNlbmRlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250
YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0cyBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFy
eS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVtYmVyIiBidXQgZ290
ICJ1bmRlZmluZWQiCi1GQUlMIGdldFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJ0
cFJlY2VpdmVyIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgaW5ib3VuZC1y
dHAgc3RhdHMgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkuY29kZWNJZCB0byBiZSBz
dHJpbmcgZXhwZWN0ZWQgInN0cmluZyIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFTUyBnZXRTdGF0
cygpIHRyYWNrIHdpdGggc3RyZWFtIHJldHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3Vu
ZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3RhdHMoKSB0cmFjayB3aXRob3V0IHN0cmVhbSByZXR1cm5z
IHBlZXItY29ubmVjdGlvbiBhbmQgb3V0Ym91bmQtcnRwIHN0YXRzCitQQVNTIGdldFN0YXRzKCkg
YXVkaW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHMKK1BBU1MgZ2V0
U3RhdHMoKSB2aWRlbyBvdXRib3VuZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cwor
RkFJTCBnZXRTdGF0cygpIGF1ZGlvIGFuZCB2aWRlbyB2YWxpZGF0ZSBhbGwgbWFuZGF0b3J5IHN0
YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8g
YmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK1BBU1MgZ2V0
U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwU2VuZGVyIHNob3VsZCByZXR1
cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRzCitQQVNTIGdldFN0
YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJUQ1J0cFJlY2VpdmVyIHNob3VsZCByZXR1
cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgaW5ib3VuZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3Rh
dHMoKSBpbmJvdW5kLXJ0cCBjb250YWlucyBhbGwgbWFuZGF0b3J5IHN0YXRzCiBGQUlMIGdldFN0
YXRzKCkgd2l0aCBjb25uZWN0ZWQgcGVlciBjb25uZWN0aW9ucyBoYXZpbmcgdHJhY2tzIGFuZCBk
YXRhIGNoYW5uZWwgc2hvdWxkIHJldHVybiBhbGwgbWFuZGF0b3J5IHRvIGltcGxlbWVudCBzdGF0
cyBhc3NlcnRfdW5yZWFjaGVkOiB0ZXN0IGZhaWxlZCB3aXRoIGVycm9yOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkudG90YWxBdWRpb0VuZXJneSB0byBiZSBudW1iZXIg
ZXhwZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIiBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK0ZBSUwgZ2V0U3RhdHModHJhY2spIHNob3VsZCBub3Qgd29yayBpZiBtdWx0aXBsZSBz
ZW5kZXJzIGhhdmUgdGhlIHNhbWUgdHJhY2sgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUg
cmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUlRDU3Rh
dHMudGltZXN0YW1wIGluY3JlYXNlcyB3aXRoIHRpbWUgcGFzc2luZwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0
cHMuaHRtbAppbmRleCBlZGUwYWIxZWZjMTA3OTlkMTI0NzM0MzdlNTNmMmVjNTU1YWE2MjVmLi40
OWY4ODEzMWMzZTFmNzViOGI3Y2I5MjY3OTJmOWFjNzFmNDFlOGVlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0
dHBzLmh0bWwKQEAgLTkwLDIzICs5MCw2IEBACiAgICAgcmV0dXJuIHBjLmdldFN0YXRzKHRyYWNr
KTsKICAgfSwgJ2dldFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhbnNjZWl2ZXIg
c2hvdWxkIHN1Y2NlZWQnKTsKIAotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNs
b3NlKCkpOwotICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAu
dGhlbigoW3RyYWNrLCBtZWRpYVN0cmVhbV0pID0+IHsKLSAgICAgIC8vIGFkZFRyYW5zY2VpdmVy
IGFsbG93cyBhZGRpbmcgc2FtZSB0cmFjayBtdWx0aXBsZSB0aW1lcwotICAgICAgY29uc3QgdHJh
bnNjZWl2ZXIxID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwotICAgICAgY29uc3QgdHJhbnNj
ZWl2ZXIyID0gcGMuYWRkVHJhbnNjZWl2ZXIodHJhY2spOwotCi0gICAgICBhc3NlcnRfbm90X2Vx
dWFscyh0cmFuc2NlaXZlcjEsIHRyYW5zY2VpdmVyMik7Ci0gICAgICBhc3NlcnRfbm90X2VxdWFs
cyh0cmFuc2NlaXZlcjEuc2VuZGVyLCB0cmFuc2NlaXZlcjIuc2VuZGVyKTsKLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIxLnNlbmRlci50cmFjaywgdHJhbnNjZWl2ZXIyLnNlbmRlci50
cmFjayk7Ci0KLSAgICAgIHJldHVybiBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNj
ZXNzRXJyb3InLCBwYy5nZXRTdGF0cyh0cmFjaykpOwotICAgIH0pOwotICB9LCBgZ2V0U3RhdHMo
KSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBtb3JlIHRoYW4gb25lIHNlbmRlciBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yYCk7Ci0KICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKQEAgLTEzNSwzNSArMTE4LDY5IEBACiAgICAgfSk7CiAg
IH0sICdnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHJldHVybiBzdGF0cyByZXBv
cnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24gc3RhdHMgb24gYW4gZW1wdHkgUEMnKTsKIAot
ICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBn
ZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAudGhlbigoW3RyYWNrLCBtZWRpYVN0
cmVhbV0pID0+IHsKLSAgICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7Ci0gICAg
ICByZXR1cm4gcGMuZ2V0U3RhdHMoKTsKLSAgICB9KQotICAgIC50aGVuKHN0YXRzUmVwb3J0ID0+
IHsKLS8vICAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7Ci0vLyAgICAgIGFz
c2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBbJ3BlZXItY29ubmVjdGlv
biddKTsKLSAgICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBb
J291dGJvdW5kLXJ0cCddKTsKLSAgICB9KTsKLSAgfSwgJ2dldFN0YXRzKCkgd2l0aCBubyBhcmd1
bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIHBlZXItY29ubmVjdGlv
biBzdGF0cyBhbmQgb3V0Ym91bmQtdHJhY2stc3RhdHMnKTsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICAgIGNvbnN0IHBjID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0
KTsKKyAgICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOwor
ICAgIGNvbnN0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1l
ZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7CisgICAg
ZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJB
bnN3ZXIocGMsIHBjMik7CisgICAgYXdhaXQgbGlzdGVuVG9Db25uZWN0ZWQocGMpOworICAgIGNv
bnN0IHN0YXRzUmVwb3J0ID0gYXdhaXQgcGMuZ2V0U3RhdHMoKTsKKyAgICBnZXRSZXF1aXJlZFN0
YXRzKHN0YXRzUmVwb3J0LCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgZ2V0UmVxdWlyZWRTdGF0
cyhzdGF0c1JlcG9ydCwgJ291dGJvdW5kLXJ0cCcpOworICB9LCAnZ2V0U3RhdHMoKSB0cmFjayB3
aXRoIHN0cmVhbSByZXR1cm5zIHBlZXItY29ubmVjdGlvbiBhbmQgb3V0Ym91bmQtcnRwIHN0YXRz
Jyk7CiAKLSAgcHJvbWlzZV90ZXN0KHQgPT4gewotICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKLSAgICBy
ZXR1cm4gZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpCi0gICAgLnRoZW4oKFt0cmFjaywg
bWVkaWFTdHJlYW1dKSA9PiB7Ci0gICAgICBwYy5hZGRUcmFjayh0cmFjayk7Ci0gICAgICByZXR1
cm4gcGMuZ2V0U3RhdHMoKTsKLSAgICB9KQotICAgIC50aGVuKHN0YXRzUmVwb3J0ID0+IHsKLSAg
ICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOwotICAgICAgYXNzZXJ0X3N0YXRz
X3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVlci1jb25uZWN0aW9uJ10pOwotICAg
ICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsnb3V0Ym91bmQt
cnRwJ10pOwotICAgIH0pOwotICB9LCAnZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3Vs
ZCByZXR1cm4gc3RhdHMgZm9yIG5vLXN0cmVhbSB0cmFja3MnKTsKKyAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51
cCh0KTsKKyAgICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQp
OworICAgIGNvbnN0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNl
ck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKHRyYWNrKTsKKyAgICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywg
cGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNS
ZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHNS
ZXBvcnQsICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBnZXRSZXF1aXJlZFN0YXRzKHN0YXRzUmVw
b3J0LCAnb3V0Ym91bmQtcnRwJyk7CisgIH0sICdnZXRTdGF0cygpIHRyYWNrIHdpdGhvdXQgc3Ry
ZWFtIHJldHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3VuZC1ydHAgc3RhdHMnKTsKKwor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29u
bmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0
aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2Fp
dCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ss
IG1lZGlhU3RyZWFtKTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nv
bm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygp
OworICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzUmVwb3J0LCBbJ291dGJv
dW5kLXJ0cCddKTsKKyAgfSwgJ2dldFN0YXRzKCkgYXVkaW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5z
IGFsbCBtYW5kYXRvcnkgc3RhdHMnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNv
bnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3Qg
W3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ3ZpZGVv
Jyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKKyAgICBleGNoYW5nZUlj
ZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywg
cGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNS
ZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFz
X3N0YXRzKHN0YXRzUmVwb3J0LCBbJ291dGJvdW5kLXJ0cCddKTsKKyAgfSwgJ2dldFN0YXRzKCkg
dmlkZW8gb3V0Ym91bmQtcnRwIGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHMnKTsKKworICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVj
dGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9u
V2l0aENsZWFudXAodCk7CisgICAgY29uc3QgW2F1ZGlvVHJhY2ssIGF1ZGlvU3RyZWFtXSA9IGF3
YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFjayhhdWRp
b1RyYWNrLCBhdWRpb1N0cmVhbSk7CisgICAgY29uc3QgW3ZpZGVvVHJhY2ssIHZpZGVvU3RyZWFt
XSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgndmlkZW8nKTsKKyAgICBwYy5hZGRUcmFj
ayh2aWRlb1RyYWNrLCB2aWRlb1N0cmVhbSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
LCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMsIHBjMik7CisgICAgYXdh
aXQgbGlzdGVuVG9Db25uZWN0ZWQocGMpOworICAgIGNvbnN0IHN0YXRzUmVwb3J0ID0gYXdhaXQg
cGMuZ2V0U3RhdHMoKTsKKyAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKKyAg
fSwgJ2dldFN0YXRzKCkgYXVkaW8gYW5kIHZpZGVvIHZhbGlkYXRlIGFsbCBtYW5kYXRvcnkgc3Rh
dHMnKTsKIAogICAvKgogICAgIDguNS4gIFRoZSBzdGF0cyBzZWxlY3Rpb24gYWxnb3JpdGhtCkBA
IC0xODEsMTIgKzE5OCwxMCBAQAogICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7
CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjLCBwYzIpOwogICAgIGF3YWl0IGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMsIHBjMik7Ci0gICAgYXdhaXQgbGlzdGVuVG9JY2VDb25uZWN0ZWQocGMp
OworICAgIGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKICAgICBjb25zdCBzdGF0cyA9IGF3
YWl0IHBjLmdldFN0YXRzKHRyYWNrKTsKLSAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzKTsK
LSAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0cywgWydvdXRib3VuZC1ydHAn
XSk7Ci0gIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBTZW5kZXIg
c2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBvdXRib3VuZC1ydHAgc3RhdHNg
KTsKLQorICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHMsICdvdXRib3VuZC1ydHAnKTsKKyAgfSwg
YGdldFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJUQ1J0cFNlbmRlciBzaG91bGQg
cmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0c2ApOwogCiAg
IC8qCiAgICAgOC41LiAgVGhlIHN0YXRzIHNlbGVjdGlvbiBhbGdvcml0aG0KQEAgLTIxMyw5ICsy
MjgsMjggQEAKICAgICAgIH0pOwogICAgIH0KICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHBjMi5n
ZXRTdGF0cyhwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2spOwotICAgIHZhbGlkYXRlU3RhdHNS
ZXBvcnQoc3RhdHMpOwotICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzLCBb
J2luYm91bmQtcnRwJ10pOwotICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdp
dGggUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBpbmJv
dW5kLXJ0cCBzdGF0c2ApOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHMsICdpbmJvdW5kLXJ0
cCcpOworICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwUmVj
ZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBpbmJvdW5kLXJ0cCBz
dGF0c2ApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNy
ZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRl
UGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKworICAgIGxldCBbdHJhY2ssIG1lZGlhU3Ry
ZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRU
cmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywg
cGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIC8vIFdh
aXQgZm9yIHVubXV0ZSBpZiB0aGUgdHJhY2sgaXMgbm90IGFscmVhZHkgdW5tdXRlZC4KKyAgICAv
LyBBY2NvcmRpbmcgdG8gc3BlYywgaXQgc2hvdWxkIGJlIG11dGVkIHdoZW4gYmVpbmcgY3JlYXRl
ZCwgYnV0IHRoaXMKKyAgICAvLyBpcyBub3Qgd2hhdCB0aGlzIHRlc3QgaXMgdGVzdGluZywgc28g
YWxsb3cgaXQgdG8gYmUgdW5tdXRlZC4KKyAgICBpZiAocGMyLmdldFJlY2VpdmVycygpWzBdLnRy
YWNrLm11dGVkKSB7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAg
ICAgcGMyLmdldFJlY2VpdmVycygpWzBdLnRyYWNrLmFkZEV2ZW50TGlzdGVuZXIoJ3VubXV0ZScs
IHJlc29sdmUpOworICAgICAgfSk7CisgICAgfQorICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMy
LmdldFN0YXRzKHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFjayk7CisgICAgZ2V0UmVxdWlyZWRT
dGF0cyhzdGF0cywgJ2luYm91bmQtcnRwJyk7CisgIH0sIGBnZXRTdGF0cygpIGluYm91bmQtcnRw
IGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHNgKTsKIAogICAvKgogICAgIDguNiAgIE1hbmRh
dG9yeSBUbyBJbXBsZW1lbnQgU3RhdHMKQEAgLTMzOSw0ICszNzMsMzQgQEAKIAogICB9LCBgZ2V0
U3RhdHMoKSB3aXRoIGNvbm5lY3RlZCBwZWVyIGNvbm5lY3Rpb25zIGhhdmluZyB0cmFja3MgYW5k
IGRhdGEgY2hhbm5lbCBzaG91bGQgcmV0dXJuIGFsbCBtYW5kYXRvcnkgdG8gaW1wbGVtZW50IHN0
YXRzYCk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgICBjb25zdCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVz
ZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7CisgICAgcGMu
YWRkVHJhbnNjZWl2ZXIodHJhY2spOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwg
J0ludmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYWNrKSk7CisgIH0sIGBnZXRTdGF0
cyh0cmFjaykgc2hvdWxkIG5vdCB3b3JrIGlmIG11bHRpcGxlIHNlbmRlcnMgaGF2ZSB0aGUgc2Ft
ZSB0cmFja2ApOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBrTWlu
aW11bVRpbWVFbGFwc2VkQmV0d2VlbkdldFN0YXRzQ2FsbHNNcyA9IDUwMDsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgICAgY29uc3QgdDAgPSBNYXRoLmZsb29yKHBlcmZvcm1hbmNlLm5vdygpKTsK
KyAgICBjb25zdCB0MFN0YXRzID0gZ2V0UmVxdWlyZWRTdGF0cyhhd2FpdCBwYy5nZXRTdGF0cygp
LCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgYXdhaXQgbmV3IFByb21pc2UoCisgICAgICAgIHIg
PT4gdC5zdGVwX3RpbWVvdXQociwga01pbmltdW1UaW1lRWxhcHNlZEJldHdlZW5HZXRTdGF0c0Nh
bGxzTXMpKTsKKyAgICBjb25zdCB0MVN0YXRzID0gZ2V0UmVxdWlyZWRTdGF0cyhhd2FpdCBwYy5n
ZXRTdGF0cygpLCAncGVlci1jb25uZWN0aW9uJyk7CisgICAgY29uc3QgdDEgPSBNYXRoLmNlaWwo
cGVyZm9ybWFuY2Uubm93KCkpOworICAgIGNvbnN0IG1heGltdW1UaW1lRWxhcHNlZEJldHdlZW5H
ZXRTdGF0c0NhbGxzTXMgPSB0MSAtIHQwOworICAgIGNvbnN0IGRlbHRhVGltZXN0YW1wTXMgPSB0
MVN0YXRzLnRpbWVzdGFtcCAtIHQwU3RhdHMudGltZXN0YW1wOworICAgIC8vIFRoZSBkZWx0YSBt
dXN0IGJlIGF0IGxlYXN0IHRoZSB0aW1lIHdlIHdhaXRlZCBiZXR3ZWVuIGNhbGxzLgorICAgIGFz
c2VydF9ncmVhdGVyX3RoYW5fZXF1YWwoZGVsdGFUaW1lc3RhbXBNcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtNaW5pbXVtVGltZUVsYXBzZWRCZXR3ZWVuR2V0U3RhdHNDYWxsc01z
KTsKKyAgICAvLyBUaGUgZGVsdGEgbXVzdCBiZSBhdCBtb3N0IHRoZSB0aW1lIGVsYXBzZWQgYmVm
b3JlIHRoZSBmaXJzdCBnZXRTdGF0cygpCisgICAgLy8gY2FsbCBhbmQgYWZ0ZXIgdGhlIHNlY29u
ZCBnZXRTdGF0cygpIGNhbGwuCisgICAgYXNzZXJ0X2xlc3NfdGhhbl9lcXVhbChkZWx0YVRpbWVz
dGFtcE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVRpbWVFbGFwc2VkQmV0
d2VlbkdldFN0YXRzQ2FsbHNNcyk7CisgIH0sIGBSVENTdGF0cy50aW1lc3RhbXAgaW5jcmVhc2Vz
IHdpdGggdGltZSBwYXNzaW5nYCk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3QtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NDg5NjkwYTc5NWRmYzM4M2ViYmJhY2U2Yzk1MTVhOTc3
ZTk1MGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgU2V0dGluZyB1cCBhIGNvbm5lY3Rpb24gdXNp
bmcgaGVscGVycyBhbmQgZGVmYXVsdHMgc2hvdWxkIHdvcmsgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0YXRlJykiCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVz
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQyZjY2NTJhYzRjNGIyMTY1ZDkxODkyOTk3Nzg4OGM1NWRhZGRk
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC5odG1sCkBAIC0w
LDAgKzEsMjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRs
ZT5SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIgdGVzdHM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcigndmlk
ZW8nKTsKKworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2Vp
dmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0ZWQnKTsKK30sICdTZXR0aW5nIHVwIGEgY29u
bmVjdGlvbiB1c2luZyBoZWxwZXJzIGFuZCBkZWZhdWx0cyBzaG91bGQgd29yaycpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxw
ZXIuanMKaW5kZXggMDc2MjZiZDBjY2MzOWU5MzAzNGJlYWYxZjc0NWJiYzQ5YTk0MzhjMS4uNWFl
ZjBhOGUyMWU0MmZhZmU1ODcxOWMwZmIyNDZhOTE5ZDFiMTVkMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwpAQCAtMjMyLDYgKzIz
MiwxMiBAQCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29ubmVjdGlvblN0YXRlQ2hhbmdlKHBjLCB3
YW50ZWRTdGF0ZXMpIHsKICAgfQogfQogCithc3luYyBmdW5jdGlvbiB3YWl0Rm9ySWNlR2F0aGVy
aW5nU3RhdGUocGMsIHdhbnRlZFN0YXRlcykgeworICB3aGlsZSAoIXdhbnRlZFN0YXRlcy5pbmNs
dWRlcyhwYy5pY2VHYXRoZXJpbmdTdGF0ZSkpIHsKKyAgICBhd2FpdCB3YWl0VW50aWxFdmVudChw
YywgJ2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJyk7CisgIH0KK30KKwogLy8gUmVzb2x2ZXMgd2hl
biBSVFAgcGFja2V0cyBoYXZlIGJlZW4gcmVjZWl2ZWQuCiBhc3luYyBmdW5jdGlvbiBsaXN0ZW5G
b3JTU1JDcyh0LCByZWNlaXZlcikgewogICB3aGlsZSAodHJ1ZSkgewpAQCAtMzkyLDcgKzM5OCw3
IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewogICAgIHJldHVybiBkc3Quc3RyZWFtLmdldEF1
ZGlvVHJhY2tzKClbMF07CiAgIH0sCiAKLSAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQgPSA0
ODAsIHNpZ25hbCA9IG51bGx9ID0ge30pIHsKKyAgdmlkZW8oe3dpZHRoID0gNjQwLCBoZWlnaHQg
PSA0ODAsIHNpZ25hbH0gPSB7fSkgewogICAgIGNvbnN0IGNhbnZhcyA9IE9iamVjdC5hc3NpZ24o
CiAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSwge3dpZHRoLCBoZWlnaHR9
CiAgICAgKTsKQEAgLTQwMCwxNSArNDA2LDE3IEBAIGNvbnN0IHRyYWNrRmFjdG9yaWVzID0gewog
ICAgIGNvbnN0IHN0cmVhbSA9IGNhbnZhcy5jYXB0dXJlU3RyZWFtKCk7CiAKICAgICBsZXQgY291
bnQgPSAwOwotICAgIHNldEludGVydmFsKCgpID0+IHsKKyAgICBjb25zdCBpbnRlcnZhbCA9IHNl
dEludGVydmFsKCgpID0+IHsKICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7Y291bnQlMjU1
fSwgJHtjb3VudCpjb3VudCUyNTV9LCAke2NvdW50JTI1NX0pYDsKICAgICAgIGNvdW50ICs9IDE7
CiAgICAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAvLyBJZiBz
aWduYWwgaXMgc2V0LCBhZGQgYSBjb25zdGFudC1jb2xvciBib3ggdG8gdGhlIHZpZGVvIGZyYW1l
Ci0gICAgICAvLyBhdCBjb29yZGluYXRlcyAxMCB0byAzMCBpbiBib3RoIFggYW5kIFkgZGlyZWN0
aW9uLgotICAgICAgaWYgKHNpZ25hbCAhPT0gbnVsbCkgeworICAgICAgLy8gSWYgc2lnbmFsIGlz
IHNldCAoMC0yNTUpLCBhZGQgYSBjb25zdGFudC1jb2xvciBib3ggb2YgdGhhdCBsdW1pbmFuY2Ug
dG8KKyAgICAgIC8vIHRoZSB2aWRlbyBmcmFtZSBhdCBjb29yZGluYXRlcyAyMCB0byA2MCBpbiBi
b3RoIFggYW5kIFkgZGlyZWN0aW9uLgorICAgICAgLy8gKGJpZyBlbm91Z2ggdG8gYXZvaWQgY29s
b3IgYmxlZWQgZnJvbSBzdXJyb3VuZGluZyB2aWRlbyBpbiBzb21lIGNvZGVjcywKKyAgICAgIC8v
IGZvciBtb3JlIHN0YWJsZSB0ZXN0cykuCisgICAgICBpZiAoc2lnbmFsICE9IHVuZGVmaW5lZCkg
ewogICAgICAgICBjdHguZmlsbFN0eWxlID0gYHJnYigke3NpZ25hbH0sICR7c2lnbmFsfSwgJHtz
aWduYWx9KWA7Ci0gICAgICAgIGN0eC5maWxsUmVjdCgxMCwgMTAsIDIwLCAyMCk7CisgICAgICAg
IGN0eC5maWxsUmVjdCgyMCwgMjAsIDQwLCA0MCk7CiAgICAgICB9CiAgICAgfSwgMTAwKTsKIApA
QCAtNDE3LDI1ICs0MjUsMzQgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgfSBlbHNl
IHsKICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAo
KSA9PiB7CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2FudmFzKTsKLSAgICAg
IH0pOworICAgICAgfSwge29uY2U6IHRydWV9KTsKICAgICB9CiAKLSAgICByZXR1cm4gc3RyZWFt
LmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgLy8gSW1wbGVtZW50IHRyYWNrLnN0b3AoKSBmb3Ig
cGVyZm9ybWFuY2UgaW4gc29tZSB0ZXN0cyBvbiBzb21lIHBsYXRmb3JtcworICAgIGNvbnN0IHRy
YWNrID0gc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisgICAgY29uc3QgbmF0aXZlU3RvcCA9
IHRyYWNrLnN0b3A7CisgICAgdHJhY2suc3RvcCA9IGZ1bmN0aW9uIHN0b3AoKSB7CisgICAgICBj
bGVhckludGVydmFsKGludGVydmFsKTsKKyAgICAgIG5hdGl2ZVN0b3AuYXBwbHkodGhpcyk7Cisg
ICAgICBpZiAoZG9jdW1lbnQuYm9keSAmJiBjYW52YXMucGFyZW50RWxlbWVudCA9PSBkb2N1bWVu
dC5ib2R5KSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoY2FudmFzKTsKKyAg
ICAgIH0KKyAgICB9OworICAgIHJldHVybiB0cmFjazsKICAgfQogfTsKIAogLy8gR2V0IHRoZSBz
aWduYWwgZnJvbSBhIHZpZGVvIGVsZW1lbnQgaW5zZXJ0ZWQgYnkgY3JlYXRlTm9pc2VTdHJlYW0K
IGZ1bmN0aW9uIGdldFZpZGVvU2lnbmFsKHYpIHsKLSAgaWYgKHYudmlkZW9XaWR0aCA8IDIxIHx8
IHYudmlkZW9IZWlnaHQgPCAyMSkgewotICAgIHJldHVybiBudWxsOworICBpZiAodi52aWRlb1dp
ZHRoIDwgNjAgfHwgdi52aWRlb0hlaWdodCA8IDYwKSB7CisgICAgdGhyb3cgbmV3IEVycm9yKCdn
ZXRWaWRlb1NpZ25hbDogdmlkZW8gdG9vIHNtYWxsIGZvciB0ZXN0Jyk7CiAgIH0KICAgY29uc3Qg
Y2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Ci0gIGNhbnZhcy53aWR0
aCA9IHYudmlkZW9XaWR0aDsKLSAgY2FudmFzLmhlaWdodCA9IHYudmlkZW9IZWlnaHQ7CisgIGNh
bnZhcy53aWR0aCA9IGNhbnZhcy5oZWlnaHQgPSA2MDsKICAgY29uc3QgY29udGV4dCA9IGNhbnZh
cy5nZXRDb250ZXh0KCcyZCcpOwotICBjb250ZXh0LmRyYXdJbWFnZSh2LCAwLCAwLCB2LnZpZGVv
V2lkdGgsIHYudmlkZW9IZWlnaHQpOwotICAvLyBFeHRyYWN0IHBpeGVsIHZhbHVlIGF0IHBvc2l0
aW9uIDIwLCAyMAotICBjb25zdCBwaXhlbCA9IGNvbnRleHQuZ2V0SW1hZ2VEYXRhKDIwLCAyMCwg
MSwgMSk7CisgIGNvbnRleHQuZHJhd0ltYWdlKHYsIDAsIDApOworICAvLyBFeHRyYWN0IHBpeGVs
IHZhbHVlIGF0IHBvc2l0aW9uIDQwLCA0MAorICBjb25zdCBwaXhlbCA9IGNvbnRleHQuZ2V0SW1h
Z2VEYXRhKDQwLCA0MCwgMSwgMSk7CiAgIC8vIFVzZSBsdW1hIHJlY29uc3RydWN0aW9uIHRvIGdl
dCBiYWNrIG9yaWdpbmFsIHZhbHVlIGFjY29yZGluZyB0bwogICAvLyBJVFUtUiByZWMgQlQuNzA5
CiAgIHJldHVybiAocGl4ZWwuZGF0YVswXSAqIDAuMjEgKyBwaXhlbC5kYXRhWzFdICogMC43MiAr
IHBpeGVsLmRhdGFbMl0gKiAwLjA3KTsKQEAgLTQ0Myw4ICs0NjAsOSBAQCBmdW5jdGlvbiBnZXRW
aWRlb1NpZ25hbCh2KSB7CiAKIGFzeW5jIGZ1bmN0aW9uIGRldGVjdFNpZ25hbCh0LCB2LCB2YWx1
ZSkgewogICB3aGlsZSAodHJ1ZSkgewotICAgIGNvbnN0IHNpZ25hbCA9IGdldFZpZGVvU2lnbmFs
KHYpOwotICAgIGlmIChzaWduYWwgIT09IG51bGwgJiYgc2lnbmFsIDwgdmFsdWUgKyAxICYmIHNp
Z25hbCA+IHZhbHVlIC0gMSkgeworICAgIGNvbnN0IHNpZ25hbCA9IGdldFZpZGVvU2lnbmFsKHYp
LnRvRml4ZWQoKTsKKyAgICAvLyBhbGxvdyBvZmYtYnktdHdvIHBpeGVsIGVycm9yIChvYnNlcnZl
ZCBpbiBzb21lIGltcGxlbWVudGF0aW9ucykKKyAgICBpZiAodmFsdWUgLSAyIDw9IHNpZ25hbCAm
JiBzaWduYWwgPD0gdmFsdWUgKyAyKSB7CiAgICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIFdl
IHdvdWxkIGxpa2UgdG8gd2FpdCBmb3IgZWFjaCBuZXcgZnJhbWUgaW5zdGVhZCBoZXJlLApAQCAt
NTIxLDggKzUzOSwxMiBAQCBhc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyKGNhbGxlciwgY2Fs
bGVlKSB7CiB9CiAvLyBQZXJmb3JtcyBhbiBhbnN3ZXIgZXhjaGFuZ2UgY2FsbGVyIC0+IGNhbGxl
ZS4KIGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlKSB7Ci0gIGF3
YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIo
KSk7Ci0gIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihjYWxsZWUubG9jYWxEZXNj
cmlwdGlvbik7CisgIC8vIE5vdGUgdGhhdCBjYWxsZXIncyByZW1vdGUgZGVzY3JpcHRpb24gbXVz
dCBiZSBzZXQgZmlyc3Q7IGlmIG5vdCwKKyAgLy8gdGhlcmUncyBhIGNoYW5jZSB0aGF0IGNhbmRp
ZGF0ZXMgZnJvbSBjYWxsZWUgYXJyaXZlIGF0IGNhbGxlciBiZWZvcmUKKyAgLy8gaXQgaGFzIGEg
cmVtb3RlIGRlc2NyaXB0aW9uIHRvIGFwcGx5IHRoZW0gdG8uCisgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dl
cik7CiB9CiBhc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5zd2VyKGNhbGxlciwgY2FsbGVl
KSB7CiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpOwpAQCAtNjQ4LDMgKzY3
MCw0MCBAQCBjbGFzcyBVbmlxdWVTZXQgZXh0ZW5kcyBTZXQgewogICAgIHN1cGVyLmFkZCh2YWx1
ZSk7CiAgIH0KIH0KKworY29uc3QgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyA9IGFzeW5j
IChwYywgLi4uc3RhdGVzKSA9PiB7CisgIGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgcGMuYWRk
RXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAg
IGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSBzdGF0ZSkgeworICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZWplY3QoYFVuZXhwZWN0ZWQgZ2F0aGVy
aW5nIHN0YXRlOiAke3BjLmljZUdhdGhlcmluZ1N0YXRlfSwgd2FzIGV4cGVjdGluZyAke3N0YXRl
fWApOworICAgICAgICB9CisgICAgICB9LCB7b25jZTogdHJ1ZX0pOworICAgIH0pOworICB9Cit9
OworCitjb25zdCBpbml0aWFsT2ZmZXJBbnN3ZXJXaXRoSWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0
aW9ucyA9CisgICAgYXN5bmMgKHBjMSwgcGMyLCBvZmZlck9wdGlvbnMpID0+IHsKKyAgICAgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKAorICAgICAgICBhd2FpdCBwYzEuY3JlYXRlT2Zm
ZXIob2ZmZXJPcHRpb25zKSk7CisgICAgICBjb25zdCBwYzFUcmFuc2l0aW9ucyA9CisgICAgICAg
ICAgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxl
dGUnKTsKKyAgICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CisgICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIu
Y3JlYXRlQW5zd2VyKCkpOworICAgICAgY29uc3QgcGMyVHJhbnNpdGlvbnMgPQorICAgICAgICAg
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMyLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRl
Jyk7CisgICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3Jp
cHRpb24pOworICAgICAgYXdhaXQgcGMxVHJhbnNpdGlvbnM7CisgICAgICBhd2FpdCBwYzJUcmFu
c2l0aW9uczsKKyAgICB9OworCitjb25zdCBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5n
ZXMgPSBhc3luYyAodCwgcGMpID0+IHsKKyAgcGMub25pY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSA9
CisgICAgICB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICAgIGFzc2VydF91bnJlYWNoZWQoCisg
ICAgICAgICAgICAnU2hvdWxkIG5vdCBnZXQgYW4gaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2Ugcmln
aHQgbm93IScpOworICAgICAgfSk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29u
bmVjdGlvblN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHR0cHMuaHRtbAppbmRleCBkMzEyNjA2NWI5OTc3OGYzMmI1ZTMxMzIxMTA4NWQ1NWMwNjRmZTFl
Li4zMjBiMDNkZmM4MGY4ZTdlNGEyMGQ5ZTI0M2I5Y2M4N2M4ODg4MWM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbApAQCAtMzkzLDcgKzM5Myw3IEBAIHByb21p
c2VfdGVzdChhc3luYyB0ID0+IHsKIAogICBwYzIub25pY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2Ug
PSB0LnVucmVhY2hlZF9mdW5jKCk7CiAgIHBjMi5jbG9zZSgpOwotICBhc3NlcnRfdHJ1ZShwYzIu
aWNlQ29ubmVjdGlvblN0YXRlID09PSAnY2xvc2VkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLmlj
ZUNvbm5lY3Rpb25TdGF0ZSwgJ2Nsb3NlZCcpOwogICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQu
c3RlcF90aW1lb3V0KHIsIDEwMCkpOwogfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91
bGQgbm90IGZpcmUgaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VH
YXRoZXJpbmdTdGF0ZS5odG1sCmluZGV4IDNmMDEyOGJiODQzZGRiZGQxMjlmOGExMGI2MDFiMjFj
MjFjZTdkZTQuLjg3MGU2YWQ3MmVjMzU2ZWNlZmJjYTY4ODc4ZGE3MzFlMzQ3ZWQxN2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbApAQCAtODQsNDMgKzg0LDEzIEBACiAgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKGBVbmhhbmRsZWQgcmVqZWN0aW9uICR7ZXJyLm5hbWV9OiAke2Vyci5tZXNz
YWdlfWApKSk7CiAgIH0sICdpY2VHYXRoZXJpbmdTdGF0ZSBzaG91bGQgZXZlbnR1YWxseSBiZWNv
bWUgY29tcGxldGUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbicpOwogCi0gIGNvbnN0IGljZUdh
dGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMgPSBhc3luYyAocGMsIC4uLnN0YXRlcykgPT4gewotICAg
IGZvciAoY29uc3Qgc3RhdGUgb2Ygc3RhdGVzKSB7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdh
dGhlcmluZ3N0YXRlY2hhbmdlJywgKCkgPT4gewotICAgICAgICAgIGlmIChwYy5pY2VHYXRoZXJp
bmdTdGF0ZSA9PSBzdGF0ZSkgewotICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICByZWplY3QoYFVuZXhwZWN0ZWQgZ2F0aGVyaW5nIHN0YXRlOiAk
e3BjLmljZUdhdGhlcmluZ1N0YXRlfSwgd2FzIGV4cGVjdGluZyAke3N0YXRlfWApOwotICAgICAg
ICAgIH0KLSAgICAgICAgfSwge29uY2U6IHRydWV9KTsKLSAgICAgIH0pOwotICAgIH0KLSAgfTsK
LQotICBjb25zdCBpbml0aWFsT2ZmZXJBbnN3ZXIgPSBhc3luYyAocGMxLCBwYzIsIG9mZmVyT3B0
aW9ucykgPT4gewotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMxLmNyZWF0ZU9mZmVyKG9mZmVyT3B0aW9ucykpOwotICAgIGNvbnN0IHBjMVRyYW5zaXRp
b25zID0gaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29t
cGxldGUnKTsKLSAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMxLmxvY2FsRGVz
Y3JpcHRpb24pOwotICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5j
cmVhdGVBbnN3ZXIoKSk7Ci0gICAgY29uc3QgcGMyVHJhbnNpdGlvbnMgPSBpY2VHYXRoZXJpbmdT
dGF0ZVRyYW5zaXRpb25zKHBjMiwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOwotICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0KLSAgICBh
d2FpdCBwYzFUcmFuc2l0aW9uczsKLSAgICBhd2FpdCBwYzJUcmFuc2l0aW9uczsKLSAgfTsKLQot
ICBjb25zdCBleHBlY3ROb01vcmVHYXRoZXJpbmdTdGF0ZUNoYW5nZXMgPSBhc3luYyAodCwgcGMp
ID0+IHsKLSAgICBwYy5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlID0gdC5zdGVwX2Z1bmMoKCkg
PT4gYXNzZXJ0X3VucmVhY2hlZCgnU2hvdWxkIG5vdCBnZXQgYW4gaWNlZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UgcmlnaHQgbm93IScpKTsKLSAgfTsKLQogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdh
aXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1
ZX0pOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcldpdGhJY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKAorICAgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9
KTsKIAogICAgIGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzEpOwogICAg
IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBwYzIpOwpAQCAtMTM0LDIyICsx
MDQsMjEgQEAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3Nl
KCkpOwotICAgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwotICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dl
cihwYzEsIHBjMiwge29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KTsKLSAgICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRy
dWV9KSk7Ci0gICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRo
ZXJpbmcnLCAnY29tcGxldGUnKTsKKwogICAgIGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hh
bmdlcyh0LCBwYzEpOwotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAn
cm9sbGJhY2snfSk7Ci0gICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChy
LCAxMDAwKSk7Ci0gIH0sICdyb2xsaW5nIGJhY2sgYW4gSUNFIHJlc3RhcnQgd2hlbiBnYXRoZXJp
bmcgaXMgY29tcGxldGUgc2hvdWxkIG5vdCByZXN1bHQgaW4gaWNlR2F0aGVyaW5nU3RhdGUgY2hh
bmdlcycpOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKCkpOworCisgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91
dChyLCA1MDApKTsKKyAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24oKSB3aXRoIG5vIHRyYW5zcG9y
dHMgc2hvdWxkIG5vdCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBjaGFuZ2UnKTsKIAogICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7
b2ZmZXJUb1JlY2VpdmVBdWRpbzp0cnVlfSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2Vy
V2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMoCisgICAgICAgIHBjMSwgcGMyLCB7b2Zm
ZXJUb1JlY2VpdmVBdWRpbzp0cnVlfSk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtpY2VSZXN0YXJ0OiB0cnVlfSkpOwogICAgIGF3YWl0
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRl
Jyk7CiAgIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJlb2ZmZXIpIHdpdGggYSBuZXcgdHJhbnNw
b3J0IHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byBnbyB0byAiY2hlY2tpbmciIGFu
ZCB0aGVuICJjb21wbGV0ZSInKTsKQEAgLTE2NSw0OCArMTM0LDMxIEBACiAgICAgYXdhaXQgcGMy
LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOwotICB9LCAnc1JEIGRvZXMgbm90IGNhdXNlIElDRSBnYXRoZXJpbmcg
c3RhdGUgY2hhbmdlcycpCi0KLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLSAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7Ci0gICAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmluZycsICdjb21wbGV0
ZScpOwotICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9
KTsKLSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3Jyk7Ci0g
IH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91
bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBp
biAiY29tcGxldGUiJyk7Ci0KLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewotICAgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKLSAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKAotICAgICAgYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7Ci0gICAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmluZycpOwotICAgIGF3
YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsKLSAgICAvLyBX
ZSBtaWdodCBnbyBkaXJlY3RseSB0byAnbmV3Jywgb3Igd2UgbWlnaHQgZ28gdG8gJ2NvbXBsZXRl
JyBmaXJzdCwKLSAgICAvLyBkZXBlbmRpbmcgb24gdGltaW5nLiBBbGxvdyBlaXRoZXIuCi0gICAg
Y29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChbCi0gICAgICBpY2VHYXRo
ZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3JyksCi0gICAgICBpY2VHYXRoZXJpbmdTdGF0
ZVRyYW5zaXRpb25zKHBjLCAnY29tcGxldGUnLCAnbmV3JyldKTsKLSAgICBhc3NlcnRfdHJ1ZShy
ZXN1bHRzLnNvbWUocmVzdWx0ID0+IHJlc3VsdC5zdGF0dXMgPT0gJ2Z1bGZpbGxlZCcpLAotICAg
ICAgJ0lDRSBnYXRoZXJpbmcgc3RhdGUgc2hvdWxkIGdvIGJhY2sgdG8gIm5ldyIsIHBvc3NpYmx5
IHRocm91Z2ggImNvbXBsZXRlIicpOwotICB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFj
aykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJl
YWNoICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImdhdGhlcmluZyInKTsKKyAgfSwgJ3NSRCBkb2Vz
IG5vdCBjYXVzZSBJQ0UgZ2F0aGVyaW5nIHN0YXRlIGNoYW5nZXMnKTsKIAogICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgICAgY29uc3QgcGMyID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xv
c2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1Jl
Y2VpdmVBdWRpbzogdHJ1ZX0pOworICAgIGF3YWl0IGluaXRpYWxPZmZlckFuc3dlcldpdGhJY2VH
YXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKAorICAgICAgICBwYzEsIHBjMiwge29mZmVyVG9SZWNl
aXZlQXVkaW86IHRydWV9KTsKIAorICAgIGNvbnN0IHBjMXdhaXRlciA9IGljZUdhdGhlcmluZ1N0
YXRlVHJhbnNpdGlvbnMocGMxLCAnbmV3Jyk7CisgICAgY29uc3QgcGMyd2FpdGVyID0gaWNlR2F0
aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzIsICduZXcnKTsKICAgICBwYzEuZ2V0VHJhbnNjZWl2
ZXJzKClbMF0uc3RvcCgpOwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0
IHBjMS5jcmVhdGVPZmZlcigpKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24o
cGMxLmxvY2FsRGVzY3JpcHRpb24pOwogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9u
KGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7Ci0gICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVU
cmFuc2l0aW9ucyhwYzIsICduZXcnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDAsCisgICAgICAgICAgICAgICAgICdQQzIgdHJhbnNjZWl2ZXJzIHNo
b3VsZCBiZSBpbnZpc2libGUgYWZ0ZXIgbmVnb3RpYXRpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHBjMi5pY2VHYXRoZXJpbmdTdGF0ZSwgJ25ldycpOworICAgIGF3YWl0IHBjMndhaXRlcjsKICAg
ICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOwot
ICAgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnbmV3Jyk7CisgICAg
YXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwLAorICAgICAgICAg
ICAgICAgICAgJ1BDMSB0cmFuc2NlaXZlcnMgc2hvdWxkIGJlIGludmlzaWJsZSBhZnRlciBuZWdv
dGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3
Jyk7CisgICAgYXdhaXQgcGMxd2FpdGVyOwogICB9LCAncmVuZWdvdGlhdGlvbiB0aGF0IGNsb3Nl
cyBhbGwgdHJhbnNwb3J0cyBzaG91bGQgcmVzdWx0IGluIElDRSBnYXRoZXJpbmcgc3RhdGUgIm5l
dyInKTsKIAogICAvKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRz
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbApp
bmRleCA1MDE1OGQ0Y2VhMGNkZTNhZTVmNTgzMTQwODU5ZGU2ZGE3OWJhMGJkLi43ZGExNGNkNWUw
ZjNmNWM3ZTgwN2I2MWNiMGU3ZWNjNzIxNmZmMDA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1t
YW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnkt
Z2V0U3RhdHMuaHR0cHMuaHRtbApAQCAtMjQsMTIgKzI0LDE3IEBAIGNvbnN0IG1hbmRhdG9yeSA9
IHsKICAgICAicGFja2V0c0xvc3QiLAogICAgICJqaXR0ZXIiLAogICAgICJwYWNrZXRzRGlzY2Fy
ZGVkIiwKKyAgICAiZnJhbWVzRHJvcHBlZCIKICAgXSwKICAgUlRDSW5ib3VuZFJ0cFN0cmVhbVN0
YXRzOiBbCi0gICAgInRyYWNrSWQiLAogICAgICJyZWNlaXZlcklkIiwKICAgICAicmVtb3RlSWQi
LAogICAgICJmcmFtZXNEZWNvZGVkIiwKKyAgICAibmFja0NvdW50IiwKKyAgICAiZnJhbWVzUmVj
ZWl2ZWQiLAorICAgICJieXRlc1JlY2VpdmVkIiwKKyAgICAidG90YWxBdWRpb0VuZXJneSIsCisg
ICAgInRvdGFsU2FtcGxlc0R1cmF0aW9uIgogICBdLAogICBSVENSZW1vdGVJbmJvdW5kUnRwU3Ry
ZWFtU3RhdHM6IFsKICAgICAibG9jYWxJZCIsCkBAIC00MCwxMCArNDUsMTEgQEAgY29uc3QgbWFu
ZGF0b3J5ID0gewogICAgICJieXRlc1NlbnQiCiAgIF0sCiAgIFJUQ091dGJvdW5kUnRwU3RyZWFt
U3RhdHM6IFsKLSAgICAidHJhY2tJZCIsCiAgICAgInNlbmRlcklkIiwKICAgICAicmVtb3RlSWQi
LAogICAgICJmcmFtZXNFbmNvZGVkIiwKKyAgICAibmFja0NvdW50IiwKKyAgICAiZnJhbWVzU2Vu
dCIKICAgXSwKICAgUlRDUmVtb3RlT3V0Ym91bmRSdHBTdHJlYW1TdGF0czogWwogICAgICJsb2Nh
bElkIiwKQEAgLTU0LDYgKzYwLDcgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJkYXRhQ2hh
bm5lbHNDbG9zZWQiLAogICBdLAogICBSVENEYXRhQ2hhbm5lbFN0YXRzOiBbCisgICAgImxhYmVs
IiwKICAgICAicHJvdG9jb2wiLAogICAgICJkYXRhQ2hhbm5lbElkZW50aWZpZXIiLAogICAgICJz
dGF0ZSIsCkBAIC02MiwzNSArNjksMzQgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJtZXNz
YWdlc1JlY2VpdmVkIiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCiAgIF0sCi0gIFJUQ01lZGlhU3Ry
ZWFtU3RhdHM6IFsKLSAgICAic3RyZWFtSWRlbnRpZmVyIiwKLSAgICAidHJhY2tJZHMiLAorICBS
VENNZWRpYVNvdXJjZVN0YXRzOiBbCisgICAgInRyYWNrSWRlbnRpZmllciIsCisgICAgICJraW5k
IgorICBdLAorICBSVENBdWRpb1NvdXJjZVN0YXRzOiBbCisgICAgInRvdGFsQXVkaW9FbmVyZ3ki
LAorICAgICAidG90YWxTYW1wbGVzRHVyYXRpb24iCisgIF0sCisgIFJUQ1ZpZGVvU291cmNlU3Rh
dHM6IFsKKyAgICAid2lkdGgiLAorICAgICJoZWlnaHQiLAorICAgICJmcmFtZXNQZXJTZWNvbmQi
CiAgIF0sCiAgIFJUQ01lZGlhSGFuZGxlclN0YXRzOiBbCiAgICAgInRyYWNrSWRlbnRpZmllciIs
Ci0gICAgInJlbW90ZVNvdXJjZSIsCi0gICAgImVuZGVkIiwKICAgXSwKICAgUlRDQXVkaW9IYW5k
bGVyU3RhdHM6IFsKLSAgICAiYXVkaW9MZXZlbCIsCiAgIF0sCiAgIFJUQ1ZpZGVvSGFuZGxlclN0
YXRzOiBbCi0gICAgImZyYW1lV2lkdGgiLAotICAgICJmcmFtZUhlaWdodCIsCi0gICAgImZyYW1l
c1BlclNlY29uZCIsCiAgIF0sCiAgIFJUQ1ZpZGVvU2VuZGVyU3RhdHM6IFsKLSAgICAiZnJhbWVz
U2VudCIsCiAgIF0sCiAgIFJUQ1ZpZGVvUmVjZWl2ZXJTdGF0czogWwotICAgICJmcmFtZXNSZWNl
aXZlZCIsCi0gICAgImZyYW1lc0RlY29kZWQiLAotICAgICJmcmFtZXNEcm9wcGVkIiwKLSAgICAi
cGFydGlhbEZyYW1lc0xvc3QiLAogICBdLAogICBSVENDb2RlY1N0YXRzOiBbCiAgICAgInBheWxv
YWRUeXBlIiwKICAgICAiY29kZWNUeXBlIiwKKyAgICAibWltZVR5cGUiLAogICAgICJjbG9ja1Jh
dGUiLAogICAgICJjaGFubmVscyIsCiAgICAgInNkcEZtdHBMaW5lIiwKQEAgLTk4LDcgKzEwNCw2
IEBAIGNvbnN0IG1hbmRhdG9yeSA9IHsKICAgUlRDVHJhbnNwb3J0U3RhdHM6IFsKICAgICAiYnl0
ZXNTZW50IiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCi0gICAgInJ0Y3BUcmFuc3BvcnRTdGF0c0lk
IiwKICAgICAic2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQiLAogICAgICJsb2NhbENlcnRpZmljYXRl
SWQiLAogICAgICJyZW1vdGVDZXJ0aWZpY2F0ZUlkIiwKQEAgLTEwOCwxMiArMTEzLDExIEBAIGNv
bnN0IG1hbmRhdG9yeSA9IHsKICAgICAibG9jYWxDYW5kaWRhdGVJZCIsCiAgICAgInJlbW90ZUNh
bmRpZGF0ZUlkIiwKICAgICAic3RhdGUiLAotICAgICJwcmlvcml0eSIsCiAgICAgIm5vbWluYXRl
ZCIsCiAgICAgImJ5dGVzU2VudCIsCiAgICAgImJ5dGVzUmVjZWl2ZWQiLAogICAgICJ0b3RhbFJv
dW5kVHJpcFRpbWUiLAotICAgICJjdXJyZW50Um91bmRUcmlwVGltZSIsCisgICAgImN1cnJlbnRS
b3VuZFRyaXBUaW1lIgogICBdLAogICBSVENJY2VDYW5kaWRhdGVTdGF0czogWwogICAgICJhZGRy
ZXNzIiwKQEAgLTE0MSw3ICsxNDUsMTAgQEAgY29uc3QgZGljdGlvbmFyeU5hbWVzID0gewogICAi
Y3NyYyI6ICJSVENSdHBDb250cmlidXRpbmdTb3VyY2VTdGF0cyIsCiAgICJwZWVyLWNvbm5lY3Rp
b24iOiAiUlRDUGVlckNvbm5lY3Rpb25TdGF0cyIsCiAgICJkYXRhLWNoYW5uZWwiOiAiUlRDRGF0
YUNoYW5uZWxTdGF0cyIsCi0gICJzdHJlYW0iOiAiUlRDTWVkaWFTdHJlYW1TdGF0cyIsCisgICJt
ZWRpYS1zb3VyY2UiOiB7CisgICAgYXVkaW86ICJSVENBdWRpb1NvdXJjZVN0YXRzIiwKKyAgICB2
aWRlbzogIlJUQ1ZpZGVvU291cmNlU3RhdHMiCisgIH0sCiAgICJ0cmFjayI6IHsKICAgICB2aWRl
bzogIlJUQ1NlbmRlclZpZGVvVHJhY2tBdHRhY2htZW50U3RhdHMiLAogICAgIGF1ZGlvOiAiUlRD
U2VuZGVyQXVkaW9UcmFja0F0dGFjaG1lbnRTdGF0cyIKQEAgLTE2NiwxMCArMTczLDEyIEBAIGNv
bnN0IGRpY3Rpb25hcnlOYW1lcyA9IHsKIGNvbnN0IHBhcmVudHMgPSB7CiAgIFJUQ1ZpZGVvSGFu
ZGxlclN0YXRzOiAiUlRDTWVkaWFIYW5kbGVyU3RhdHMiLAogICBSVENWaWRlb1NlbmRlclN0YXRz
OiAiUlRDVmlkZW9IYW5kbGVyU3RhdHMiLAorICBSVENWaWRlb1NvdXJjZVN0YXRzOiAiUlRDTWVk
aWFTb3VyY2VTdGF0cyIsCiAgIFJUQ1NlbmRlclZpZGVvVHJhY2tBdHRhY2htZW50U3RhdHM6ICJS
VENWaWRlb1NlbmRlclN0YXRzIiwKICAgUlRDVmlkZW9SZWNlaXZlclN0YXRzOiAiUlRDVmlkZW9I
YW5kbGVyU3RhdHMiLAogICBSVENBdWRpb0hhbmRsZXJTdGF0czogIlJUQ01lZGlhSGFuZGxlclN0
YXRzIiwKICAgUlRDQXVkaW9TZW5kZXJTdGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKKyAg
UlRDQXVkaW9Tb3VyY2VTdGF0czogIlJUQ01lZGlhU291cmNlU3RhdHMiLAogICBSVENTZW5kZXJB
dWRpb1RyYWNrQXR0YWNobWVudFN0YXRzOiAiUlRDQXVkaW9TZW5kZXJTdGF0cyIsCiAgIFJUQ0F1
ZGlvUmVjZWl2ZXJTdGF0czogIlJUQ0F1ZGlvSGFuZGxlclN0YXRzIiwKICAgUlRDUmVjZWl2ZWRS
dHBTdHJlYW1TdGF0czogIlJUQ1J0cFN0cmVhbVN0YXRzIiwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLW9uZGF0YWNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbApp
bmRleCA0NmZlOGUwZjUxYjFiMWE4NTVmMDZkNTRjODE5Nzg0ZDZmNTQyNTA4Li4wMzQzNjU1MDhi
NmJjYTE0Njk4NTM3ODE5ZDg2YzUzZmMxMjI2ZDVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bmRhdGFjaGFubmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCkBA
IC0yNTUsNyArMjU1LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CiAgIGNvbnN0IGRj
MSA9IHBjMS5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdCcsIHsKICAgICBvcmRlcmVkOiBmYWxzZSwK
ICAgICBtYXhSZXRyYW5zbWl0czogMSwKLSAgICBwcm90b2NvbDogJ2N1c3RvbScsCisgICAgcHJv
dG9jb2w6ICdjdXN0b20nCiAgIH0pOwogCiAgIGFzc2VydF9lcXVhbHMoZGMxLmxhYmVsLCAndGVz
dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCmluZGV4IDJlZGE3YjViMzQxY2E5
NjVkY2E5NzBjZGZhNWM3M2IyZjU3ZTMxODkuLmE4NzU1MWE1OGM3ZGQ1Njg3ZTNjMWVlZTQ4OGM5
MmZiODViMWRlMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKQEAgLTI4OCw3
ICsyODgsNyBAQAogICAgICAgcmVtb3ZlVHJhY2sKICAgICAgICAgMTIuIFVwZGF0ZSB0aGUgbmVn
b3RpYXRpb24tbmVlZGVkIGZsYWcgZm9yIGNvbm5lY3Rpb24uCiAgICovCi0gIGFzeW5jX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAKQEAgLTI5NiwyMCArMjk2LDIwIEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBz
dHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAgICBj
b25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRlciA9IHBj
LmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOwotICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0
LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7Ci0gICAgICBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0g
dC5zdGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5l
Z290aWF0aW9ubmVlZGVkIG1pc2ZpcmVkJyk7Ci0gICAgICB9KTsKLSAgICAgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKLSAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOwogCi0gICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBnZW5lcmF0ZUFuc3dl
cihvZmZlcik7Ci0gICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwot
Ci0gICAgICBwYy5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSkKLSAgICAgIHQuZG9u
ZSgpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gcGMub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHJlc29sdmUpOworICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVu
YygoKSA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290aWF0aW9ubmVlZGVkIG1p
c2ZpcmVkJyk7CiAgICAgfSk7CisKKyAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9m
ZmVyKCk7CisgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgICBj
b25zdCBhbnN3ZXIgPSBhd2FpdCBnZW5lcmF0ZUFuc3dlcihvZmZlcik7CisgICAgYXdhaXQgcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICAgIHBjLnJlbW92ZVRyYWNrKHNlbmRl
cik7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVl
ZGVkID0gcmVzb2x2ZSkKICAgfSwgJ3JlbW92ZVRyYWNrIHNob3VsZCBjYXVzZSBuZWdvdGlhdGlv
bm5lZWRlZCB0byBmaXJlIG9uIHRoZSBjYWxsZXInKTsKIAogICAvKgpAQCAtMzE4LDcgKzMxOCw3
IEBACiAgICAgICByZW1vdmVUcmFjawogICAgICAgICAxMi4gVXBkYXRlIHRoZSBuZWdvdGlhdGlv
bi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KICAgKi8KLSAgYXN5bmNfdGVzdChhc3luYyB0
ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IGNhbGxlciA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVyLmNs
b3NlKCkpOwogICAgIGNhbGxlci5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidy
ZWN2b25seSd9KTsKQEAgLTMzMiwxOCArMzMyLDE3IEBACiAgICAgY29uc3QgW3RyYWNrXSA9IHN0
cmVhbS5nZXRUcmFja3MoKTsKICAgICBjb25zdCBzZW5kZXIgPSBjYWxsZWUuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSk7CiAKLSAgICBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9m
dW5jKGFzeW5jICgpID0+IHsKLSAgICAgIGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5z
dGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290
aWF0aW9ubmVlZGVkIG1pc2ZpcmVkJyk7Ci0gICAgICB9KTsKLSAgICAgIGF3YWl0IGNhbGxlZS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Ci0gICAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBj
YWxsZWUuY3JlYXRlQW5zd2VyKCk7Ci0gICAgICBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOwotCi0gICAgICBjYWxsZWUucmVtb3ZlVHJhY2soc2VuZGVyKTsKLSAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNv
bHZlKQotICAgICAgdC5kb25lKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBj
YWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpOworICAgIGNhbGxlZS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1bmMoKCkgPT4geworICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgnb25uZWdvdGlhdGlvbm5lZWRlZCBtaXNmaXJlZCcpOwogICAgIH0pOworCisgICAgYXdhaXQg
Y2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBjb25zdCBhbnN3ZXIgPSBh
d2FpdCBjYWxsZWUuY3JlYXRlQW5zd2VyKCk7CisgICAgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKworICAgIGNhbGxlZS5yZW1vdmVUcmFjayhzZW5kZXIpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNv
bHZlKQogICB9LCAncmVtb3ZlVHJhY2sgc2hvdWxkIGNhdXNlIG5lZ290aWF0aW9ubmVlZGVkIHRv
IGZpcmUgb24gdGhlIGNhbGxlZScpOwogCiAgIC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNzQzNGFkNmE2
M2UxMTU1MjM2YTFkZTg3NDBlYzZmYzdmYzMwYWNkNS4uODIyY2EzMWNiYzZjMTAyYTI0ZDAwZmMx
NGQ3YTE4MWYyYmU5OWEzNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0
ZWNoYW5nZWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5n
c3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIAogUEFTUyBO
ZWdvdGlhdGlvbiBtZXRob2RzIGZpcmUgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgZXZlbnRzCiBGQUlM
IENsb3NpbmcgYSBQZWVyQ29ubmVjdGlvbiBzaG91bGQgbm90IGZpcmUgc2lnbmFsaW5nc3RhdGVj
aGFuZ2UgZXZlbnQgYXNzZXJ0X3VucmVhY2hlZDogUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQ
QVNTIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGlzIHRoZSBmaXJzdCBldmVudCB0byBmaXJlCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCmluZGV4IDBj
ODQwNTc3MGI2MTZkMWQwZjNiZTIyNmE4MTU3ODBjYzFhZDA0MTMuLmFkOTJiZjVmYzYwOWQzZDk3
NTI1ZmY4MjUxYzM2ZjM5YzY5OGRhZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFs
aW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdz
dGF0ZWNoYW5nZWQuaHR0cHMuaHRtbApAQCAtNDksOCArNDksMjMgQEAgcHJvbWlzZV90ZXN0KGFz
eW5jIHQgPT4gewogCiAgIHBjMi5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gdC51bnJlYWNoZWRf
ZnVuYygpOwogICBwYzIuY2xvc2UoKTsKLSAgYXNzZXJ0X3RydWUocGMyLnNpZ25hbGluZ1N0YXRl
ID09PSAnY2xvc2VkJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLnNpZ25hbGluZ1N0YXRlLCAnY2xv
c2VkJyk7CiAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwKSk7
CiB9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxpbmdz
dGF0ZWNoYW5nZSBldmVudCcpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIHBjMi5hZGRUcmFuc2NlaXZlcign
dmlkZW8nKTsKKworICBwYzEub250cmFjayA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKKyAgcGMxLm9u
c2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYyhlID0+IHsKKyAgICBwYzEub250cmFj
ayA9IG51bGw7CisgIH0pOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYXdhaXQg
cGMyLmNyZWF0ZU9mZmVyKCkpOworfSwgJ3NpZ25hbGluZ3N0YXRlY2hhbmdlIGlzIHRoZSBmaXJz
dCBldmVudCB0byBmaXJlJyk7CisKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
b250cmFjay5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCAzMjIwOWFjNWNkNWNhOTgxMWUxM2U1NjNjYThmOGUyNmU2MGM5MTc1
Li40ZDdhYzUzN2UwMGI1NTFkOThlNmFhNGQ5ODI3MjIzYWY2NjY1MDcyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bnRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtNCw0ICs0LDYgQEAgUEFTUyBzZXRSZW1vdGVE
ZXNjcmlwdGlvbigpIHdpdGggbT0gbGluZSBvZiByZWN2b25seSBkaXJlY3Rpb24gc2hvdWxkIG5v
dCB0cmlnZ2UKIFBBU1MgYWRkVHJhY2soKSBzaG91bGQgY2F1c2UgcmVtb3RlIGNvbm5lY3Rpb24g
dG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQogUEFTUyBhZGRUcmFu
c2NlaXZlcigndmlkZW8nKSBzaG91bGQgY2F1c2UgcmVtb3RlIGNvbm5lY3Rpb24gdG8gZmlyZSBv
bnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQogUEFTUyBhZGRUcmFuc2NlaXZlcigp
IHdpdGggaW5hY3RpdmUgZGlyZWN0aW9uIHNob3VsZCBub3QgY2F1c2UgcmVtb3RlIGNvbm5lY3Rp
b24gdG8gZmlyZSBvbnRyYWNrIHdoZW4gc2V0UmVtb3RlRGVzY3JpcHRpb24oKQorUEFTUyBVc2lu
ZyBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBvZmZlclRvUmVjZWl2ZVZpZGVvIHNob3VsZCBvbmx5
IGNhdXNlIGEgYXVkaW8gdHJhY2sgZXZlbnQgdG8gZmlyZSwgaWYgYXVkaW8gd2FzIHRoZSBvbmx5
IHR5cGUgbmVnb3RpYXRlZAorUEFTUyBVc2luZyBvZmZlclRvUmVjZWl2ZUF1ZGlvIGFuZCBvZmZl
clRvUmVjZWl2ZVZpZGVvIHNob3VsZCBvbmx5IGNhdXNlIGEgdmlkZW8gdHJhY2sgZXZlbnQgdG8g
ZmlyZSwgaWYgdmlkZW8gd2FzIHRoZSBvbmx5IHR5cGUgbmVnb3RpYXRlZAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0
dHBzLmh0bWwKaW5kZXggOTlmMzBjMjY0YjM2NDhkNTJmZGE2YmI1MGRlOTgwYmNiZTg0YmUzYy4u
Y2NkZDI5ZjZhNTBkYTk0ZDY4OWI3NjU0ZDE4YTNjMDdlZTRiYzZkYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0
cHMuaHRtbApAQCAtMjMwLDQgKzIzMCwyOSBAQCBhPXNzcmM6MTAwMSBjbmFtZTpzb21lCiAgICAg
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDAp
KTsKICAgfSwgYGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBpbmFjdGl2ZSBkaXJlY3Rpb24gc2hvdWxk
IG5vdCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9udHJhY2sgd2hlbiBzZXRSZW1v
dGVEZXNjcmlwdGlvbigpYCk7CiAKKyAgWyJhdWRpbyIsICJ2aWRlbyJdLmZvckVhY2godHlwZSA9
PiBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBjaGVja05vVW5leHBlY3RlZFRyYWNrID0g
KHt0cmFja30pID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHModHJhY2sua2luZCwgdHlwZSwgYG9u
dHJhY2sgZXZlbnQgc2hvdWxkIG5vdCBmaXJlIGZvciAke3RyYWNrLmtpbmR9YCk7CisgICAgfTsK
KworICAgIHBjMi5vbnRyYWNrID0gdC5zdGVwX2Z1bmMoY2hlY2tOb1VuZXhwZWN0ZWRUcmFjayk7
CisgICAgcGMxLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyhjaGVja05vVW5leHBlY3RlZFRyYWNrKTsK
KworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZl
cigKKyAgICAgIHsgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVBdWRp
bzogdHJ1ZSB9KSk7CisKKyAgICBwYzIuYWRkVHJhY2soLi4uYXdhaXQgZ2V0VHJhY2tGcm9tVXNl
ck1lZGlhKHR5cGUpKTsKKworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEu
bG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCAxMDApKTsKKyAgfSwgYFVzaW5nIG9mZmVyVG9S
ZWNlaXZlQXVkaW8gYW5kIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIG9ubHkgY2F1c2UgYSAk
e3R5cGV9IHRyYWNrIGV2ZW50IHRvIGZpcmUsIGlmICR7dHlwZX0gd2FzIHRoZSBvbmx5IHR5cGUg
bmVnb3RpYXRlZGApKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJm
ZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24taGVscGVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4YzQ3NmVjNDA5ZTFiNWY1M2VhZTQxYWZmOTM0ODY4
YWJlYjY5MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0
aW9uLWhlbHBlci5qcwpAQCAtMCwwICsxLDE1MSBAQAorJ3VzZSBzdHJpY3QnCisKK2Z1bmN0aW9u
IHBlZXIob3RoZXIsIHBvbGl0ZSwgZmFpbCA9IG51bGwpIHsKKyAgY29uc3Qgc2VuZCA9ICh0Z3Qs
IG1zZykgPT4gdGd0LnBvc3RNZXNzYWdlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobXNnKSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiIpOworICBp
ZiAoIWZhaWwpIGZhaWwgPSBlID0+IHNlbmQod2luZG93LnBhcmVudCwge2Vycm9yOiBgJHtlLm5h
bWV9OiAke2UubWVzc2FnZX1gfSk7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisKKyAgaWYgKCF3aW5kb3cuYXNzZXJ0X2VxdWFscykgeworICAgIHdpbmRvdy5hc3NlcnRf
ZXF1YWxzID0gKGEsIGIsIG1zZykgPT4gYSA9PT0gYiB8fAorICAgICAgICBmYWlsKG5ldyBFcnJv
cihgJHttc2d9IGV4cGVjdGVkICR7Yn0gYnV0IGdvdCAke2F9YCkpOworICB9CisKKyAgY29uc3Qg
Y29tbWFuZHMgPSB7CisgICAgYXN5bmMgYWRkVHJhbnNjZWl2ZXIoKSB7CisgICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgICAgYXdhaXQgbmV3
IFByb21pc2UociA9PiBwYy5hZGRFdmVudExpc3RlbmVyKCJuZWdvdGlhdGVkIiwgciwge29uY2U6
IHRydWV9KSk7CisgICAgICBpZiAoIXRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24pIHsKKyAg
ICAgICAgLy8gTWlnaHQgaGF2ZSBqdXN0IG1pc3NlZCB0aGUgbmVnb3RpYXRpb24gdHJhaW4uIENh
dGNoIG5leHQgb25lLgorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50
TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKKyAgICAgIH0KKyAgICAg
IGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgInNlbmRvbmx5Iiwg
ImhhdmUgZGlyZWN0aW9uIik7CisgICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVu
Z3RoOworICAgIH0sCisgICAgYXN5bmMgc2ltcGxlQ29ubmVjdCgpIHsKKyAgICAgIGNvbnN0IHAg
PSBjb21tYW5kcy5hZGRUcmFuc2NlaXZlcigpOworICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBwYy5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9CisgICAgICAgICAgICAgICAgICAgICAg
ICAoKSA9PiBwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKTsKKyAg
ICAgIHJldHVybiBhd2FpdCBwOworICAgIH0sCisgICAgYXN5bmMgZ2V0TnVtVHJhbnNjZWl2ZXJz
KCkgeworICAgICAgcmV0dXJuIHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aDsKKyAgICB9LAor
ICB9OworCisgIHRyeSB7CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwg
KHtjYW5kaWRhdGV9KSA9PiBzZW5kKG90aGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FuZGlkYXRlfSkpOworICAgIGxl
dCBtYWtpbmdPZmZlciA9IGZhbHNlLCBpZ25vcmVPZmZlciA9IGZhbHNlOworICAgIGxldCBzcmRB
bnN3ZXJQZW5kaW5nID0gZmFsc2U7CisgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRp
b25uZWVkZWQiLCBhc3luYyAoKSA9PiB7CisgICAgICB0cnkgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm5lZ290aWF0aW9ubmVlZGVkIGFsd2F5
cyBmaXJlcyBpbiBzdGFibGUgc3RhdGUiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhtYWtpbmdP
ZmZlciwgZmFsc2UsICJuZWdvdGlhdGlvbm5lZWRlZCBub3QgYWxyZWFkeSBpbiBwcm9ncmVzcyIp
OworICAgICAgICBtYWtpbmdPZmZlciA9IHRydWU7CisgICAgICAgIGF3YWl0IHBjLnNldExvY2Fs
RGVzY3JpcHRpb24oKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwg
ImhhdmUtbG9jYWwtb2ZmZXIiLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IHJhY2luZyB3aXRoIG9u
bWVzc2FnZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24udHlw
ZSwgIm9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIFNMRCB3b3JrZWQiKTsKKyAgICAgICAgc2Vu
ZChvdGhlciwge2Rlc2NyaXB0aW9uOiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7CisgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGZhaWwoZSk7CisgICAgICB9IGZpbmFsbHkgeworICAgICAgICBt
YWtpbmdPZmZlciA9IGZhbHNlOworICAgICAgfQorICAgIH0pOworICAgIHdpbmRvdy5vbm1lc3Nh
Z2UgPSBhc3luYyAoe2RhdGE6IHtkZXNjcmlwdGlvbiwgY2FuZGlkYXRlLCBydW59fSkgPT4gewor
ICAgICAgdHJ5IHsKKyAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CisgICAgICAgICAgLy8gSWYg
d2UgaGF2ZSBhIHNldFJlbW90ZURlc2NyaXB0aW9uKCkgYW5zd2VyIG9wZXJhdGlvbiBwZW5kaW5n
LCB0aGVuCisgICAgICAgICAgLy8gd2Ugd2lsbCBiZSAic3RhYmxlIiBieSB0aGUgdGltZSB0aGUg
bmV4dCBzZXRSZW1vdGVEZXNjcmlwdGlvbigpIGlzCisgICAgICAgICAgLy8gZXhlY3V0ZWQsIHNv
IHdlIGNvdW50IHRoaXMgYmVpbmcgc3RhYmxlIHdoZW4gZGVjaWRpbmcgd2hldGhlciB0bworICAg
ICAgICAgIC8vIGlnbm9yZSB0aGUgb2ZmZXIuCisgICAgICAgICAgbGV0IGlzU3RhYmxlID0KKyAg
ICAgICAgICAgICAgcGMuc2lnbmFsaW5nU3RhdGUgPT0gInN0YWJsZSIgfHwKKyAgICAgICAgICAg
ICAgKHBjLnNpZ25hbGluZ1N0YXRlID09ICJoYXZlLWxvY2FsLW9mZmVyIiAmJiBzcmRBbnN3ZXJQ
ZW5kaW5nKTsKKyAgICAgICAgICBpZ25vcmVPZmZlciA9IGRlc2NyaXB0aW9uLnR5cGUgPT0gIm9m
ZmVyIiAmJiAhcG9saXRlICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2luZ09mZmVy
IHx8ICFpc1N0YWJsZSk7CisgICAgICAgICAgaWYgKGlnbm9yZU9mZmVyKSB7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi50eXBlID09
ICJhbnN3ZXIiKQorICAgICAgICAgICAgc3JkQW5zd2VyUGVuZGluZyA9IHRydWU7CisgICAgICAg
ICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pOworICAgICAgICAg
IHNyZEFuc3dlclBlbmRpbmcgPSBmYWxzZTsKKyAgICAgICAgICBpZiAoZGVzY3JpcHRpb24udHlw
ZSA9PSAib2ZmZXIiKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0
YXRlLCAiaGF2ZS1yZW1vdGUtb2ZmZXIiLCAiUmVtb3RlIG9mZmVyIik7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIsICJTUkQgd29y
a2VkIik7CisgICAgICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm9ubWVz
c2FnZSBub3QgcmFjaW5nIHdpdGggbmVnb3RpYXRpb25uZWVkZWQiKTsKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIm9ubWVzc2Fn
ZSBTTEQgd29ya2VkIik7CisgICAgICAgICAgICBzZW5kKG90aGVyLCB7ZGVzY3JpcHRpb246IHBj
LmxvY2FsRGVzY3JpcHRpb259KTsKKyAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIkFuc3dlciB3
YXMgc2V0Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAi
c3RhYmxlIiwgImFuc3dlcmVkIik7CisgICAgICAgICAgICBwYy5kaXNwYXRjaEV2ZW50KG5ldyBF
dmVudCgibmVnb3RpYXRlZCIpKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAoY2Fu
ZGlkYXRlKSB7CisgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0IHBjLmFkZEljZUNh
bmRpZGF0ZShjYW5kaWRhdGUpOworICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
IGlmICghaWdub3JlT2ZmZXIpIHRocm93IGU7CisgICAgICAgICAgfQorICAgICAgICB9IGVsc2Ug
aWYgKHJ1bikgeworICAgICAgICAgIHNlbmQod2luZG93LnBhcmVudCwge1tydW4uaWRdOiBhd2Fp
dCBjb21tYW5kc1tydW4uY21kXSgpIHx8IDB9KTsKKyAgICAgICAgfQorICAgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBmYWlsKGUpOworICAgICAgfQorICAgIH07CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICBmYWlsKGUpOworICB9CisgIHJldHVybiBwYzsKK30KKworYXN5bmMgZnVuY3Rpb24gc2V0
dXBQZWVySWZyYW1lKHQsIHBvbGl0ZSkgeworICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3Zl
KCkpOworICBpZnJhbWUuc3JjZG9jID0KKyAgIGA8aHRtbFw+PHNjcmlwdFw+KCR7cGVlci50b1N0
cmluZygpfSkod2luZG93LnBhcmVudCwgJHtwb2xpdGV9KTs8L3NjcmlwdFw+PC9odG1sXD5gOwor
ICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKworICBjb25z
dCBmYWlsQ2F0Y2hlciA9IHQuc3RlcF9mdW5jKCh7ZGF0YX0pID0+CisgICAgICAoImVycm9yIiBp
biBkYXRhKSAmJiBhc3NlcnRfdW5yZWFjaGVkKGBFcnJvciBpbiBpZnJhbWU6ICR7ZGF0YS5lcnJv
cn1gKSk7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZmFpbENhdGNoZXIp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZmFpbENhdGNoZXIpKTsKKyAgYXdhaXQgbmV3IFByb21pc2UociA9PiBpZnJhbWUub25s
b2FkID0gcik7CisgIHJldHVybiBpZnJhbWU7Cit9CisKK2Z1bmN0aW9uIHNldHVwUGVlclRvcExl
dmVsKHQsIG90aGVyLCBwb2xpdGUpIHsKKyAgY29uc3QgcGMgPSBwZWVyKG90aGVyLCBwb2xpdGUs
IHQuc3RlcF9mdW5jKGUgPT4geyB0aHJvdyBlOyB9KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
eyBwYy5jbG9zZSgpOyB3aW5kb3cub25tZXNzYWdlID0gbnVsbDsgfSk7Cit9CisKK2xldCBjb3Vu
dGVyID0gMDsKK2FzeW5jIGZ1bmN0aW9uIHJ1bih0YXJnZXQsIGNtZCkgeworICBjb25zdCBpZCA9
IGByZXN1bHQke2NvdW50ZXIrK31gOworICB0YXJnZXQucG9zdE1lc3NhZ2Uoe3J1bjoge2NtZCwg
aWR9fSwgIioiKTsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZW4oe2RhdGF9KSB7CisgICAgaWYgKCEoaWQgaW4gZGF0
YSkpIHJldHVybjsKKyAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGxp
c3Rlbik7CisgICAgcihkYXRhW2lkXSk7CisgIH0pKTsKK30KKworbGV0IGlmcmFtZTsKK2FzeW5j
IGZ1bmN0aW9uIHNldHVwQUIodCwgcG9saXRlQSwgcG9saXRlQikgeworICBpZnJhbWUgPSBhd2Fp
dCBzZXR1cFBlZXJJZnJhbWUodCwgcG9saXRlQik7CisgIHJldHVybiBzZXR1cFBlZXJUb3BMZXZl
bCh0LCBpZnJhbWUuY29udGVudFdpbmRvdywgcG9saXRlQSk7Cit9Citjb25zdCBydW5BID0gY21k
ID0+IHJ1bih3aW5kb3csIGNtZCk7Citjb25zdCBydW5CID0gY21kID0+IHJ1bihpZnJhbWUuY29u
dGVudFdpbmRvdywgY21kKTsKK2NvbnN0IHJ1bkJvdGggPSAoY21kQSwgY21kQiA9IGNtZEEpID0+
IFByb21pc2UuYWxsKFtydW5BKGNtZEEpLCBydW5CKGNtZEIpXSk7CisKK2FzeW5jIGZ1bmN0aW9u
IHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGYsIG5hbWUpIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIHRydWUsIGZhbHNlKSksIG5hbWUpOworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNldHVwQUIodCwgZmFsc2UsIHRydWUpKSwK
KyAgICAgICAgICAgICAgIGAke25hbWV9IHdpdGggcm9sZXMgcmV2ZXJzZWRgKTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVh
ci5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0
cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZWYzN2Q2
YjI4NGE5Y2NlYWM2YTFhMDM0YWMxYWQwZjFjNDJhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3Ry
ZXNzIGdsYXJlIGxpbmVhciBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJl
bnQgc2lnbmFsaW5nIHN0YXRlCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJl
IGxpbmVhciB3aXRoIHJvbGVzIHJldmVyc2VkIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlm
cmFtZTogSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdp
dGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxp
bmVhci5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3Mt
Z2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4YmRmMjJlMmRlNTNhMGQyODI2
MzE1MGNkODNmNWQ5NTRiNmQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMp
ID0+IHsKKyAgY29uc3QgcHMgPSBbXTsKKyAgZm9yIChsZXQgaSA9IDEwOyBpID4gMDsgaS0tKSB7
CisgICAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKKyAgfQorICBwcy5wdXNoKHJ1bkJv
dGgoImFkZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChwcyk7CisgIGNvbnN0
IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOworICBh
c3NlcnRfZXF1YWxzKG51bUEsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOworICBh
c3NlcnRfZXF1YWxzKG51bUIsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOworfSwg
IlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciIpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVz
cy1nbGFyZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI2ZTA3MjA3OTM2ODFiMGRj
ZDg5YTExNGQ4MjcxNzY0N2E4NzI2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBl
cmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDQgQEAKKworRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBEZXNjcmlw
dGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlCitGQUlM
IFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNz
ZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFj
aGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1u
ZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEzNGViMjAw
NjM2NmNhYzYxYzcxOTBiOGRjMTExNDRkMDY4MTMzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwKQEAgLTAs
MCArMSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEg
bmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0
LCBwYykgPT4geworICBjb25zdCBwcyA9IFtdOworICBmb3IgKGxldCBpID0gMTA7IGkgPiAwOyBp
LS0pIHsKKyAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICAgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgaSAtIDEpKTsKKyAgfQorICBwcy5w
dXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICBhd2FpdCBQcm9taXNlLmFsbChwcyk7
CisgIGNvbnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVy
cyIpOworICBhc3NlcnRfZXF1YWxzKG51bUEsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUg
QSIpOworICBhc3NlcnRfZXF1YWxzKG51bUIsIDIyLCAiMjIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUg
QiIpOworfSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIik7Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50
eHQKaW5kZXggNmQwM2MwZTU2YmYzYWUwZDhlYTAzZDI1YTNhMTU4YzhkOTFjZjcxZS4uMjM0MjZm
MTcwYjM2ODdlMmNhZjkxMGM4N2YyOGNmZjFkYmE4MTRiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTMsOCArMyw0IEBA
IFBBU1MgUGVyZmVjdCBuZWdvdGlhdGlvbiBzZXR1cCBjb25uZWN0cwogUEFTUyBQZXJmZWN0IG5l
Z290aWF0aW9uIHNldHVwIGNvbm5lY3RzIHdpdGggcm9sZXMgcmV2ZXJzZWQKIEZBSUwgUGVyZmVj
dCBuZWdvdGlhdGlvbiBnbGFyZSBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1
cnJlbnQgc2lnbmFsaW5nIHN0YXRlCiBGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gZ2xhcmUgd2l0
aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFs
aWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQg
c2lnbmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBQZXJmZWN0IG5l
Z290aWF0aW9uIHN0cmVzcyBnbGFyZSBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRo
IGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlCi1GQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNz
IGdsYXJlIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZy
YW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0
aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKLUZBSUwg
UGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIERlc2NyaXB0aW9uIHR5cGUg
aW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKLUZBSUwgUGVyZmVjdCBu
ZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0
X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRp
b24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFjaGVk
IHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdv
dGlhdGlvbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRw
cy5odG1sCmluZGV4IGFkMjcyNWMzM2NhNjZiMzAzOTU5ZjMyZDEwN2FlNTE2YmFkZTRhNjEuLmQw
MWIxMTYxNjI2MzY2MWU3MjFkNDQ0NTEyMTU5MzFlYThlNGYzYzEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1w
ZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKQEAgLTQsMTQ4ICs0LDEwIEBACiA8dGl0bGU+
PC90aXRsZT4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKLWZ1bmN0aW9uIHBlZXIo
b3RoZXIsIHBvbGl0ZSwgZmFpbCA9IG51bGwpIHsKLSAgY29uc3Qgc2VuZCA9ICh0Z3QsIG1zZykg
PT4gdGd0LnBvc3RNZXNzYWdlKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobXNnKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKiIpOwotICBpZiAoIWZh
aWwpIGZhaWwgPSBlID0+IHNlbmQod2luZG93LnBhcmVudCwge2Vycm9yOiBgJHtlLm5hbWV9OiAk
e2UubWVzc2FnZX1gfSk7Ci0gIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0K
LSAgaWYgKCF3aW5kb3cuYXNzZXJ0X2VxdWFscykgewotICAgIHdpbmRvdy5hc3NlcnRfZXF1YWxz
ID0gKGEsIGIsIG1zZykgPT4gYSA9PT0gYiB8fAotICAgICAgICBmYWlsKG5ldyBFcnJvcihgJHtt
c2d9IGV4cGVjdGVkICR7Yn0gYnV0IGdvdCAke2F9YCkpOwotICB9Ci0KLSAgY29uc3QgY29tbWFu
ZHMgPSB7Ci0gICAgYXN5bmMgYWRkVHJhbnNjZWl2ZXIoKSB7Ci0gICAgICBjb25zdCB0cmFuc2Nl
aXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOwotICAgICAgYXdhaXQgbmV3IFByb21p
c2UociA9PiBwYy5hZGRFdmVudExpc3RlbmVyKCJuZWdvdGlhdGVkIiwgciwge29uY2U6IHRydWV9
KSk7Ci0gICAgICBpZiAoIXRyYW5zY2VpdmVyLmN1cnJlbnREaXJlY3Rpb24pIHsKLSAgICAgICAg
Ly8gTWlnaHQgaGF2ZSBqdXN0IG1pc3NlZCB0aGUgbmVnb3RpYXRpb24gdHJhaW4uIENhdGNoIG5l
eHQgb25lLgotICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVu
ZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKLSAgICAgIH0KLSAgICAgIGFzc2Vy
dF9lcXVhbHModHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbiwgInNlbmRvbmx5IiwgImhhdmUg
ZGlyZWN0aW9uIik7Ci0gICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOwot
ICAgIH0sCi0gICAgYXN5bmMgc2ltcGxlQ29ubmVjdCgpIHsKLSAgICAgIGNvbnN0IHAgPSBjb21t
YW5kcy5hZGRUcmFuc2NlaXZlcigpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2UociA9PiBwYy5v
bmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKSA9
PiBwYy5pY2VDb25uZWN0aW9uU3RhdGUgPT0gImNvbm5lY3RlZCIgJiYgcigpKTsKLSAgICAgIHJl
dHVybiBhd2FpdCBwOwotICAgIH0sCi0gICAgYXN5bmMgZ2V0TnVtVHJhbnNjZWl2ZXJzKCkgewot
ICAgICAgcmV0dXJuIHBjLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aDsKLSAgICB9LAotICB9Owot
Ci0gIHRyeSB7Ci0gICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwgKHtjYW5k
aWRhdGV9KSA9PiBzZW5kKG90aGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2FuZGlkYXRlfSkpOwotICAgIGxldCBtYWtp
bmdPZmZlciA9IGZhbHNlLCBpZ25vcmVPZmZlciA9IGZhbHNlOwotICAgIHBjLmFkZEV2ZW50TGlz
dGVuZXIoIm5lZ290aWF0aW9ubmVlZGVkIiwgYXN5bmMgKCkgPT4gewotICAgICAgdHJ5IHsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJuZWdvdGlh
dGlvbm5lZWRlZCBhbHdheXMgZmlyZXMgaW4gc3RhYmxlIHN0YXRlIik7Ci0gICAgICAgIGFzc2Vy
dF9lcXVhbHMobWFraW5nT2ZmZXIsIGZhbHNlLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IGFscmVh
ZHkgaW4gcHJvZ3Jlc3MiKTsKLSAgICAgICAgbWFraW5nT2ZmZXIgPSB0cnVlOwotICAgICAgICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMocGMu
c2lnbmFsaW5nU3RhdGUsICJoYXZlLWxvY2FsLW9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIG5v
dCByYWNpbmcgd2l0aCBvbm1lc3NhZ2UiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5sb2Nh
bERlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIsICJuZWdvdGlhdGlvbm5lZWRlZCBTTEQgd29ya2Vk
Iik7Ci0gICAgICAgIHNlbmQob3RoZXIsIHtkZXNjcmlwdGlvbjogcGMubG9jYWxEZXNjcmlwdGlv
bn0pOwotICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBmYWlsKGUpOwotICAgICAgfSBmaW5h
bGx5IHsKLSAgICAgICAgbWFraW5nT2ZmZXIgPSBmYWxzZTsKLSAgICAgIH0KLSAgICB9KTsKLSAg
ICB3aW5kb3cub25tZXNzYWdlID0gYXN5bmMgKHtkYXRhOiB7ZGVzY3JpcHRpb24sIGNhbmRpZGF0
ZSwgcnVufX0pID0+IHsKLSAgICAgIHRyeSB7Ci0gICAgICAgIGlmIChkZXNjcmlwdGlvbikgewot
ICAgICAgICAgIGlnbm9yZU9mZmVyID0gZGVzY3JpcHRpb24udHlwZSA9PSAib2ZmZXIiICYmICFw
b2xpdGUgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAobWFraW5nT2ZmZXIgfHwgcGMuc2ln
bmFsaW5nU3RhdGUgIT0gInN0YWJsZSIpOwotICAgICAgICAgIGlmIChpZ25vcmVPZmZlcikgewot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgIH0KLSAgICAgICAgICBhd2FpdCBwYy5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Ci0gICAgICAgICAgaWYgKGRlc2NyaXB0aW9u
LnR5cGUgPT0gIm9mZmVyIikgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxp
bmdTdGF0ZSwgImhhdmUtcmVtb3RlLW9mZmVyIiwgIlJlbW90ZSBvZmZlciIpOwotICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiLCAiU1JE
IHdvcmtlZCIpOwotICAgICAgICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigpOwot
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgInN0YWJsZSIsICJv
bm1lc3NhZ2Ugbm90IHJhY2luZyB3aXRoIG5lZ290aWF0aW9ubmVlZGVkIik7Ci0gICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJvbm1l
c3NhZ2UgU0xEIHdvcmtlZCIpOwotICAgICAgICAgICAgc2VuZChvdGhlciwge2Rlc2NyaXB0aW9u
OiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMocGMucmVtb3RlRGVzY3JpcHRpb24udHlwZSwgImFuc3dlciIsICJBbnN3
ZXIgd2FzIHNldCIpOwotICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0
ZSwgInN0YWJsZSIsICJhbnN3ZXJlZCIpOwotICAgICAgICAgICAgcGMuZGlzcGF0Y2hFdmVudChu
ZXcgRXZlbnQoIm5lZ290aWF0ZWQiKSk7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYg
KGNhbmRpZGF0ZSkgewotICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBhd2FpdCBwYy5hZGRJ
Y2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKLSAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
ICAgICBpZiAoIWlnbm9yZU9mZmVyKSB0aHJvdyBlOwotICAgICAgICAgIH0KLSAgICAgICAgfSBl
bHNlIGlmIChydW4pIHsKLSAgICAgICAgICBzZW5kKHdpbmRvdy5wYXJlbnQsIHtbcnVuLmlkXTog
YXdhaXQgY29tbWFuZHNbcnVuLmNtZF0oKSB8fCAwfSk7Ci0gICAgICAgIH0KLSAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgZmFpbChlKTsKLSAgICAgIH0KLSAgICB9OwotICB9IGNhdGNoIChl
KSB7Ci0gICAgZmFpbChlKTsKLSAgfQotICByZXR1cm4gcGM7Ci19Ci0KLWFzeW5jIGZ1bmN0aW9u
IHNldHVwUGVlcklmcmFtZSh0LCBwb2xpdGUpIHsKLSAgY29uc3QgaWZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4gaWZyYW1lLnJl
bW92ZSgpKTsKLSAgaWZyYW1lLnNyY2RvYyA9Ci0gICBgPGh0bWxcPjxzY3JpcHRcPigke3BlZXIu
dG9TdHJpbmcoKX0pKHdpbmRvdy5wYXJlbnQsICR7cG9saXRlfSk7PC9zY3JpcHRcPjwvaHRtbFw+
YDsKLSAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0KLSAg
Y29uc3QgZmFpbENhdGNoZXIgPSB0LnN0ZXBfZnVuYygoe2RhdGF9KSA9PgotICAgICAgKCJlcnJv
ciIgaW4gZGF0YSkgJiYgYXNzZXJ0X3VucmVhY2hlZChgRXJyb3IgaW4gaWZyYW1lOiAke2RhdGEu
ZXJyb3J9YCkpOwotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZhaWxDYXRj
aGVyKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGZhaWxDYXRjaGVyKSk7Ci0gIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gaWZyYW1l
Lm9ubG9hZCA9IHIpOwotICByZXR1cm4gaWZyYW1lOwotfQotCi1mdW5jdGlvbiBzZXR1cFBlZXJU
b3BMZXZlbCh0LCBvdGhlciwgcG9saXRlKSB7Ci0gIGNvbnN0IHBjID0gcGVlcihvdGhlciwgcG9s
aXRlLCB0LnN0ZXBfZnVuYyhlID0+IHsgdGhyb3cgZTsgfSkpOwotICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHsgcGMuY2xvc2UoKTsgd2luZG93Lm9ubWVzc2FnZSA9IG51bGw7IH0pOwotfQotCi1sZXQg
Y291bnRlciA9IDA7Ci1hc3luYyBmdW5jdGlvbiBydW4odGFyZ2V0LCBjbWQpIHsKLSAgY29uc3Qg
aWQgPSBgcmVzdWx0JHtjb3VudGVyKyt9YDsKLSAgdGFyZ2V0LnBvc3RNZXNzYWdlKHtydW46IHtj
bWQsIGlkfX0sICIqIik7Ci0gIHJldHVybiBuZXcgUHJvbWlzZShyID0+IHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY3Rpb24gbGlzdGVuKHtkYXRhfSkgewotICAgIGlmICghKGlkIGlu
IGRhdGEpKSByZXR1cm47Ci0gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCBsaXN0ZW4pOwotICAgIHIoZGF0YVtpZF0pOwotICB9KSk7Ci19Ci0KLWxldCBpZnJhbWU7Ci1h
c3luYyBmdW5jdGlvbiBzZXR1cEFCKHQsIHBvbGl0ZUEsIHBvbGl0ZUIpIHsKLSAgaWZyYW1lID0g
YXdhaXQgc2V0dXBQZWVySWZyYW1lKHQsIHBvbGl0ZUIpOwotICByZXR1cm4gc2V0dXBQZWVyVG9w
TGV2ZWwodCwgaWZyYW1lLmNvbnRlbnRXaW5kb3csIHBvbGl0ZUEpOwotfQotY29uc3QgcnVuQSA9
IGNtZCA9PiBydW4od2luZG93LCBjbWQpOwotY29uc3QgcnVuQiA9IGNtZCA9PiBydW4oaWZyYW1l
LmNvbnRlbnRXaW5kb3csIGNtZCk7Ci1jb25zdCBydW5Cb3RoID0gKGNtZEEsIGNtZEIgPSBjbWRB
KSA9PiBQcm9taXNlLmFsbChbcnVuQShjbWRBKSwgcnVuQihjbWRCKV0pOwotCi1hc3luYyBmdW5j
dGlvbiBwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhmLCBuYW1lKSB7Ci0gIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IGYodCwgYXdhaXQgc2V0dXBBQih0LCB0cnVlLCBmYWxzZSkpLCBuYW1lKTsKLSAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIGZhbHNlLCB0cnVl
KSksCi0gICAgICAgICAgICAgICBgJHtuYW1lfSB3aXRoIHJvbGVzIHJldmVyc2VkYCk7Ci19Ci0K
IHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4gewogICBhc3NlcnRfZXF1
YWxzKGF3YWl0IHJ1bkEoInNpbXBsZUNvbm5lY3QiKSwgMSwgIm9uZSB0cmFuc2NlaXZlciIpOwog
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJ1bkIoImFkZFRyYW5zY2VpdmVyIiksIDIsICJ0d28gdHJh
bnNjZWl2ZXJzIik7CkBAIC0xNTcsMzAgKzE5LDQgQEAgcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMo
YXN5bmMgKHQsIHBjKSA9PiB7CiAgIGFzc2VydF9lcXVhbHMobnVtQSwgMiwgInR3byB0cmFuc2Nl
aXZlcnMgb24gc2lkZSBBIik7CiAgIGFzc2VydF9lcXVhbHMobnVtQiwgMiwgInR3byB0cmFuc2Nl
aXZlcnMgb24gc2lkZSBCIik7CiB9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSIpOwotCi1w
cm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsKLSAgY29uc3QgcHMgPSBb
XTsKLSAgZm9yIChsZXQgaSA9IDIwOyBpID4gMDsgaS0tKSB7Ci0gICAgcHMucHVzaChydW5Cb3Ro
KCJhZGRUcmFuc2NlaXZlciIpKTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90
aW1lb3V0KHIsIGkgLSAxKSk7Ci0gIH0KLSAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZl
ciIpKTsKLSAgYXdhaXQgUHJvbWlzZS5hbGwocHMpOwotICBjb25zdCBbbnVtQSwgbnVtQl0gPSBh
d2FpdCBydW5Cb3RoKCJnZXROdW1UcmFuc2NlaXZlcnMiKTsKLSAgYXNzZXJ0X2VxdWFscyhudW1B
LCA0MiwgIjQyIHRyYW5zY2VpdmVycyBvbiBzaWRlIEEiKTsKLSAgYXNzZXJ0X2VxdWFscyhudW1C
LCA0MiwgIjQyIHRyYW5zY2VpdmVycyBvbiBzaWRlIEIiKTsKLX0sICJQZXJmZWN0IG5lZ290aWF0
aW9uIHN0cmVzcyBnbGFyZSIpOwotCi1wcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwg
cGMpID0+IHsKLSAgY29uc3QgcHMgPSBbXTsKLSAgZm9yIChsZXQgaSA9IDIwOyBpID4gMDsgaS0t
KSB7Ci0gICAgcHMucHVzaChydW5Cb3RoKCJhZGRUcmFuc2NlaXZlciIpKTsKLSAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDApKTsKLSAgfQotICBwcy5wdXNoKHJ1
bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICBhd2FpdCBQcm9taXNlLmFsbChwcyk7Ci0gIGNv
bnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOwot
ICBhc3NlcnRfZXF1YWxzKG51bUEsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOwot
ICBhc3NlcnRfZXF1YWxzKG51bUIsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOwot
fSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIGxpbmVhciIpOwogPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci1leHBlY3Rl
ZC50eHQKaW5kZXggZTg3MWExYTljMDcyMjc4ZTBhYzFiNzY3ZjdlMzkwNDBkODUxNWI0Ny4uNmQ2
MDg3MWU0OTk2ZTlhY2M0YjczZWZlMzk2ZDVlYjU1NWRhZTJjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0
LDUgQEAgUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikgd2l0aCBtPSBzZWN0aW9uIGFu
ZCBubyBleGlzdGluZyB0cmFuc2NlaXZlciBzaG8KIEZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbihy
b2xsYmFjaykgc2hvdWxkIHVuc2V0IHRyYW5zY2VpdmVyLm1pZCBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVz
Y3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIK
IEZBSUwgc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIG9ubHkgdW5zZXQgdHJh
bnNjZWl2ZXIgbWlkcyBhc3NvY2lhdGVkIHdpdGggY3VycmVudCByb3VuZCBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJv
cjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBz
dGF0ZSIKIEZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24ocm9sbGJhY2spIHNob3VsZCByZW1vdmUg
bmV3bHkgY3JlYXRlZCB0cmFuc2NlaXZlciBmcm9tIHRyYW5zY2VpdmVyIGxpc3QgcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZFN0YXRl
RXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxp
bmcgc3RhdGUiCi1QQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzdG9wIHRoZSB0cmFu
c2NlaXZlciBpZiBpdHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQKK1BBU1Mg
c2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIHNldCB0cmFuc2NlaXZlciBpbmFjdGl2ZSBpZiBp
dHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNl
dERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLmh0bWwKaW5kZXggYTgwNTZkNDczY2Q3YWQzYTNiZGQz
NDhiYzY4OWFhYjc1NmZhYjc3OC4uOWJiYWIzMGQ1NmUyMmYxZjExODQ2ZjhkMmY2Y2Y2NTQ2MzE4
MzJmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci5odG1sCkBA
IC0yNDgsMTggKzI0OCwxNCBAQAogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogCi0gICAg
YXNzZXJ0X2ZhbHNlKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wcGVkLCAnVHJhbnNjZWl2
ZXIgaXMgbm90IHN0b3BwZWQnKTsKLQogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcik7CiAgICAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKICAgICBjb25z
dCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAKICAgICBhd2FpdCBwYzEuc2V0
UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAotICAgIGFzc2VydF90cnVlKHBjMS5nZXRUcmFu
c2NlaXZlcnMoKVswXS5zdG9wcGVkLCAnVHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCcpOwotICAgIGFz
c2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2dldFJlY2VpdmVycyBk
b2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAg
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAwLCAnZ2V0U2VuZGVycyBk
b2VzIG5vdCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyJyk7Ci0gIH0s
ICdzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgc3RvcCB0aGUgdHJhbnNjZWl2ZXIgaWYgaXRz
IGNvcnJlc3BvbmRpbmcgbSBzZWN0aW9uIGlzIHJlamVjdGVkJyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uY3VycmVudERpcmVjdGlvbiwgJ2luYWN0aXZlJywg
J0Egc3RvcHBlZCBtLWxpbmUgc2hvdWxkIGdpdmUgYW4gaW5hY3RpdmUgdHJhbnNjZWl2ZXInKTsK
KyAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzZXQgdHJhbnNjZWl2ZXIgaW5hY3Rp
dmUgaWYgaXRzIGNvcnJlc3BvbmRpbmcgbSBzZWN0aW9uIGlzIHJlamVjdGVkJyk7CiAKICAgLyoK
ICAgICBUT0RPCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1v
ZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZl
ci1leHBlY3RlZC50eHQKaW5kZXggOWMyYTM2MjdhNmFiNWJlNzFmYWFmYTQxNTZjOWFhYjliZTY3
MDhlMy4uNjdjYmM4ZGEzMWU2NzY4ODA4OTU1MDZjZDNlZGY5MDcxZGU5Zjc5OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dApA
QCAtMTMsNCArMTMsNSBAQCBOT1RSVU4gTmFpdmUgcm9sbGJhY2sgYXBwcm9hY2ggaXMgbm90IGds
YXJlLXByb29mIChjb250cm9sKQogTk9UUlVOIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSBm
cm9tIGhhdmUtbG9jYWwtb2ZmZXIgaXMgZ2xhcmUtcHJvb2YKIE5PVFJVTiBzZXRSZW1vdGVEZXNj
cmlwdGlvbihpbnZhbGlkT2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBkb2VzIG5vdCB1bmRv
IHJvbGxiYWNrCiBOT1RSVU4gcmVwZWF0ZWQgc1JEKG9mZmVyKSB3b3JrcworTk9UUlVOIHNSRChy
ZW9mZmVyKSB3aXRoIGNhbmRpZGF0ZXMgYW5kIHdpdGhvdXQgdHJpY2tsZSB3b3JrcwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXIuaHRtbAppbmRleCBiNDcwMjQ0NjYx
MzI1NWRhZWM3ZGI1MzI1ZjY0MDg5YTkxN2ZkZWU5Li5hNTBlOTY5NjM3Mjk0YWVjOGVlYWZlNjgy
ZGE1ZDI1OGUyYTkwZGU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlw
dGlvbi1vZmZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9m
ZmVyLmh0bWwKQEAgLTMyNSw0ICszMjUsMTYgQEAKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24oYW5zd2VyKTsKICAgfSwgJ3JlcGVhdGVkIHNSRChvZmZlcikgd29ya3MnKTsKIAor
ICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAg
Y29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisgICAgcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICAg
IGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICAgIGF3YWl0IHdhaXRGb3JJ
Y2VHYXRoZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxldGUnXSk7CisgICAgYXdhaXQgZXhjaGFuZ2VP
ZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgd2FpdEZvckljZVN0YXRlQ2hhbmdlKHBj
MiwgWydjb25uZWN0ZWQnLCAnY29tcGxldGVkJ10pOworICB9LCAnc1JEKHJlb2ZmZXIpIHdpdGgg
Y2FuZGlkYXRlcyBhbmQgd2l0aG91dCB0cmlja2xlIHdvcmtzJyk7CisKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXZpZGVvRGV0ZWN0b3JUZXN0Lmh0bWwKaW5kZXggNzFmZmZkYzY4NjAzNDY1YjIyYjMyZGE3Mzhh
YjVmZWRhYjM3OGY0MS4uNjc4NmJkNDllZGU2OGVhYTA3NWZkYjJkMTI3ZDQwNzRlNWU5MDAzNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCkBAIC0yMiwzOCArMjIsMzggQEAKIC8vIHRo
ZSB0ZXN0IHRpbWVzIG91dC4KIAogYXN5bmMgZnVuY3Rpb24gc2lnbmFsU2V0dGxlbWVudFRpbWUo
dCwgdiwgc2VuZGVyLCBzaWduYWwsIGJhY2tncm91bmRUcmFjaykgewotICBjb25zdCBkZXRlY3Rp
b25TdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IHNpZ25hbH19
KTsKKyAgY29uc3QgZGV0ZWN0aW9uU3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVv
OiB7c2lnbmFsfX0pOwogICBjb25zdCBbZGV0ZWN0aW9uVHJhY2tdID0gZGV0ZWN0aW9uU3RyZWFt
LmdldFRyYWNrcygpOwotICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKGRldGVjdGlvblRyYWNr
KTsKLSAgY29uc3QgZnJhbWVzQmVmb3JlID0gdi5nZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgpLnRv
dGFsVmlkZW9GcmFtZXM7Ci0gIGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCBzaWduYWwpOwotICBj
b25zdCBmcmFtZXNBZnRlciA9IHYuZ2V0VmlkZW9QbGF5YmFja1F1YWxpdHkoKS50b3RhbFZpZGVv
RnJhbWVzOwotICBhd2FpdCBzZW5kZXIucmVwbGFjZVRyYWNrKGJhY2tncm91bmRUcmFjayk7Ci0g
IGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCAxMDApOwotICBkZXRlY3Rpb25TdHJlYW0uZ2V0VHJh
Y2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpOwotICByZXR1cm4gKGZyYW1lc0Fm
dGVyIC0gZnJhbWVzQmVmb3JlKTsKKyAgdHJ5IHsKKyAgICBhd2FpdCBzZW5kZXIucmVwbGFjZVRy
YWNrKGRldGVjdGlvblRyYWNrKTsKKyAgICBjb25zdCBmcmFtZXNCZWZvcmUgPSB2LmdldFZpZGVv
UGxheWJhY2tRdWFsaXR5KCkudG90YWxWaWRlb0ZyYW1lczsKKyAgICBhd2FpdCBkZXRlY3RTaWdu
YWwodCwgdiwgc2lnbmFsKTsKKyAgICBjb25zdCBmcmFtZXNBZnRlciA9IHYuZ2V0VmlkZW9QbGF5
YmFja1F1YWxpdHkoKS50b3RhbFZpZGVvRnJhbWVzOworICAgIGF3YWl0IHNlbmRlci5yZXBsYWNl
VHJhY2soYmFja2dyb3VuZFRyYWNrKTsKKyAgICBhd2FpdCBkZXRlY3RTaWduYWwodCwgdiwgMTAw
KTsKKyAgICByZXR1cm4gZnJhbWVzQWZ0ZXIgLSBmcmFtZXNCZWZvcmU7CisgIH0gZmluYWxseSB7
CisgICAgZGV0ZWN0aW9uVHJhY2suc3RvcCgpOworICB9CiB9CiAKIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CiAg
IHYuYXV0b3BsYXkgPSB0cnVlOwogICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CiAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CiAgIGNvbnN0IHN0cmVhbTEg
PSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWw6IDEwMH19KTsKLSAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBzdHJlYW0xLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2su
c3RvcCgpKSk7CiAgIGNvbnN0IFt0cmFjazFdID0gc3RyZWFtMS5nZXRUcmFja3MoKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiB0cmFjazEuc3RvcCgpKTsKKwogICBjb25zdCBzZW5kZXIgPSBwYzEu
YWRkVHJhY2sodHJhY2sxKTsKLSAgcGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYygoZSkgPT4gewot
ICAgIHYuc3JjT2JqZWN0ID0gbmV3IE1lZGlhU3RyZWFtKFtlLnRyYWNrXSk7Ci0gIH0pOwotICBj
b25zdCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAg
IHYuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVkbWV0YWRhdGEnLCByZXNvbHZlKTsKLSAgfSk7Cisg
IGNvbnN0IGhhdmVUcmFja0V2ZW50ID0gbmV3IFByb21pc2UociA9PiBwYzIub250cmFjayA9IHIp
OwogICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOwotICBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjMSwgcGMyKTsKLSAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgdi5zcmNPYmplY3QgPSBuZXcgTWVkaWFTdHJl
YW0oWyhhd2FpdCBoYXZlVHJhY2tFdmVudCkudHJhY2tdKTsKKyAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiB2Lm9ubG9hZGVkbWV0YWRhdGEgPSByKTsKICAgLy8gVGhlIGJhc2ljIHNpZ25hbCBpcyBh
IHRyYWNrIHdpdGggc2lnbmFsIDEwMC4gV2UgcmVwbGFjZSB0aGlzCiAgIC8vIHdpdGggdHJhY2tz
IHdpdGggc2lnbmFsIGZyb20gMCB0byAyNTUgYW5kIHNlZSBpZiB0aGV5IGFyZSBhbGwKICAgLy8g
cmVsaWFibHkgZGV0ZWN0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjg5NjYwMTNhZjI0NzllNzQxNTAyMjMzOTk1YjBiZWI5NTBlOTM3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBSVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQgY29uc3RydWN0
ZWQgZnJvbSBpbml0IHBhcmFtZXRlcnMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJv
ckV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NDM0Y2ZkMjhiN2ViNzYxZGYxYzExNTcxZmE3YzUwY2U1ZjMyYmJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3Rlc3QoKCkg
PT4geworICBpbml0ID0geworICAgIGFkZHJlc3M6ICIxNjguMy40LjUiLAorICAgIHBvcnQ6IDQ3
MTEsCisgICAgdXJsOiAidHVybjp0dXJuLmV4YW1wbGUub3JnIiwKKyAgICBlcnJvckNvZGU6IDcw
MywKKyAgICBlcnJvclRleHQ6ICJUZXN0IGVycm9yIgorICB9OworICBldmVudCA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQoJ3R5cGUnLCBpbml0KTsKKyAgYXNzZXJ0X2VxdWFs
cyhldmVudC50eXBlLCAndHlwZScpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50LmFkZHJlc3MsICcx
NjguMy40LjUnKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudC5wb3J0LCA0NzExKTsKKyAgYXNzZXJ0
X2VxdWFscyhldmVudC51cmwsICJ0dXJuOnR1cm4uZXhhbXBsZS5vcmciKTsKKyAgYXNzZXJ0X2Vx
dWFscyhldmVudC5lcnJvckNvZGUsIDcwMyk7CisgIGFzc2VydF9lcXVhbHMoZXZlbnQuZXJyb3JU
ZXh0LCAiVGVzdCBlcnJvciIpOworfSwgJ1JUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBj
b25zdHJ1Y3RlZCBmcm9tIGluaXQgcGFyYW1ldGVycycpOworCis8L3NjcmlwdD4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29k
aW5ncy5odG1sCmluZGV4IDUzOWIyNjkyODA2OTM0MjU0YzRlYzRiOGQ4YmIxNGVmMTI5NjIwN2Qu
LmUxYTZlNjI1Mzc5ZWYxZjZhODc1NThhNzQ0ZmMxMzY0Yzg4OTY0ODEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBh
cmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbApA
QCAtMTIwLDcgKzEyMCw2IEBACiAgICAgICBzZW5kRW5jb2RpbmdzOiBbewogICAgICAgICBhY3Rp
dmU6IGZhbHNlLAogICAgICAgICBtYXhCaXRyYXRlOiA4LAotICAgICAgICBtYXhGcmFtZXJhdGU6
IDI1LAogICAgICAgICByaWQ6ICdmb28nCiAgICAgICB9XQogICAgIH0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcwppbmRleCAxN2VjZmJh
Zjk5ZThmZjEzMzM3M2YxNDg3YTI4MmRiYWFiNzU2MmY2Li5kNzY1M2MzYThhZmJmZTYwYzdlZWI2
NGZlNTBiYTI1MGMyNzFjZTQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWhlbHBlci5qcwpAQCAtNTAsNiArNTAsMTEgQEAgYXN5bmMgZnVuY3Rpb24g
ZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIGNhbGxlcikgewogZnVuY3Rpb24gdmFsaWRhdGVTZW5k
ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSk7
CiAKKyAgYXNzZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnZW5jb2RpbmdzJyk7CisgIGZvcihjb25z
dCBlbmNvZGluZyBvZiBwYXJhbS5lbmNvZGluZ3MpIHsKKyAgICB2YWxpZGF0ZUVuY29kaW5nUGFy
YW1ldGVycyhlbmNvZGluZyk7CisgIH0KKwogICBhc3NlcnRfbm90X2VxdWFscyhwYXJhbS50cmFu
c2FjdGlvbklkLCB1bmRlZmluZWQsCiAgICAgJ0V4cGVjdCBzZW5kZXIgcGFyYW0udHJhbnNhY3Rp
b25JZCB0byBiZSBzZXQnKTsKIApAQCAtMTAxLDIwICsxMDYsMTAgQEAgZnVuY3Rpb24gdmFsaWRh
dGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0pIHsKICAgICBzZXF1ZW5jZTxSVENSdHBDb2Rl
Y1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7CiAgIH07CiAKLSAgZW51bSBSVENEZWdyYWRh
dGlvblByZWZlcmVuY2UgewotICAgICJtYWludGFpbi1mcmFtZXJhdGUiLAotICAgICJtYWludGFp
bi1yZXNvbHV0aW9uIiwKLSAgICAiYmFsYW5jZWQiCi0gIH07CiAgKi8KIGZ1bmN0aW9uIHZhbGlk
YXRlUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICBhc3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxk
KHBhcmFtLCAndHJhbnNhY3Rpb25JZCcpOwogCi0gIGFzc2VydF9hcnJheV9maWVsZChwYXJhbSwg
J2VuY29kaW5ncycpOwotICBmb3IoY29uc3QgZW5jb2Rpbmcgb2YgcGFyYW0uZW5jb2RpbmdzKSB7
Ci0gICAgdmFsaWRhdGVFbmNvZGluZ1BhcmFtZXRlcnMoZW5jb2RpbmcpOwotICB9Ci0KICAgYXNz
ZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnaGVhZGVyRXh0ZW5zaW9ucycpOwogICBmb3IoY29uc3Qg
aGVhZGVyRXh0IG9mIHBhcmFtLmhlYWRlckV4dGVuc2lvbnMpIHsKICAgICB2YWxpZGF0ZUhlYWRl
ckV4dGVuc2lvblBhcmFtZXRlcnMoaGVhZGVyRXh0KTsKQEAgLTEzMSwxMyArMTI2LDggQEAgZnVu
Y3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAKIC8qCiAgIGRpY3Rpb25hcnkg
UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzIHsKLSAgICBSVENEdHhTdGF0dXMgICAgICAgIGR0eDsK
ICAgICBib29sZWFuICAgICAgICAgICAgIGFjdGl2ZTsKLSAgICBSVENQcmlvcml0eVR5cGUgICAg
IHByaW9yaXR5OwotICAgIFJUQ1ByaW9yaXR5VHlwZSAgICAgbmV0d29ya1ByaW9yaXR5OwotICAg
IHVuc2lnbmVkIGxvbmcgICAgICAgcHRpbWU7CiAgICAgdW5zaWduZWQgbG9uZyAgICAgICBtYXhC
aXRyYXRlOwotICAgIGRvdWJsZSAgICAgICAgICAgICAgbWF4RnJhbWVyYXRlOwogCiAgICAgW3Jl
YWRvbmx5XQogICAgIERPTVN0cmluZyAgICAgICAgICAgcmlkOwpAQCAtMTQ1LDMxICsxMzUsMTAg
QEAgZnVuY3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgICAgZG91YmxlICAg
ICAgICAgICAgICBzY2FsZVJlc29sdXRpb25Eb3duQnk7CiAgIH07CiAKLSAgZW51bSBSVENEdHhT
dGF0dXMgewotICAgICJkaXNhYmxlZCIsCi0gICAgImVuYWJsZWQiCi0gIH07Ci0KLSAgZW51bSBS
VENQcmlvcml0eVR5cGUgewotICAgICJ2ZXJ5LWxvdyIsCi0gICAgImxvdyIsCi0gICAgIm1lZGl1
bSIsCi0gICAgImhpZ2giCi0gIH07CiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlRW5jb2RpbmdQYXJh
bWV0ZXJzKGVuY29kaW5nKSB7Ci0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKGVuY29kaW5n
LCAnZHR4JywKLSAgICBbJ2Rpc2FibGVkJywgJ2VuYWJsZWQnXSk7Ci0KICAgYXNzZXJ0X29wdGlv
bmFsX2Jvb2xlYW5fZmllbGQoZW5jb2RpbmcsICdhY3RpdmUnKTsKLSAgYXNzZXJ0X29wdGlvbmFs
X2VudW1fZmllbGQoZW5jb2RpbmcsICdwcmlvcml0eScsCi0gICAgWyd2ZXJ5LWxvdycsICdsb3cn
LCAnbWVkaXVtJywgJ2hpZ2gnXSk7Ci0gIGFzc2VydF9vcHRpb25hbF9lbnVtX2ZpZWxkKGVuY29k
aW5nLCAnbmV0d29ya1ByaW9yaXR5JywKLSAgICBbJ3ZlcnktbG93JywgJ2xvdycsICdtZWRpdW0n
LCAnaGlnaCddKTsKLQotICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKGVuY29k
aW5nLCAncHRpbWUnKTsKICAgYXNzZXJ0X29wdGlvbmFsX3Vuc2lnbmVkX2ludF9maWVsZChlbmNv
ZGluZywgJ21heEJpdHJhdGUnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChlbmNv
ZGluZywgJ21heEZyYW1lcmF0ZScpOwogCiAgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQo
ZW5jb2RpbmcsICdyaWQnKTsKICAgYXNzZXJ0X29wdGlvbmFsX251bWJlcl9maWVsZChlbmNvZGlu
ZywgJ3NjYWxlUmVzb2x1dGlvbkRvd25CeScpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFy
YW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dAppbmRleCBmNjY2YWI4YjE4ZDM5NWI5NzE4OGY4OTY5NTQwMDA3ZDM2NWQyOWEwLi4yNjMyNTRk
ZThkNDIzZTRkOGU4MGM4NWQ5ODlhMmZmMWI5MjhiZWIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1n
ZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4
cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCBh
dWRpbyByZWNlaXZlciBhc3NlcnRfdHJ1ZTogRXhwZWN0IGRpY3Rpb25hcnkuZW5jb2RpbmdzIHRv
IGJlIGFycmF5IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIGdldFBhcmFtZXRlcnMoKSB3
aXRoIHZpZGVvIHJlY2VpdmVyIGFzc2VydF90cnVlOiBFeHBlY3QgZGljdGlvbmFyeS5lbmNvZGlu
Z3MgdG8gYmUgYXJyYXkgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgZ2V0UGFyYW1ldGVy
cygpIHdpdGggc2ltdWxjYXN0IHZpZGVvIHJlY2VpdmVyIGFzc2VydF90cnVlOiBFeHBlY3QgZGlj
dGlvbmFyeS5lbmNvZGluZ3MgdG8gYmUgYXJyYXkgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZB
SUwgZ2V0UGFyYW1ldGVycygpIHdpdGggYXVkaW8gcmVjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhw
ZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFpbiBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIg
YnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCB2aWRlbyByZWNl
aXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9i
amVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCitGQUlMIGdldFBhcmFt
ZXRlcnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyByZWNlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBi
dXQgZ290ICJ1bmRlZmluZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbAppbmRleCA0YmUwZTNiOTVlYzQ1YmQ5
NjkzYTRkYTM4YjE0NmM1OGIzNzgxMGY4Li43MDQ3Y2U3ZDFmMzYzYjdkMmUwNmViYmViZWExMTcz
NmFiY2NjZjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sCkBAIC0zNiwxMiArMzYsMTEgQEAKICAgICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRp
bycpOwogICAgIGNvbnN0IGNhbGxlZSA9IGF3YWl0IGRvT2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBw
Yyk7Ci0gICAgY29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF0uZ2V0UGFyYW1l
dGVycygpOworICAgIGNvbnN0IHBhcmFtID0gY2FsbGVlLmdldFRyYW5zY2VpdmVycygpWzBdLnJl
Y2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKICAgICB2YWxpZGF0ZVJlY2VpdmVyUnRwUGFyYW1ldGVy
cyhwYXJhbSk7CiAKICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHBhcmFtLmhlYWRlckV4dGVuc2lv
bnMubGVuZ3RoLCAwKTsKICAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKHBhcmFtLmNvZGVjcy5sZW5n
dGgsIDApOwotICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZW5jb2RpbmdzLmxlbmd0aCwgMSk7CiAg
IH0sICdnZXRQYXJhbWV0ZXJzKCkgd2l0aCBhdWRpbyByZWNlaXZlcicpOwogCiAgIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKQEAgLTQ5LDEyICs0OCwxMSBAQAogICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CiAgICAg
Y29uc3QgY2FsbGVlID0gYXdhaXQgZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKLSAgICBj
b25zdCBwYXJhbSA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKVswXS5nZXRQYXJhbWV0ZXJzKCk7Cisg
ICAgY29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIuZ2V0
UGFyYW1ldGVycygpOwogICAgIHZhbGlkYXRlUmVjZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsK
IAogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uaGVhZGVyRXh0ZW5zaW9ucy5sZW5ndGgs
IDApOwogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uY29kZWNzLmxlbmd0aCwgMCk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGluZ3MubGVuZ3RoLCAxKTsKICAgfSwgJ2dldFBh
cmFtZXRlcnMoKSB3aXRoIHZpZGVvIHJlY2VpdmVyJyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewpAQCAtNjcsMTUgKzY1LDkgQEAKICAgICAgIF0KICAgICB9KTsKICAgICBjb25zdCBj
YWxsZWUgPSBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOwotICAgIGNvbnN0IHBh
cmFtID0gY2FsbGVlLmdldFJlY2VpdmVycygpWzBdLmdldFBhcmFtZXRlcnMoKTsKKyAgICBjb25z
dCBwYXJhbSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci5nZXRQYXJhbWV0
ZXJzKCk7CiAgICAgdmFsaWRhdGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0pOwotCiAgICAg
YXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5oZWFkZXJFeHRlbnNpb25zLmxlbmd0aCwgMCk7CiAg
ICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5jb2RlY3MubGVuZ3RoLCAwKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKHBhcmFtLmVuY29kaW5ncy5sZW5ndGgsIDIsICdsYXllciBjb3VudCBtdXN0IG1h
dGNoJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGluZ3NbMF0ucmlkLCAicmlkMSIs
Ci0gICAgICAnc2ltdWxjYXN0IHJpZHMgbXVzdCBtYXRjaCcpOwotICAgIGFzc2VydF9lcXVhbHMo
cGFyYW0uZW5jb2RpbmdzWzFdLnJpZCwgInJpZDIiLAotICAgICAgJ3NpbXVsY2FzdCByaWRzIG11
c3QgbWF0Y2gnKTsKICAgfSwgJ2dldFBhcmFtZXRlcnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyBy
ZWNlaXZlcicpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJh
Y2stdHdpY2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3
aWNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDRhODZhZDUwYjhiNTVkY2M2NTgw
NzYyM2FiYTg5NzBlOGIyNmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1l
LXRyYWNrLXR3aWNlLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBU
d28gUlRDUnRwU2VuZGVycyBlbmNvZGluZyB0aGUgc2FtZSB0cmFjaworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBT
ZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUt
c2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ODU0M2RhNzBmODM2MGE4
MGY5ZWQwZTYzM2Y1NWYzNWY1N2FhOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2Rl
LXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbApAQCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50
PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworICAvLyBBIGdlbmVyb3Vz
IHRlc3RpbmcgZHVyYXRpb24gdGhhdCB3aWxsIG5vdCB0aW1lIG91dCBvbiBib3RzLgorICBjb25z
dCBrRW5jb2RlRHVyYXRpb25NcyA9IDEwMDAwOworCisgIC8vIFRoZSBjcmFzaCB0aGlzIHRlc3Qg
YWltcyB0byByZXBybyB3YXMgZWFzeSB0byByZXByb2R1Y2UgdXNpbmcgYSBub3JtYWwKKyAgLy8g
Z2V0VXNlck1lZGlhKCkgdHJhY2sgd2hlbiBydW5uaW5nIHRoZSBicm93c2VyIG5vcm1hbGx5LCBl
LmcuIGJ5IG5hdmlnYXRpbmcKKyAgLy8gdG8gaHR0cHM6Ly9qc2ZpZGRsZS5uZXQvaGVuYm9zL2Zj
N2drM3ZlLzExLy4gQnV0IGZvciBzb21lIHJlYXNvbiwgdGhlIGZha2UKKyAgLy8gdHJhY2tzIHJl
dHVybmVkIGJ5IGdldFVzZXJNZWRpYSgpIHdoZW4gaW5zaWRlIHRoaXMgdGVzdGluZyBlbnZpcm9u
bWVudCBoYWQKKyAgLy8gYSBtdWNoIGhhcmRlciB0aW1lIHdpdGggcmVwcm9kdWNpYmlsaXR5Lgor
ICAvLworICAvLyBCeSBjcmVhdGluZyBhIGhpZ2ggRlBTIGNhbnZhcyBjYXB0dXJlIHRyYWNrIHdl
IGFyZSBhYmxlIHRvIHJlcHJvIHJlbGlhYmx5CisgIC8vIGluIHRoaXMgV1BUIGVudmlyb25tZW50
IGFzIHdlbGwuCisgIGZ1bmN0aW9uIHdoaXRlTm9pc2Uod2lkdGgsIGhlaWdodCkgeworICAgIGNv
bnN0IGNhbnZhcyA9CisgICAgICAgIE9iamVjdC5hc3NpZ24oZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnY2FudmFzJyksIHt3aWR0aCwgaGVpZ2h0fSk7CisgICAgY29uc3QgY3R4ID0gY2FudmFzLmdl
dENvbnRleHQoJzJkJyk7CisgICAgY3R4LmZpbGxSZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOwor
ICAgIGNvbnN0IHAgPSBjdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAg
IHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiBkcmF3ICgpIHsKKyAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgcC5kYXRhLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNvbnN0IGNvbG9yID0g
TWF0aC5yYW5kb20oKSAqIDI1NTsKKyAgICAgICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAg
ICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAgICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAg
ICAgIH0KKyAgICAgIGN0eC5wdXRJbWFnZURhdGEocCwgMCwgMCk7CisgICAgICByZXF1ZXN0QW5p
bWF0aW9uRnJhbWUoZHJhdyk7CisgICAgfSk7CisgICAgcmV0dXJuIGNhbnZhcy5jYXB0dXJlU3Ry
ZWFtKCk7CisgIH0KKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEu
Y2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSB3
aGl0ZU5vaXNlKDY0MCwgNDgwKTsKKyAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNr
cygpOworICAgIGNvbnN0IHQxID0gcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIsIHtkaXJlY3Rp
b246InNlbmRvbmx5In0pOworICAgIGNvbnN0IHQyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRl
byIsIHtkaXJlY3Rpb246InNlbmRvbmx5In0pOworICAgIGF3YWl0IHQxLnNlbmRlci5yZXBsYWNl
VHJhY2sodHJhY2spOworICAgIGF3YWl0IHQyLnNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2spOwor
CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwgcGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbigpOworICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihw
YzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
KTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRp
b24pOworCisgICAgLy8gSW4gQ2hyb21pdW0sIGVhY2ggc2VuZGVyIGluc3RhbnRpYXRlcyBhIFZp
ZGVvU3RyZWFtRW5jb2RlciBkdXJpbmcKKyAgICAvLyBuZWdvdGlhdGlvbi4gVGhpcyB0ZXN0IHJl
cHJvZHVjZXMgaHR0cHM6Ly9jcmJ1Zy5jb20vd2VicnRjLzExNDg1IHdoZXJlIGEKKyAgICAvLyBy
YWNlIGNhdXNlcyBhIGNyYXNoIHdoZW4gbXVsdGlwbGUgVmlkZW9TdHJlYW1FbmNvZGVycyBhcmUg
ZW5jb2RpbmcgdGhlCisgICAgLy8gc2FtZSBNZWRpYVN0cmVhbVRyYWNrLgorICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3RpbWVvdXQocmVzb2x2ZSwga0VuY29kZUR1cmF0
aW9uTXMpKTsKKyAgfSwgIlR3byBSVENSdHBTZW5kZXJzIGVuY29kaW5nIHRoZSBzYW1lIHRyYWNr
Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5j
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3Rl
ZC50eHQKaW5kZXggMWU5ZjdjODEzNTc0OGZmMzFiMTU0YjExNjk5NjI4YjJiNDI0OWRjOS4uNDFm
MWZkMzNlZTk2NjA2NDVhYThkMDA4Mjc0NmI2MWZjOWFkNDNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKQEAgLTE2LDQgKzE2LDYgQEAgUEFTUyBz
ZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjbG9jayByYXRlIHNob3Vs
ZCB0aHJvdyBJbnZhbGlkTW8KIFBBU1Mgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZp
ZWQgY29kZWMgY2hhbm5lbCBjb3VudCBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIHBhcmFt
ZXRlcnMgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcgogUEFTUyBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBh
YmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yCitQQVNTIHNl
dENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3JkZXIgb2YgYXVkaW8gY29kZWNzIGlu
IGNyZWF0ZU9mZmVyCitGQUlMIHNldENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3Jk
ZXIgb2YgdmlkZW8gY29kZWNzIGluIGNyZWF0ZU9mZmVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
ICJWUDgiIGJ1dCBnb3QgIkgyNjQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVj
UHJlZmVyZW5jZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbApp
bmRleCBhMDI4MjQ2N2Q4M2NkZTI0NTI2NGM5OTAzNzBmOWIyODZiYzIxYTA5Li5hNWRmNmE5ZDJi
MjE3MTRjMWZkOGZjYWQxMjkzYjQ5NWU5NWZjYjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1z
ZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJl
bmNlcy5odG1sCkBAIC0zLDYgKzMsNyBAQAogPHRpdGxlPlJUQ1J0cFRyYW5zY2VpdmVyLnByb3Rv
dHlwZS5zZXRDb2RlY1ByZWZlcmVuY2VzPC90aXRsZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3RoaXJkX3BhcnR5L3Nk
cC9zZHAuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgJ3VzZSBzdHJpY3QnOwogCkBAIC0yOCw0
MSArMjksNDcgQEAKICAgICAgICAgICBjb2RlY3MgZG9lcyBub3QgZnVsZmlsbCB0aGVzZSByZXF1
aXJlbWVudHMsIHRoZSB1c2VyIGFnZW50IE1VU1QgdGhyb3cKICAgICAgICAgICBhbiBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3IuCiAgICAqLworICAvKgorICAgKiBDaHJvbWl1bSBub3RlOiB0aGlz
IHJlcXVpcmVzIGJ1aWxkIGJvdHMgd2l0aCBIMjY0IHN1cHBvcnQuIFNlZQorICAgKiAgIGh0dHBz
Oi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQor
ICAgKiBmb3IgZGV0YWlscyBvbiBob3cgdG8gZW5hYmxlIHN1cHBvcnQuCisgICAqLwogCi0gIHRl
c3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNv
bnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3Qg
Y2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAg
ICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxpdGllcy5jb2RlY3MpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgb24gYXVkaW8gdHJhbnNjZWl2ZXIgd2l0aCBj
b2RlY3MgcmV0dXJuZWQgZnJvbSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycp
IHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcigndmlkZW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBSZWNlaXZlci5n
ZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJyk7CiAgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJl
bmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygp
IG9uIHZpZGVvIHRyYW5zY2VpdmVyIHdpdGggY29kZWNzIHJldHVybmVkIGZyb20gUlRDUnRwUmVj
ZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycpIHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVz
dCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29u
c3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBj
YXBhYmlsaXRpZXMxID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAg
ICBjb25zdCBjYXBhYmlsaXRpZXMyID0gUlRDUnRwUmVjZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCdh
dWRpbycpOwogICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoWy4uLmNhcGFiaWxp
dGllczEuY29kZWNzLCAuLi4gY2FwYWJpbGl0aWVzMi5jb2RlY3NdKTsKLQogICB9LCBgc2V0Q29k
ZWNQcmVmZXJlbmNlcygpIHdpdGggYm90aCBzZW5kZXIgcmVjZWl2ZXIgY29kZWNzIGNvbWJpbmVk
IHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKFtdKTsK
LQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcyhbXSkgc2hvdWxkIHN1Y2NlZWRgKTsKIAotICB0
ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0
IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAg
ICAgY29uc3QgeyBjb2RlY3MgfSA9IGNhcGFiaWxpdGllczsKQEAgLTc0LDExICs4MSwxMSBAQAog
ICAgIH0KIAogICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKLQog
ICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggcmVvcmRlcmVkIGNvZGVjcyBzaG91bGQg
c3VjY2VlZGApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3Zp
ZGVvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKTsKICAgICBjb25zdCB7IGNvZGVjcyB9ID0gY2FwYWJpbGl0aWVzOwpAQCAt
MTA4LDcgKzExNSw3IEBACiAgICAgICAgIHRyaWVkID0gdHJ1ZTsKICAgICAgIH0KICAgICB9KTsK
LSAgICBhc3NlcnRfdHJ1ZSh0cmllZCwgJ1ZQOCB2aWRlbyBjb2RlYyB3YXMgZm91bmQgYW5kIHRy
aWVkJyk7CisgICAgYXNzZXJ0X3RydWUodHJpZWQsICdIMjY0IHZpZGVvIGNvZGVjIHdhcyBmb3Vu
ZCBhbmQgdHJpZWQnKTsKICAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG9ubHkgSDI2
NCBzaG91bGQgc3VjY2VlZGApOwogCiAgIGFzeW5jIGZ1bmN0aW9uIGdldFJUUE1hcExpbmVzV2l0
aENvZGVjQXNGaXJzdChmaXJzdENvZGVjKQpAQCAtMTQzLDE2ICsxNTAsMTcgQEAKICAgICBhc3Nl
cnRfdHJ1ZShsaW5lc1swXS5pbmRleE9mKCJWUDgiKSAhPT0gLTEsICJWUDggc2hvdWxkIGJlIHRo
ZSBmaXJzdCBjb2RlYyIpOwogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHNob3VsZCBhbGxv
dyBzZXR0aW5nIFZQOCBhcyBmaXJzdCBjb2RlY2ApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0
KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKICAgICBhc3NlcnRfdGhyb3dzX2Rv
bSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQ
cmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVy
ZW5jZXMoKSBvbiBhdWRpbyB0cmFuc2NlaXZlciB3aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdl
dENhcGFiaWxpdGllcygndmlkZW8nKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KTsKICAgICBjb25zdCBjb2RlY3MgPSBbewogICAgICAgbWltZVR5cGU6ICdkYXRhJywKQEAgLTE2
MiwxMSArMTcwLDExIEBACiAgICAgfV07CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNl
cyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZp
bmVkIGNvZGVjIHdpdGggaW52YWxpZCBtaW1lVHlwZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nKTsKICAgICBjb25zdCBjb2RlY3MgPSBbewogICAgICAgbWltZVR5cGU6ICdhdWRp
by9waWVwaXBlcicsCkBAIC0xNzYsMTEgKzE4NCwxMSBAQAogICAgIH1dOwogCiAgICAgYXNzZXJ0
X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVy
LnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVyZW5j
ZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4g
cGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJp
bGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFsKQEAgLTE5Myw0NCArMjAxLDQ0
IEBACiAgICAgICB9XTsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykp
OwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMg
dG9nZXRoZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91
bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7Cisg
IHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMg
PSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVj
cyA9IFtjYXBhYmlsaXRpZXMuY29kZWNzWzBdXTsKICAgICBjb2RlY3NbMF0uY2xvY2tSYXRlID0g
Y29kZWNzWzBdLmNsb2NrUmF0ZSAvIDI7CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNl
cyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQg
Y29kZWMgY2xvY2sgcmF0ZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7
CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAg
ICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRp
bycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFtjYXBhYmlsaXRpZXMuY29kZWNzWzBdXTsKICAgICBj
b2RlY3NbMF0uY2hhbm5lbHMgPSBjb2RlY3NbMF0uY2hhbm5lbHMgKyAxMTsKIAogICAgIGFzc2Vy
dF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZl
ci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVu
Y2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjaGFubmVsIGNvdW50IHNob3VsZCB0aHJvdyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4g
ewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRl
ci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxp
dGllcy5jb2RlY3NbMF1dOwogICAgIGNvZGVjc1swXS5zZHBGbXRwTGluZSA9ICJtb2RpZmllZHBh
cmFtZXRlcj0xIjsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBwYXJhbWV0
ZXJzIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgp
ID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFi
aWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAKQEAgLTI0
Myw3ICsyNTEsNzIgQEAKICAgICBjb2RlYy5jaGFubmVscyA9IGNoYW5uZWxzKzE7CiAKICAgICBh
c3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNj
ZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVm
ZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0
aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCisgIHByb21p
c2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAgIGNvbnN0IHtjb2Rl
Y3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKKyAgICAvLyBSZW9y
ZGVyIGNvZGVjcywgcHV0IFBDTVUvUENNQSBmaXJzdC4KKyAgICBsZXQgZmlyc3RDb2RlYzsKKyAg
ICBsZXQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY29kZWNzLmxlbmd0aDsgaSsrKSB7CisgICAg
ICBjb25zdCBjb2RlYyA9IGNvZGVjc1tpXTsKKyAgICAgIGlmIChjb2RlYy5taW1lVHlwZSA9PT0g
J2F1ZGlvL1BDTVUnIHx8IGNvZGVjLm1pbWVUeXBlID09PSAnYXVkaW8vUENNQScpIHsKKyAgICAg
ICAgY29kZWNzLnNwbGljZShpLCAxKTsKKyAgICAgICAgY29kZWNzLnVuc2hpZnQoY29kZWMpOwor
ICAgICAgICBmaXJzdENvZGVjID0gY29kZWMubWltZVR5cGUuc3Vic3RyKDYpOworICAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoZmlyc3RDb2RlYywg
dW5kZWZpbmVkLCAnUENNVSBvciBQQ01BIGNvZGVjIG5vdCBmb3VuZCcpOworICAgIHRyYW5zY2Vp
dmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdh
aXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBjb25zdCBtZWRpYVNlY3Rpb24gPSBTRFBVdGlscy5n
ZXRNZWRpYVNlY3Rpb25zKG9mZmVyLnNkcClbMF07CisgICAgY29uc3QgcnRwUGFyYW1ldGVycyA9
IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyhtZWRpYVNlY3Rpb24pOworICAgIGFzc2VydF9l
cXVhbHMocnRwUGFyYW1ldGVycy5jb2RlY3NbMF0ubmFtZSwgZmlyc3RDb2RlYyk7CisgIH0sIGBz
ZXRDb2RlY1ByZWZlcmVuY2VzKCkgbW9kaWZpZXMgdGhlIG9yZGVyIG9mIGF1ZGlvIGNvZGVjcyBp
biBjcmVhdGVPZmZlcmApOworCisgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCd2aWRlbycpOworICAgIGNvbnN0IHtjb2RlY3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygndmlkZW8nKTsKKyAgICAvLyBSZW9yZGVyIGNvZGVjcywgc3dhcCBIMjY0IGFuZCBWUDgu
CisgICAgbGV0IHZwOCA9IC0xOworICAgIGxldCBoMjY0ID0gLTE7CisgICAgbGV0IGZpcnN0Q29k
ZWM7CisgICAgbGV0IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGNvZGVjcy5sZW5ndGg7IGkrKykg
eworICAgICAgY29uc3QgY29kZWMgPSBjb2RlY3NbaV07CisgICAgICBpZiAoY29kZWMubWltZVR5
cGUgPT09ICd2aWRlby9WUDgnKSB7CisgICAgICAgIHZwOCA9IGk7CisgICAgICAgIGlmIChoMjY0
ICE9PSAtMSkgeworICAgICAgICAgIGNvZGVjc1t2cDhdID0gY29kZWNzW2gyNjRdOworICAgICAg
ICAgIGNvZGVjc1toMjY0XSA9IGNvZGVjOworICAgICAgICAgIGZpcnN0Q29kZWMgPSAnVlA4JzsK
KyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaWYgKGNvZGVjLm1p
bWVUeXBlID09PSAndmlkZW8vSDI2NCcpIHsKKyAgICAgICAgaDI2NCA9IGk7CisgICAgICAgIGlm
ICh2cDggIT09IC0xKSB7CisgICAgICAgICAgY29kZWNzW2gyNjRdID0gY29kZWNzW3ZwOF07Cisg
ICAgICAgICAgY29kZWNzW3ZwOF0gPSBjb2RlYzsKKyAgICAgICAgICBmaXJzdENvZGVjID0gJ0gy
NjQnOworICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIGFz
c2VydF9ub3RfZXF1YWxzKGZpcnN0Q29kZWMsIHVuZGVmaW5lZCwgJ1ZQOCBhbmQgSDI2NCBjb2Rl
Y3Mgbm90IGZvdW5kJyk7CisgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2Rl
Y3MpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgIGNv
bnN0IG1lZGlhU2VjdGlvbiA9IFNEUFV0aWxzLmdldE1lZGlhU2VjdGlvbnMob2ZmZXIuc2RwKVsw
XTsKKyAgICBjb25zdCBydHBQYXJhbWV0ZXJzID0gU0RQVXRpbHMucGFyc2VSdHBQYXJhbWV0ZXJz
KG1lZGlhU2VjdGlvbik7CisgICAgYXNzZXJ0X2VxdWFscyhydHBQYXJhbWV0ZXJzLmNvZGVjc1sw
XS5uYW1lLCBmaXJzdENvZGVjKTsKKyAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmll
cyB0aGUgb3JkZXIgb2YgdmlkZW8gY29kZWNzIGluIGNyZWF0ZU9mZmVyYCk7CisKICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2
ZXItc3RvcC1leHBlY3RlZC50eHQKaW5kZXggYmJkZTU4OTRhNzA4NmQyY2ZmYzUzNzhlNzlhNjdj
ODdlYTMzMzA2OC4uMGViYmZlNGY3MmUyNTczYTgzZTNiYzAwZDdmYTY3NDFmM2I3MDJlMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c3RvcC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwxMCBAQAogCiBQQVNTIEEgdHJhbnNjZWl2ZXIg
YWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBpbml0aWFsIG9mZmVyIGdlbmVyYXRpb24gc2hv
dWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCiBQQVNTIER1cmlu
ZyByZW5lZ290aWF0aW9uLCBhZGRpbmcgYW5kIHN0b3BwaW5nIGEgdHJhbnNjZWl2ZXIgc2hvdWxk
IG5vdCB0cmlnZ2VyIGEgcmVuZWdvdGlhdGVkIG9mZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCi1G
QUlMIEEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUgYSBzZW5k
b25seSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIGFzc2VydF90cnVlOiBUaGUgYXVkaW8gbS1zZWN0
aW9uIHNob3VsZCBiZSBzZW5kb25seSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBBIHN0
b3BwZWQgc2VuZG9ubHkgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0t
c2VjdGlvbiBpbiB0aGUgb2ZmZXIKIFBBU1MgQSBzdG9wcGVkIGluYWN0aXZlIHRyYW5zY2VpdmVy
IHNob3VsZCBnZW5lcmF0ZSBhbiBpbmFjdGl2ZSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyCitQQVNT
IElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5nIGEgbG9jYWxseSBn
ZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrCitQQVNTIElmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCByZW1vdGVseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBz
aG91bGQgc3RpbGwgd29yaworRkFJTCBJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5z
Y2VpdmVycywgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBlYXIgYWZ0ZXIgb2Zm
ZXIvYW5zd2VyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDAgYnV0IGdvdCAxCitGQUlMIElmIGEg
dHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3Rh
dGUgc3RvcHBlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInN0
b3BwZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVy
LXN0b3AuaHRtbAppbmRleCA0ZjU3ZGM3YjZkMzQ4NDg2ZTI3MTVhZmYxZTdkN2U3NzNjMjlkMGUz
Li40ZjNhOWNlODVmYTI0NGJjNjczNDQ3ZmEzODlmNDRiZGMzODFiMjMwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBU
cmFuc2NlaXZlci1zdG9wLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCkBAIC01OSw4
ICs1OSw4IEBAIHByb21pc2VfdGVzdChhc3luYyAodCk9PiB7CiAKICAgICBjb25zdCBvZmZlciA9
IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogCi0gICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmlu
Y2x1ZGVzKCJhPXNlbmRvbmx5IiksICJUaGUgYXVkaW8gbS1zZWN0aW9uIHNob3VsZCBiZSBzZW5k
b25seSIpOwotfSwgIkEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJh
dGUgYSBzZW5kb25seSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIik7CisgICAgYXNzZXJ0X3RydWUo
b2ZmZXIuc2RwLmluY2x1ZGVzKCJhPWluYWN0aXZlIiksICJUaGUgYXVkaW8gbS1zZWN0aW9uIHNo
b3VsZCBiZSBpbmFjdGl2ZSIpOworfSwgIkEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBz
aG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlciIpOwogCiBw
cm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwpAQCAtNzksNCArNzksNjUgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsK
IAogICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5pbmNsdWRlcygiYT1pbmFjdGl2ZSIpLCAiVGhl
IGF1ZGlvIG0tc2VjdGlvbiBzaG91bGQgYmUgaW5hY3RpdmUiKTsKIH0sICJBIHN0b3BwZWQgaW5h
Y3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBp
biB0aGUgb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBj
MSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlv
Iik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCkpOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5n
IGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3b3JrJyk7CisKK3Byb21p
c2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBleGNoYW5nZU9m
ZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgcGMyLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsK
KyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzIsIHBjMSk7CisgIGF3YWl0IHBjMS5zZXRM
b2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpKTsKK30sICdJZiBhIHRyYW5z
Y2VpdmVyIGlzIHN0b3BwZWQgcmVtb3RlbHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBh
bnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNj
ZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwor
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBhc3Nl
cnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsK
KyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgYXNz
ZXJ0X2VxdWFscyhwYzEuZ2V0U2VuZGVycygpLmxlbmd0aCwgMCwgJ2NhbGxlciBzZW5kZXJzJyk7
CisgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2NhbGxlciBy
ZWNlaXZlcnMnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0U2VuZGVycygpLmxlbmd0aCwgMCwg
J2NhbGxlZSBzZW5kZXJzJyk7CisgIGFzc2VydF9lcXVhbHMocGMyLmdldFJlY2VpdmVycygpLmxl
bmd0aCwgMCwgJ2NhbGxlZSByZWNlaXZlcnMnKTsKK30sICdJZiBhIHRyYW5zY2VpdmVyIGlzIHN0
b3BwZWQsIHRyYW5zY2VpdmVycywgc2VuZGVycyBhbmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBl
YXIgYWZ0ZXIgb2ZmZXIvYW5zd2VyJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4gewor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2Vp
dmVyKCJhdWRpbyIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAg
YXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKyAgYXNzZXJ0
X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAxKTsKKyAgcGMxVHJhbnNjZWl2
ZXIgPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CisgIHBjMlRyYW5zY2VpdmVyID0gcGMyLmdl
dFRyYW5zY2VpdmVycygpWzBdOworICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXNzZXJ0X2VxdWFscygn
c3RvcHBlZCcsIHBjMVRyYW5zY2VpdmVyLmRpcmVjdGlvbik7CisgIGFzc2VydF9lcXVhbHMoJ3N0
b3BwZWQnLCBwYzJUcmFuc2NlaXZlci5kaXJlY3Rpb24pOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCcp
OworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci5odHRwcy5odG1sCmluZGV4IDQ4Nzc3NDk4MjI5ODM3NmI3Y2UyN2EyY2JmYWVhN2Fk
M2M3MTZlMjguLmM5ZGNlNDVkNzM4ODRiY2U3NGYxNjRiYTMwNmNlNjdiY2M3MzkyMDUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRt
bApAQCAtMTk5LDcgKzE5OSw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAog
ICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAot
ICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAg
ICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIiwgcmVhZHlTdGF0ZTogImxpdmUiLCBt
dXRlZDogdHJ1ZX19LApAQCAtMjA3LDcgKzIwNiw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAi
c2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0p
OwogICB9OwpAQCAtMjMyLDcgKzIzMCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJl
Y3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAg
ICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19LApAQCAtMjQwLDcgKzIz
Nyw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDog
bnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3Bw
ZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMjY1LDcgKzI2MSw2IEBA
CiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwK
ICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZh
bHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7
a2luZDogInZpZGVvIn19LApAQCAtMjczLDcgKzI2OCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9u
OiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGly
ZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAg
IF0pOwogICB9OwpAQCAtMjkzLDcgKzI4Nyw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVj
dm9ubHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsK
ICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19LApAQCAtMzAxLDcg
KzI5NCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIG1p
ZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0
b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMzM2LDcgKzMyOCw2
IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlv
bjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAg
ICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMzY1LDcg
KzM1Niw2IEBACiAgICAgICAgICAgLy8gcnRjd2ViLWpzZXAgc2F5cyB0aGlzIGlzIHJlY3Zvbmx5
LCB3M2Mtd2VicnRjIGRvZXMgbm90Li4uCiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHki
LAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC00MjUsNiArNDE1LDcgQEAKIAog
ICAgIC8vIFJlbW92ZSBtaWQgYXR0cgogICAgIG9mZmVyLnNkcCA9IG9mZmVyLnNkcC5yZXBsYWNl
KCJhPW1pZDoiLCAiYT11bmtub3duYXR0cjoiKTsKKyAgICBvZmZlci5zZHAgPSBvZmZlci5zZHAu
cmVwbGFjZSgiYT1ncm91cDoiLCAiYT11bmtub3duYXR0cjoiKTsKICAgICBhd2FpdCBwYzIuc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwogCiAgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBj
Mi5nZXRUcmFuc2NlaXZlcnMoKSwKQEAgLTQzNCw3ICs0MjUsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiBudWxsfSwKICAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAg
ICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQog
ICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtNDY1LDcgKzQ1NSw2IEBACiAgICAgICAgICAgc2Vu
ZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2Vu
ZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3Rv
cHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTQ4NSw3ICs0NzQsNiBAQAog
ICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIGRp
cmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9u
bHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlLAogICAgICAgICAgIG1pZDogbGFzdE1pZAog
ICAgICAgICB9CiAgICAgICBdKTsKQEAgLTQ5OSw3ICs0ODcsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRy
ZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9ubHkiLAotICAgICAgICAg
IHN0b3BwZWQ6IGZhbHNlLAogICAgICAgICAgIG1pZDogbGFzdE1pZAogICAgICAgICB9CiAgICAg
ICBdKTsKQEAgLTEyNDgsMTkgKzEyMzUsMTcgQEAKICAgICAgIHN0b3BwZWRUcmFuc2NlaXZlci5y
ZWNlaXZlci50cmFjay5vbmVuZGVkID0gcmVzb2x2ZTsKICAgICB9KTsKICAgICBzdG9wcGVkVHJh
bnNjZWl2ZXIuc3RvcCgpOwotICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxl
bmd0aCwgMCwgJ2dldFJlY2VpdmVycyBkb2VzIG5vdCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0
b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCku
bGVuZ3RoLCAwLCAnZ2V0U2VuZGVycyBkb2VzIG5vdCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9w
cGVkIHRyYW5zY2VpdmVyJyk7Ci0KKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRSZWNlaXZlcnMo
KS5sZW5ndGgsIDEsICdnZXRSZWNlaXZlcnMgZXhwb3NlcyBhIHJlY2VpdmVyIG9mIGEgc3RvcHBl
ZCB0cmFuc2NlaXZlciBiZWZvcmUgbmVnb3RpYXRpb24nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBj
MS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAxLCAnZ2V0U2VuZGVycyBleHBvc2VzIGEgc2VuZGVyIG9m
IGEgc3RvcHBlZCB0cmFuc2NlaXZlciBiZWZvcmUgbmVnb3RpYXRpb24nKTsKICAgICBhd2FpdCBv
bmVuZGVkOwotCisgICAgLy8gVGhlIHRyYW5zY2VpdmVyIGhhcyBbW3N0b3BwaW5nXV0gPSB0cnVl
LCBbW3N0b3BwZWRdXSA9IGZhbHNlCiAgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRU
cmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3Ry
YWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5k
OiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5kZWQifX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1
ZSwKLSAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIGRpcmVjdGlv
bjogInNlbmRyZWN2IgorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCisg
ICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAg
LTEyODcsMjkgKzEyNzIsMzggQEAKICAgICBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigp
OwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAotICAgIHN0b3Bw
ZWRUcmFuc2NlaXZlciA9IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICBjb25zdCBzdG9w
cGVkQ2FsbGVlVHJhbnNjZWl2ZXIgPSBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF07CiAgICAgb25l
bmRlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgc3RvcHBlZFRyYW5zY2VpdmVy
LnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOworICAgICAgc3RvcHBlZENhbGxlZVRy
YW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNvbHZlOwogICAgIH0pOwogCiAg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKIAogICAgIGF3YWl0IG9u
ZW5kZWQ7Ci0KKyAgICAvLyBwYzIncyB0cmFuc2NlaXZlciB3YXMgc3RvcHBlZCByZW1vdGVseS4K
KyAgICAvLyBUaGUgdHJhY2sgZW5kcyB3aGVuIHNldFJlbWVvdGVEZXNjcmlwdGlvbihvZmZlcikg
aXMgc2V0LgogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAg
ICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAg
ICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5k
ZWQifX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwsCi0g
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiAic3RvcHBlZCIsCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiCiAgICAgICAg
IH0KICAgICAgIF0pOworICAgIC8vIEFmdGVyIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSwg
dGhlIHRyYW5zY2VpdmVyIGhhcworICAgIC8vIFtbc3RvcHBpbmddXSA9IHRydWUsIFtbc3RvcHBl
ZF1dID0gdHJ1ZSwgYW5kIGlzIHJlbW92ZWQgZnJvbSBwYzIuCisgICAgY29uc3Qgc3RvcHBpbmdB
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oc3RvcHBpbmdBbnN3ZXIpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRy
YW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0UmVjZWl2
ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVy
IG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2Vy
dF9lcXVhbHMocGMyLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90
IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgYWZ0ZXIgbmVnb3RpYXRp
b24nKTsKIAogICAgIC8vIFNob3VsZG4ndCB0aHJvdyBlaXRoZXIKICAgICBzdG9wcGVkVHJhbnNj
ZWl2ZXIuc3RvcCgpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihzdG9wcGlu
Z0Fuc3dlcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAw
LCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0
cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdl
dFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRl
ciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgYWZ0ZXIgbmVnb3RpYXRpb24nKTsKIAogICAgIHBj
MS5jbG9zZSgpOwogICAgIHBjMi5jbG9zZSgpOwpAQCAtMTMzNCwxMyArMTMyOCwxNCBAQAogCiAg
ICAgbGV0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CiAKLSAgICBwYzEuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0uc3RvcCgpOwotCisgICAgY29uc3QgdHJhbnNjZWl2ZXJUaGF0V2FzU3Rv
cHBlZCA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXTsKKyAgICB0cmFuc2NlaXZlclRoYXRXYXNT
dG9wcGVkLnN0b3AoKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIp
CiAgICAgdHJpY2tsZSh0LCBwYzEsIHBjMik7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOwogCiAgICAgbGV0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIo
KTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0ZXIgPSBuZWdvdGlhdGlvbk5lZWRl
ZChwYzEpOwogICAgIGNvbnN0IHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRp
b25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CiAgICAgLy8gU3BlYyBsYW5ndWFnZSBk
b2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCBjaGVja2luZyB3aGV0aGVyIHRoZSB0cmFuc2NlaXZl
cgogICAgIC8vIGlzIHN0b3BwZWQgaGVyZS4KQEAgLTEzNTIsMTYgKzEzNDcsMjAgQEAKICAgICAg
ICAgfQogICAgICAgXSk7CiAKKyAgICBhc3NlcnRfZXF1YWxzKHRyYW5zY2VpdmVyVGhhdFdhc1N0
b3BwZWQsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXSk7CisgICAgLy8gVGhlIHRyYW5zY2VpdmVy
IHNob3VsZCBzdGlsbCBiZSBbW3N0b3BwaW5nXV09dHJ1ZSwgW1tzdG9wcGVkXV09ZmFsc2UuCiAg
ICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsK
ICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCisgICAgICAgICAgY3VycmVudERp
cmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIgogICAg
ICAgICB9CiAgICAgICBdKTsKIAotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkKHBjMSk7Cisg
ICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyOwogCiAgICAgdHJpY2tsZSh0LCBwYzIs
IHBjMSk7CisKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwogCiAg
ICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CkBAIC0xMzczLDIyICsxMzcyLDggQEAKICAgICBh
bnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CiAgICAgYXdhaXQgcGMyLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24o
YW5zd2VyKTsKLQotICAgIGhhc1Byb3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsK
LSAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxs
Ci0gICAgICAgIH0KLSAgICAgIF0pOwotCi0gICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVy
cygpLAotICAgICAgWwotICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAg
ICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQotICAgICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyhw
YzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOwogICB9OwogCiAgIGNvbnN0IGNoZWNrU3RvcEFm
dGVyU2V0TG9jYWxPZmZlciA9IGFzeW5jIHQgPT4gewpAQCAtMTQxMiw2ICsxMzk3LDcgQEAKICAg
ICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwogCiAgICAgbGV0IGFuc3dlciA9IGF3
YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0
ZXIgPSBuZWdvdGlhdGlvbk5lZWRlZChwYzEpOwogICAgIGNvbnN0IHRyYWNrRXZlbnRzID0gYXdh
aXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CiAg
ICAgLy8gU3BlYyBsYW5ndWFnZSBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCBjaGVja2luZyB3
aGV0aGVyIHRoZSB0cmFuc2NlaXZlcgogICAgIC8vIGlzIHN0b3BwZWQgaGVyZS4KQEAgLTE0MjYs
MTAgKzE0MTIsMTEgQEAKICAgICBoYXNQcm9wc0FuZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2Vp
dmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKKyAg
ICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiAic2VuZHJlY3YiCiAgICAgICAgIH0KICAgICAgIF0pOwotICAgIGF3YWl0IG5lZ290aWF0aW9u
TmVlZGVkKHBjMSk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyOwogCiAgICAg
dHJpY2tsZSh0LCBwYzIsIHBjMSk7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKTsKQEAgLTE0NDQsMjEgKzE0MzEsOCBAQAogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0g
ICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbAot
ICAgICAgICB9Ci0gICAgICBdKTsKLQotICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KSwKLSAgICAgIFsKLSAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAg
ICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAgICAgIF0pOworICAgIGFzc2VydF9lcXVhbHMocGMx
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0
VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRl
clNldFJlbW90ZU9mZmVyID0gYXN5bmMgdCA9PiB7CkBAIC0xNDc4LDIyICsxNDUyLDM1IEBACiAg
ICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKQogICAgIGF3YWl0IHBjMS5z
ZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAotICAgIC8vIFN0b3Agb24gX2Fuc3dlcmVyX3Np
ZGUgbm93LiBTaG91bGQgdGFrZSBlZmZlY3QgaW4gYW5zd2VyLgorICAgIC8vIFN0b3Agb24gX2Fu
c3dlcmVyXyBzaWRlIG5vdy4gU2hvdWxkIG5vdCBzdG9wIHRyYW5zY2VpdmVyIGluIGFuc3dlciwK
KyAgICAvLyBidXQgY2F1c2UgZmlyaW5nIG9mIG5lZ290aWF0aW9uTmVlZGVkIGF0IHBjMiwgYW5k
IGRpc2FibGluZworICAgIC8vIG9mIHRoZSB0cmFuc2NlaXZlciB3aXRoIGRpcmVjdGlvbiA9IGlu
YWN0aXZlIGluIGFuc3dlci4KICAgICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpWzBdLmRpcmVjdGlvbiwgJ3N0
b3BwZWQnKTsKIAogICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
ICAgICBjb25zdCB0cmFja0V2ZW50cyA9IGF3YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJu
VHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOwogICAgIGhhc1Byb3BzKHRyYWNrRXZlbnRzLCBbXSk7
CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgaGFzUHJvcHMocGMy
LmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBl
ZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9w
cGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAogICAgICAgICB9CiAgICAg
ICBdKTsKIAorICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkQXdhaXRlciA9IG5lZ290aWF0aW9u
TmVlZGVkKHBjMik7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsK
KyAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgICBbCisgICAgICAgIHsK
KyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiAiaW5hY3RpdmUiLAorICAgICAgICB9CisgICAgICBdKTsKKworICAgIGF3YWl0IG5lZ290
aWF0aW9uTmVlZGVkQXdhaXRlcjsKICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRlckNyZWF0
ZUFuc3dlciA9IGFzeW5jIHQgPT4gewpAQCAtMTUzMSwxNCArMTUxOCwyNSBAQAogICAgIGhhc1By
b3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAg
IHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAgICAgIGRpcmVjdGlvbjogInN0b3Bw
ZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCiAgICAgICAgIH0KICAgICAg
IF0pOwogCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBjMSk7CisgICAgLy8gVGhlIG5lZ290aWF0aW9u
bmVlZGVkIGV2ZW50IGlzIGZpcmVkIGR1cmluZyBwcm9jZXNzaW5nIG9mCisgICAgLy8gc2V0TG9j
YWxEZXNjcmlwdGlvbigpCisgICAgY29uc3QgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyID0gbmVn
b3RpYXRpb25OZWVkZWQocGMyKTsKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOworICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCks
CisgICAgICBbCisgICAgICAgIHsKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAg
ICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICB9CisgICAgICBd
KTsKIAotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkKHBjMik7CisgICAgYXdhaXQgbmVnb3Rp
YXRpb25OZWVkZWRBd2FpdGVyOwogICAgIGF3YWl0IGljZUNvbm5lY3RlZChwYzEpOwogICAgIGF3
YWl0IGljZUNvbm5lY3RlZChwYzIpOwogCkBAIC0xNTQ5LDE5ICsxNTQ3LDIyIEBACiAgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAorICAgIC8vIFNpbmNlIHRoaXMgb2ZmZXIvYW5zd2Vy
IGV4Y2hhbmdlIHdhcyBpbml0aWF0ZWQgZnJvbSBwYzEsCisgICAgLy8gcGMyIHN0aWxsIGRvZXNu
J3QgZ2V0IHRvIHNheSB0aGF0IGl0IGhhcyBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIsCisgICAgLy8g
YnV0IGRvZXMgZ2V0IHRvIHNldCBpdCB0byBpbmFjdGl2ZS4KICAgICBoYXNQcm9wcyhwYzEuZ2V0
VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0
cnVlLAotICAgICAgICAgIG1pZDogbnVsbAorICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2
IiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAiaW5hY3RpdmUiLAogICAgICAgICB9CiAg
ICAgICBdKTsKIAogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsK
ICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxs
CisgICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIsCisgICAgICAgICAgY3VycmVudERpcmVj
dGlvbjogImluYWN0aXZlIiwKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0xNjA0LDcg
KzE2MDUsOCBAQAogICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJz
KCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAg
ICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJz
ZW5kcmVjdiIsCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xNjEyLDI4ICsxNjE0LDE3IEBA
CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBj
Mik7CiAKLSAgICBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwotICAgIGF3YWl0IHBj
MS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKLSAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOwotICAgIGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
LSAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwotICAgIGF3YWl0IHBj
MS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwotCi0gICAgaGFzUHJvcHMocGMxLmdldFRy
YW5zY2VpdmVycygpLAotICAgICAgWwotICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1
ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQotICAgICAgXSk7CisgICAgLy8gSW5p
dGlhdGUgYW4gb2ZmZXIvYW5zd2VyIGV4Y2hhbmdlIGZyb20gcGMyIGluIG9yZGVyCisgICAgLy8g
dG8gbmVnb3RpYXRlIHRoZSBzdG9wcGVkIHRyYW5zY2VpdmVyLgorICAgIG9mZmVyID0gYXdhaXQg
cGMyLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgICAgYW5z
d2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERl
c2NyaXB0aW9uKGFuc3dlcik7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0g
ICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbAot
ICAgICAgICB9Ci0gICAgICBdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZl
cnMoKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygp
Lmxlbmd0aCwgMCk7CiAgIH07CiAKICAgY29uc3QgY2hlY2tTdG9wQWZ0ZXJDbG9zZSA9IGFzeW5j
IHQgPT4gewpAQCAtMTY4MCw3ICsxNjcxLDYgQEAKICAgICAgICAgICBzZW5kZXI6IHt0cmFja30s
CiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJl
Y3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAg
XSk7CiAKQEAgLTE3MDAsNyArMTY5MCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZG9u
bHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBA
IC0xNzEwLDcgKzE2OTksMTEgQEAKICAgICBwYy5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7
CiAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwog
Ci0gICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksIFt7IHN0b3BwZWQ6IHRydWUgfV0p
OworICAgIGhhc1Byb3BzKHBjLmdldFRyYW5zY2VpdmVycygpLCBbCisgICAgICB7CisgICAgICAg
IGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgfQorICAgIF0pOwogICB9OwogCiAgIGNvbnN0
IGNoZWNrUm9sbGJhY2tBbmRTZXRSZW1vdGVPZmZlcldpdGhEaWZmZXJlbnRUeXBlID0gYXN5bmMg
dCA9PiB7CkBAIC0xNzQxLDcgKzE3MzQsNiBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRy
ZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjog
bnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApA
QCAtMTc1Myw3ICsxNzQ1LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAg
ICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0g
ICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE3Njcs
MTQgKzE3NTgsMTIgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAg
ICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHJlY2Vp
dmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0sCiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6
IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiAicmVjdm9ubHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAg
ICAgIH0KICAgICAgIF0pOwogCkBAIC0xNzg1LDcgKzE3NzQsNiBAQAogICAgICAgICAgIHNlbmRl
cjoge3RyYWNrOiB2aWRlb1RyYWNrfSwKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIs
CiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRvbmx5IiwKLSAgICAgICAgICBzdG9w
cGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTgyMCw3ICsxODA4LDYgQEAK
IAogICAgIGhhc1Byb3BzKHJlbW92ZWRUcmFuc2NlaXZlciwKICAgICAgIHsKLSAgICAgICAgc3Rv
cHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsCiAgICAgICB9CkBAIC0xODMxLDcgKzE4MTgsNiBAQAogICAgIGhhc1Byb3BzKHJlbW92
ZWRUcmFuc2NlaXZlciwKICAgICAgIHsKICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazoge3JlYWR5
U3RhdGU6ICJlbmRlZCJ9fSwKLSAgICAgICAgc3RvcHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBu
dWxsLAogICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsCiAgICAgICB9CkBAIC0xODQ2LDcg
KzE4MzIsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBudWxsfSwKICAgICAgICAgICBk
aXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwK
LSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTg2
Niw3ICsxODUxLDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAg
ICAgbWlkOiBtaWQwLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE4ODYsNyArMTg3
MCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIG1pZDog
bWlkMCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3Bw
ZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xOTAwLDcgKzE4ODMsNiBAQAog
ICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG1pZDAsCiAg
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxz
ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTkxNCw3ICsxODk2LDYgQEAKICAgICAgICAg
ICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAg
ICAgfQogICAgICAgXSk7CiAKQEAgLTE5MjMsNiArMTkwNCw4IEBACiAKICAgICAvLyBBZnRlciBh
bGwgdGhpcyBTUkQvcm9sbGJhY2ssIHdlIHNob3VsZCBzdGlsbCBnZXQgdGhlIHRyYWNrIGV2ZW50
CiAgICAgbGV0IHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5U
cmFja0V2ZW50cyhwYzIsIG9mZmVyKTsKKworICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMu
bGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAg
ewpAQCAtMTkzNiw2ICsxOTE5LDcgQEAKIAogICAgIC8vIE1ha2Ugc3VyZSBhbGwgdGhpcyByb2xs
YmFjayBoYXNuJ3QgbWVzc2VkIHVwIHRoZSBzaWduYWxpbmcKICAgICB0cmFja0V2ZW50cyA9IGF3
YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJuVHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOwor
ICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMubGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0
cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAgewpAQCAtMTk1MSw3ICsxOTM1LDYgQEAKICAg
ICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBtaWQwLAogICAg
ICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE5NjYsNiArMTk0OSw4IEBACiAKICAg
ICB0cmFja0V2ZW50cyA9CiAgICAgICBhd2FpdCBzZXRSZW1vdGVEZXNjcmlwdGlvblJldHVyblRy
YWNrRXZlbnRzKHBjMiwge3R5cGU6ICJyb2xsYmFjayJ9KTsKKworICAgIGFzc2VydF9lcXVhbHMo
dHJhY2tFdmVudHMubGVuZ3RoLCAxLCAndHJhY2sgZXZlbnQgZnJvbSByZW1vdGUgcm9sbGJhY2sn
KTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAgewpAQCAtMTk4
NywyMSArMTk3MiwyMCBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAg
ICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAg
ICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0KICAgICAgIF0pOwogCiAgICAgLy8gc3RvcCgp
IGNhbm5vdCBiZSByb2xsZWQgYmFjayEKKyAgICAvLyBUcmFuc2NlaXZlciBzaG91bGQgaGF2ZSBb
W3N0b3BwaW5nXV09dHJ1ZSwgW1tzdG9wcGVkXV09ZmFsc2UKICAgICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFjayJ9KTsKICAgICBoYXNQcm9wcyhwYzIuZ2V0
VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjog
e3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2lu
ZDogImF1ZGlvIn19LAotICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAg
ICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKICAgICAgICAgICBtaWQ6IG51bGwsCi0gICAgICAgICAg
Y3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlCisgICAgICAg
ICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgfQogICAgICAgXSk7CiAg
IH07CkBAIC0yMDU5LDcgKzIwNDMsNiBAQAogICAgICAgICB7CiAgICAgICAgICAgbWlkOiBudWxs
LAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDog
dHJ1ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMjA2OCw3ICsyMDUxLDYgQEAKICAgICAg
ICAgewogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IHRydWUKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAg
LTIwODQsNyArMjA2Niw2IEBACiAgICAgaGFzUHJvcHMocGMxLmdldFRyYW5zY2VpdmVycygpLAog
ICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAog
ICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHRyYWNrMn0KQEAgLTIxMDAsNyAr
MjA4MSw2IEBACiAgICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwog
ICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7
CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2t9CkBAIC0yMTc4LDcgKzIxNTgsNiBAQAogICAgICAg
ICB9LAogICAgICAgICB7CiAgICAgICAgICAgbWlkOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBu
dWxsfSwKQEAgLTIyMDMsNyArMjE4Miw2IEBACiAgICAgICBbCiAgICAgICAgIHt9LAogICAgICAg
ICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAg
ICAgICAgbWlkOiBtaWQxLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
U2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sCmluZGV4IDU4Yzg4M2Q1MzM3NzUyZjljZmY4
NzI3MjZmNmQ5ODVhNjQ3MjI5Y2EuLjQ4NDk2N2Y3NmI1YzlkNTI1MDdjNmYyZjY2MmI0MWI0NmZm
OTgyZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtY29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJh
bnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTg2LDcgKzg2LDcgQEAgZnVuY3Rpb24gdmFsaWRh
dGVTY3RwVHJhbnNwb3J0KHNjdHApIHsKICAgYXNzZXJ0X2VxdWFscyhzY3RwLnN0YXRlLCAnY29u
bmVjdGluZycsICdSVENTY3RwVHJhbnNwb3J0IHNob3VsZCBiZSBpbiB0aGUgY29ubmVjdGluZyBz
dGF0ZScpOwogCiAgIC8vIE5vdGU6IFllcywgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZIGlzIGFs
c28gYSAnbnVtYmVyJwotICBhc3NlcnRfdHJ1ZSh0eXBlb2Ygc2N0cC5tYXhNZXNzYWdlU2l6ZSA9
PT0gJ251bWJlcicsCisgIGFzc2VydF9lcXVhbHModHlwZW9mIHNjdHAubWF4TWVzc2FnZVNpemUs
ICdudW1iZXInLAogICAgICdFeHBlY3Qgc2N0cC5tYXhNZXNzYWdlU2l6ZSB0byBiZSBhIG51bWJl
cicpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SVENQZWVyQ29ubmVjdGlvbi1wYXlsb2FkVHlwZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NjcwMTA3ZGViNjMzOGUwYWUxODIyYzlkYzU1ZTdmMmVhOGYzYTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBjcmVhdGVPZmZlciB3aXRoIHRoZSBt
YXhpbXVtIHNldCBvZiBjb2RlY3MgZG9lcyBub3QgZ2VuZXJhdGUgaW52YWxpZCBwYXlsb2FkIHR5
cGVzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBlcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFj
YmYzOGEwZjYxMjhlZmRjZDU5N2Y5OTViZjg3MmY1NTlhODgyYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBlcy5odG1sCkBAIC0wLDAgKzEsNDcgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlv
biBSVFAgcGF5bG9hZCB0eXBlczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKKy8vIFRl
c3QgdGhhdCB3aGVuIGNyZWF0aW5nIGFuIG9mZmVyIHdlIGRvIG5vdCBydW4gb3V0IG9mIHZhbGlk
IHBheWxvYWQgdHlwZXMuCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7b2ZmZXJUb1Jl
Y2VpdmVBdWRpbzogdHJ1ZSwgb2ZmZXJUb1JlY2VpdmVWaWRlbzogdHJ1ZX0pOworCisgIC8vIEV4
dHJhY3QgYWxsIHBheWxvYWQgdHlwZXMgZnJvbSB0aGUgbT0gbGluZXMuCisgIGNvbnN0IHBheWxv
YWRUeXBlcyA9IG9mZmVyLnNkcC5zcGxpdCgnXG4nKQorICAgIC5tYXAobGluZSA9PiBsaW5lLnRy
aW0oKSkKKyAgICAuZmlsdGVyKGxpbmUgPT4gbGluZS5zdGFydHNXaXRoKCdtPScpKQorICAgIC5t
YXAobGluZSA9PiBsaW5lLnNwbGl0KCcgJykuc2xpY2UoMykuam9pbignICcpKQorICAgIC5qb2lu
KCcgJykKKyAgICAuc3BsaXQoJyAnKQorICAgIC5tYXAocGF5bG9hZFR5cGUgPT4gcGFyc2VJbnQo
cGF5bG9hZFR5cGUsIDEwKSk7CisKKyAgLy8gVGhlIGxpc3Qgb2YgYWxsb3dlZCBwYXlsb2FkIHR5
cGVzIGlzIHRha2VuIGZyb20gaGVyZQorICAvLyBodHRwczovL3d3dy5pYW5hLm9yZy9hc3NpZ25t
ZW50cy9ydHAtcGFyYW1ldGVycy9ydHAtcGFyYW1ldGVycy54aHRtbCNydHAtcGFyYW1ldGVycy0x
LgorICBjb25zdCBmb3JiaWRkZW5QYXlsb2FkVHlwZXMgPSBwYXlsb2FkVHlwZXMKKyAgICAuZmls
dGVyKHBheWxvYWRUeXBlID0+IHsKKyAgICAgIGlmIChwYXlsb2FkVHlwZSA+PSA5NiAmJiBwYXls
b2FkVHlwZSA8PSAxMjcpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAg
aWYgKHBheWxvYWRUeXBlID49IDcyICYmIHBheWxvYWRUeXBlIDwgOTYpIHsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICB9CisgICAgICBpZiAocGF5bG9hZFR5cGUgPj0gMzUgJiYgcGF5bG9h
ZFR5cGUgPCA3MikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICAvLyBU
T0RPOiBDaGVjayBhZ2FpbnN0IHN0YXRpYyBwYXlsb2FkIHR5cGUgbGlzdC4KKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9KTsKKyAgYXNzZXJ0X2VxdWFscyhmb3JiaWRkZW5QYXlsb2FkVHlwZXMu
bGVuZ3RoLCAwKQorfSwgJ2NyZWF0ZU9mZmVyIHdpdGggdGhlIG1heGltdW0gc2V0IG9mIGNvZGVj
cyBkb2VzIG5vdCBnZW5lcmF0ZSBpbnZhbGlkIHBheWxvYWQgdHlwZXMnKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy1leHBlY3RlZC50eHQK
aW5kZXggNjQwZDI1YmJmYjllMTJkMzIxMjMzZDM2NmNlZThjZjY2MGNjMTQ4OC4uNTFhMGMxN2E1
N2M1ZmE4MDdkM2VmMzhmNTdhZmQ4NjU1MzRlZWU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRl
LWV4Y2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2Uu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNiBAQCBGQUlMIEFkZGluZyBvbmx5IGNhbGxl
ciAtPiBjYWxsZWUgY2FuZGlkYXRlcyBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBV
bgogRkFJTCBBZGRpbmcgb25seSBjYWxsZWUgLT4gY2FsbGVyIGNhbmRpZGF0ZXMgZ2l2ZXMgYSBj
b25uZWN0aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J3BjMi5zY3RwLnRyYW5zcG9ydCcpIgogRkFJTCBBZGRpbmcgY2FsbGVlIC0+IGNhbGxlciBjYW5k
aWRhdGVzIGZyb20gZW5kLW9mLWNhbmRpZGF0ZXMgZ2l2ZXMgYSBjb25uZWN0aW9uIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMi5zY3RwLnRyYW5zcG9y
dCcpIgogRkFJTCBFeHBsaWNpdCBvZmZlci9hbnN3ZXIgZXhjaGFuZ2UgZ2l2ZXMgYSBjb25uZWN0
aW9uIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3BjMS5z
Y3RwLnRyYW5zcG9ydCcpIgorUEFTUyBDYW5kaWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIgc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcikgcmVzb2x2ZXMKK1BBU1MgQ2FuZGlkYXRlcyBhbHdheXMg
YXJyaXZlIGFmdGVyIHNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSByZXNvbHZlcwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1l
eGNoYW5nZS5odHRwcy5odG1sCmluZGV4IDUzMmJjNGQwZDEzZDcyMTcwZjllNTIxY2JlZGE3ZDJl
NjU2ZTMxN2YuLmM1NGYyNmU2ZDgwZGQ5MDU2ZThlYmMxMWRmOTI5YjUxZjY5Zjg4ZWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0
ZS1leGNoYW5nZS5odHRwcy5odG1sCkBAIC0xMCwyMyArMTAsNiBAQAogPGJvZHk+CiA8c2NyaXB0
PgogCi1mdW5jdGlvbiBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYykgewotICBjb25zdCB3
YWl0ZXIgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewotICAgIGNvbnN0IGV2ZW50SGFuZGxl
ciA9ICgpID0+IHsKLSAgICAgIGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUn
KSB7Ci0gICAgICAgIHBjLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ljZWdhdGhlcmluZ3N0YXRlY2hh
bmdlJywgZXZlbnRIYW5kbGVyLCBmYWxzZSk7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0K
LSAgICB9OwotICAgIGlmIChwYy5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAnY29tcGxldGUnKSB7Ci0g
ICAgICByZXNvbHZlKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIHBjLmFkZEV2ZW50TGlzdGVuZXIo
J2ljZWdhdGhlcmluZ3N0YXRlY2hhbmdlJywgZXZlbnRIYW5kbGVyLCBmYWxzZSk7Ci0gICAgfQot
ICB9KTsKLSAgcmV0dXJuIHdhaXRlcjsKLX0KLQogY2xhc3MgU3RhdGVMb2dnZXIgewogICBjb25z
dHJ1Y3Rvcihzb3VyY2UsIGV2ZW50bmFtZSwgZmllbGQpIHsKICAgICBzb3VyY2UuYWRkRXZlbnRM
aXN0ZW5lcihldmVudG5hbWUsIGV2ZW50ID0+IHsKQEAgLTc0LDcgKzU3LDcgQEAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICAvLyBDYW5kaWRhdGVzIGZyb20gUEMyIGFyZSBub3QgZGVsaXZl
cmVkIHRvIHBjMSwgc28gcGMxIHdpbGwgdXNlCiAgIC8vIHBlZXItcmVmbGV4aXZlIGNhbmRpZGF0
ZXMuCiAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwotICBjb25zdCB3YWl0
ZXIgPSBpY2VHYXRoZXJpbmdDb21wbGV0ZVdhaXRlcihwYzEpOworICBjb25zdCB3YWl0ZXIgPSB3
YWl0Rm9ySWNlR2F0aGVyaW5nU3RhdGUocGMxLCBbJ2NvbXBsZXRlJ10pOwogICBhd2FpdCB3YWl0
ZXI7CiAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsKICAgICBpZiAoY2Fu
ZGlkYXRlKSB7CkBAIC0xMDUsNyArODgsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
IC8vIENhbmRpZGF0ZXMgZnJvbSBwYzEgYXJlIG5vdCBkZWxpdmVyZWQgdG8gcGMyLiAgc28gcGMy
IHdpbGwgdXNlCiAgIC8vIHBlZXItcmVmbGV4aXZlIGNhbmRpZGF0ZXMuCiAgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwotICBjb25zdCB3YWl0ZXIgPSBpY2VHYXRoZXJpbmdD
b21wbGV0ZVdhaXRlcihwYzIpOworICBjb25zdCB3YWl0ZXIgPSB3YWl0Rm9ySWNlR2F0aGVyaW5n
U3RhdGUocGMyLCBbJ2NvbXBsZXRlJ10pOwogICBhd2FpdCB3YWl0ZXI7CiAgIGZvciAoY29uc3Qg
Y2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHsKICAgICBpZiAoY2FuZGlkYXRlKSB7CkBAIC0xNzQs
NyArMTU3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBhd2FpdCBQcm9taXNlLmFs
bChbcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpLAogICAgICAgICAgICAgICAgICAgICAg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKV0pOwogICBjb25zdCBhbnN3ZXIgPSBhd2Fp
dCBwYzIuY3JlYXRlQW5zd2VyKCk7Ci0gIGF3YWl0IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVy
KHBjMSk7CisgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxldGUn
XSk7CiAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikudGhlbigoKSA9PiB7
CiAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgcGMxVG9QYzJDYW5kaWRhdGVzKSB7CiAgICAg
ICBpZiAoY2FuZGlkYXRlKSB7CkBAIC0xODIsNyArMTY1LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogICAgICAgfQogICAgIH0KICAgfSk7Ci0gIGF3YWl0IGljZUdhdGhlcmluZ0NvbXBs
ZXRlV2FpdGVyKHBjMik7CisgIGF3YWl0IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzIsIFsn
Y29tcGxldGUnXSk7CiAgIHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpLnRoZW4oYXN5
bmMgKCkgPT4gewogICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIHBjMlRvUGMxQ2FuZGlkYXRl
cykgewogICAgICAgaWYgKGNhbmRpZGF0ZSkgewpAQCAtMjAzLDYgKzE4NiwzMyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGFzc2VydF9hcnJheV9lcXVhbHMocGMySWNlU3RhdGVzLmV2
ZW50cywgWyduZXcnLCAnY2hlY2tpbmcnLCAnY29ubmVjdGVkJ10pOwogfSwgJ0V4cGxpY2l0IG9m
ZmVyL2Fuc3dlciBleGNoYW5nZSBnaXZlcyBhIGNvbm5lY3Rpb24nKTsKIAorcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHBjMS5jcmVhdGVEYXRhQ2hhbm5l
bCgnZGF0YWNoYW5uZWwnKTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gYXNzZXJ0X3VucmVhY2hl
ZDsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMx
LnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHsKKyAgICBwYzEub25pY2VjYW5kaWRhdGUgPSByZXNvbHZlOworICB9KTsKK30sICdDYW5k
aWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcikgcmVz
b2x2ZXMnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5l
bCcpOworICBwYzIub25pY2VjYW5kaWRhdGUgPSBhc3NlcnRfdW5yZWFjaGVkOworICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBw
YzIuY3JlYXRlQW5zd2VyKCkpOworICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAg
ICBwYzIub25pY2VjYW5kaWRhdGUgPSByZXNvbHZlOworICB9KTsKK30sICdDYW5kaWRhdGVzIGFs
d2F5cyBhcnJpdmUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIHJlc29sdmVzJyk7
CisKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY3J5cHRvLXN1
aXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbAppbmRleCBmMWI2MDU2
MWExNDBkMjIzOGYwZjBhMmQ3OWIwNzU5YzcxZDc1NDgwLi5mMTNmMjIxYjg4ZDcxZjA4N2MxZjcw
NmVkNTk1MWI5YjRjNjY5N2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBjb25z
dCBhY2NlcHRhYmxlVmFsdWVzID0gewogfTsKIAogZnVuY3Rpb24gdmVyaWZ5U3RhdChuYW1lLCB0
cmFuc3BvcnRTdGF0cykgewotICBhc3NlcnRfdHJ1ZSh0eXBlb2YgdHJhbnNwb3J0U3RhdHMgIT09
ICd1bmRlZmluZWQnKTsKKyAgYXNzZXJ0X25vdF9lcXVhbHModHlwZW9mIHRyYW5zcG9ydFN0YXRz
LCAndW5kZWZpbmVkJyk7CiAgIGFzc2VydF90cnVlKG5hbWUgaW4gdHJhbnNwb3J0U3RhdHMsICdW
YWx1ZSBwcmVzZW50OicpOwogICBhc3NlcnRfdHJ1ZShhY2NlcHRhYmxlVmFsdWVzW25hbWVdLmhh
cyh0cmFuc3BvcnRTdGF0c1tuYW1lXSkpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyNjY3OTM1
M2UyZDRlOWM5NDkyN2M0YTE2OWEyODNhMWJhMWI5YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9o
YW5kb3Zlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgTmVnb3RpYXRpb24g
b2YgaGFuZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlciB3b3JrcworUEFTUyBOZWdvdGlhdGlvbiBv
ZiBoYW5kb3ZlciBpbml0aWF0ZWQgYXQgY2FsbGVlIHdvcmtzCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hh
bmRvdmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3OGQ2NWZmYzMyMGJm
MGFjNmE2YTE2NjkwZGQ5OTJkMGY1ZTUzNmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zl
ci5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11
dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBIYW5kb3ZlcnM8L3RpdGxlPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3Vz
ZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyUGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5zd2VyUGNGaXJzdCA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICBvZmZlclBjLmNsb3Nl
KCk7CisgICAgYW5zd2VyUGNGaXJzdC5jbG9zZSgpOworICAgIGFuc3dlclBjU2Vjb25kLmNsb3Nl
KCk7CisgIH0pOworICBvZmZlclBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAvLyBOZWdv
dGlhdGUgY29ubmVjdGlvbiB3aXRoIFBDIDEKKyAgY29uc3Qgb2ZmZXIxID0gYXdhaXQgb2ZmZXJQ
Yy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2Zm
ZXIxKTsKKyAgYXdhaXQgYW5zd2VyUGNGaXJzdC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjEp
OworICBjb25zdCBhbnN3ZXIxID0gYXdhaXQgYW5zd2VyUGNGaXJzdC5jcmVhdGVBbnN3ZXIoKTsK
KyAgYXdhaXQgb2ZmZXJQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIxKTsKKyAgYXdhaXQg
YW5zd2VyUGNGaXJzdC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjEpOworICAvLyBSZW5lZ290
aWF0ZSB3aXRoIFBDIDIKKyAgY29uc3Qgb2ZmZXIyID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZl
cigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdh
aXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgY29uc3Qg
YW5zd2VyMiA9IGF3YWl0IGFuc3dlclBjU2Vjb25kLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBv
ZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjIpOworICBhd2FpdCBhbnN3ZXJQY1Nl
Y29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjIpOworfSwgJ05lZ290aWF0aW9uIG9mIGhh
bmRvdmVyIGluaXRpYXRlZCBhdCBjYWxsZXIgd29ya3MnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBvZmZlclBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNv
bnN0IGFuc3dlclBjRmlyc3QgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5z
d2VyUGNTZWNvbmQgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiB7CisgICAgb2ZmZXJQYy5jbG9zZSgpOworICAgIGFuc3dlclBjRmlyc3QuY2xvc2UoKTsK
KyAgICBhbnN3ZXJQY1NlY29uZC5jbG9zZSgpOworICB9KTsKKyAgb2ZmZXJQYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKKyAgLy8gTmVnb3RpYXRlIGNvbm5lY3Rpb24gd2l0aCBQQyAxCisgIGNv
bnN0IG9mZmVyMSA9IGF3YWl0IG9mZmVyUGMuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgb2ZmZXJQ
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0
UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIxKTsKKyAgY29uc3QgYW5zd2VyMSA9IGF3YWl0IGFuc3dl
clBjRmlyc3QuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oYW5zd2VyMSk7CisgIGF3YWl0IGFuc3dlclBjRmlyc3Quc2V0TG9jYWxEZXNjcmlwdGlv
bihhbnN3ZXIxKTsKKyAgLy8gUmVuZWdvdGlhdGUgd2l0aCBQQyAyCisgIC8vIFRoZSBvZmZlciBm
cm9tIFBDIDIgbmVlZHMgdG8gYmUgY29uc2lzdGVudCBvbiBhdCBsZWFzdCB0aGUgZm9sbG93aW5n
OgorICAvLyAtIE51bWJlciwgdHlwZSBhbmQgb3JkZXIgb2YgbWVkaWEgc2VjdGlvbnMKKyAgLy8g
LSBNSUQgdmFsdWVzCisgIC8vIC0gUGF5bG9hZCB0eXBlIHZhbHVlcworICAvLyBEbyBhICJmYWtl
IiBvZmZlci9hbnN3ZXIgdXNpbmcgdGhlIG9yaWdpbmFsIG9mZmVyIGFnYWluc3QgUEMyIHRvIGFj
aGlldmUgdGhpcy4KKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIxKTsKKyAgLy8gRGlzY2FyZCB0aGUgb3V0cHV0IG9mIHRoaXMgcm91bmQuCisgIGF3YWl0
IGFuc3dlclBjU2Vjb25kLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgYW5zd2VyUGNTZWNvbmQu
Y3JlYXRlQW5zd2VyKCkpOworCisgIC8vIE5vdyB3ZSBjYW4gaW5pdGlhdGUgYW4gb2ZmZXIgZnJv
bSB0aGUgbmV3IFBDLgorICBjb25zdCBvZmZlcjIgPSBhd2FpdCBhbnN3ZXJQY1NlY29uZC5jcmVh
dGVPZmZlcigpOworICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRMb2NhbERlc2NyaXB0aW9uKG9m
ZmVyMik7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAg
Y29uc3QgYW5zd2VyMiA9IGF3YWl0IG9mZmVyUGMuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IGFu
c3dlclBjU2Vjb25kLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjIpOworICBhd2FpdCBvZmZl
clBjLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7Cit9LCAnTmVnb3RpYXRpb24gb2YgaGFu
ZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlZSB3b3JrcycpOworCisKKworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTIwMTg0ZGU3Njg4NDNlMTY2NTA0Nzg4ODJjOWJiYWI5
YzlmN2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworUEFTUyBDYW4gZGVtdXggdHdvIHZpZGVvIHRyYWNrcyB3aXRoIGRp
ZmZlcmVudCBwYXlsb2FkIHR5cGVzIG9uIGEgYnVuZGxlZCBjb25uZWN0aW9uCitQQVNTIENhbiBk
ZW11eCB0d28gdmlkZW8gdHJhY2tzIHdpdGggdGhlIHNhbWUgcGF5bG9hZCB0eXBlIG9uIGFuIHVu
YnVuZGxlZCBjb25uZWN0aW9uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvcnRwLWRlbXV4aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI4ZGNlM2I0NWRhYjBkMzY5ZTQ5NDk4
ZTE5YjJmYjAzNjYzNTcxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy5odG1s
CkBAIC0wLDAgKzEsMTA4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+UlRDUGVlckNvbm5lY3Rpb24gcGF5bG9hZCB0eXBlIGRlbXV4aW5nPC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKyd1c2Ugc3RyaWN0JzsKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgY2Fs
bGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2Fs
bGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGV4Y2hhbmdlSWNlQ2Fu
ZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisKKyAgY29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9p
c2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIHN0cmVhbS5nZXRU
cmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0cmFjaywgc3RyZWFtKSk7
CisgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0
cmFjay5jbG9uZSgpLCBzdHJlYW0uY2xvbmUoKSkpOworCisgIGxldCBjYWxsQ291bnQgPSAwOwor
ICBsZXQgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
Y2FsbGVlLm9udHJhY2sgPSAoZSkgPT4geworICAgICAgY29uc3Qgc3RyZWFtID0gZS5zdHJlYW1z
WzBdOworICAgICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7Cisg
ICAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICAgIHYuc3JjT2JqZWN0ID0gc3RyZWFtOworICAg
ICAgdi5pZCA9IHN0cmVhbS5pZAorICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRh
ZGF0YScsICgpID0+IHsKKyAgICAgICAgaWYgKCsrY2FsbENvdW50ID09PSAyKSB7CisgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9OworICB9KTsKKworICAv
LyBSZXN0cmljdCBmaXJzdCB0cmFuc2NlaXZlciB0byBWUDgsIHNlY29uZCB0byBIMjY0LgorICBj
b25zdCB7Y29kZWNzfSA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJyk7Cisg
IGNvbnN0IHZwOCA9IGNvZGVjcy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL1ZQOCcp
OworICBjb25zdCBoMjY0ID0gY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8v
SDI2NCcpOworICBjYWxsZXIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc2V0Q29kZWNQcmVmZXJlbmNl
cyhbdnA4XSk7CisgIGNhbGxlci5nZXRUcmFuc2NlaXZlcnMoKVsxXS5zZXRDb2RlY1ByZWZlcmVu
Y2VzKFtoMjY0XSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRlT2ZmZXIo
KTsKKyAgLy8gUmVwbGFjZSB0aGUgbWlkIGhlYWRlciBleHRlbnNpb24gYW5kIGFsbCBzc3JjIGxp
bmVzCisgIC8vIHdpdGggYm9ndXMuIFRoZSByZWNlaXZlciB3aWxsIGJlIGZvcmNlZCB0byBkbyBw
YXlsb2FkIHR5cGUgZGVtdXhpbmcuCisgIGNvbnN0IHNkcCA9IG9mZmVyLnNkcAorICAgIC5yZXBs
YWNlKC9ydHAtaGRyZXh0OnNkZXMvZywgJ3J0cC1oZHJleHQ6c29tZXRoaW5nJykKKyAgICAucmVw
bGFjZSgvYT1zc3JjOi9nLCAnYT1ub3Rzc3JjJyk7CisKKyAgYXdhaXQgY2FsbGVlLnNldFJlbW90
ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KTsKKyAgYXdhaXQgY2FsbGVyLnNldExv
Y2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5j
cmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dl
cik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisKKyAgYXdh
aXQgbWV0YWRhdGFUb0JlTG9hZGVkOworfSwgJ0NhbiBkZW11eCB0d28gdmlkZW8gdHJhY2tzIHdp
dGggZGlmZmVyZW50IHBheWxvYWQgdHlwZXMgb24gYSBidW5kbGVkIGNvbm5lY3Rpb24nKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oe2J1bmRsZVBvbGljeTogJ21heC1jb21wYXQnfSk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gY2FsbGVyLmNsb3NlKCkpOworICBjb25zdCBjYWxsZWUgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZWUuY2xvc2UoKSk7CisgIGV4Y2hh
bmdlSWNlQ2FuZGlkYXRlcyhjYWxsZXIsIGNhbGxlZSk7CisKKyAgY29uc3Qgc3RyZWFtID0gYXdh
aXQgZ2V0Tm9pc2VTdHJlYW0oe3ZpZGVvOiB0cnVlfSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
c3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gdHJhY2suc3RvcCgpKSk7CisgIHN0
cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5hZGRUcmFjayh0cmFjaywg
c3RyZWFtKSk7CisgIHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IGNhbGxlci5h
ZGRUcmFjayh0cmFjay5jbG9uZSgpLCBzdHJlYW0uY2xvbmUoKSkpOworCisgIGxldCBjYWxsQ291
bnQgPSAwOworICBsZXQgbWV0YWRhdGFUb0JlTG9hZGVkID0gbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7CisgICAgY2FsbGVlLm9udHJhY2sgPSAoZSkgPT4geworICAgICAgY29uc3Qgc3RyZWFtID0g
ZS5zdHJlYW1zWzBdOworICAgICAgY29uc3QgdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICB2LmF1dG9wbGF5ID0gdHJ1ZTsKKyAgICAgIHYuc3JjT2JqZWN0ID0gc3Ry
ZWFtOworICAgICAgdi5pZCA9IHN0cmVhbS5pZAorICAgICAgdi5hZGRFdmVudExpc3RlbmVyKCds
b2FkZWRtZXRhZGF0YScsICgpID0+IHsKKyAgICAgICAgaWYgKCsrY2FsbENvdW50ID09PSAyKSB7
CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9OworICB9
KTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAvLyBS
ZXBsYWNlIEJVTkRMRSwgdGhlIG1pZCBoZWFkZXIgZXh0ZW5zaW9uIGFuZCBhbGwgc3NyYyBsaW5l
cworICAvLyB3aXRoIGJvZ3VzLiBUaGUgcmVjZWl2ZXIgd2lsbCBiZSBmb3JjZWQgdG8gZG8gcGF5
bG9hZCB0eXBlIGRlbXV4aW5nCisgIC8vIHdoaWNoIGlzIHN0aWxsIHBvc3NpYmxlIGJlY2F1c2Ug
dGhlIGRpZmZlcmVudCBtLWxpbmVzIGFycml2ZSBvbgorICAvLyBkaWZmZXJlbnQgcG9ydHMvc29j
a2V0cy4KKyAgY29uc3Qgc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoJ0JVTkRMRScsICdTT01FVEhJ
TkcnKQorICAgIC5yZXBsYWNlKC9ydHAtaGRyZXh0OnNkZXMvZywgJ3J0cC1oZHJleHQ6c29tZXRo
aW5nJykKKyAgICAucmVwbGFjZSgvYT1zc3JjOi9nLCAnYT1ub3Rzc3JjJyk7CisKKyAgYXdhaXQg
Y2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHB9KTsKKyAgYXdh
aXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworCisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURl
c2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7CisKKyAgYXdhaXQgbWV0YWRhdGFUb0JlTG9hZGVkOworfSwgJ0NhbiBkZW11eCB0d28g
dmlkZW8gdHJhY2tzIHdpdGggdGhlIHNhbWUgcGF5bG9hZCB0eXBlIG9uIGFuIHVuYnVuZGxlZCBj
b25uZWN0aW9uJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40NTRkN2RmNTc3MDhkMjFmM2VlM2NhMDg0YjZjYjgwYmEwYTA3YTk0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK1BBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA5
Ni0xMjcgd29ya3MKK0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRo
ZSByYW5nZSAzNS02MyB3b3JrcyBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UK
K0ZBSUwgc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSA2NC05
NSB0aHJvd3MgYW4gSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBo
YXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1wYXlsb2FkdHlwZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ODA2ZTc1ZWQ1MTRjMDQ5NjhkMDNiNmQ4NDEzZGFhMzhiODNkMDUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCkBAIC0wLDAgKzEsNTgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5wYXlsb2Fk
IHR5cGUgaGFuZGxpbmcgKGFzc3VtaW5nIHJ0Y3AtbXV4KTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRD
UGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmlj
dCc7CisvLyBUZXN0cyBiZWhhdmlvdXIgZnJvbSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwv
cmZjNTc2MSNzZWN0aW9uLTQKKworZnVuY3Rpb24gY3JlYXRlT2ZmZXJTZHAob3B1c1BheWxvYWRU
eXBlKSB7CisgIHJldHVybiBgdj0wCitvPS0gMCAzIElOIElQNCAxMjcuMC4wLjEKK3M9LQordD0w
IDAKK2E9ZmluZ2VycHJpbnQ6c2hhLTI1NiBBNzoyNDo3MjpDQTo2RTowMjo1NTozOTpCQTo2NjpE
Rjo2RTpDQzo0QzpEODpCMDoxQTpCRjoxQTo1Njo2NTo3RDpGNDowMzpBRDo3RTo3Nzo0MzoyQToy
OTpFQzo5MworYT1pY2UtdWZyYWc6NkhISGR6emVJaGtFMENLagorYT1pY2UtcHdkOlhZREdWcGZ2
a2xRSUVuWjZZbnlMc0FldworbT1hdWRpbyA5IFJUUC9TQVZQRiAke29wdXNQYXlsb2FkVHlwZX0K
K2M9SU4gSVA0IDAuMC4wLjAKK2E9cnRjcC1tdXgKK2E9c2VuZG9ubHkKK2E9bWlkOmF1ZGlvCith
PXJ0cG1hcDoke29wdXNQYXlsb2FkVHlwZX0gb3B1cy80ODAwMC8yCithPXNldHVwOmFjdHBhc3MK
K2A7Cit9CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgZm9yIChsZXQgcGF5bG9hZFR5
cGUgPSA5NjsgcGF5bG9hZFR5cGUgPD0gMTI3OyBwYXlsb2FkVHlwZSsrKSB7CisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBjcmVhdGVPZmZlclNkcChwYXlsb2FkVHlwZSl9
KTsKKyAgICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYy5jcmVhdGVBbnN3ZXIoKTsKKyAgICBhc3Nl
cnRfdHJ1ZShhbnN3ZXIuc2RwLmluY2x1ZGVzKGBhPXJ0cG1hcDoke3BheWxvYWRUeXBlfSBvcHVz
LzQ4MDAwLzJgKSk7CisgICAgcGMuY2xvc2UoKTsKKyAgfQorfSwgJ3NldFJlbW90ZURlc2NyaXB0
aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUgcmFuZ2UgOTYtMTI3IHdvcmtzJyk7CisKKy8vIFRoaXMg
aXMgd3JpdHRlbiBhcyBhIHNlcGFyYXRlIHRlc3Qgc2luY2UgaXQgY3VycmVudGx5IGZhaWxzIGlu
IENocm9tZS4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgZm9yIChsZXQgcGF5bG9hZFR5
cGUgPSAzNTsgcGF5bG9hZFR5cGUgPD0gNjM7IHBheWxvYWRUeXBlKyspIHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2Ny
aXB0aW9uKHt0eXBlOiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKHBheWxvYWRUeXBlKX0p
OworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICAgIGFzc2Vy
dF90cnVlKGFuc3dlci5zZHAuaW5jbHVkZXMoYGE9cnRwbWFwOiR7cGF5bG9hZFR5cGV9IG9wdXMv
NDgwMDAvMmApKTsKKyAgICBwYy5jbG9zZSgpOworICB9Cit9LCAnc2V0UmVtb3RlRGVzY3JpcHRp
b24gd2l0aCBhIGNvZGVjIGluIHRoZSByYW5nZSAzNS02MyB3b3JrcycpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgIGZvciAobGV0IHBheWxvYWRUeXBlID0gNjQ7IHBheWxvYWRUeXBl
IDw9IDk1OyBwYXlsb2FkVHlwZSsrKSB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfZG9tKHQsICdJbnZhbGlkQWNjZXNz
RXJyb3InLAorICAgICAgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNk
cDogY3JlYXRlT2ZmZXJTZHAoNjQpfSkpOworICAgIHBjLmNsb3NlKCk7CisgIH0KK30sICdzZXRS
ZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDY0LTk1IHRocm93cyBh
biBJbnZhbGlkQWNjZXNzRXJyb3InKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKaW5kZXggMTAyNzcxZTIzYTUzNjg0OGYw
MDI0OTE2NmVjZTEwMjE3NzY2YTM4MC4uNWViODMyOTUxN2ZiZWZlOTQ2ODJmZTc5MWFlODE3Njlk
MDNkYTE5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5o
dHRwcy5odG1sCkBAIC01Myw3ICs1Myw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKIAog
ICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOwogICBjb25zdCBzZWN0
aW9ucyA9IFNEUFV0aWxzLnNwbGl0U2VjdGlvbnMob2ZmZXIuc2RwKTsKLSAgLy8gcmVtb3ZlIHRo
ZSBhPWdyb3VwOkJVTkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxpbmcuCisgIC8vIFJlbW92
ZSB0aGUgYT1ncm91cDpCVU5ETEUgZnJvbSB0aGUgU0RQIHdoZW4gc2lnbmFsaW5nLgogICBjb25z
dCBidW5kbGUgPSBTRFBVdGlscy5tYXRjaFByZWZpeChzZWN0aW9uc1swXSwgJ2E9Z3JvdXA6QlVO
RExFJylbMF07CiAgIHNlY3Rpb25zWzBdID0gc2VjdGlvbnNbMF0ucmVwbGFjZShidW5kbGUgKyAn
XHJcbicsICcnKTsKIApAQCAtNjgsNiArNjgsMTggQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
ewogICBjb25zdCBhbnN3ZXJWaWRlbyA9IGF3YWl0IGNhbGxlZVZpZGVvLmNyZWF0ZUFuc3dlcigp
OwogICBjb25zdCBhdWRpb1NlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhhbnN3ZXJB
dWRpby5zZHApOwogICBjb25zdCB2aWRlb1NlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9u
cyhhbnN3ZXJWaWRlby5zZHApOworCisgIC8vIFJlbW92ZSB0aGUgZmluZ2VycHJpbnQgZnJvbSB0
aGUgc2Vzc2lvbiBwYXJ0IG9mIHRoZSBTRFAgaWYgcHJlc2VudAorICAvLyBhbmQgbW92ZSBpdCB0
byB0aGUgbWVkaWEgc2VjdGlvbi4KKyAgU0RQVXRpbHMubWF0Y2hQcmVmaXgoYXVkaW9TZWN0aW9u
c1swXSwgJ2E9ZmluZ2VycHJpbnQ6JykuZm9yRWFjaChsaW5lID0+IHsKKyAgICBhdWRpb1NlY3Rp
b25zWzBdID0gYXVkaW9TZWN0aW9uc1swXS5yZXBsYWNlKGxpbmUgKyAnXHJcbicsICcnKTsKKyAg
ICBhdWRpb1NlY3Rpb25zWzFdICs9IGxpbmUgKyAnXHJcbic7CisgIH0pOworICBTRFBVdGlscy5t
YXRjaFByZWZpeCh2aWRlb1NlY3Rpb25zWzBdLCAnYT1maW5nZXJwcmludDonKS5mb3JFYWNoKGxp
bmUgPT4geworICAgIHZpZGVvU2VjdGlvbnNbMF0gPSB2aWRlb1NlY3Rpb25zWzBdLnJlcGxhY2Uo
bGluZSArICdcclxuJywgJycpOworICAgIHZpZGVvU2VjdGlvbnNbMV0gKz0gbGluZSArICdcclxu
JzsKKyAgfSk7CisKICAgY29uc3Qgc2RwID0gYXVkaW9TZWN0aW9uc1swXSArIGF1ZGlvU2VjdGlv
bnNbMV0gKyB2aWRlb1NlY3Rpb25zWzFdOwogICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3Jp
cHRpb24oe3R5cGU6ICdhbnN3ZXInLCBzZHB9KTsKICAgYXdhaXQgY2FsbGVlQXVkaW8uc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXJBdWRpbyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlh
dHlwZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xMzlhZmUwY2FkY2JhOWQzYTZjZjlhNWU3N2ZjZmYzMTVjNTYwYmMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBVbmtub3duIG1lZGlhIHR5cGVzIGFyZSByZWplY3RlZCB3aXRoIHRo
ZSBwb3J0IHNldCB0byAwIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIkludmFsaWRBY2Nlc3NFcnJvcjogRmFpbGVkIHRvIHNldCByZW1vdGUgb2Zm
ZXIgc2RwOiBUaGUgQlVORExFIGdyb3VwIGNvbnRhaW5zIE1JRD0nMCcgbWF0Y2hpbmcgbm8gbT0g
c2VjdGlvbi4iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
dW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjUxNzZkMWM4N2I2YTJhMTQyODFj
NjAzZjRhNDkxZWZkODZjODI2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0
eXBlcy5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5SVENQZWVyY29ubmVjdGlvbiBTRFAgaGFuZGxpbmcgb2YgdW5rbm93
biBtZWRpYSB0eXBlczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNv
bnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAg
Y29uc3Qgc3RyZWFtID0gYXdhaXQgZ2V0Tm9pc2VTdHJlYW0oe2F1ZGlvOiB0cnVlfSk7CisgIHBj
MS5hZGRUcmFjayhzdHJlYW0uZ2V0VHJhY2tzKClbMF0sIHN0cmVhbSk7CisgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbih7CisgICAgdHlwZTogJ29mZmVyJywKKyAgICBzZHA6IG9mZmVyLnNkcAorICAgICAgICAu
cmVwbGFjZSgnbT1hdWRpbyAnLCAnbT11bmljb3JucyAnKQorICB9KTsKKyAgYXdhaXQgcGMxLnNl
dExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3Jl
YXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Cisg
IC8vIERvIG5vdCBhdHRlbXB0IHRvIGNhbGwgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uLgorCisg
IGNvbnN0IFtwcmVhbWJsZSwgbWVkaWFfc2VjdGlvbiwgcG9zdGFtYmxlXSA9IGFuc3dlci5zZHAu
c3BsaXQoJ1xyXG5tPScpOworICBhc3NlcnRfdHJ1ZSh0eXBlb2YocG9zdGFtYmxlKSA9PT0gJ3Vu
ZGVmaW5lZCcpOworICBhc3NlcnRfZ3JlYXRlcl90aGFuKG1lZGlhX3NlY3Rpb24uc2VhcmNoKAor
ICAgIC9edW5pY29ybnMgMC8pLCAtMSk7Cit9LCAnVW5rbm93biBtZWRpYSB0eXBlcyBhcmUgcmVq
ZWN0ZWQgd2l0aCB0aGUgcG9ydCBzZXQgdG8gMCcpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC92aWRlby1jb2RlY3MuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCmlu
ZGV4IGE0OTA1YWU0NDFhOTEyNzk3Nzg4ZDZkMGIwNjVhNmM4NjFkNzA4YjguLjRjZTA2MThiY2Ez
MDA3ZTQxOTNiOThhOTViMGE2ZDAzMGNjMjRiNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVj
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCkBAIC03LDYgKzcs
MTEgQEAKIDxzY3JpcHQ+CiAndXNlIHN0cmljdCc7CiAKKy8qCisgKiBDaHJvbWl1bSBub3RlOiB0
aGlzIHJlcXVpcmVzIGJ1aWxkIGJvdHMgd2l0aCBIMjY0IHN1cHBvcnQuIFNlZQorICogICBodHRw
czovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD04NDA2NTkK
KyAqIGZvciBkZXRhaWxzIG9uIGhvdyB0byBlbmFibGUgc3VwcG9ydC4KKyAqLwogLy8gVGVzdHMg
Zm9yIGNvbmZvcm1hbmNlIHRvIFJGQyA3NzQyLAogLy8gIldlYlJUQyBWaWRlbyBQcm9jZXNzaW5n
IGFuZCBDb2RlYyBSZXF1aXJlbWVudHMiCiAvLyBUaGUgZG9jdW1lbnQgd2FzIGZvcm1lcmx5IGtu
b3duIGFzIGRyYWZ0LWlldGYtcnRjd2ViLXZpZGVvLWNvZGVjcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKaW5kZXggZjk0ZDc5YTU0N2U2YzVkYzBk
MzVmYWEyNjU3NTk1OTZlZjBhZTY5NC4uNGUzYzgxZTU5NzM2NmIzNDIxYjUyNTI4M2RhNTY2MTU5
NmZjNjlmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDE3ICsxNSwyMiBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvUkVBRE1FLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBl
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvYnVuZGxlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0
cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvZHRscy1maW5nZXJwcmlu
dC12YWxpZGF0aW9uLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXN0YXRlLmh0dHBz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9pY2UtdWZyYWdwd2QuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2pzZXAtaW5pdGlhbC1vZmZlci5odHRw
cy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvbWlzc2luZy1maWVsZHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21zaWQtcGFyc2UuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3J0cC1kZW11eGluZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2N0cC1m
b3JtYXQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1hbnN3ZXIuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NpbXVsY2FzdC1vZmZl
ci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy5odG1s
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCmluZGV4IDg5ZTE4YmNkNTFjZjAyOWI0Zjk1Mjgx
NjRlNmI5MDMwNmYyMTA1MjYuLjI2ZWQyZTkwNGE4YjM1MTdjOWRkMzVhZjI3NjMzMGQ1MzQxZDcz
ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMu
aHRtbApAQCAtOCw2ICs4LDExIEBACiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorLyoKKyAqIENocm9taXVtIG5vdGU6IHRoaXMgcmVx
dWlyZXMgYnVpbGQgYm90cyB3aXRoIEgyNjQgc3VwcG9ydC4gU2VlCisgKiAgIGh0dHBzOi8vYnVn
cy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQorICogZm9y
IGRldGFpbHMgb24gaG93IHRvIGVuYWJsZSBzdXBwb3J0LgorICovCiBwcm9taXNlX3Rlc3QoYXN5
bmMgdCA9PiB7CiAgIGFzc2VydF9pbXBsZW1lbnRzKCdnZXRDYXBhYmlsaXRpZXMnIGluIFJUQ1J0
cFNlbmRlciwgJ1JUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMgbm90IHN1cHBvcnRlZCcpOwog
ICBhc3NlcnRfaW1wbGVtZW50cyhSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycp
LmNvZGVjcy5maW5kKGMgPT4gYy5taW1lVHlwZSA9PT0gJ3ZpZGVvL0gyNjQnKSwgJ0gyNjQgbm90
IHN1cHBvcnRlZCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZwppbmRleCBhMzk3
ZDhlNzZjMjc3ZTRmYzY3YmYyNmQwNzk2YzQ5Y2JmNmEzYmEyLi41MTRiNjFmZjFlZDYzMDg2OGJk
ZjM1NGRiY2JjYmUwMTM4M2ZlYmNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMjgsNiArMjgsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItaW5zZXJ0RFRNRi5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRFRNRlNlbmRlci1vbnRvbmVjaGFuZ2UtbG9uZy5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRl
ci1vbnRvbmVjaGFuZ2UuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmpz
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
RGF0YUNoYW5uZWwtYnVmZmVyZWRBbW91bnQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWNsb3NlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRh
Q2hhbm5lbC1pZC5odG1sCkBAIC00MiwyMSArNDMsMjYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFu
c3BvcnQtZXh0ZW5zaW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNpb24uaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0ljZVRyYW5zcG9ydC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWFkZC10cmFjay1uby1kZWFkbG9jay5odHRwcy5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
YWRkSWNlQ2FuZGlkYXRlLXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2Fu
ZGlkYXRlLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFjay5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhblRyaWNrbGVJY2VD
YW5kaWRhdGVzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUtaW4tc2RwLmh0dHBzLmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNv
bnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVBbnN3ZXIuaHRtbAogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1nZW5lcmF0ZUNlcnRpZmljYXRlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZh
dWx0SWNlU2VydmVycy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWdldFRyYW5zY2VpdmVycy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3Qu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS1kaXNjb25uZWN0ZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25T
dGF0ZS5odHRwcy5odG1sCkBAIC02OCw2ICs3NCw5IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9u
dHJhY2suaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9wZXJhdGlvbnMuaHR0cHMuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVy
ZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3Rl
LXRyYWNrLW11dGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW92ZVRyYWNrLmh0dHBzLmh0
bWwKQEAgLTkyLDYgKzEwMSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdHJhY2st
c3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXRyYW5zY2VpdmVycy5odHRwcy5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JF
dmVudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFdmVudC1jb25zdHJ1Y3Rvci5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwQ2FwYWJp
bGl0aWVzLWhlbHBlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtY29kZWNzLmh0bWwKQEAgLTEwNSw2ICsxMTUs
NyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2Vp
dmVyLWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFNlbmRlci1nZXRDYXBhYmlsaXRpZXMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1nZXRTdGF0cy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwU2VuZGVyLXJlcGxhY2VUcmFjay5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1
MTc0Y2MzMjBhNmNmNDlmODgxZGQ1YjYyMzYwYWJlMmE3NTJmNzc5Li44MzY2Zjk3NGY3Yzc4OGJk
YmI0YzRlYWM3MmFhYmZlYzQ3NWI3Yzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTkyLDYgKzkyLDcg
QEAgd2Via2l0Lm9yZy9iLzIxNDczMCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm4KIHdlYmtpdC5vcmcvYi8yMTQ3MzAgWyBEZWJ1ZyBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
Y29uc3RydWN0b3IuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIxNDY2MSBbIERlYnVnIF0g
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1l
dmVudHMuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIxNDczMCBbIERlYnVnIF0gd2VicnRj
L3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMTQzNTggZmFzdC9zY3JvbGxpbmcv
aW9zL3Byb2dyYW1tYXRpYy1zY3JvbGwtd2hpbGUtem9vbWVkLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlvdXRU
ZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggMmZiNDAzZjk3OTkzMTlhZWU1NWE4ZTAzYTE2
ZGU1OGUyYjYyODMwZi4uYjkyZDg3MzU5MjMxNTdjOTI3MWJlYWIyYTI2NTgyZjk5Y2JhMmRjMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91dFRl
c3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtMjk2Myw2ICsyOTYzLDkgQEAKICAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlQ29ubmVjdGlvblN0YXRlLWNh
bmRpZGF0ZS1wYWlyLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAg
ImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBA
IC0yOTc1LDYgKzI5NzgsMTIgQEAKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3Ry
ZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAor
ICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sIjogWworICAg
ICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwi
OiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCkBAIC0yOTk2LDYgKzMwMDUsOSBAQAogICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRT
eW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAg
IF0sCisgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNl
bmRlci1lbmNvZGUtc2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sIjogWworICAgICAgICAic2xv
dyIKKyAgICBdLAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBTZW5kZXItcmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwiOiBbCiAgICAgICAgICJzbG93Igog
ICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414925</attachid>
            <date>2020-11-27 01:34:35 -0800</date>
            <delta_ts>2020-11-27 02:08:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127103433.patch</filename>
            <type>text/plain</type>
            <size>58270</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZmZDE5MWQzZWNhYTQy
ZjE2Njk5MDZlYWU2YWJkM2ZkZDgwYWQ0Ni4uNWY5MGMzMmM5YzBlOGM5N2JjZjc2NmI2YTkzYzIy
Y2FlMjU3MWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDIwLTExLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbG9ja2lu
ZyBXcml0YWJsZVN0cmVhbSBhbmQgY2hlY2tpbmcgbG9ja2VkIHN0YXRlLgorICAgICAgICBBZGQg
cmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyBzbyB0aGF0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBj
YW4gYmUgdXNlZCBhcyBhIFRyYW5zZm9ybVN0cmVhbS4KKyAgICAgICAgTWFrZSBhIHJlZmFjdG9y
aW5nIHRvIGFsbG93IHJldXNlIG9mIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlIGFuZCBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsuCisKKyAgICAgICAgSW4gY2FzZSBvZiBlbmNyeXB0aW9uL2Rl
Y3J5cHRpb24gZXJyb3IsIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtIGFzIHRoaXMgaXMg
ZmluYWwuCisgICAgICAgIEluc3RlYWQsIHdlIG91dHB1dCBlbXB0eSBidWZmZXJzLgorICAgICAg
ICBJbiBjYXNlIG9mIHRyeWluZyB0byBlbmNyeXB0IHVuZXhwZWN0ZWQgb2JqZWN0cywgd2UgZXJy
b3IgdGhlIHRyYW5zZm9ybS4KKworICAgICAgICBNb3ZlIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSB0byBiZSByZWYgY291bnRlZC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCBhIFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZSBmb3IgZWFjaCBSVENFbmNvZGVkRnJhbWUgZXZlbiB0aG91Z2gg
dGhlIHVuZGVybHlpbmcKKyAgICAgICAgd2VicnRjIGZyYW1lICh3aGljaCBpcyBhIHVuaXF1ZSBw
dHIpIGlzIGdpdmVuIGJhY2sgdG8gdGhlIHdlYnJ0YyBiYWNrZW5kIGFmdGVyIHByb2Nlc3Npbmcu
CisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5j
b2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRW5jb2RlZEZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENFbmNvZGVkRnJhbWU6
OnJ0Y0ZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRl
b0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENF
bmNvZGVkVmlkZW9GcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNv
ZGVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWU6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjppc0F0dGFjaGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybTo6aW5pdGlhbGl6ZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0
cFNGcmFtZVRyYW5zZm9ybTo6d2lsbENsZWFyQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06
OmNyZWF0ZVN0cmVhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
OjpyZWFkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06Ondy
aXRhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNy
eXB0aW9uS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpk
ZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OmVuY3J5cHRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
Ojp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEF1dGhlbnRpY2F0aW9uU2l6ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNh
dGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0U3RyZWFtcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHA6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9j
ZXNzVHJhbnNmb3JtZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjplbnF1ZXVlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1TaW5rLmg6CisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luayk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OndyaXRlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
cml0YWJsZVN0cmVhbUludGVybmFsOjpjYWxsRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Y2hlY2tXcml0YWJsZVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbTo6
bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbTo6aXNMb2NrZWQgY29uc3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRUb0luY2x1ZGVz
Rm9ySURMVHlwZSk6CisKIDIwMjAtMTEtMjYgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUSzRdIEJ1aWxkIGZpeC4gQWRkIGNhc3Qgd2hlbiB0YWtpbmcgY29u
c3QgZGF0YSBvd25lcnNoaXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKaW5kZXggODg1Mjc3MjYzNzlm
YmZiNmRhNzg0ODM3MWVjZmIxMzE4ZGI4ZWRiNC4uYTNlYjI4MmU2MWVjNDEzNjVkMjhmOGE4MzY5
NzQzNGM3MDliZTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENFbmNvZGVkQXVkaW9GcmFtZTo6UlRDRW5jb2Rl
ZEF1ZGlvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkK
K1JUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUo
ZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oCmluZGV4IDgyYjZmMDgyNzVlNjkzNTliNDdj
MGYwNTE2YzMyY2VlZDYwNDAxNTUuLmJlNzc2YmQyYjI0MmNkMDgyNjYzNDc0NmFjODUwYjQxMGNl
MDM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RW5jb2RlZEF1ZGlvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRBdWRpb0ZyYW1lIDogcHVibGljIFJUQ0VuY29k
ZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkQXVkaW9GcmFtZT4g
Y3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZEF1ZGlvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsg
fQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0Vu
Y29kZWRBdWRpb0ZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZEF1ZGlv
RnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShV
bmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENF
bmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcAppbmRleCAwNzZhOTM5NTZhYmJiZTg0
NjA0N2NjZTAxYWYxMmM1YzFjYjJkNTA5Li43MDIxNTVmNWNlYjZmZTM0NGI0ODIyOWFlMzM4YzY1
OGE2NTFjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0VuY29kZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUlRDRW5jb2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUoVW5pcXVlUmVmPFJU
Q1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRGcmFtZTo6UlRDRW5j
b2RlZEZyYW1lKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpCiAgICAgOiBt
X2ZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmgKaW5kZXggYWRiNDc0ZGI5MTMxNTA4
ZGUzNWRkMGE3ZTBkMDFkNzRlYmE2YWY5Yi4uODcxM2Y1YjhiM2Y3ZDhmODIxM2NiMDQ0ZmI1YjJm
Njk3YzE3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENFbmNvZGVkRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0VuY29kZWRGcmFtZS5oCkBAIC00MywxMiArNDMsMTIgQEAgcHVibGljOgogICAgIFJl
ZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREYXRhKEpT
Qzo6QXJyYXlCdWZmZXImKTsKIAotICAgIFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IHRha2VSVENGcmFtZSgpIHsgcmV0dXJuIFdURk1vdmUobV9mcmFtZSk7IH0KKyAgICBSVENS
dHBUcmFuc2Zvcm1hYmxlRnJhbWUmIHJ0Y0ZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgUlRDRW5jb2RlZEZyYW1lKFVuaXF1ZVJlZjxS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpOworICAgIGV4cGxpY2l0IFJUQ0VuY29kZWRGcmFt
ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIAotICAgIFVuaXF1ZVJlZjxSVENS
dHBUcmFuc2Zvcm1hYmxlRnJhbWU+IG1fZnJhbWU7CisgICAgUmVmPFJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJh
bWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlk
ZW9GcmFtZS5jcHAKaW5kZXggY2FmNjNhMDljMmQ4YTY5NWQ0Mzc2MmVmN2QzOTBjZmY5N2U2NjE0
NS4uMWVkMTU1NjQ1MTA0MTBkNGU0Yzg4ODNhZDE0YTNkMTExNzE0MzZlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlk
ZW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
VENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENF
bmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQog
ICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFt
ZS5oCmluZGV4IDM3NzA1YWM4NTZhMDI2Mjk3ZjgxOTA3M2VhZjRjODMwZTM2MTlhNTUuLmQ1ZmEx
MjBiZTI0YWZmMWI3ZmY4NTRkNTUzMzRmMTBlYzQ4ZjRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmgK
QEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29k
ZWRWaWRlb0ZyYW1lIDogcHVibGljIFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxSVENFbmNvZGVkVmlkZW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2Rl
ZFZpZGVvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2Rl
ZFZpZGVvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1l
KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0VuY29kZWRWaWRlb0ZyYW1lKFdURk1vdmUoZnJh
bWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZFZpZGVvRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJs
ZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCA1Yzg3Y2Y1NjRhNTE1MzAxNDc5M2M0OGYyZjJkZTky
NzVjNzk3MmU4Li5lYzFkMzhlMzg5M2FhZTg0MDlmMDI5MDg1MmYxMTJjN2U5NGVhNTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRy
YW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0yOSwxNiArMjksMjcgQEAKICNpZiBFTkFCTEUoV0VC
X1JUQykKIAogI2luY2x1ZGUgIkNyeXB0b0tleVJhdy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVy
dEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJSVENFbmNv
ZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIlJUQ0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5j
bHVkZSAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5j
bHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgi
CisjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKQotICAgIDog
bV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCkpCitSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI6OmNyZWF0ZSgpKQogeworICAgIG1fdHJhbnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhv
cHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlwdCk7CisgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0
aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0aGVudGljYXRpb25TaXplKTsKIH0KIAogUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtOjp+UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCkKQEAgLTY3LDExICs3OCwy
MyBAQCB1aW50NjRfdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNvdW50ZXJGb3JUZXN0aW5nKCkg
Y29uc3QKICAgICByZXR1cm4gbV90cmFuc2Zvcm1lci0+Y291bnRlcigpOwogfQogCitib29sIFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRhY2hlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aXNBdHRhY2hlZCB8fCAobV9yZWFkYWJsZSAmJiBtX3JlYWRhYmxlLT5pc0xvY2tlZCgpKSB8fCAo
bV93cml0YWJsZSAmJiBtX3dyaXRhYmxlLT5pc0xvY2tlZCgpKTsKK30KKwogdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kJiBiYWNrZW5kLCBTaWRlIHNpZGUpCiB7CisgICAgQVNTRVJUKCFpc0F0dGFjaGVkKCkpOwor
CiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKLSAgICBtX3RyYW5zZm9ybWVyLT5zZXRJc1NlbmRp
bmcoc2lkZSA9PSBTaWRlOjpTZW5kZXIpOwotICAgIG1fdHJhbnNmb3JtZXItPnNldElzUHJvY2Vz
c2luZ0F1ZGlvKGJhY2tlbmQubWVkaWFUeXBlKCkgPT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6
TWVkaWFUeXBlOjpBdWRpbyk7CisgICAgaWYgKG1fcmVhZGFibGUpCisgICAgICAgIG1fcmVhZGFi
bGUtPmxvY2soKTsKKyAgICBpZiAobV93cml0YWJsZSkKKyAgICAgICAgbV93cml0YWJsZS0+bG9j
aygpOworCisgICAgbV90cmFuc2Zvcm1lci0+c2V0SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6
U2VuZGVyKTsKKyAgICBtX3RyYW5zZm9ybWVyLT5zZXRBdXRoZW50aWNhdGlvblNpemUoYmFja2Vu
ZC5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlv
ID8gNCA6IDEwKTsKIAogICAgIGJhY2tlbmQuc2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2so
W3RyYW5zZm9ybWVyID0gbV90cmFuc2Zvcm1lciwgYmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCld
KGF1dG8mJiBmcmFtZSkgewogICAgICAgICBhdXRvIGNodW5rID0gZnJhbWUtPmRhdGEoKTsKQEAg
LTg0LDExICsxMDcsMTAgQEAgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVU
cmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW4KIAogICAgICAgICBmcmFt
ZS0+c2V0RGF0YSh7IHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZh
bHVlKCkuc2l6ZSgpIH0pOwogCi0gICAgICAgIGJhY2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZy
YW1lKFdURk1vdmUoZnJhbWUuZ2V0KCkpKTsKKyAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5z
Zm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOwogICAgIH0pOwogfQogCi0KIHZvaWQgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtOjppbml0aWFsaXplQmFja2VuZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyKGJhY2tlbmQs
IFNpZGU6OlJlY2VpdmVyKTsKQEAgLTEwMiw3ICsxMjQsOTQgQEAgdm9pZCBSVENSdHBTRnJhbWVU
cmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQmIGIKIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp3aWxsQ2xlYXJCYWNrZW5kKFJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgYmFja2VuZC5jbGVhclRyYW5zZm9y
bWFibGVGcmFtZUNhbGxiYWNrKCk7Ci0gICAgbV9pc0F0dGFjaGVkID0gZmFsc2U7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIEZyYW1lPgordm9pZCB0cmFuc2Zvcm1GcmFtZShGcmFtZSYgZnJhbWUs
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
JiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAg
ICBhdXRvIGNodW5rID0gZnJhbWUucnRjRnJhbWUoKS5kYXRhKCk7CisgICAgYXV0byByZXN1bHQg
PSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oY2h1bmsuZGF0YSwgY2h1bmsuc2l6ZSk7CisgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUYocmVzdWx0Lmhhc0V4Y2VwdGlvbigpLCBXZWJSVEMsICJSVENSdHBT
RnJhbWVUcmFuc2Zvcm0gZmFpbGVkIHRyYW5zZm9ybWluZyBhIGZyYW1lIik7CisKKyAgICBSVENS
dHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgdHJhbnNmb3JtZWRDaHVuazsKKyAgICAvLyBJbiBj
YXNlIG9mIGVycm9yLCB3ZSBqdXN0IHBhc3MgYWxvbmcgdGhlIGZyYW1lIHdpdGggZW1wdHkgZGF0
YS4KKyAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgdHJhbnNmb3JtZWRD
aHVuayA9IHsgcmVzdWx0LnJldHVyblZhbHVlKCkuZGF0YSgpLCByZXN1bHQucmV0dXJuVmFsdWUo
KS5zaXplKCkgfTsKKworICAgIGZyYW1lLnJ0Y0ZyYW1lKCkuc2V0RGF0YSh0cmFuc2Zvcm1lZENo
dW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmpl
Y3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4KK3ZvaWQgdHJhbnNmb3JtRnJhbWUoSlNDOjpB
cnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFsdWUuZGF0YSgpKSwgdmFsdWUuYnl0ZUxlbmd0
aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihyZXN1bHQuaGFzRXhjZXB0aW9uKCksIFdl
YlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBmYWlsZWQgdHJhbnNmb3JtaW5nIGEgZnJhbWUi
KTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgp
LmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpKTsKKyAgICBzb3VyY2UuZW5xdWV1
ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci0+dHJ5Q3JlYXRlQXJy
YXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3Jl
YXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNl
ID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVhZGFi
bGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgbV9yZWFkYWJsZVN0cmVh
bVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChyZWFkYWJsZS5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0YWJsZSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVh
dGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNm
b3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJsZVN0cmVhbVNvdXJjZSA9IG1fcmVhZGFibGVT
dHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKKworICAgICAgICBhdXRv
IGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlciwgSURMSW50ZXJmYWNlPFJU
Q0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+
KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9Owor
CisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHRocm93IGFueSBleGNlcHRpb24gaW4gdGhl
IHRyYW5zZm9ybSB0byBtYWtlIHN1cmUgd2UgZG8gbm90IGVycm9yIHRoZSB0cmFuc2Zvcm0uCisg
ICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJh
bWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgdHJhbnNmb3JtRnJhbWUoKnZhbHVlLCBnbG9iYWxP
YmplY3QsIHRyYW5zZm9ybWVyLmdldCgpLCAqcmVhZGFibGVTdHJlYW1Tb3VyY2UpOworICAgICAg
ICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAg
ICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xvYmFsT2JqZWN0LCB0cmFuc2Zvcm1lci5nZXQo
KSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAgICAgICAgfSwgWyZdKFJlZlB0cjxBcnJheUJ1
ZmZlcj4mIHZhbHVlKSB7CisgICAgICAgICAgICB0cmFuc2Zvcm1GcmFtZSgqdmFsdWUsIGdsb2Jh
bE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpyZWFkYWJsZVN0cmVhbVNvdXJjZSk7CisgICAg
ICAgIH0pOworICAgICAgICByZXR1cm4geyB9OworICAgIH0pKTsKKyAgICBpZiAod3JpdGFibGUu
aGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVhZGFibGUgPSByZWFk
YWJsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICBtX3dyaXRhYmxlID0gd3JpdGFibGUucmVs
ZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKG1faXNBdHRhY2hlZCkgeworICAgICAgICBtX3Jl
YWRhYmxlLT5sb2NrKCk7CisgICAgICAgIG1fd3JpdGFibGUtPmxvY2soKTsKKyAgICB9Cit9CisK
K0V4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bTo6cmVhZGFibGUoKQoreworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICghbV9yZWFkYWJsZSkKKyAgICAgICAgY3JlYXRl
U3RyZWFtcygpOworCisgICAgcmV0dXJuIG1fcmVhZGFibGUuY29weVJlZigpOworfQorCitFeGNl
cHRpb25PcjxSZWZQdHI8V3JpdGFibGVTdHJlYW0+PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06Ondy
aXRhYmxlKCkKK3sKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH07CisKKyAgICBpZiAoIW1fd3JpdGFibGUpCisgICAgICAgIGNyZWF0ZVN0cmVh
bXMoKTsKKworICAgIHJldHVybiBtX3dyaXRhYmxlLmNvcHlSZWYoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKaW5kZXggZDQ3ZGI5YjI5YzhhNmJkNTc4
Y2UyMzFhYTMxYjU2OWEwOWFlODVjNy4uYWI0OGYyZDBjZWQ1ODJkMTU0MjZlYTdhN2I0MDc3ZWRi
NDgwODUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMzQsMjkgKzM1LDQ1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0tl
eTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOwogY2xhc3MgUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJl
YW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVhbTsKIAotY2xhc3MgUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiB7CitjbGFz
cyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTRnJhbWVU
cmFuc2Zvcm0+LCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0pOyB9CisgICAgZW51bSBjbGFzcyBS
b2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAgIHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAg
Um9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9OworICAgICAgICB1aW50NjRfdCBhdXRoZW50aWNh
dGlvblNpemUgeyAxMCB9OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbnMg
b3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29u
dGV4dCwgb3B0aW9ucykpOyB9CiAgICAgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgpOwogCiAgICAg
dm9pZCBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tleSYsIE9wdGlvbmFsPHVpbnQ2NF90PiwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0gICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CisgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3Q7CiAg
ICAgdm9pZCBpbml0aWFsaXplQmFja2VuZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQmKTsKICAgICB2b2lkIGluaXRpYWxpemVCYWNrZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQmKTsKICAgICB2b2lkIHdpbGxDbGVhckJhY2tlbmQoUlRDUnRwVHJhbnNmb3JtQmFj
a2VuZCYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgY291bnRlckZvclRlc3Rpbmco
KSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4+IHJlYWRh
YmxlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUo
KTsKKwogcHJpdmF0ZToKLSAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAgICBSVENSdHBT
RnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbnMpOwogCiAgICAg
ZW51bSBjbGFzcyBTaWRlIHsgU2VuZGVyLCBSZWNlaXZlciB9OwogICAgIHZvaWQgaW5pdGlhbGl6
ZVRyYW5zZm9ybWVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmLCBTaWRlKTsKKyAgICB2b2lkIGNy
ZWF0ZVN0cmVhbXMoKTsKIAogICAgIGJvb2wgbV9pc0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBS
ZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IG1fdHJhbnNmb3JtZXI7CisgICAgUmVmUHRyPFJl
YWRhYmxlU3RyZWFtPiBtX3JlYWRhYmxlOworICAgIFJlZlB0cjxXcml0YWJsZVN0cmVhbT4gbV93
cml0YWJsZTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IG1fcmVhZGFi
bGVTdHJlYW1Tb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRy
YW5zZm9ybS5pZGwKaW5kZXggMjY0MjhkZDkyZjUxNTlkM2U5MjJiNTEwZTRkZTA3NTY2N2E5MTJh
ZS4uYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2N2EwM2NhNTk5YjIzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0u
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmlkbApAQCAtMjMsMTggKzIzLDMwIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
K2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9sZSB7CisgICAgImVuY3J5cHQiLAorICAgICJk
ZWNyeXB0IgorfTsKKworZGljdGlvbmFyeSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsK
KyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xlIHJvbGUgPSAiZW5jcnlwdCI7CisgICAgdW5z
aWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUgPSAxMDsKK307CisKIFsKICAgICBDb25kaXRp
b25hbD1XRUJfUlRDLAogICAgIEVuYWJsZWRCeVNldHRpbmc9V2ViUlRDSW5zZXJ0YWJsZVN0cmVh
bXMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgRXhwb3NlZD1XaW5kb3cs
Ci0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVP
YmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gewotICAgIGNvbnN0cnVj
dG9yKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9y
KG9wdGlvbmFsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybU9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBQ
cm9taXNlPHVuZGVmaW5lZD4gc2V0RW5jcnlwdGlvbktleShDcnlwdG9LZXkga2V5LCBvcHRpb25h
bCB1bnNpZ25lZCBsb25nIGxvbmcga2V5SUQpOwogICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBm
b3IgbWlzc2luZyBtZXRob2RzLgogICAgIC8vIFByb21pc2U8dW5kZWZpbmVkPiByYXRjaGV0RW5j
cnlwdGlvbktleSgpOwogICAgIC8vIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaWduaW5nS2V5KENy
eXB0b0tleSBrZXkpOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1
dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7CisgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFk
b25seSBhdHRyaWJ1dGUgV3JpdGFibGVTdHJlYW0gd3JpdGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyLmNwcAppbmRleCA5ODA4ZmQ5YWIyN2JjZTEwZjdjMTY1ZTNkZjkyZGIxNTk1Mzky
NzFhLi5jOTIzNmZlNjU0NDE3NGU0ZWZmZWZhZmNiOTEwNmQ4YWJlNDRiOTIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyLmNwcApAQCAtMTY3LDE0ICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9y
PHVpbnQ4X3QKICAgICBpZiAoa2V5SWQpCiAgICAgICAgIG1fa2V5SWQgPSAqa2V5SWQ7CiAKKyAg
ICB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsKICAgICBtX2hhc0tleSA9IHRydWU7CisKICAg
ICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUoY29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBz
aXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJWE1FOiBTdXBwb3J0IHNpZ25hdHVyZS4KLQog
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKIAogICAgIGF1dG8gaGVhZGVy
ID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRhLCBmcmFtZVNpemUpOwpAQCAtMTkxLDYgKzE5
MSw5IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIH0KIAorICAgIGlmIChmcmFtZVNpemUgPCAoaGVh
ZGVyLT5zaXplICsgbV9hdXRoZW50aWNhdGlvblNpemUpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRGF0YUVycm9yLCAiQ2h1bmsgaXMgdG9vIHNtYWxsIGZvciBhdXRoZW50aWNhdGlvbiBz
aXplIiB9OworCiAgICAgLy8gQ29tcHV0ZSBzaWduYXR1cmUKICAgICBhdXRvKiB0cmFuc21pdHRl
ZFNpZ25hdHVyZSA9IGZyYW1lRGF0YSArIGZyYW1lU2l6ZSAtIG1fYXV0aGVudGljYXRpb25TaXpl
OwogICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUoZnJh
bWVEYXRhLCBmcmFtZVNpemUgIC0gbV9hdXRoZW50aWNhdGlvblNpemUsIG1fYXV0aGVudGljYXRp
b25LZXkpOwpAQCAtMjE0LDggKzIxNyw2IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4g
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90CiAKIEV4
Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5
cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpCiB7Ci0g
ICAgLy8gRklYTUU6IFN1cHBvcnQgc2lnbmF0dXJlLgotCiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIE1heEhlYWRlclNpemUgPSAxNzsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9r
ZXlMb2NrKTsKQEAgLTI1OSw5ICsyNjAsOSBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogRXhj
ZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNm
b3JtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQogewogICAgIGlmICghbV9oYXNL
ZXkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJLZXkgaXMgbm90IGlu
aXRpYWxpemVkIl9zIH07CiAKLSAgICByZXR1cm4gbV9pc1NlbmRpbmcgPyBlbmNyeXB0RnJhbWUo
ZGF0YSwgc2l6ZSkgOiBkZWNyeXB0RnJhbWUoZGF0YSwgc2l6ZSk7CisgICAgcmV0dXJuIG1faXNF
bmNyeXB0aW5nID8gZW5jcnlwdEZyYW1lKGRhdGEsIHNpemUpIDogZGVjcnlwdEZyYW1lKGRhdGEs
IHNpemUpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpAQCAtMjk0LDYgKzI5NSwxMCBAQCBW
ZWN0b3I8dWludDhfdD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNvbXB1dGVFbmNyeXB0ZWRE
YXRhU2lnbmF0dXJlKGNvbnN0IHVpbgogewogICAgIHJldHVybiB7IH07CiB9CisKK3ZvaWQgUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnVwZGF0ZUF1dGhlbnRpY2F0aW9uU2l6ZSgpCit7Cit9CiAj
ZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggYjMxMmI3Y2EyMTRmZGE2MmY2ZTg5Y2YxMjA0YjU1OTAw
YTMzMmZjMC4uYTRlMWFhMTc2ZTg2NmI0ZjE2MDZmNjlmNjZjMjQ3NGE4MzQ5MTM2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gY3JlYXRlKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCk7CiAKLSAgICB2b2lk
IHNldElzU2VuZGluZyhib29sKTsKLSAgICB2b2lkIHNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wp
OworICAgIHZvaWQgc2V0SXNFbmNyeXB0aW5nKGJvb2wpOworICAgIHZvaWQgc2V0QXV0aGVudGlj
YXRpb25TaXplKHVpbnQ2NF90KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9wdGlv
bmFsPHVpbnQ2NF90Pik7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8VmVjdG9yPHVp
bnQ4X3Q+PiB0cmFuc2Zvcm0oY29uc3QgdWludDhfdCosIHNpemVfdCk7CkBAIC02Niw2ICs2Niw3
IEBAIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0RGF0
YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+
PiBkZWNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+
IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAgICB2b2lkIHVwZGF0ZUF1dGhlbnRpY2F0aW9u
U2l6ZSgpOwogCiAgICAgTG9jayBtX2tleUxvY2s7CiAgICAgYm9vbCBtX2hhc0tleSB7IGZhbHNl
IH07CkBAIC03MywyMCArNzQsMjAgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9l
bmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX3NhbHRLZXk7CiAKLSAgICBib29s
IG1faXNTZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNFbmNyeXB0aW5nIHsgZmFsc2Ug
fTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSB7IDEwIH07CiAgICAgdWludDY0
X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRfdCBtX2NvdW50ZXIgeyAwIH07CiB9OwogCi1p
bmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0SXNTZW5kaW5nKGJvb2wgaXNT
ZW5kaW5nKQoraW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzRW5jcnlw
dGluZyhib29sIGlzRW5jcnlwdGluZykKIHsKLSAgICBtX2lzU2VuZGluZyA9IGlzU2VuZGluZzsK
KyAgICBtX2lzRW5jcnlwdGluZyA9IGlzRW5jcnlwdGluZzsKIH0KIAotaW5saW5lIHZvaWQgUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wgaXNQcm9jZXNz
aW5nQXVkaW8pCitpbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0QXV0aGVu
dGljYXRpb25TaXplKHVpbnQ2NF90IHNpemUpCiB7Ci0gICAgbV9hdXRoZW50aWNhdGlvblNpemUg
PSBpc1Byb2Nlc3NpbmdBdWRpbyA/IDQgOiAxMDsKKyAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9
IHNpemU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyQ29jb2EuY3BwCmluZGV4IDRjM2Q0MjQ4MDJlMTkzY2FkNzBkMjFiYzIxMzc5Zjg1MGZi
MzU3NWMuLjU4MzM4MWZmMTViNmUwYjU2ZDgzMDRhM2I4MzJiNWM0ZTA1OGExYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcApAQCAtNjgsNiArNjgsMTIgQEAgVmVjdG9y
PHVpbnQ4X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpjb21wdXRlRW5jcnlwdGVkRGF0YVNp
Z25hdHVyZShjb25zdCB1aW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKQoreworICAgIGlmICht
X2F1dGhlbnRpY2F0aW9uU2l6ZSA+IENDX1NIQTI1Nl9ESUdFU1RfTEVOR1RIKQorICAgICAgICBt
X2F1dGhlbnRpY2F0aW9uU2l6ZSA9IENDX1NIQTI1Nl9ESUdFU1RfTEVOR1RIOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZDI3YzAzYzliOGI4YzRhMDJiMDAxMWFiMDA5OGZkNzYw
ZmUzZmUwNC4uNGFiNTNlYWMyYWI1NmJiNTliZTY4OGFmYzg4N2YwYTEwZTE2NDAwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFu
c2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTQwLDYzICs0MCw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgUlRDUnRwUmVhZGFibGVTdHJlYW1Tb3VyY2UKLSAgICA6IHB1Ymxp
YyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ1J0
cFJlYWRhYmxlU3RyZWFtU291cmNlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBS
ZWFkYWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENS
dHBSZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KLQotICAgIHZvaWQgY2xvc2UoKSB7IGNvbnRyb2xs
ZXIoKS5jbG9zZSgpOyB9Ci0gICAgdm9pZCBlbnF1ZXVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBj
b250cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0KLQotcHJpdmF0ZToKLSAgICBSVENSdHBSZWFk
YWJsZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsKLQotICAgIC8vIFJlYWRhYmxlU3RyZWFtU291
cmNlCi0gICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5hbCB7IH0KLSAgICB2b2lkIHNldEluYWN0aXZl
KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1N0YXJ0KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1B1
bGwoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRvQ2FuY2VsKCkgZmluYWwgeyB9Ci19OwotCi1jbGFz
cyBSVENSdHBXcml0YWJsZVN0cmVhbVNpbmsgOiBwdWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luaz4gY3JlYXRl
KEZ1bmN0aW9uPHZvaWQoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJik+JiYg
ZW5xdWV1ZUZ1bmN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFdyaXRhYmxlU3Ry
ZWFtU2luayhXVEZNb3ZlKGVucXVldWVGdW5jdGlvbikpKTsgfQotCi1wcml2YXRlOgotICAgIGV4
cGxpY2l0IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luayhGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiYmIGVucXVldWVGdW5jdGlvbikKLSAgICAgICAg
OiBtX2VucXVldWVGdW5jdGlvbihXVEZNb3ZlKGVucXVldWVGdW5jdGlvbikpCi0gICAgewotICAg
IH0KLQotICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlND
OjpKU1ZhbHVlIHZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQotICAg
IHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7
Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0
LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExJbnRlcmZh
Y2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRlcmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJh
bWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0KLSAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlv
bigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4
Y2VwdGlvbkVycm9yIH0sIFJlamVjdEFzSGFuZGxlZDo6WWVzKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8
UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgewotICAgICAgICAgICAgbV9lbnF1ZXVlRnVu
Y3Rpb24odmFsdWUtPnRha2VSVENGcmFtZSgpKTsKLSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENF
bmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAgICBtX2VucXVldWVGdW5jdGlv
bih2YWx1ZS0+dGFrZVJUQ0ZyYW1lKCkpOwotICAgICAgICB9KTsKLSAgICAgICAgcHJvbWlzZS5y
ZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IERlY2lkZSB3aGV0aGVyIGNsZWFyaW5n
IGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lkIGNsb3NlKCkgZmluYWwgeyB9Ci0gICAgdm9p
ZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0KLSAgICBGdW5jdGlvbjx2b2lkKFVuaXF1ZVJl
ZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiBtX2VucXVldWVGdW5jdGlvbjsKLX07Ci0K
IEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAg
ICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4
dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKTsKQEAgLTExOCw3ICs2MSw3
IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQog
ewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVTdHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRy
YW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkK
K1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3Jt
ZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kKQogewogICAg
IGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spOwogICAgIGlmICghY2FsbGJhY2sp
CkBAIC0xMzAsMTMgKzczLDI3IEBAIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4g
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUCiAgICAgYXV0byYg
dm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsK
IAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBSVENSdHBSZWFkYWJsZVN0cmVhbVNv
dXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFkYWJsZVN0cmVhbVNvdXJjZSA9IFNpbXBsZVJl
YWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsKICAgICBhdXRvIHJlYWRhYmxlU3RyZWFtID0g
UmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIHJlYWRhYmxlU3RyZWFtU291cmNl
LmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxlU3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJs
ZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgUlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rOjpj
cmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiYgZnJhbWUpIHsKLSAgICAg
ICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoV1RGTW92ZShmcmFtZS5nZXQoKSkp
OworICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtl
UmVmKGJhY2tlbmQpXShhdXRvJiBjb250ZXh0LCBhdXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2
b2lkPiB7CisgICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVj
dCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9i
amVjdC52bSgpKTsKKyAgICAgICAgYXV0byBmcmFtZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50
ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRl
b0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworCisgICAgICAgIGlmIChzY29wZS5leGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlv
bkVycm9yIH07CisKKyAgICAgICAgYXV0byBydGNGcmFtZSA9IFdURjo6c3dpdGNoT24oZnJhbWUs
IFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAg
cmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOworICAgICAgICB9LCBbJl0oUmVmUHRy
PFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIHJldHVybiBtYWtl
UmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgfSk7CisgICAgICAgIGJhY2tlbmQtPnBy
b2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKHJ0Y0ZyYW1lLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9KSk7CiAgICAgaWYgKHdyaXRhYmxlU3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRleCAzMTVkNDBj
ZmMwZWQ4NTAwNzQ4YzBiZWZkNzI0MjdkYWJjZmM2MGZiLi5kYjQ0MDhiNmFlMWVhYTI1Y2VjZDVh
MjQwYmViMWFiYTdhYTMzM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBAIC0zOCw3ICsz
OCw3IEBAIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ryb25nOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2Vu
ZDsKLWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlOworY2xhc3MgU2ltcGxlUmVhZGFi
bGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyCiAgICAgOiBw
dWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4KQEAgLTU5LDcgKzU5LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKIAotICAgIFJlZlB0cjxSVENS
dHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRTdHJlYW1zKFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQmKTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFt
cyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyIjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaAppbmRleCBhYTkyMmQz
Mjc5Mzc0NGFhOWNlODk5MzI2MTJmODZkY2I1NGM1OWNhLi5jNTlhMzQxZDYyNTczNDYxODc5NDcz
OTU2NzE3MDYwNmE1Yjk1NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaApAQCAtMzYsMTUgKzM2
LDE1IEBAIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8UlRDUnRwVHJhbnNmb3JtQmFja2VuCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRD
UnRwVHJhbnNmb3JtQmFja2VuZCgpID0gZGVmYXVsdDsKIAotICAgIHVzaW5nIENhbGxiYWNrID0g
RnVuY3Rpb248dm9pZChVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKT47Cisg
ICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxl
RnJhbWU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJh
Y2soQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRyYW5zZm9ybWFibGVG
cmFtZUNhbGxiYWNrKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRG
cmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
cm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmKSA9IDA7CiAK
ICAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSB7IEF1ZGlvLCBWaWRlbyB9OwogICAgIHZpcnR1YWwg
TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIGVudW0gY2xhc3MgU2lkZSB7
IFNlbmRlciwgUmVjZWl2ZXIgfTsKKyAgICBlbnVtIGNsYXNzIFNpZGUgeyBSZWNlaXZlciwgU2Vu
ZGVyIH07CiAgICAgdmlydHVhbCBTaWRlIHNpZGUoKSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUuaAppbmRleCBkYjViMWYxMWNmMTM4YmIwMzY4YmYxNzc0OGEzMTNjODI4
M2IzMTc2Li40MGQwNzZhMGFmZWMwNWY4ZmVmNzYyMjMxNzk3NDAzMTI2OGYwZTg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI2LDE2ICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKFdF
Ql9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitjbGFzcyBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUgOiBwdWJsaWMgUmVm
Q291bnRlZDxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBzdHJ1Y3QgRGF0
YSB7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGE7Ci0gICAgICAgIHNpemVfdCBzaXplOwor
ICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhIHsgbnVsbHB0ciB9OworICAgICAgICBzaXplX3Qg
c2l6ZSB7IDAgfTsKICAgICB9OwogICAgIHZpcnR1YWwgRGF0YSBkYXRhKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhKERhdGEpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlclRy
YW5zZm9ybUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKaW5kZXggOWFm
NDM5ZGNmZThjMDcyN2E2MDIyNDhiMGM5ZTRmOTkzNWNiNThhMS4uMDRmMDg5MWYyZGJjMTEwOTYw
YWFhN2RmZjhhNTUzYWMxZjRlY2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAg
dm9pZCBMaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zvcm1CYWNrZW5kOjpzZXRUcmFuc2Zvcm1hYmxl
RnJhbWVDYWxsYmFjayhDYWxsYmFjayYKICAgICBtX3J0Y1NlbmRlci0+U2V0RW5jb2RlclRvUGFj
a2V0aXplckZyYW1lVHJhbnNmb3JtZXIodGhpcyk7CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCmluZGV4
IDFlNTU5NTU1NDE4ZjgxN2RjYjhkNDBmZjlkM2RmN2I1MmJjNzNmZTguLjhlYThjYjgwODE1NTI1
MTI4YWI0NzAyNDM5ZTA1OTVkMmU4NjhhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCkBAIC00OSwxMSArNDksMTEgQEAgdm9pZCBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpzZXRPdXRwdXRDYWxsYmFjayhydGM6OnNjb3Bl
ZF9yZWZwdHI8d2VicnRjOjoKICAgICBtX291dHB1dENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CiB9CiAKLXZvaWQgTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6cHJvY2Vzc1RyYW5z
Zm9ybWVkRnJhbWUoUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lJiYgZnJhbWUpCit2b2lkIExpYldl
YlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZSYgZnJhbWUpCiB7CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X291dHB1dENhbGxiYWNrTG9jayk7CiAgICAgaWYgKG1fb3V0cHV0Q2FsbGJhY2spCi0gICAgICAg
IG1fb3V0cHV0Q2FsbGJhY2stPk9uVHJhbnNmb3JtZWRGcmFtZShMaWJXZWJSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWU6OnRvUlRDRnJhbWUoV1RGTW92ZShzdGF0aWNfY2FzdDxMaWJXZWJSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUmPihmcmFtZSkpKSk7CisgICAgICAgIG1fb3V0cHV0Q2FsbGJhY2st
Pk9uVHJhbnNmb3JtZWRGcmFtZShzdGF0aWNfY2FzdDxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxl
RnJhbWUmPihmcmFtZSkudGFrZVJUQ0ZyYW1lKCkpOwogfQogCiB2b2lkIExpYldlYlJUQ1J0cFRy
YW5zZm9ybUJhY2tlbmQ6OlRyYW5zZm9ybShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zv
cm1hYmxlRnJhbWVJbnRlcmZhY2U+IHJ0Y0ZyYW1lKQpAQCAtNjEsNyArNjEsNyBAQCB2b2lkIExp
YldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OlRyYW5zZm9ybShzdGQ6OnVuaXF1ZV9wdHI8d2Vi
cnRjOjpUcmFuc2Zvcm1hYgogICAgIHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X2lucHV0Q2FsbGJhY2tMb2NrKTsKICAgICAgICAgaWYgKG1faW5wdXRDYWxsYmFjaykgewotICAg
ICAgICAgICAgbV9pbnB1dENhbGxiYWNrKG1ha2VVbmlxdWVSZWY8TGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lPihXVEZNb3ZlKHJ0Y0ZyYW1lKSkpOworICAgICAgICAgICAgbV9pbnB1dENh
bGxiYWNrKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6Y3JlYXRlKFdURk1vdmUocnRj
RnJhbWUpKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2Zvcm1CYWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgKaW5kZXggMjE1OGM2
NGJiNjExNDBjNGUyY2ViNDdhMTcwMzQwOTVmNmI0ZTk5MC4uN2JiMDg1NWEzNTNiZjgwM2NlY2Jk
NDk3MzRlMTAyMDlmYTlmZmM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQuaApAQCAtNDYsMTMgKzQ2LDE1IEBAIHByb3RlY3RlZDoKICAgICBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kKE1lZGlhVHlwZSwgU2lkZSk7CiAgICAgdm9pZCBz
ZXRJbnB1dENhbGxiYWNrKENhbGxiYWNrJiYpOwogCitwcm90ZWN0ZWQ6CisgICAgTWVkaWFUeXBl
IG1lZGlhVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbWVkaWFUeXBlOyB9CisKIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRPdXRwdXRDYWxsYmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpUcmFuc2Zvcm1lZEZyYW1lQ2FsbGJhY2s+JiYpOwogCiAgICAgLy8gUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZAotICAgIHZvaWQgcHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoUlRDUnRwVHJhbnNmb3Jt
YWJsZUZyYW1lJiYpIGZpbmFsOworICAgIHZvaWQgcHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lJikgZmluYWw7CiAgICAgdm9pZCBjbGVhclRyYW5zZm9ybWFi
bGVGcmFtZUNhbGxiYWNrKCkgZmluYWw7Ci0gICAgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fbWVkaWFUeXBlOyB9CiAgICAgU2lkZSBzaWRlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9zaWRlOyB9CiAKICAgICAvLyB3ZWJydGM6OkZyYW1lVHJhbnNmb3JtZXJJ
bnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJs
ZUZyYW1lLmgKaW5kZXggNjI4NjMyYzZlMTdiMTFmZjc4Y2UyMzUxMTk3ZmZhMGUzYTQ3ZjE0Zi4u
ODg1YTUxY2YyYWM0ODFkY2UzM2UyOTgxYzQ2MTczMzc5NzBmZDE4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI4LDM5ICsy
OCwyOSBAQAogCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCiAKK25hbWVz
cGFjZSB3ZWJydGMgeworY2xhc3MgVHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlOworfQorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSBmaW5hbCA6IHB1YmxpYyBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IExpYldlYlJUQ1J0cFRyYW5z
Zm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJ
bnRlcmZhY2U+JiYpOwotICAgIHZpcnR1YWwgfkxpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSgpID0gZGVmYXVsdDsKKyAgICBzdGF0aWMgUmVmPExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVG
cmFtZT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFtZUlu
dGVyZmFjZT4mJiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBMaWJXZWJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIH5MaWJXZWJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUoKTsKIAotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpU
cmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+IHRvUlRDRnJhbWUoTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lJiYpOworICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9ybWFi
bGVGcmFtZUludGVyZmFjZT4gdGFrZVJUQ0ZyYW1lKCk7CiAKIHByaXZhdGU6CisgICAgZXhwbGlj
aXQgTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6
OlRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZT4mJik7CisKICAgICBEYXRhIGRhdGEoKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHNldERhdGEoRGF0YSBkYXRhKSBmaW5hbCB7IG1fcnRjRnJhbWUt
PlNldERhdGEoeyBkYXRhLmRhdGEsIGRhdGEuc2l6ZSB9KTsgfQorICAgIHZvaWQgc2V0RGF0YShE
YXRhKSBmaW5hbDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVG
cmFtZUludGVyZmFjZT4gbV9ydGNGcmFtZTsKIH07CiAKLWlubGluZSBMaWJXZWJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWU6OkxpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+JiYgZnJhbWUpCi0gICAg
OiBtX3J0Y0ZyYW1lKFdURk1vdmUoZnJhbWUpKQotewotfQotCi1pbmxpbmUgc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiBMaWJXZWJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWU6OnRvUlRDRnJhbWUoTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
JiYgZnJhbWUpCi17Ci0gICAgcmV0dXJuIFdURk1vdmUoZnJhbWUubV9ydGNGcmFtZSk7Ci19Ci0K
LWlubGluZSBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjpkYXRhKCkgY29uc3QKLXsKLSAgICBhdXRvIGRhdGEgPSBtX3J0Y0ZyYW1l
LT5HZXREYXRhKCk7Ci0gICAgcmV0dXJuIHsgZGF0YS5iZWdpbigpLCBkYXRhLnNpemUoKSB9Owot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVh
bVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U291cmNlLmgKaW5kZXggOTFlMGMyY2ZkOTlhMTM0MGEzMWYzOTRmNDljZWU0ZGMxOTVlMTliOC4u
ZjRjZGE1MjE0ZDljNDIyYmE4ZTg3ZDU4Yzk3ZDg5OTg4ZjU4NDU5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY2LDQgKzY3LDI0IEBAIHByaXZhdGU6CiAg
ICAgT3B0aW9uYWw8UmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcj4gbV9jb250cm9sbGVy
OwogfTsKIAorY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UKKyAgICA6IHB1YmxpYyBS
ZWFkYWJsZVN0cmVhbVNvdXJjZQorICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNpbXBsZVJl
YWRhYmxlU3RyZWFtU291cmNlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxTaW1wbGVSZWFk
YWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaW1wbGVS
ZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KKworICAgIHZvaWQgY2xvc2UoKSB7IGNvbnRyb2xsZXIo
KS5jbG9zZSgpOyB9CisgICAgdm9pZCBlbnF1ZXVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBjb250
cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0KKworcHJpdmF0ZToKKyAgICBTaW1wbGVSZWFkYWJs
ZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsKKworICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNl
CisgICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldEluYWN0aXZlKCkg
ZmluYWwgeyB9CisgICAgdm9pZCBkb1N0YXJ0KCkgZmluYWwgeyB9CisgICAgdm9pZCBkb1B1bGwo
KSBmaW5hbCB7IH0KKyAgICB2b2lkIGRvQ2FuY2VsKCkgZmluYWwgeyB9Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVh
bXMvV3JpdGFibGVTdHJlYW1TaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
V3JpdGFibGVTdHJlYW1TaW5rLmgKaW5kZXggMWFmYTU1ZDk0NWM1ZTczOTYwN2UwNTBiNDdhMWVl
OWFlYjUyZDYzZS4uMmNhYTg2YzM5NWQzYmJjMjA0ZDY5ZTliZjQ0OGY0MjU2NDliNTdiOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtU2lu
ay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNp
bmsuaApAQCAtNDUsNCArNDUsMjkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBlcnJvcihT
dHJpbmcmJikgPSAwOwogfTsKIAorY2xhc3MgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rIDogcHVi
bGljIFdyaXRhYmxlU3RyZWFtU2luayB7CitwdWJsaWM6CisgICAgdXNpbmcgV3JpdGVDYWxsYmFj
ayA9IEZ1bmN0aW9uPEV4Y2VwdGlvbk9yPHZvaWQ+KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBK
U0M6OkpTVmFsdWUpPjsKKyAgICBzdGF0aWMgUmVmPFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luaz4g
Y3JlYXRlKFdyaXRlQ2FsbGJhY2smJiB3cml0ZUNhbGxiYWNrKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luayhXVEZNb3ZlKHdyaXRlQ2FsbGJhY2spKSk7IH0K
KworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbmsoV3JpdGVD
YWxsYmFjayYmKTsKKworICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpT
Qzo6SlNWYWx1ZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIGZpbmFsOworICAgIHZvaWQg
Y2xvc2UoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGVycm9yKFN0cmluZyYmKSBmaW5hbCB7IH0KKwor
ICAgIFdyaXRlQ2FsbGJhY2sgbV93cml0ZUNhbGxiYWNrOworfTsKKworaW5saW5lIFNpbXBsZVdy
aXRhYmxlU3RyZWFtU2luazo6U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rKFdyaXRlQ2FsbGJhY2sm
JiB3cml0ZUNhbGxiYWNrKQorICAgIDogbV93cml0ZUNhbGxiYWNrKFdURk1vdmUod3JpdGVDYWxs
YmFjaykpCit7Cit9CisKK2lubGluZSB2b2lkIFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luazo6d3Jp
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIHByb21pc2Uuc2V0dGxl
KG1fd3JpdGVDYWxsYmFjayhjb250ZXh0LCB2YWx1ZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDcyNjI4OTFlY2M2MzAzNDdkYzg5NTBlMTMwYjRkZDVm
MWUyY2Y1NTkuLmI0M2U5MDM5ZDIzMzI3ODdjMTQ0MjJjY2RjYmFhMWE5MjNiNTBlMjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xODIsNiArMTgyLDcgQEAgTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDQ2VydGlmaWNhdGVHZW5lcmF0b3IuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlclRyYW5zZm9ybUJhY2tlbmQuY3BwCiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zvcm1CYWNr
ZW5kLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNm
b3JtQmFja2VuZC5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZS5jcHAKIE1vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxF
bGVtZW50LmNwcAogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKIE1vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Db250cm9sbGVyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkxZDc0Yzc0
NTIyNTk3OTA2NzkxYWQxZThhMjEyODNkNTRjNjExNjguLmY1NTMzNWEzOGJkYjk3OGQ1MzMxZDM0
YTRlZTkzMzhjNmQzMTc1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1MzIsNiArNzUzMiw3IEBACiAJCTQxMEE4RUY4MjRG
OEY0N0EwMDRGOTA3MCAvKiBUZXh0RW5jb2RlclN0cmVhbUVuY29kZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGV4dEVuY29kZXJTdHJlYW1FbmNvZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEwQThFRjkyNEY4RjQ3QjAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFt
RW5jb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RW5jb2RlclN0cmVhbUVuY29kZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpT
TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwQkExMzEyNTcwRkU1NzAwMkUyRjhBIC8qIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVG
cmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENS
dHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEU0
NDVGMjM0MzczQUQwMDAxNzNENCAvKiBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaDsg
cGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMEY1NjU1MjRGQ0Y3MDUwMEEyRTUwQyAvKiBSVENTZXNzaW9u
RGVzY3JpcHRpb25Jbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENTZXNzaW9uRGVz
Y3JpcHRpb25Jbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRjU2NTcy
NEZDRjdDNzAwQTJFNTBDIC8qIFJUQ0ljZUNhbmRpZGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJUQ0ljZUNhbmRpZGF0ZUluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTgwMjIsNyArMTgwMjMsNiBAQAogCQkJCUExQ0M1NjRBMUY0NjEzQkIwMEE0NTU1
QiAvKiBQYXltZW50UmVxdWVzdCAqLywKIAkJCQkxRDAwMjY5QTIzNzRCOUY4MDBDQTZDREYgLyog
UGljdHVyZUluUGljdHVyZSAqLywKIAkJCQlBOUQyNDdGOTBENzU3RTQxMDBGREY5NTkgLyogUGx1
Z2lucyAqLywKLQkJCQk4OUY2MEIxNzE1N0Y2QTAyMDA3NUUxNTcgLyogUXVvdGEgKi8sCiAJCQkJ
QkM5ODU0NDYwQ0QzREE1RjAwMDY5QkMxIC8qIFJhbmdlcyAqLywKIAkJCQlDRDhDNkMyNDIyRkRE
QTY0MDBBNzIwQUIgLyogUmVtb3RlUGxheWJhY2sgKi8sCiAJCQkJNTE4MkMyNEMxRjMxNDIwOTAw
NTlCQTdDIC8qIFNlcnZpY2VXb3JrZXJzICovLApAQCAtMTkyNzIsOSArMTkyNzIsMTAgQEAKIAkJ
CQk0MTgxQzVCRTI1NTNFQjZFMDBBRUIwRkYgLyogTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3Jt
QmFja2VuZC5oICovLAogCQkJCTQxODZCRDREMjE0MEI5RTgwMDAxODI2RiAvKiBMaWJXZWJSVENS
dHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwICovLAogCQkJCTQxODZCRDRCMjE0MEE4MDUwMDAxODI2
RiAvKiBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuaCAqLywKLQkJCQk0MTgxQzVDQzI1
NTU4MzY4MDBBRUIwRkYgLyogTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmggKi8sCiAJ
CQkJNDE4MUM1Q0UyNTU1ODk1NTAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQuY3BwICovLAogCQkJCTQxODFDNUNGMjU1NTg5NTYwMEFFQjBGRiAvKiBMaWJXZWJSVENSdHBU
cmFuc2Zvcm1CYWNrZW5kLmggKi8sCisJCQkJNDEwQkExMzEyNTcwRkU1NzAwMkUyRjhBIC8qIExp
YldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHAgKi8sCisJCQkJNDE4MUM1Q0MyNTU1ODM2
ODAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oICovLAogCQkJCTQx
RDI4RDBCMjEzOUUwMUQwMEY0MjA2RiAvKiBMaWJXZWJSVENTdGF0c0NvbGxlY3Rvci5jcHAgKi8s
CiAJCQkJNDFEMjhEMEMyMTM5RTAxRTAwRjQyMDZGIC8qIExpYldlYlJUQ1N0YXRzQ29sbGVjdG9y
LmggKi8sCiAJCQkJNDFEMUEwNDkyMTNFRERGRDAwNjNGQjZCIC8qIExpYldlYlJUQ1V0aWxzLmNw
cCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3Ry
ZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcApp
bmRleCA2Mjk2OWJkZTE1ZjM5NzY4YWQzNDZlNzdlOGNjZDUzNjBiNGY0NzViLi4zNDg3Y2RhZDM5
MzM2ZGU4YmM0ZjY0NmU3ZmZmZTA1MTNjNzA2MTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCkBAIC0zNiw2ICszNiwzMCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAorbmFtZXNwYWNlIFdyaXRhYmxlU3Ry
ZWFtSW50ZXJuYWwgeworc3RhdGljIGlubGluZSBKU0M6OkpTVmFsdWUgY2FsbEZ1bmN0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBqc0Z1
bmN0aW9uLCBKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBjb25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3Vt
ZW50cykKK3sKKyAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOworICAgIGF1dG8gY2FsbERhdGEgPSBK
U0M6OmdldENhbGxEYXRhKHZtLCBqc0Z1bmN0aW9uKTsKKyAgICBBU1NFUlQoY2FsbERhdGEudHlw
ZSAhPSBKU0M6OkNhbGxEYXRhOjpUeXBlOjpOb25lKTsKKyAgICBhdXRvIHJlc3VsdCA9IGNhbGwo
JmxleGljYWxHbG9iYWxPYmplY3QsIGpzRnVuY3Rpb24sIGNhbGxEYXRhLCB0aGlzVmFsdWUsIGFy
Z3VtZW50cyk7CisgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorfQorCitzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tXcml0YWJsZVN0cmVhbShKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBKU1dyaXRhYmxlU3RyZWFtKiB3cml0YWJsZVN0
cmVhbSwgSlNDOjpKU1ZhbHVlIGZ1bmN0aW9uKQoreworICAgIGF1dG8mIGxleGljYWxHbG9iYWxP
YmplY3QgPSBnbG9iYWxPYmplY3Q7CisKKyAgICBBU1NFUlQoZnVuY3Rpb24pOworICAgIEpTQzo6
TWFya2VkQXJndW1lbnRCdWZmZXIgYXJndW1lbnRzOworICAgIGFyZ3VtZW50cy5hcHBlbmQod3Jp
dGFibGVTdHJlYW0pOworICAgIEFTU0VSVCghYXJndW1lbnRzLmhhc092ZXJmbG93ZWQoKSk7Cisg
ICAgcmV0dXJuIFdyaXRhYmxlU3RyZWFtSW50ZXJuYWw6OmNhbGxGdW5jdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBmdW5jdGlvbiwgSlNDOjpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMpLmlzVHJ1
ZSgpOworfQorCiBFeGNlcHRpb25PcjxSZWY8V3JpdGFibGVTdHJlYW0+PiBXcml0YWJsZVN0cmVh
bTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFJlZlB0
cjxXcml0YWJsZVN0cmVhbVNpbms+JiYgc2luaykKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xv
YmFsT2JqZWN0LnZtKCk7CkBAIC02MCw0ICs4NCwzMCBAQCBFeGNlcHRpb25PcjxSZWY8V3JpdGFi
bGVTdHJlYW0+PiBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eAogICAgIHJldHVybiBjcmVhdGUoZ2xvYmFsT2JqZWN0LCAqanNDYXN0PEpTV3JpdGFibGVTdHJl
YW0qPihvYmplY3QpKTsKIH0KIAordm9pZCBXcml0YWJsZVN0cmVhbTo6bG9jaygpCit7CisgICAg
YXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9ICptX2dsb2JhbE9iamVjdDsKKyAgICBWTSYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FU
Q0hfU0NPUEUodm0pOworCisgICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOworCisgICAgYXV0byogY29uc3RydWN0b3IgPSBK
U0M6OmFzT2JqZWN0KG1fZ2xvYmFsT2JqZWN0LT5nZXQoJmxleGljYWxHbG9iYWxPYmplY3QsIGNs
aWVudERhdGEuYnVpbHRpbk5hbWVzKCkuV3JpdGFibGVTdHJlYW1EZWZhdWx0V3JpdGVyUHJpdmF0
ZU5hbWUoKSkpOworCisgICAgYXV0byBjb25zdHJ1Y3REYXRhID0gZ2V0Q29uc3RydWN0RGF0YSh2
bSwgY29uc3RydWN0b3IpOworICAgIEFTU0VSVChjb25zdHJ1Y3REYXRhLnR5cGUgIT0gQ2FsbERh
dGE6OlR5cGU6Ok5vbmUpOworCisgICAgTWFya2VkQXJndW1lbnRCdWZmZXIgYXJnczsKKyAgICBh
cmdzLmFwcGVuZCh3cml0YWJsZVN0cmVhbSgpKTsKKyAgICBBU1NFUlQoIWFyZ3MuaGFzT3ZlcmZs
b3dlZCgpKTsKKworICAgIEpTQzo6Y29uc3RydWN0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25z
dHJ1Y3RvciwgY29uc3RydWN0RGF0YSwgYXJncyk7CisgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRp
b24oKTsKK30KKworYm9vbCBXcml0YWJsZVN0cmVhbTo6aXNMb2NrZWQoKSBjb25zdAoreworICAg
IHJldHVybiBjaGVja1dyaXRhYmxlU3RyZWFtKCpnbG9iYWxPYmplY3QoKSwgd3JpdGFibGVTdHJl
YW0oKSwgZ2xvYmFsT2JqZWN0KCktPmJ1aWx0aW5JbnRlcm5hbEZ1bmN0aW9ucygpLndyaXRhYmxl
U3RyZWFtSW50ZXJuYWxzKCkubV9pc1dyaXRhYmxlU3RyZWFtTG9ja2VkRnVuY3Rpb24uZ2V0KCkp
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJs
ZVN0cmVhbS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaApp
bmRleCAzNWRiODA1ODljMDJmMDZmMWQ4NDQ0NTE5YjM2M2MwZGFlZWZiNGI5Li40NmZmODlkNWNk
ZTA4YjAwNmYyMTViMTNiMzBiYTI0ZDk4NTM3MjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKQEAgLTQyLDYgKzQyLDkgQEAgcHVibGljOgogICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8V3JpdGFibGVTdHJlYW0+PiBjcmVhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIFJlZlB0cjxXcml0YWJsZVN0cmVhbVNpbms+JiYpOwogICAgIEpTV3JpdGFibGVT
dHJlYW0qIHdyaXRhYmxlU3RyZWFtKCkgY29uc3QgeyByZXR1cm4gZ3VhcmRlZCgpOyB9CiAKKyAg
ICB2b2lkIGxvY2soKTsKKyAgICBib29sIGlzTG9ja2VkKCkgY29uc3Q7CisKIHByaXZhdGU6CiAg
ICAgV3JpdGFibGVTdHJlYW0oSlNET01HbG9iYWxPYmplY3QmLCBKU1dyaXRhYmxlU3RyZWFtJik7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQppbmRleCA3OTg3NDY2YmUwNDFkM2E2MTMzZmY3NWE2NzlhNDNiNmZmNGE4ZGFhLi45
MmZlYzc0MTY2YmE4YTYzZGNkY2U1YTdlMDY0Zjc3ZmFlMmQzNzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNjM4LDYg
KzYzOCwxMSBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAorICAgIGlmICgkdHlwZS0+bmFtZSBlcSAiV3JpdGFibGVTdHJlYW0iKSB7CisgICAg
ICAgIEFkZFRvSW5jbHVkZXMoIldyaXRhYmxlU3RyZWFtLmgiLCAkaW5jbHVkZXNSZWYsICRjb25k
aXRpb25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoJHR5cGUtPm5hbWUg
ZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNYUGF0aE5T
UmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgQWRkVG9J
bmNsdWRlcygiSlNET01Db252ZXJ0WFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNSZWYsICRj
b25kaXRpb25hbCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZDNkZmFmY2EyNTk3YjU3NGEyYmQ1YmFhZGZlNTM5YzdhNWQwOTliMy4uYzcxNzEw
OTIwYWRkYzc5OTI4YTg1NGQxYzc3Mjc3MDFhYzJjOWUwYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTI3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgcmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIpOgorCiAyMDIwLTExLTI2ICBM
YXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3
ZWQuIFJlbW92ZSBsZWZ0b3ZlciB0ZXN0IGNhc2UgYWZ0ZXIgSW50ZXJuZXQgRXhwbG9yZXIgcXVp
cmtzIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcAppbmRleCAzY2Qx
MzQ0MDE5YTM4OTQwMDM4YjQ4ZDYzMmI0NzMwMWJiNjdlOWQ1Li5iZDBlZjA4NDI5YmQ4YzFjYWM5
M2EzNGZlY2Y4ZGVlNWEwNmI3ZmQ3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0cy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMu
Y3BwCkBAIC03MCwxMSArNzAsMTEgQEAgVmVjdG9yPHVpbnQ4X3Q+IGdldFJhd0tleSgpCiAgICAg
KTsKIH0KIAotc3RhdGljIFJlZjxXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gY3Jl
YXRlVmlkZW9UcmFuc2Zvcm1lcihib29sIGlzU2VuZGluZyA9IHRydWUpCitzdGF0aWMgUmVmPFdl
YkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVhdGVWaWRlb1RyYW5zZm9ybWVyKGJv
b2wgaXNFbmNyeXB0aW5nID0gdHJ1ZSkKIHsKICAgICBhdXRvIHRyYW5zZm9ybWVyID0gV2ViQ29y
ZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpOwotICAgIHRyYW5zZm9ybWVyLT5z
ZXRJc1NlbmRpbmcoaXNTZW5kaW5nKTsKLSAgICB0cmFuc2Zvcm1lci0+c2V0SXNQcm9jZXNzaW5n
QXVkaW8oZmFsc2UpOworICAgIHRyYW5zZm9ybWVyLT5zZXRJc0VuY3J5cHRpbmcoaXNFbmNyeXB0
aW5nKTsKKyAgICB0cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKDEwKTsKIAogICAg
IGF1dG8ga2V5SWQgPSBWZWN0b3I8dWludDhfdD46OmZyb20oMTk4LCAzMSwgMjUxLCAxOTcsIDQ4
LCAxMzksIDkxLCA1MSk7CiAgICAgdWludDY0X3Qga2V5SWRWYWx1ZSA9IDA7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDE5
ZDkwNTAyMDVhMzA5MzNkYzQzYjVkMTU5Mjg0OTQ2MDgzMWIyOC4uNzAxNDI1YWMwYjExNDVhMzA1
YTJlNjVlZTkxYzM2YTNhMjAyODg2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTExLTI3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgcmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0
Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJy
dGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sOgorCiAyMDIwLTExLTI3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV1BUIFdlYlJUQyB0ZXN0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0t
ZXhwZWN0ZWQudHh0CmluZGV4IGUwMGU4NmRkZGUyOTM1ZDFmMGY1YWMwMmRkM2E4N2M2YTJmNzhk
ZWUuLmY5Yjc3OTg4NTg2N2Q1OGY5MTA0MmQ0N2FlOWI2NWY4NmMwNzI5YzQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBl
Y3RlZC50eHQKQEAgLTEsMyArMSw4IEBACiAKIFBBU1MgQ2Fubm90IHJldXNlIGF0dGFjaGVkIHRy
YW5zZm9ybXMKK1BBU1MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIGV4cG9zZXMgcmVhZGFibGUgYW5k
IHdyaXRhYmxlCitQQVNTIHJlYWRhYmxlL3dyaXRhYmxlIGFyZSBsb2NrZWQgd2hlbiBhdHRhY2hl
ZCBhbmQgYWZ0ZXIgYmVpbmcgYXR0YWNoZWQKK1BBU1MgU0ZyYW1lIHdpdGggYXJyYXkgYnVmZmVy
IC0gYXV0aGVudGljYXRpb24gc2l6ZSAxMAorUEFTUyBTRnJhbWUgZGVjcnlwdGlvbiB3aXRoIGFy
cmF5IGJ1ZmZlciB0aGF0IGlzIHRvbyBzbWFsbAorUEFTUyBTRnJhbWUgdHJhbnNmb3JtIGdldHMg
ZXJyb3JlZCBpZiB0cnlpbmcgdG8gcHJvY2VzcyB1bmV4cGVjdGVkIHZhbHVlIHR5cGVzCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sCmlu
ZGV4IGJhMDQ4ODBkMTQ1YWNmYjgxZDdlOTliZjExMzg0YTA4NTM1MTMzYzcuLmZhMzc4MTYyYmEz
MTEzMmRhNmNjMmFmMTgwYmMyOTZiMWJhNTUxODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbApAQCAtMjgsNiArMjgsMTE0IEBAIHBy
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAgIHNlbmRlcjEudHJhbnNmb3JtID0gbnVs
bDsKICAgICByZWNlaXZlcjEudHJhbnNmb3JtID0gbnVsbDsKIH0sICJDYW5ub3QgcmV1c2UgYXR0
YWNoZWQgdHJhbnNmb3JtcyIpOworCit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBzZW5kZXJUcmFu
c2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCk7CisKKyAgICBhc3NlcnRfdHJ1ZShz
ZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSk7CisgICAg
YXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlIGluc3RhbmNlb2YgV3JpdGFibGVT
dHJlYW0pOworfSwgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBleHBvc2VzIHJlYWRhYmxlIGFuZCB3
cml0YWJsZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9
IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9y
bSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAgICBjb25zdCBzZW5kZXIxID0gcGMu
YWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJykuc2VuZGVyOworICAgIGNvbnN0IHNlbmRlcjIgPSBwYy5h
ZGRUcmFuc2NlaXZlcigndmlkZW8nKS5zZW5kZXI7CisgICAgY29uc3QgcmVjZWl2ZXIxID0gcGMu
Z2V0UmVjZWl2ZXJzKClbMF07CisgICAgY29uc3QgcmVjZWl2ZXIyID0gcGMuZ2V0UmVjZWl2ZXJz
KClbMV07CisKKyAgICBhc3NlcnRfZmFsc2Uoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tl
ZCwgInNlbmRlciByZWFkYWJsZSBiZWZvcmUiKTsKKyAgICBhc3NlcnRfZmFsc2Uoc2VuZGVyVHJh
bnNmb3JtLndyaXRhYmxlLmxvY2tlZCwgInNlbmRlciB3cml0YWJsZSBiZWZvcmUiKTsKKyAgICBh
c3NlcnRfZmFsc2UocmVjZWl2ZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAicmVjZWl2ZXIg
cmVhZGFibGUgYmVmb3JlIik7CisgICAgYXNzZXJ0X2ZhbHNlKHJlY2VpdmVyVHJhbnNmb3JtLndy
aXRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHdyaXRhYmxlIGJlZm9yZSIpOworCisgICAgc2VuZGVy
MS50cmFuc2Zvcm0gPSBzZW5kZXJUcmFuc2Zvcm07CisgICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9
IHJlY2VpdmVyVHJhbnNmb3JtOworCisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJl
YWRhYmxlLmxvY2tlZCwgInNlbmRlciByZWFkYWJsZSBkdXJpbmciKTsKKyAgICBhc3NlcnRfdHJ1
ZShzZW5kZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAic2VuZGVyIHdyaXRhYmxlIGR1cmlu
ZyIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwg
InJlY2VpdmVyIHJlYWRhYmxlIGR1cmluZyIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJh
bnNmb3JtLndyaXRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHdyaXRhYmxlIGR1cmluZyIpOworCisg
ICAgc2VuZGVyMS50cmFuc2Zvcm0gPSBudWxsOworICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSBu
dWxsOworCisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwg
InNlbmRlciByZWFkYWJsZSBhZnRlciIpOworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9y
bS53cml0YWJsZS5sb2NrZWQsICJzZW5kZXIgd3JpdGFibGUgYWZ0ZXIiKTsKKyAgICBhc3NlcnRf
dHJ1ZShyZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciByZWFkYWJs
ZSBhZnRlciIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmxv
Y2tlZCwgInJlY2VpdmVyIHdyaXRhYmxlIGFmdGVyIik7Cit9LCAicmVhZGFibGUvd3JpdGFibGUg
YXJlIGxvY2tlZCB3aGVuIGF0dGFjaGVkIGFuZCBhZnRlciBiZWluZyBhdHRhY2hlZCIpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlw
dG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAx
MCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwg
IkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKworICAgIGNvbnN0
IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2Vu
Y3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIHNlbmRlclRyYW5zZm9ybS5z
ZXRFbmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlv
blNpemU6IDEwIH0pOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5
KTsKKworICAgIGNvbnN0IHdyaXRlciA9IHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0
ZXIoKTsKKyAgICBjb25zdCByZWFkZXIgPSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5nZXRS
ZWFkZXIoKTsKKworICAgIHNlbmRlclRyYW5zZm9ybS5yZWFkYWJsZS5waXBlVG8ocmVjZWl2ZXJU
cmFuc2Zvcm0ud3JpdGFibGUpOworCisgICAgY29uc3Qgc2VudCA9IG5ldyBBcnJheUJ1ZmZlcig4
KTsKKyAgICBjb25zdCB2aWV3ID0gbmV3IEludDhBcnJheShzZW50KTsKKyAgICBmb3IgKGxldCBj
cHRyID0gMDsgY3B0ciA8IHNlbnQuYnl0ZUxlbmd0aDsgKytjcHRyKQorICAgICAgICB2aWV3W2Nw
dHJdID0gY3B0cjsKKworICAgIHdyaXRlci53cml0ZShzZW50KTsKKyAgICBjb25zdCByZWNlaXZl
ZCA9IGF3YWl0IHJlYWRlci5yZWFkKCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkLnZh
bHVlLmJ5dGVMZW5ndGgsIDgpOworICAgIGNvbnN0IHZpZXcyID0gbmV3IEludDhBcnJheShyZWNl
aXZlZC52YWx1ZSk7CisgICAgZm9yIChsZXQgY3B0ciA9IDA7IGNwdHIgPCBzZW50LmJ5dGVMZW5n
dGg7ICsrY3B0cikKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWV3MltjcHRyXSwgdmlld1tjcHRy
XSk7Cit9LCAiU0ZyYW1lIHdpdGggYXJyYXkgYnVmZmVyIC0gYXV0aGVudGljYXRpb24gc2l6ZSAx
MCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBh
d2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0Mywg
NzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkx
LCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKwor
ICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyBy
b2xlIDogJ2VuY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHNl
bmRlcldyaXRlciA9IHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsKKyAgICBj
b25zdCBzZW5kZXJSZWFkZXIgPSBzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUuZ2V0UmVhZGVyKCk7
CisKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zv
cm0oeyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNv
bnN0IHJlY2VpdmVyV3JpdGVyID0gcmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVy
KCk7CisgICAgY29uc3QgcmVjZWl2ZXJSZWFkZXIgPSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJs
ZS5nZXRSZWFkZXIoKTsKKworICAgIHNlbmRlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtl
eSk7CisgICAgcmVjZWl2ZXJUcmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAg
Y29uc3QgY2h1bmsgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisKKyAgICAvLyBkZWNyeXB0aW9uIHNo
b3VsZCBmYWlsLCBsZWFkaW5nIHRvIGFuIGVtcHR5IGFycmF5IGJ1ZmZlci4KKyAgICBhd2FpdCBy
ZWNlaXZlcldyaXRlci53cml0ZShjaHVuayk7CisgICAgbGV0IHJlY2VpdmVkID0gYXdhaXQgcmVj
ZWl2ZXJSZWFkZXIucmVhZCgpOworICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFsdWUuYnl0
ZUxlbmd0aCwgMCk7CisKKyAgICAvLyBXZSB3cml0ZSBhZ2FpbiBidXQgdGhpcyB0aW1lIHdpdGgg
YSBjaHVuayB3ZSBjYW4gZGVjcnlwdC4KKyAgICBhd2FpdCBzZW5kZXJXcml0ZXIud3JpdGUoY2h1
bmspOworICAgIGNvbnN0IGVuY3J5cHRlZCA9IGF3YWl0IHNlbmRlclJlYWRlci5yZWFkKCk7Cisg
ICAgYXdhaXQgcmVjZWl2ZXJXcml0ZXIud3JpdGUoZW5jcnlwdGVkLnZhbHVlKTsKKyAgICByZWNl
aXZlZCA9IGF3YWl0IHJlY2VpdmVyUmVhZGVyLnJlYWQoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJl
Y2VpdmVkLnZhbHVlLmJ5dGVMZW5ndGgsIDgpOworfSwgIlNGcmFtZSBkZWNyeXB0aW9uIHdpdGgg
YXJyYXkgYnVmZmVyIHRoYXQgaXMgdG9vIHNtYWxsIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2Nywg
MjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRl
cml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworCisgICAgY29uc3QgcmVjZWl2ZXJUcmFuc2Zvcm0g
PSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6ICdkZWNyeXB0JywgYXV0aGVudGlj
YXRpb25TaXplOiAxMCB9KTsKKyAgICBjb25zdCByZWNlaXZlcldyaXRlciA9IHJlY2VpdmVyVHJh
bnNmb3JtLndyaXRhYmxlLmdldFdyaXRlcigpOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNldEVu
Y3J5cHRpb25LZXkoa2V5KTsKKworICAgIC8vIGRlY3J5cHRpb24gc2hvdWxkIGZhaWwsIGxlYWRp
bmcgdG8gZXJyb3JpbmcgdGhlIHRyYW5zZm9ybS4KKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNf
anModGVzdCwgVHlwZUVycm9yLCByZWNlaXZlcldyaXRlci53cml0ZSh7IH0pKTsKKyAgICBhd2Fp
dCBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZWNlaXZlcldyaXRlci5jbG9z
ZWQpOworfSwgIlNGcmFtZSB0cmFuc2Zvcm0gZ2V0cyBlcnJvcmVkIGlmIHRyeWluZyB0byBwcm9j
ZXNzIHVuZXhwZWN0ZWQgdmFsdWUgdHlwZXMiKTsKKwogICAgICAgICA8L3NjcmlwdD4KICAgICA8
L2JvZHk+CiA8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="431934"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414927</attachid>
            <date>2020-11-27 01:59:45 -0800</date>
            <delta_ts>2020-11-27 02:52:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127105943.patch</filename>
            <type>text/plain</type>
            <size>61260</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZmZDE5MWQzZWNhYTQy
ZjE2Njk5MDZlYWU2YWJkM2ZkZDgwYWQ0Ni4uNmM1NTRkYmIyNTgwZmNhN2ZkNGJiNDcxNGFmNmMy
NmNlNjQ4NTUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTExLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbG9ja2lu
ZyBXcml0YWJsZVN0cmVhbSBhbmQgY2hlY2tpbmcgbG9ja2VkIHN0YXRlLgorICAgICAgICBBZGQg
cmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyBzbyB0aGF0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBj
YW4gYmUgdXNlZCBhcyBhIFRyYW5zZm9ybVN0cmVhbS4KKyAgICAgICAgTWFrZSBhIHJlZmFjdG9y
aW5nIHRvIGFsbG93IHJldXNlIG9mIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlIGFuZCBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsuCisKKyAgICAgICAgSW4gY2FzZSBvZiBlbmNyeXB0aW9uL2Rl
Y3J5cHRpb24gZXJyb3IsIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtIGFzIHRoaXMgaXMg
ZmluYWwuCisgICAgICAgIEluc3RlYWQsIHdlIG91dHB1dCBlbXB0eSBidWZmZXJzLgorICAgICAg
ICBJbiBjYXNlIG9mIHRyeWluZyB0byBlbmNyeXB0IHVuZXhwZWN0ZWQgb2JqZWN0cywgd2UgZXJy
b3IgdGhlIHRyYW5zZm9ybS4KKworICAgICAgICBNb3ZlIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSB0byBiZSByZWYgY291bnRlZC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCBhIFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZSBmb3IgZWFjaCBSVENFbmNvZGVkRnJhbWUgZXZlbiB0aG91Z2gg
dGhlIHVuZGVybHlpbmcKKyAgICAgICAgd2VicnRjIGZyYW1lICh3aGljaCBpcyBhIHVuaXF1ZSBw
dHIpIGlzIGdpdmVuIGJhY2sgdG8gdGhlIHdlYnJ0YyBiYWNrZW5kIGFmdGVyIHByb2Nlc3Npbmcu
CisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5j
b2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRW5jb2RlZEZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENFbmNvZGVkRnJhbWU6
OnJ0Y0ZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRl
b0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENF
bmNvZGVkVmlkZW9GcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNv
ZGVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWU6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjppc0F0dGFjaGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybTo6aW5pdGlhbGl6ZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0
cFNGcmFtZVRyYW5zZm9ybTo6d2lsbENsZWFyQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06
OmNyZWF0ZVN0cmVhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
OjpyZWFkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06Ondy
aXRhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNy
eXB0aW9uS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpk
ZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OmVuY3J5cHRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
Ojp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEF1dGhlbnRpY2F0aW9uU2l6ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNh
dGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0U3RyZWFtcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHA6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9j
ZXNzVHJhbnNmb3JtZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxl
U3RyZWFtU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2U6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3Ry
ZWFtU291cmNlOjplbnF1ZXVlKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVT
dHJlYW1TaW5rLmg6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OlNp
bXBsZVdyaXRhYmxlU3RyZWFtU2luayk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OndyaXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbUludGVybmFsOjpjYWxsRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tXcml0YWJsZVN0cmVhbSk6CisgICAgICAg
IChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpXcml0
YWJsZVN0cmVhbTo6aXNMb2NrZWQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dyaXRh
YmxlU3RyZWFtLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6CisKIDIwMjAtMTEtMjYgIExh
dXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEJ1aWxkIGZp
eC4gQWRkIGNhc3Qgd2hlbiB0YWtpbmcgY29uc3QgZGF0YSBvd25lcnNoaXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKaW5kZXggODg1Mjc3MjYzNzlmYmZiNmRhNzg0ODM3MWVjZmIxMzE4ZGI4ZWRiNC4u
YTNlYjI4MmU2MWVjNDEzNjVkMjhmOGE4MzY5NzQzNGM3MDliZTIxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENF
bmNvZGVkQXVkaW9GcmFtZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNv
ZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAg
IDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5o
CmluZGV4IDgyYjZmMDgyNzVlNjkzNTliNDdjMGYwNTE2YzMyY2VlZDYwNDAxNTUuLmJlNzc2YmQy
YjI0MmNkMDgyNjYzNDc0NmFjODUwYjQxMGNlMDM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgKQEAg
LTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRB
dWRpb0ZyYW1lIDogcHVibGljIFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxSVENFbmNvZGVkQXVkaW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZEF1
ZGlvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZEF1
ZGlvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0VuY29kZWRBdWRpb0ZyYW1lKFdURk1vdmUoZnJhbWUp
KSk7IH0KICAgICB+UlRDRW5jb2RlZEF1ZGlvRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcAppbmRleCAwNzZhOTM5NTZhYmJiZTg0NjA0N2NjZTAxYWYxMmM1YzFjYjJkNTA5Li43MDIx
NTVmNWNlYjZmZTM0NGI0ODIyOWFlMzM4YzY1OGE2NTFjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCkBAIC0z
Myw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDRW5jb2RlZEZyYW1lOjpS
VENFbmNvZGVkRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFt
ZSkKK1JUQ0VuY29kZWRGcmFtZTo6UlRDRW5jb2RlZEZyYW1lKFJlZjxSVENSdHBUcmFuc2Zvcm1h
YmxlRnJhbWU+JiYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVk
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZy
YW1lLmgKaW5kZXggYWRiNDc0ZGI5MTMxNTA4ZGUzNWRkMGE3ZTBkMDFkNzRlYmE2YWY5Yi4uODcx
M2Y1YjhiM2Y3ZDhmODIxM2NiMDQ0ZmI1YjJmNjk3YzE3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5oCkBAIC00Mywx
MiArNDMsMTIgQEAgcHVibGljOgogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXREYXRhKEpTQzo6QXJyYXlCdWZmZXImKTsKIAotICAgIFVuaXF1
ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IHRha2VSVENGcmFtZSgpIHsgcmV0dXJuIFdU
Rk1vdmUobV9mcmFtZSk7IH0KKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIHJ0Y0ZyYW1l
KCkgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
UlRDRW5jb2RlZEZyYW1lKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpOwor
ICAgIGV4cGxpY2l0IFJUQ0VuY29kZWRGcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
PiYmKTsKIAotICAgIFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IG1fZnJhbWU7
CisgICAgUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKaW5kZXggY2FmNjNhMDljMmQ4
YTY5NWQ0Mzc2MmVmN2QzOTBjZmY5N2U2NjE0NS4uMWVkMTU1NjQ1MTA0MTBkNGU0Yzg4ODNhZDE0
YTNkMTExNzE0MzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5jb2Rl
ZFZpZGVvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkK
K1JUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENFbmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUo
ZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oCmluZGV4IDM3NzA1YWM4NTZhMDI2Mjk3Zjgx
OTA3M2VhZjRjODMwZTM2MTlhNTUuLmQ1ZmExMjBiZTI0YWZmMWI3ZmY4NTRkNTUzMzRmMTBlYzQ4
ZjRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RW5jb2RlZFZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRWaWRlb0ZyYW1lIDogcHVibGljIFJUQ0VuY29k
ZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkVmlkZW9GcmFtZT4g
Y3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZFZpZGVvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsg
fQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZFZpZGVvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0Vu
Y29kZWRWaWRlb0ZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZFZpZGVv
RnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShV
bmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENF
bmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCA1Yzg3
Y2Y1NjRhNTE1MzAxNDc5M2M0OGYyZjJkZTkyNzVjNzk3MmU4Li5lYzFkMzhlMzg5M2FhZTg0MDlm
MDI5MDg1MmYxMTJjN2U5NGVhNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0yOSwx
NiArMjksMjcgQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkNyeXB0b0tleVJh
dy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIlJU
Q0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgor
I2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCisjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0oKQotICAgIDogbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFu
c2Zvcm1lcjo6Y3JlYXRlKCkpCitSVENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1fdHJh
bnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpKQogeworICAgIG1fdHJh
bnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhvcHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlwdCk7
CisgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0aGVu
dGljYXRpb25TaXplKTsKIH0KIAogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp+UlRDUnRwU0ZyYW1l
VHJhbnNmb3JtKCkKQEAgLTY3LDExICs3OCwyMyBAQCB1aW50NjRfdCBSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OmNvdW50ZXJGb3JUZXN0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV90cmFuc2Zvcm1l
ci0+Y291bnRlcigpOwogfQogCitib29sIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRhY2hl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNBdHRhY2hlZCB8fCAobV9yZWFkYWJsZSAmJiBt
X3JlYWRhYmxlLT5pc0xvY2tlZCgpKSB8fCAobV93cml0YWJsZSAmJiBtX3dyaXRhYmxlLT5pc0xv
Y2tlZCgpKTsKK30KKwogdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFu
c2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kLCBTaWRlIHNpZGUpCiB7Cisg
ICAgQVNTRVJUKCFpc0F0dGFjaGVkKCkpOworCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKLSAg
ICBtX3RyYW5zZm9ybWVyLT5zZXRJc1NlbmRpbmcoc2lkZSA9PSBTaWRlOjpTZW5kZXIpOwotICAg
IG1fdHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlvKGJhY2tlbmQubWVkaWFUeXBlKCkg
PT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbyk7CisgICAgaWYgKG1f
cmVhZGFibGUpCisgICAgICAgIG1fcmVhZGFibGUtPmxvY2soKTsKKyAgICBpZiAobV93cml0YWJs
ZSkKKyAgICAgICAgbV93cml0YWJsZS0+bG9jaygpOworCisgICAgbV90cmFuc2Zvcm1lci0+c2V0
SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6U2VuZGVyKTsKKyAgICBtX3RyYW5zZm9ybWVyLT5z
ZXRBdXRoZW50aWNhdGlvblNpemUoYmFja2VuZC5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlvID8gNCA6IDEwKTsKIAogICAgIGJhY2tlbmQuc2V0
VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3RyYW5zZm9ybWVyID0gbV90cmFuc2Zvcm1lciwg
YmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCldKGF1dG8mJiBmcmFtZSkgewogICAgICAgICBhdXRv
IGNodW5rID0gZnJhbWUtPmRhdGEoKTsKQEAgLTg0LDExICsxMDcsMTAgQEAgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kJiBiYWNrZW4KIAogICAgICAgICBmcmFtZS0+c2V0RGF0YSh7IHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpIH0pOwogCi0gICAgICAgIGJh
Y2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFdURk1vdmUoZnJhbWUuZ2V0KCkpKTsKKyAg
ICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOwogICAg
IH0pOwogfQogCi0KIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFsaXplQmFja2Vu
ZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgaW5p
dGlhbGl6ZVRyYW5zZm9ybWVyKGJhY2tlbmQsIFNpZGU6OlJlY2VpdmVyKTsKQEAgLTEwMiw3ICsx
MjQsOTQgQEAgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9y
U2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGIKIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjp3aWxsQ2xlYXJCYWNrZW5kKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7
CiAgICAgYmFja2VuZC5jbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCk7Ci0gICAgbV9p
c0F0dGFjaGVkID0gZmFsc2U7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZyYW1lPgordm9pZCB0
cmFuc2Zvcm1GcmFtZShGcmFtZSYgZnJhbWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGNodW5rID0gZnJhbWUucnRjRnJhbWUo
KS5kYXRhKCk7CisgICAgYXV0byByZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oY2h1bmsu
ZGF0YSwgY2h1bmsuc2l6ZSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpLCBXZWJSVEMsICJSVENSdHBTRnJhbWVUcmFuc2Zvcm0gZmFpbGVkIHRyYW5zZm9y
bWluZyBhIGZyYW1lIik7CisKKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgdHJh
bnNmb3JtZWRDaHVuazsKKyAgICAvLyBJbiBjYXNlIG9mIGVycm9yLCB3ZSBqdXN0IHBhc3MgYWxv
bmcgdGhlIGZyYW1lIHdpdGggZW1wdHkgZGF0YS4KKyAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgdHJhbnNmb3JtZWRDaHVuayA9IHsgcmVzdWx0LnJldHVyblZhbHVlKCku
ZGF0YSgpLCByZXN1bHQucmV0dXJuVmFsdWUoKS5zaXplKCkgfTsKKworICAgIGZyYW1lLnJ0Y0Zy
YW1lKCkuc2V0RGF0YSh0cmFuc2Zvcm1lZENodW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pT
KCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4K
K3ZvaWQgdHJhbnNmb3JtRnJhbWUoSlNDOjpBcnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1l
ciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3Vs
dCA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFs
dWUuZGF0YSgpKSwgdmFsdWUuYnl0ZUxlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihyZXN1bHQuaGFzRXhjZXB0aW9uKCksIFdlYlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBm
YWlsZWQgdHJhbnNmb3JtaW5nIGEgZnJhbWUiKTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0
Lmhhc0V4Y2VwdGlvbigpID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCku
c2l6ZSgpKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxP
YmplY3QsIGJ1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lk
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xv
YmFsT2JqZWN0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisK
KyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6
OmNyZWF0ZSgpOworICAgIGF1dG8gcmVhZGFibGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChy
ZWFkYWJsZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0
YWJsZSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJs
ZVN0cmVhbVNvdXJjZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1
dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmpl
Y3QoKSk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9i
amVjdC52bSgpKTsKKworICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExB
cnJheUJ1ZmZlciwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJm
YWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
RXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworCisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRv
IHRocm93IGFueSBleGNlcHRpb24gaW4gdGhlIHRyYW5zZm9ybSB0byBtYWtlIHN1cmUgd2UgZG8g
bm90IGVycm9yIHRoZSB0cmFuc2Zvcm0uCisgICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsm
XShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgdHJh
bnNmb3JtRnJhbWUoKnZhbHVlLCBnbG9iYWxPYmplY3QsIHRyYW5zZm9ybWVyLmdldCgpLCAqcmVh
ZGFibGVTdHJlYW1Tb3VyY2UpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRl
b0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xv
YmFsT2JqZWN0LCB0cmFuc2Zvcm1lci5nZXQoKSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAg
ICAgICAgfSwgWyZdKFJlZlB0cjxBcnJheUJ1ZmZlcj4mIHZhbHVlKSB7CisgICAgICAgICAgICB0
cmFuc2Zvcm1GcmFtZSgqdmFsdWUsIGdsb2JhbE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpy
ZWFkYWJsZVN0cmVhbVNvdXJjZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0pKTsKKyAgICBpZiAod3JpdGFibGUuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcmVhZGFibGUgPSByZWFkYWJsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICBtX3dyaXRhYmxlID0gd3JpdGFibGUucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKG1f
aXNBdHRhY2hlZCkgeworICAgICAgICBtX3JlYWRhYmxlLT5sb2NrKCk7CisgICAgICAgIG1fd3Jp
dGFibGUtPmxvY2soKTsKKyAgICB9Cit9CisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0
cmVhbT4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6cmVhZGFibGUoKQoreworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICgh
bV9yZWFkYWJsZSkKKyAgICAgICAgY3JlYXRlU3RyZWFtcygpOworCisgICAgcmV0dXJuIG1fcmVh
ZGFibGUuY29weVJlZigpOworfQorCitFeGNlcHRpb25PcjxSZWZQdHI8V3JpdGFibGVTdHJlYW0+
PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OndyaXRhYmxlKCkKK3sKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAoIW1fd3Jp
dGFibGUpCisgICAgICAgIGNyZWF0ZVN0cmVhbXMoKTsKKworICAgIHJldHVybiBtX3dyaXRhYmxl
LmNvcHlSZWYoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmgKaW5kZXggZDQ3ZGI5YjI5YzhhNmJkNTc4Y2UyMzFhYTMxYjU2OWEwOWFlODVjNy4uYWI0OGYy
ZDBjZWQ1ODJkMTU0MjZlYTdhN2I0MDc3ZWRiNDgwODUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsMjkgKzM1LDQ1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0tleTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFt
OworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVh
bTsKIAotY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtPiB7CitjbGFzcyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+LCBwcml2YXRlIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0pOyB9CisgICAgZW51bSBjbGFzcyBSb2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAg
IHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9Owor
ICAgICAgICB1aW50NjRfdCBhdXRoZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CiAgICAgflJUQ1J0
cFNGcmFtZVRyYW5zZm9ybSgpOwogCiAgICAgdm9pZCBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tl
eSYsIE9wdGlvbmFsPHVpbnQ2NF90PiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0g
ICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CisgICAg
Ym9vbCBpc0F0dGFjaGVkKCkgY29uc3Q7CiAgICAgdm9pZCBpbml0aWFsaXplQmFja2VuZEZvclJl
Y2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIGluaXRpYWxpemVCYWNr
ZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIHdpbGxDbGVh
ckJhY2tlbmQoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dWludDY0X3QgY291bnRlckZvclRlc3RpbmcoKSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxSZWFkYWJsZVN0cmVhbT4+IHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUoKTsKKwogcHJpdmF0ZToKLSAgICBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0oKTsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIE9wdGlvbnMpOwogCiAgICAgZW51bSBjbGFzcyBTaWRlIHsgU2VuZGVyLCBSZWNl
aXZlciB9OwogICAgIHZvaWQgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyKFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQmLCBTaWRlKTsKKyAgICB2b2lkIGNyZWF0ZVN0cmVhbXMoKTsKIAogICAgIGJvb2wgbV9p
c0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IG1f
dHJhbnNmb3JtZXI7CisgICAgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiBtX3JlYWRhYmxlOworICAg
IFJlZlB0cjxXcml0YWJsZVN0cmVhbT4gbV93cml0YWJsZTsKKyAgICBSZWZQdHI8U2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U+IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2U7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKaW5kZXggMjY0MjhkZDkyZjUx
NTlkM2U5MjJiNTEwZTRkZTA3NTY2N2E5MTJhZS4uYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2
N2EwM2NhNTk5YjIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbApAQCAtMjMsMTggKzIzLDMw
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9s
ZSB7CisgICAgImVuY3J5cHQiLAorICAgICJkZWNyeXB0IgorfTsKKworZGljdGlvbmFyeSBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xl
IHJvbGUgPSAiZW5jcnlwdCI7CisgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUg
PSAxMDsKK307CisKIFsKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9V2ViUlRDSW5zZXJ0YWJsZVN0cmVhbXMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9F
WFBPUlQsCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0gewotICAgIGNvbnN0cnVjdG9yKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bU9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0RW5jcnlwdGlv
bktleShDcnlwdG9LZXkga2V5LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcga2V5SUQpOwog
ICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbWlzc2luZyBtZXRob2RzLgogICAgIC8vIFBy
b21pc2U8dW5kZWZpbmVkPiByYXRjaGV0RW5jcnlwdGlvbktleSgpOwogICAgIC8vIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRTaWduaW5nS2V5KENyeXB0b0tleSBrZXkpOworCisgICAgW01heVRocm93
RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7Cisg
ICAgW01heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV3JpdGFibGVTdHJlYW0g
d3JpdGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRleCA5ODA4ZmQ5YWIy
N2JjZTEwZjdjMTY1ZTNkZjkyZGIxNTk1MzkyNzFhLi5jOTIzNmZlNjU0NDE3NGU0ZWZmZWZhZmNi
OTEwNmQ4YWJlNDRiOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcApAQCAtMTY3LDE0
ICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNl
dEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3QKICAgICBpZiAoa2V5SWQpCiAgICAg
ICAgIG1fa2V5SWQgPSAqa2V5SWQ7CiAKKyAgICB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsK
ICAgICBtX2hhc0tleSA9IHRydWU7CisKICAgICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25P
cjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUo
Y29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IHNpZ25hdHVyZS4KLQogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9r
ZXlMb2NrKTsKIAogICAgIGF1dG8gaGVhZGVyID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRh
LCBmcmFtZVNpemUpOwpAQCAtMTkxLDYgKzE5MSw5IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIH0K
IAorICAgIGlmIChmcmFtZVNpemUgPCAoaGVhZGVyLT5zaXplICsgbV9hdXRoZW50aWNhdGlvblNp
emUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiQ2h1bmsgaXMgdG9v
IHNtYWxsIGZvciBhdXRoZW50aWNhdGlvbiBzaXplIiB9OworCiAgICAgLy8gQ29tcHV0ZSBzaWdu
YXR1cmUKICAgICBhdXRvKiB0cmFuc21pdHRlZFNpZ25hdHVyZSA9IGZyYW1lRGF0YSArIGZyYW1l
U2l6ZSAtIG1fYXV0aGVudGljYXRpb25TaXplOwogICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0
ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUoZnJhbWVEYXRhLCBmcmFtZVNpemUgIC0gbV9hdXRoZW50
aWNhdGlvblNpemUsIG1fYXV0aGVudGljYXRpb25LZXkpOwpAQCAtMjE0LDggKzIxNyw2IEBAIEV4
Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5
cHRGcmFtZShjb25zdCB1aW50OF90CiAKIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURh
dGEsIHNpemVfdCBmcmFtZVNpemUpCiB7Ci0gICAgLy8gRklYTUU6IFN1cHBvcnQgc2lnbmF0dXJl
LgotCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1heEhlYWRlclNpemUgPSAxNzsKIAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKQEAgLTI1OSw5ICsyNjAsOSBAQCBF
eGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNy
eXB0RnJhbWUoY29uc3QgdWludDhfdAogRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBzaXplKQogewogICAgIGlmICghbV9oYXNLZXkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJLZXkgaXMgbm90IGluaXRpYWxpemVkIl9zIH07CiAKLSAgICByZXR1cm4g
bV9pc1NlbmRpbmcgPyBlbmNyeXB0RnJhbWUoZGF0YSwgc2l6ZSkgOiBkZWNyeXB0RnJhbWUoZGF0
YSwgc2l6ZSk7CisgICAgcmV0dXJuIG1faXNFbmNyeXB0aW5nID8gZW5jcnlwdEZyYW1lKGRhdGEs
IHNpemUpIDogZGVjcnlwdEZyYW1lKGRhdGEsIHNpemUpOwogfQogCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQpAQCAtMjk0LDYgKzI5NSwxMCBAQCBWZWN0b3I8dWludDhfdD4gUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OmNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbgogewogICAg
IHJldHVybiB7IH07CiB9CisKK3ZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnVwZGF0ZUF1
dGhlbnRpY2F0aW9uU2l6ZSgpCit7Cit9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggYjMxMmI3
Y2EyMTRmZGE2MmY2ZTg5Y2YxMjA0YjU1OTAwYTMzMmZjMC4uYTRlMWFhMTc2ZTg2NmI0ZjE2MDZm
NjlmNjZjMjQ3NGE4MzQ5MTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtNDAsOCAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcj4gY3JlYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyKCk7CiAKLSAgICB2b2lkIHNldElzU2VuZGluZyhib29sKTsKLSAgICB2b2lk
IHNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wpOworICAgIHZvaWQgc2V0SXNFbmNyeXB0aW5nKGJv
b2wpOworICAgIHZvaWQgc2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90KTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9wdGlvbmFsPHVpbnQ2NF90Pik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm0oY29uc3QgdWludDhf
dCosIHNpemVfdCk7CkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAg
RXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwg
c2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleSk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJl
KGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAg
ICB2b2lkIHVwZGF0ZUF1dGhlbnRpY2F0aW9uU2l6ZSgpOwogCiAgICAgTG9jayBtX2tleUxvY2s7
CiAgICAgYm9vbCBtX2hhc0tleSB7IGZhbHNlIH07CkBAIC03MywyMCArNzQsMjAgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9lbmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50
OF90PiBtX3NhbHRLZXk7CiAKLSAgICBib29sIG1faXNTZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNFbmNyeXB0aW5nIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0
aW9uU2l6ZSB7IDEwIH07CiAgICAgdWludDY0X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRf
dCBtX2NvdW50ZXIgeyAwIH07CiB9OwogCi1pbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6c2V0SXNTZW5kaW5nKGJvb2wgaXNTZW5kaW5nKQoraW5saW5lIHZvaWQgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXI6OnNldElzRW5jcnlwdGluZyhib29sIGlzRW5jcnlwdGluZykKIHsKLSAg
ICBtX2lzU2VuZGluZyA9IGlzU2VuZGluZzsKKyAgICBtX2lzRW5jcnlwdGluZyA9IGlzRW5jcnlw
dGluZzsKIH0KIAotaW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzUHJv
Y2Vzc2luZ0F1ZGlvKGJvb2wgaXNQcm9jZXNzaW5nQXVkaW8pCitpbmxpbmUgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lcjo6c2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90IHNpemUpCiB7
Ci0gICAgbV9hdXRoZW50aWNhdGlvblNpemUgPSBpc1Byb2Nlc3NpbmdBdWRpbyA/IDQgOiAxMDsK
KyAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IHNpemU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmluZGV4IDRjM2Q0MjQ4
MDJlMTkzY2FkNzBkMjFiYzIxMzc5Zjg1MGZiMzU3NWMuLjU4MzM4MWZmMTViNmUwYjU2ZDgzMDRh
M2I4MzJiNWM0ZTA1OGExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNw
cApAQCAtNjgsNiArNjgsMTIgQEAgVmVjdG9yPHVpbnQ4X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOjpjb21wdXRlRW5jcnlwdGVkRGF0YVNpZ25hdHVyZShjb25zdCB1aW4KICAgICByZXR1cm4g
cmVzdWx0OwogfQogCit2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50
aWNhdGlvblNpemUoKQoreworICAgIGlmIChtX2F1dGhlbnRpY2F0aW9uU2l6ZSA+IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIKQorICAgICAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZDI3YzAz
YzliOGI4YzRhMDJiMDAxMWFiMDA5OGZkNzYwZmUzZmUwNC4uNGFiNTNlYWMyYWI1NmJiNTliZTY4
OGFmYzg4N2YwYTEwZTE2NDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTQw
LDYzICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUnRwUmVhZGFi
bGVTdHJlYW1Tb3VyY2UKLSAgICA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlPiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KLQot
ICAgIHZvaWQgY2xvc2UoKSB7IGNvbnRyb2xsZXIoKS5jbG9zZSgpOyB9Ci0gICAgdm9pZCBlbnF1
ZXVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBjb250cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0K
LQotcHJpdmF0ZToKLSAgICBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsK
LQotICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNlCi0gICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5h
bCB7IH0KLSAgICB2b2lkIHNldEluYWN0aXZlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1N0YXJ0
KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1B1bGwoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRvQ2Fu
Y2VsKCkgZmluYWwgeyB9Ci19OwotCi1jbGFzcyBSVENSdHBXcml0YWJsZVN0cmVhbVNpbmsgOiBw
dWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0
cFdyaXRhYmxlU3RyZWFtU2luaz4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoVW5pcXVlUmVmPFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZT4mJik+JiYgZW5xdWV1ZUZ1bmN0aW9uKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luayhXVEZNb3ZlKGVucXVldWVGdW5jdGlv
bikpKTsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2lu
ayhGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiYm
IGVucXVldWVGdW5jdGlvbikKLSAgICAgICAgOiBtX2VucXVldWVGdW5jdGlvbihXVEZNb3ZlKGVu
cXVldWVGdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQotICAgIHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0g
Y29udmVydDxJRExVbmlvbjxJRExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJ
bnRlcmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0K
LSAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0sIFJlamVjdEFzSGFuZGxl
ZDo6WWVzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdURjo6
c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkg
ewotICAgICAgICAgICAgbV9lbnF1ZXVlRnVuY3Rpb24odmFsdWUtPnRha2VSVENGcmFtZSgpKTsK
LSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0g
ICAgICAgICAgICBtX2VucXVldWVGdW5jdGlvbih2YWx1ZS0+dGFrZVJUQ0ZyYW1lKCkpOwotICAg
ICAgICB9KTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IERlY2lkZSB3aGV0aGVyIGNsZWFyaW5nIGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lk
IGNsb3NlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0K
LSAgICBGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYp
PiBtX2VucXVldWVGdW5jdGlvbjsKLX07Ci0KIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVz
c2FnZVBvcnQoKTsKQEAgLTExOCw3ICs2MSw3IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQogewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVT
dHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRw
VHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkKK1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kJiBiYWNrZW5kKQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2Fs
bGJhY2spOwogICAgIGlmICghY2FsbGJhY2spCkBAIC0xMzAsMTMgKzczLDI3IEBAIFJlZlB0cjxS
VENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0
U3RyZWFtcyhSVENSdHBUCiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3Vy
Y2UgPSBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFk
YWJsZVN0cmVhbVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsK
ICAgICBhdXRvIHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHJlYWRhYmxlU3RyZWFtU291cmNlLmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
UlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tl
bmQpXShhdXRvJiYgZnJhbWUpIHsKLSAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVk
RnJhbWUoV1RGTW92ZShmcmFtZS5nZXQoKSkpOworICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBX
cml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgU2ltcGxlV3JpdGFibGVTdHJlYW1T
aW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiBjb250ZXh0LCBh
dXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAgIGF1dG8mIGdsb2JhbE9i
amVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKKyAgICAgICAgYXV0byBmcmFt
ZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwg
SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUp
OworCisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisKKyAgICAgICAgYXV0byBydGNG
cmFtZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJh
bWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1l
KCkpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUp
IHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGJhY2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKHJ0Y0ZyYW1l
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9KSk7CiAgICAgaWYgKHdyaXRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuaAppbmRleCAzMTVkNDBjZmMwZWQ4NTAwNzQ4YzBiZWZkNzI0MjdkYWJjZmM2
MGZiLi5kYjQ0MDhiNmFlMWVhYTI1Y2VjZDVhMjQwYmViMWFiYTdhYTMzM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ry
b25nOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Y2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKLWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFt
U291cmNlOworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4KQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmKTsKIAotICAgIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRT
dHJlYW1zKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFi
bGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1C
YWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaAppbmRleCBhYTkyMmQzMjc5Mzc0NGFhOWNlODk5MzI2MTJmODZkY2I1NGM1
OWNhLi5jNTlhMzQxZDYyNTczNDYxODc5NDczOTU2NzE3MDYwNmE1Yjk1NDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaApAQCAtMzYsMTUgKzM2LDE1IEBAIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDUnRwVHJhbnNmb3JtQmFja2Vu
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDUnRwVHJhbnNmb3JtQmFja2VuZCgpID0gZGVmYXVs
dDsKIAotICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChVbmlxdWVSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmKT47CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUm
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSB7IEF1
ZGlvLCBWaWRlbyB9OwogICAgIHZpcnR1YWwgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0g
MDsKIAotICAgIGVudW0gY2xhc3MgU2lkZSB7IFNlbmRlciwgUmVjZWl2ZXIgfTsKKyAgICBlbnVt
IGNsYXNzIFNpZGUgeyBSZWNlaXZlciwgU2VuZGVyIH07CiAgICAgdmlydHVhbCBTaWRlIHNpZGUo
KSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAppbmRleCBkYjViMWYx
MWNmMTM4YmIwMzY4YmYxNzc0OGEzMTNjODI4M2IzMTc2Li40MGQwNzZhMGFmZWMwNWY4ZmVmNzYy
MjMxNzk3NDAzMTI2OGYwZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI2LDE2
ICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9
IGRlZmF1bHQ7CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRh
dGE7Ci0gICAgICAgIHNpemVfdCBzaXplOworICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhIHsg
bnVsbHB0ciB9OworICAgICAgICBzaXplX3Qgc2l6ZSB7IDAgfTsKICAgICB9OwogICAgIHZpcnR1
YWwgRGF0YSBkYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhKERhdGEp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJh
bnNmb3JtQmFja2VuZC5jcHAKaW5kZXggOWFmNDM5ZGNmZThjMDcyN2E2MDIyNDhiMGM5ZTRmOTkz
NWNiNThhMS4uMDRmMDg5MWYyZGJjMTEwOTYwYWFhN2RmZjhhNTUzYWMxZjRlY2M5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFj
a2VuZC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAgdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zv
cm1CYWNrZW5kOjpzZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhDYWxsYmFjayYKICAgICBt
X3J0Y1NlbmRlci0+U2V0RW5jb2RlclRvUGFja2V0aXplckZyYW1lVHJhbnNmb3JtZXIodGhpcyk7
CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQuY3BwCmluZGV4IDFlNTU5NTU1NDE4ZjgxN2RjYjhkNDBmZjlkM2Rm
N2I1MmJjNzNmZTguLjhlYThjYjgwODE1NTI1MTI4YWI0NzAyNDM5ZTA1OTVkMmU4NjhhNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3Bw
CkBAIC00OSwxMSArNDksMTEgQEAgdm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpz
ZXRPdXRwdXRDYWxsYmFjayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjoKICAgICBtX291dHB1
dENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKLXZvaWQgTGliV2ViUlRDUnRwVHJh
bnNmb3JtQmFja2VuZDo6cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoUlRDUnRwVHJhbnNmb3JtYWJs
ZUZyYW1lJiYgZnJhbWUpCit2b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OnByb2Nl
c3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYgZnJhbWUpCiB7CiAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX291dHB1dENhbGxiYWNrTG9jayk7CiAgICAgaWYg
KG1fb3V0cHV0Q2FsbGJhY2spCi0gICAgICAgIG1fb3V0cHV0Q2FsbGJhY2stPk9uVHJhbnNmb3Jt
ZWRGcmFtZShMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OnRvUlRDRnJhbWUoV1RGTW92
ZShzdGF0aWNfY2FzdDxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmPihmcmFtZSkpKSk7
CisgICAgICAgIG1fb3V0cHV0Q2FsbGJhY2stPk9uVHJhbnNmb3JtZWRGcmFtZShzdGF0aWNfY2Fz
dDxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmPihmcmFtZSkudGFrZVJUQ0ZyYW1lKCkp
OwogfQogCiB2b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OlRyYW5zZm9ybShzdGQ6
OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+IHJ0Y0ZyYW1l
KQpAQCAtNjEsNyArNjEsNyBAQCB2b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OlRy
YW5zZm9ybShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYgogICAgIHsKICAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2lucHV0Q2FsbGJhY2tMb2NrKTsKICAgICAgICAg
aWYgKG1faW5wdXRDYWxsYmFjaykgewotICAgICAgICAgICAgbV9pbnB1dENhbGxiYWNrKG1ha2VV
bmlxdWVSZWY8TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPihXVEZNb3ZlKHJ0Y0ZyYW1l
KSkpOworICAgICAgICAgICAgbV9pbnB1dENhbGxiYWNrKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZTo6Y3JlYXRlKFdURk1vdmUocnRjRnJhbWUpKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kLmgKaW5kZXggMjE1OGM2NGJiNjExNDBjNGUyY2ViNDdhMTcwMzQwOTVmNmI0
ZTk5MC4uN2JiMDg1NWEzNTNiZjgwM2NlY2JkNDk3MzRlMTAyMDlmYTlmZmM0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UnRwVHJhbnNmb3JtQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaApAQCAtNDYsMTMg
KzQ2LDE1IEBAIHByb3RlY3RlZDoKICAgICBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kKE1l
ZGlhVHlwZSwgU2lkZSk7CiAgICAgdm9pZCBzZXRJbnB1dENhbGxiYWNrKENhbGxiYWNrJiYpOwog
Citwcm90ZWN0ZWQ6CisgICAgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fbWVkaWFUeXBlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBzZXRPdXRwdXRDYWxsYmFj
ayhydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpUcmFuc2Zvcm1lZEZyYW1lQ2FsbGJhY2s+JiYp
OwogCiAgICAgLy8gUlRDUnRwVHJhbnNmb3JtQmFja2VuZAotICAgIHZvaWQgcHJvY2Vzc1RyYW5z
Zm9ybWVkRnJhbWUoUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lJiYpIGZpbmFsOworICAgIHZvaWQg
cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lJikgZmluYWw7
CiAgICAgdm9pZCBjbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCkgZmluYWw7Ci0gICAg
TWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbWVkaWFUeXBlOyB9
CiAgICAgU2lkZSBzaWRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaWRlOyB9CiAKICAgICAv
LyB3ZWJydGM6OkZyYW1lVHJhbnNmb3JtZXJJbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjMDVk
ZDU2Yzc1MzQ4YWQ0YmQ5Y2I3ZWY1NTAzMTY5MGI1MjhiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUuY3BwCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkxpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIgorCisjaWYgRU5BQkxFKFdF
Ql9SVEMpICYmIFVTRShMSUJXRUJSVEMpCisKK0FMTE9XX1VOVVNFRF9QQVJBTUVURVJTX0JFR0lO
CitBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorCisjaW5jbHVkZSA8d2VicnRj
L2FwaS9mcmFtZV90cmFuc2Zvcm1lcl9pbnRlcmZhY2UuaD4KKworQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECitBTExPV19VTlVTRURfUEFSQU1FVEVSU19FTkQKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkxpYldlYlJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxl
RnJhbWVJbnRlcmZhY2U+JiYgZnJhbWUpCisgICAgOiBtX3J0Y0ZyYW1lKFdURk1vdmUoZnJhbWUp
KQoreworfQorCitMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6On5MaWJXZWJSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUoKQoreworfQorCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFu
c2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6
dGFrZVJUQ0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV1RGTW92ZShtX3J0Y0ZyYW1lKTsKK30KKwor
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpEYXRhIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVG
cmFtZTo6ZGF0YSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3J0Y0ZyYW1lKQorICAgICAgICByZXR1
cm4geyBudWxscHRyLCAwIH07CisgICAgYXV0byBkYXRhID0gbV9ydGNGcmFtZS0+R2V0RGF0YSgp
OworICAgIHJldHVybiB7IGRhdGEuYmVnaW4oKSwgZGF0YS5zaXplKCkgfTsKK30KKwordm9pZCBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OnNldERhdGEoRGF0YSBkYXRhKQoreworICAg
IGlmIChtX3J0Y0ZyYW1lKQorICAgICAgICBtX3J0Y0ZyYW1lLT5TZXREYXRhKHsgZGF0YS5kYXRh
LCBkYXRhLnNpemUgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3Jt
YWJsZUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAppbmRleCA2Mjg2MzJjNmUxN2IxMWZm
NzhjZTIzNTExOTdmZmEwZTNhNDdmMTRmLi44ODVhNTFjZjJhYzQ4MWRjZTMzZTI5ODFjNDYxNzMz
Nzk3MGZkMTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWUuaApAQCAtMjgsMzkgKzI4LDI5IEBACiAKICNpbmNsdWRlICJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUuaCIKIAorbmFtZXNwYWNlIHdlYnJ0YyB7CitjbGFzcyBUcmFuc2Zvcm1h
YmxlRnJhbWVJbnRlcmZhY2U7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lIGZpbmFsIDogcHVibGljIFJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZT4mJik7Ci0gICAgdmlydHVhbCB+TGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKCkgPSBkZWZhdWx0OworICAgIHN0YXRpYyBSZWY8
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmIGZyYW1lKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZShXVEZNb3ZlKGZyYW1lKSkp
OyB9CisgICAgfkxpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSgpOwogCi0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZT4gdG9S
VENGcmFtZShMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmJik7CisgICAgc3RkOjp1bmlx
dWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiB0YWtlUlRDRnJhbWUo
KTsKIAogcHJpdmF0ZToKKyAgICBleHBsaWNpdCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYm
KTsKKwogICAgIERhdGEgZGF0YSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgc2V0RGF0YShEYXRh
IGRhdGEpIGZpbmFsIHsgbV9ydGNGcmFtZS0+U2V0RGF0YSh7IGRhdGEuZGF0YSwgZGF0YS5zaXpl
IH0pOyB9CisgICAgdm9pZCBzZXREYXRhKERhdGEpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiBtX3J0Y0ZyYW1lOwogfTsK
IAotaW5saW5lIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6TGliV2ViUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lKHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFt
ZUludGVyZmFjZT4mJiBmcmFtZSkKLSAgICA6IG1fcnRjRnJhbWUoV1RGTW92ZShmcmFtZSkpCi17
Ci19Ci0KLWlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJ
bnRlcmZhY2U+IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6dG9SVENGcmFtZShMaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmJiBmcmFtZSkKLXsKLSAgICByZXR1cm4gV1RGTW92
ZShmcmFtZS5tX3J0Y0ZyYW1lKTsKLX0KLQotaW5saW5lIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZTo6RGF0YSBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmRhdGEoKSBjb25zdAotewot
ICAgIGF1dG8gZGF0YSA9IG1fcnRjRnJhbWUtPkdldERhdGEoKTsKLSAgICByZXR1cm4geyBkYXRh
LmJlZ2luKCksIGRhdGEuc2l6ZSgpIH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaAppbmRleCA5MWUwYzJjZmQ5OWExMzQw
YTMxZjM5NGY0OWNlZTRkYzE5NWUxOWI4Li5mNGNkYTUyMTRkOWM0MjJiYThlODdkNThjOTdkODk5
ODhmNTg0NTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiUmVh
ZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NjYsNCArNjcsMjQgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CiB9OwogCitjbGFzcyBTaW1wbGVSZWFkYWJsZVN0
cmVhbVNvdXJjZQorICAgIDogcHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgLCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlKTsgfQorCisgICAg
dm9pZCBjbG9zZSgpIHsgY29udHJvbGxlcigpLmNsb3NlKCk7IH0KKyAgICB2b2lkIGVucXVldWUo
SlNDOjpKU1ZhbHVlIHZhbHVlKSB7IGNvbnRyb2xsZXIoKS5lbnF1ZXVlKHZhbHVlKTsgfQorCitw
cml2YXRlOgorICAgIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlKCkgPSBkZWZhdWx0OworCisg
ICAgLy8gUmVhZGFibGVTdHJlYW1Tb3VyY2UKKyAgICB2b2lkIHNldEFjdGl2ZSgpIGZpbmFsIHsg
fQorICAgIHZvaWQgc2V0SW5hY3RpdmUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRvU3RhcnQoKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGRvUHVsbCgpIGZpbmFsIHsgfQorICAgIHZvaWQgZG9DYW5jZWwo
KSBmaW5hbCB7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaAppbmRleCAxYWZh
NTVkOTQ1YzVlNzM5NjA3ZTA1MGI0N2ExZWU5YWViNTJkNjNlLi4yY2FhODZjMzk1ZDNiYmMyMDRk
NjllOWJmNDQ4ZjQyNTY0OWI1N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvV3JpdGFibGVTdHJlYW1TaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtU2luay5oCkBAIC00NSw0ICs0NSwyOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0cmluZyYmKSA9IDA7CiB9OwogCitjbGFzcyBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsgOiBwdWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBXcml0ZUNhbGxiYWNrID0gRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6SlNWYWx1ZSk+OworICAgIHN0YXRpYyBSZWY8
U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rPiBjcmVhdGUoV3JpdGVDYWxsYmFjayYmIHdyaXRlQ2Fs
bGJhY2spIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rKFdU
Rk1vdmUod3JpdGVDYWxsYmFjaykpKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNpbXBs
ZVdyaXRhYmxlU3RyZWFtU2luayhXcml0ZUNhbGxiYWNrJiYpOworCisgICAgdm9pZCB3cml0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgZXJy
b3IoU3RyaW5nJiYpIGZpbmFsIHsgfQorCisgICAgV3JpdGVDYWxsYmFjayBtX3dyaXRlQ2FsbGJh
Y2s7Cit9OworCitpbmxpbmUgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbmsoV3JpdGVDYWxsYmFjayYmIHdyaXRlQ2FsbGJhY2spCisgICAgOiBtX3dyaXRl
Q2FsbGJhY2soV1RGTW92ZSh3cml0ZUNhbGxiYWNrKSkKK3sKK30KKworaW5saW5lIHZvaWQgU2lt
cGxlV3JpdGFibGVTdHJlYW1TaW5rOjp3cml0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBKU0M6OkpTVmFsdWUgdmFsdWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCit7CisgICAgcHJvbWlzZS5zZXR0bGUobV93cml0ZUNhbGxiYWNrKGNvbnRleHQsIHZhbHVl
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzI2Mjg5
MWVjYzYzMDM0N2RjODk1MGUxMzBiNGRkNWYxZTJjZjU1OS4uYjQzZTkwMzlkMjMzMjc4N2MxNDQy
MmNjZGNiYWExYTkyM2I1MGUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4Miw2ICsxODIsNyBAQCBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRv
ci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVy
VHJhbnNmb3JtQmFja2VuZC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcAorTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcAogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCiBNb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTFkNzRjNzQ1MjI1OTc5MDY3OTFhZDFlOGEyMTI4M2Q1NGM2MTE2
OC4uZjU1MzM1YTM4YmRiOTc4ZDUzMzFkMzRhNGVlOTMzOGM2ZDMxNzVmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUzMiw2
ICs3NTMyLDcgQEAKIAkJNDEwQThFRjgyNEY4RjQ3QTAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3Ry
ZWFtRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RlclN0cmVhbUVuY29k
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGOTI0RjhGNDdCMDA0
RjkwNzAgLyogVGV4dEVuY29kZXJTdHJlYW1FbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRF
bmNvZGVyU3RyZWFtRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBC
N0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTBCQTEzMTI1NzBGRTU3MDAyRTJGOEEgLyog
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHA7IHBhdGgg
PSBsaWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRjU2NTUyNEZD
RjcwNTAwQTJFNTBDIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTBGNTY1NzI0RkNGN0M3MDBBMkU1MEMgLyogUlRDSWNlQ2FuZGlk
YXRlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlQ2FuZGlkYXRlSW5pdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAyMiw3ICsxODAyMyw2IEBACiAJ
CQkJQTFDQzU2NEExRjQ2MTNCQjAwQTQ1NTVCIC8qIFBheW1lbnRSZXF1ZXN0ICovLAogCQkJCTFE
MDAyNjlBMjM3NEI5RjgwMENBNkNERiAvKiBQaWN0dXJlSW5QaWN0dXJlICovLAogCQkJCUE5RDI0
N0Y5MEQ3NTdFNDEwMEZERjk1OSAvKiBQbHVnaW5zICovLAotCQkJCTg5RjYwQjE3MTU3RjZBMDIw
MDc1RTE1NyAvKiBRdW90YSAqLywKIAkJCQlCQzk4NTQ0NjBDRDNEQTVGMDAwNjlCQzEgLyogUmFu
Z2VzICovLAogCQkJCUNEOEM2QzI0MjJGRERBNjQwMEE3MjBBQiAvKiBSZW1vdGVQbGF5YmFjayAq
LywKIAkJCQk1MTgyQzI0QzFGMzE0MjA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlcnMgKi8sCkBA
IC0xOTI3Miw5ICsxOTI3MiwxMCBAQAogCQkJCTQxODFDNUJFMjU1M0VCNkUwMEFFQjBGRiAvKiBM
aWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zvcm1CYWNrZW5kLmggKi8sCiAJCQkJNDE4NkJENEQyMTQw
QjlFODAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAgKi8sCiAJ
CQkJNDE4NkJENEIyMTQwQTgwNTAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFj
a2VuZC5oICovLAotCQkJCTQxODFDNUNDMjU1NTgzNjgwMEFFQjBGRiAvKiBMaWJXZWJSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUuaCAqLywKIAkJCQk0MTgxQzVDRTI1NTU4OTU1MDBBRUIwRkYgLyog
TGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5jcHAgKi8sCiAJCQkJNDE4MUM1Q0YyNTU1ODk1
NjAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaCAqLywKKwkJCQk0MTBC
QTEzMTI1NzBGRTU3MDAyRTJGOEEgLyogTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNw
cCAqLywKKwkJCQk0MTgxQzVDQzI1NTU4MzY4MDBBRUIwRkYgLyogTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lLmggKi8sCiAJCQkJNDFEMjhEMEIyMTM5RTAxRDAwRjQyMDZGIC8qIExpYldl
YlJUQ1N0YXRzQ29sbGVjdG9yLmNwcCAqLywKIAkJCQk0MUQyOEQwQzIxMzlFMDFFMDBGNDIwNkYg
LyogTGliV2ViUlRDU3RhdHNDb2xsZWN0b3IuaCAqLywKIAkJCQk0MUQxQTA0OTIxM0VEREZEMDA2
M0ZCNkIgLyogTGliV2ViUlRDVXRpbHMuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCmluZGV4IDYyOTY5YmRlMTVmMzk3NjhhZDM0NmU3N2U4
Y2NkNTM2MGI0ZjQ3NWIuLjM0ODdjZGFkMzkzMzZkZThiYzRmNjQ2ZTdmZmZlMDUxM2M3MDYxNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKQEAg
LTM2LDYgKzM2LDMwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlND
OwogCituYW1lc3BhY2UgV3JpdGFibGVTdHJlYW1JbnRlcm5hbCB7CitzdGF0aWMgaW5saW5lIEpT
Qzo6SlNWYWx1ZSBjYWxsRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIGpzRnVuY3Rpb24sIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWUs
IGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJndW1lbnRzKQoreworICAgIFZNJiB2bSA9IGxleGljYWxH
bG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2
bSk7CisgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGpzRnVuY3Rpb24p
OworICAgIEFTU0VSVChjYWxsRGF0YS50eXBlICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUp
OworICAgIGF1dG8gcmVzdWx0ID0gY2FsbCgmbGV4aWNhbEdsb2JhbE9iamVjdCwganNGdW5jdGlv
biwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsKKyAgICBzY29wZS5hc3NlcnROb0V4
Y2VwdGlvbigpOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9v
bCBjaGVja1dyaXRhYmxlU3RyZWFtKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpT
V3JpdGFibGVTdHJlYW0qIHdyaXRhYmxlU3RyZWFtLCBKU0M6OkpTVmFsdWUgZnVuY3Rpb24pCit7
CisgICAgYXV0byYgbGV4aWNhbEdsb2JhbE9iamVjdCA9IGdsb2JhbE9iamVjdDsKKworICAgIEFT
U0VSVChmdW5jdGlvbik7CisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7
CisgICAgYXJndW1lbnRzLmFwcGVuZCh3cml0YWJsZVN0cmVhbSk7CisgICAgQVNTRVJUKCFhcmd1
bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKKyAgICByZXR1cm4gV3JpdGFibGVTdHJlYW1JbnRlcm5h
bDo6Y2FsbEZ1bmN0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGZ1bmN0aW9uLCBKU0M6OmpzVW5k
ZWZpbmVkKCksIGFyZ3VtZW50cykuaXNUcnVlKCk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxXcml0
YWJsZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJiBzaW5rKQog
ewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKQEAgLTYwLDQgKzg0LDMw
IEBAIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFtOjpjcmVh
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmpl
Y3QsICpqc0Nhc3Q8SlNXcml0YWJsZVN0cmVhbSo+KG9iamVjdCkpOwogfQogCit2b2lkIFdyaXRh
YmxlU3RyZWFtOjpsb2NrKCkKK3sKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1f
Z2xvYmFsT2JqZWN0OworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBhdXRvJiBjbGll
bnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisK
KyAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3QobV9nbG9iYWxPYmplY3QtPmdl
dCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5Xcml0YWJs
ZVN0cmVhbURlZmF1bHRXcml0ZXJQcml2YXRlTmFtZSgpKSk7CisKKyAgICBhdXRvIGNvbnN0cnVj
dERhdGEgPSBnZXRDb25zdHJ1Y3REYXRhKHZtLCBjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJUKGNv
bnN0cnVjdERhdGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CisKKyAgICBNYXJrZWRB
cmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHdyaXRhYmxlU3RyZWFtKCkpOwor
ICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxvd2VkKCkpOworCisgICAgSlNDOjpjb25zdHJ1Y3Qo
JmxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3REYXRhLCBhcmdzKTsK
KyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworfQorCitib29sIFdyaXRhYmxlU3RyZWFt
Ojppc0xvY2tlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNoZWNrV3JpdGFibGVTdHJlYW0oKmds
b2JhbE9iamVjdCgpLCB3cml0YWJsZVN0cmVhbSgpLCBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbklu
dGVybmFsRnVuY3Rpb25zKCkud3JpdGFibGVTdHJlYW1JbnRlcm5hbHMoKS5tX2lzV3JpdGFibGVT
dHJlYW1Mb2NrZWRGdW5jdGlvbi5nZXQoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCmluZGV4IDM1ZGI4MDU4OWMwMmYwNmYxZDg0NDQ1MTli
MzYzYzBkYWVlZmI0YjkuLjQ2ZmY4OWQ1Y2RlMDhiMDA2ZjIxNWIxM2IzMGJhMjRkOTg1MzcyMzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaApAQCAtNDIs
NiArNDIsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0
cmVhbT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmUHRyPFdyaXRhYmxlU3RyZWFt
U2luaz4mJik7CiAgICAgSlNXcml0YWJsZVN0cmVhbSogd3JpdGFibGVTdHJlYW0oKSBjb25zdCB7
IHJldHVybiBndWFyZGVkKCk7IH0KIAorICAgIHZvaWQgbG9jaygpOworICAgIGJvb2wgaXNMb2Nr
ZWQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBXcml0YWJsZVN0cmVhbShKU0RPTUdsb2JhbE9i
amVjdCYsIEpTV3JpdGFibGVTdHJlYW0mKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDc5ODc0NjZiZTA0MWQzYTYx
MzNmZjc1YTY3OWE0M2I2ZmY0YThkYWEuLjkyZmVjNzQxNjZiYThhNjNkY2RjZTVhN2UwNjRmNzdm
YWUyZDM3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC02MzgsNiArNjM4LDExIEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9y
SURMVHlwZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1lIGVx
ICJXcml0YWJsZVN0cmVhbSIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiV3JpdGFibGVTdHJl
YW0uaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIGlmICgkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAg
ICBBZGRUb0luY2x1ZGVzKCJKU1hQYXRoTlNSZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRYUGF0aE5TUmVz
b2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkM2RmYWZjYTI1OTdiNTc0YTJiZDVi
YWFkZmU1MzljN2E1ZDA5OWIzLi5jNzE3MTA5MjBhZGRjNzk5MjhhODU0ZDFjNzcyNzcwMWFjMmM5
ZTBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENS
dHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyVGVzdHMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y3JlYXRlVmlkZW9UcmFu
c2Zvcm1lcik6CisKIDIwMjAtMTEtMjYgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdlZC4gUmVtb3ZlIGxlZnRvdmVyIHRlc3QgY2FzZSBh
ZnRlciBJbnRlcm5ldCBFeHBsb3JlciBxdWlya3MgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyVGVzdHMuY3BwCmluZGV4IDNjZDEzNDQwMTlhMzg5NDAwMzhiNDhkNjMyYjQ3MzAxYmI2
N2U5ZDUuLmJkMGVmMDg0MjliZDhjMWNhYzkzYTM0ZmVjZjhkZWU1YTA2YjdmZDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lclRlc3RzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0cy5jcHAKQEAgLTcwLDExICs3MCwxMSBAQCBWZWN0b3I8
dWludDhfdD4gZ2V0UmF3S2V5KCkKICAgICApOwogfQogCi1zdGF0aWMgUmVmPFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVhdGVWaWRlb1RyYW5zZm9ybWVyKGJvb2wgaXNTZW5k
aW5nID0gdHJ1ZSkKK3N0YXRpYyBSZWY8V2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+
IGNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIoYm9vbCBpc0VuY3J5cHRpbmcgPSB0cnVlKQogewogICAg
IGF1dG8gdHJhbnNmb3JtZXIgPSBXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3Jl
YXRlKCk7Ci0gICAgdHJhbnNmb3JtZXItPnNldElzU2VuZGluZyhpc1NlbmRpbmcpOwotICAgIHRy
YW5zZm9ybWVyLT5zZXRJc1Byb2Nlc3NpbmdBdWRpbyhmYWxzZSk7CisgICAgdHJhbnNmb3JtZXIt
PnNldElzRW5jcnlwdGluZyhpc0VuY3J5cHRpbmcpOworICAgIHRyYW5zZm9ybWVyLT5zZXRBdXRo
ZW50aWNhdGlvblNpemUoMTApOwogCiAgICAgYXV0byBrZXlJZCA9IFZlY3Rvcjx1aW50OF90Pjo6
ZnJvbSgxOTgsIDMxLCAyNTEsIDE5NywgNDgsIDEzOSwgOTEsIDUxKTsKICAgICB1aW50NjRfdCBr
ZXlJZFZhbHVlID0gMDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMTlkOTA1MDIwNWEzMDkzM2RjNDNiNWQxNTkyODQ5NDYw
ODMxYjI4Li43MDE0MjVhYzBiMTE0NWEzMDVhMmU2NWVlOTFjMzZhM2EyMDI4ODYwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENS
dHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWw6CisKIDIw
MjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVw
ZGF0ZSBXUFQgV2ViUlRDIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKaW5kZXggZTAwZTg2ZGRkZTI5
MzVkMWYwZjVhYzAyZGQzYTg3YzZhMmY3OGRlZS4uZjliNzc5ODg1ODY3ZDU4ZjkxMDQyZDQ3YWU5
YjY1Zjg2YzA3MjljNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3Nm
cmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDggQEAKIAogUEFT
UyBDYW5ub3QgcmV1c2UgYXR0YWNoZWQgdHJhbnNmb3JtcworUEFTUyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0gZXhwb3NlcyByZWFkYWJsZSBhbmQgd3JpdGFibGUKK1BBU1MgcmVhZGFibGUvd3JpdGFi
bGUgYXJlIGxvY2tlZCB3aGVuIGF0dGFjaGVkIGFuZCBhZnRlciBiZWluZyBhdHRhY2hlZAorUEFT
UyBTRnJhbWUgd2l0aCBhcnJheSBidWZmZXIgLSBhdXRoZW50aWNhdGlvbiBzaXplIDEwCitQQVNT
IFNGcmFtZSBkZWNyeXB0aW9uIHdpdGggYXJyYXkgYnVmZmVyIHRoYXQgaXMgdG9vIHNtYWxsCitQ
QVNTIFNGcmFtZSB0cmFuc2Zvcm0gZ2V0cyBlcnJvcmVkIGlmIHRyeWluZyB0byBwcm9jZXNzIHVu
ZXhwZWN0ZWQgdmFsdWUgdHlwZXMKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0
Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwKaW5kZXggYmEwNDg4MGQxNDVhY2ZiODFkN2U5OWJmMTEz
ODRhMDg1MzUxMzNjNy4uZmEzNzgxNjJiYTMxMTMyZGE2Y2MyYWYxODBiYzI5NmIxYmE1NTE4NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5o
dG1sCkBAIC0yOCw2ICsyOCwxMTQgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAg
ICAgc2VuZGVyMS50cmFuc2Zvcm0gPSBudWxsOwogICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSBu
dWxsOwogfSwgIkNhbm5vdCByZXVzZSBhdHRhY2hlZCB0cmFuc2Zvcm1zIik7CisKK3Rlc3QoKCkg
PT4geworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zv
cm0oKTsKKworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS5yZWFkYWJsZSBpbnN0YW5j
ZW9mIFJlYWRhYmxlU3RyZWFtKTsKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ud3Jp
dGFibGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0cmVhbSk7Cit9LCAiUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtIGV4cG9zZXMgcmVhZGFibGUgYW5kIHdyaXRhYmxlIik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgpOwor
ICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgp
OworICAgIGNvbnN0IHNlbmRlcjEgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXI7
CisgICAgY29uc3Qgc2VuZGVyMiA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpLnNlbmRlcjsK
KyAgICBjb25zdCByZWNlaXZlcjEgPSBwYy5nZXRSZWNlaXZlcnMoKVswXTsKKyAgICBjb25zdCBy
ZWNlaXZlcjIgPSBwYy5nZXRSZWNlaXZlcnMoKVsxXTsKKworICAgIGFzc2VydF9mYWxzZShzZW5k
ZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAic2VuZGVyIHJlYWRhYmxlIGJlZm9yZSIpOwor
ICAgIGFzc2VydF9mYWxzZShzZW5kZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAic2VuZGVy
IHdyaXRhYmxlIGJlZm9yZSIpOworICAgIGFzc2VydF9mYWxzZShyZWNlaXZlclRyYW5zZm9ybS5y
ZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciByZWFkYWJsZSBiZWZvcmUiKTsKKyAgICBhc3NlcnRf
ZmFsc2UocmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAicmVjZWl2ZXIgd3JpdGFi
bGUgYmVmb3JlIik7CisKKyAgICBzZW5kZXIxLnRyYW5zZm9ybSA9IHNlbmRlclRyYW5zZm9ybTsK
KyAgICByZWNlaXZlcjEudHJhbnNmb3JtID0gcmVjZWl2ZXJUcmFuc2Zvcm07CisKKyAgICBhc3Nl
cnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAic2VuZGVyIHJlYWRhYmxl
IGR1cmluZyIpOworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5sb2Nr
ZWQsICJzZW5kZXIgd3JpdGFibGUgZHVyaW5nIik7CisgICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJU
cmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAicmVjZWl2ZXIgcmVhZGFibGUgZHVyaW5nIik7Cisg
ICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAicmVjZWl2
ZXIgd3JpdGFibGUgZHVyaW5nIik7CisKKyAgICBzZW5kZXIxLnRyYW5zZm9ybSA9IG51bGw7Cisg
ICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9IG51bGw7CisKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJU
cmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAic2VuZGVyIHJlYWRhYmxlIGFmdGVyIik7CisgICAg
YXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tlZCwgInNlbmRlciB3cml0
YWJsZSBhZnRlciIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxl
LmxvY2tlZCwgInJlY2VpdmVyIHJlYWRhYmxlIGFmdGVyIik7CisgICAgYXNzZXJ0X3RydWUocmVj
ZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAicmVjZWl2ZXIgd3JpdGFibGUgYWZ0ZXIi
KTsKK30sICJyZWFkYWJsZS93cml0YWJsZSBhcmUgbG9ja2VkIHdoZW4gYXR0YWNoZWQgYW5kIGFm
dGVyIGJlaW5nIGF0dGFjaGVkIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGNvbnN0IGtleSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcg
VWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0
LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAi
ZGVyaXZlS2V5Il0pOworCisgICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNG
cmFtZVRyYW5zZm9ybSh7IHJvbGUgOiAnZW5jcnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAg
fSk7CisgICAgc2VuZGVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KTsKKworICAgIGNv
bnN0IHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJvbGUg
OiAnZGVjcnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAgfSk7CisgICAgcmVjZWl2ZXJUcmFu
c2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAgY29uc3Qgd3JpdGVyID0gc2VuZGVy
VHJhbnNmb3JtLndyaXRhYmxlLmdldFdyaXRlcigpOworICAgIGNvbnN0IHJlYWRlciA9IHJlY2Vp
dmVyVHJhbnNmb3JtLnJlYWRhYmxlLmdldFJlYWRlcigpOworCisgICAgc2VuZGVyVHJhbnNmb3Jt
LnJlYWRhYmxlLnBpcGVUbyhyZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZSk7CisKKyAgICBjb25z
dCBzZW50ID0gbmV3IEFycmF5QnVmZmVyKDgpOworICAgIGNvbnN0IHZpZXcgPSBuZXcgSW50OEFy
cmF5KHNlbnQpOworICAgIGZvciAobGV0IGNwdHIgPSAwOyBjcHRyIDwgc2VudC5ieXRlTGVuZ3Ro
OyArK2NwdHIpCisgICAgICAgIHZpZXdbY3B0cl0gPSBjcHRyOworCisgICAgd3JpdGVyLndyaXRl
KHNlbnQpOworICAgIGNvbnN0IHJlY2VpdmVkID0gYXdhaXQgcmVhZGVyLnJlYWQoKTsKKworICAg
IGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFsdWUuYnl0ZUxlbmd0aCwgOCk7CisgICAgY29uc3Qg
dmlldzIgPSBuZXcgSW50OEFycmF5KHJlY2VpdmVkLnZhbHVlKTsKKyAgICBmb3IgKGxldCBjcHRy
ID0gMDsgY3B0ciA8IHNlbnQuYnl0ZUxlbmd0aDsgKytjcHRyKQorICAgICAgICBhc3NlcnRfZXF1
YWxzKHZpZXcyW2NwdHJdLCB2aWV3W2NwdHJdKTsKK30sICJTRnJhbWUgd2l0aCBhcnJheSBidWZm
ZXIgLSBhdXRoZW50aWNhdGlvbiBzaXplIDEwIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJy
YXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2
LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2
ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworCisgICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0gbmV3
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJvbGUgOiAnZW5jcnlwdCcsIGF1dGhlbnRpY2F0aW9u
U2l6ZTogMTAgfSk7CisgICAgY29uc3Qgc2VuZGVyV3JpdGVyID0gc2VuZGVyVHJhbnNmb3JtLndy
aXRhYmxlLmdldFdyaXRlcigpOworICAgIGNvbnN0IHNlbmRlclJlYWRlciA9IHNlbmRlclRyYW5z
Zm9ybS5yZWFkYWJsZS5nZXRSZWFkZXIoKTsKKworICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3Jt
ID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJvbGUgOiAnZGVjcnlwdCcsIGF1dGhlbnRp
Y2F0aW9uU2l6ZTogMTAgfSk7CisgICAgY29uc3QgcmVjZWl2ZXJXcml0ZXIgPSByZWNlaXZlclRy
YW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsKKyAgICBjb25zdCByZWNlaXZlclJlYWRlciA9
IHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmdldFJlYWRlcigpOworCisgICAgc2VuZGVyVHJh
bnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KTsKKyAgICByZWNlaXZlclRyYW5zZm9ybS5zZXRF
bmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICBjb25zdCBjaHVuayA9IG5ldyBBcnJheUJ1ZmZlcig4
KTsKKworICAgIC8vIGRlY3J5cHRpb24gc2hvdWxkIGZhaWwsIGxlYWRpbmcgdG8gYW4gZW1wdHkg
YXJyYXkgYnVmZmVyLgorICAgIGF3YWl0IHJlY2VpdmVyV3JpdGVyLndyaXRlKGNodW5rKTsKKyAg
ICBsZXQgcmVjZWl2ZWQgPSBhd2FpdCByZWNlaXZlclJlYWRlci5yZWFkKCk7CisgICAgYXNzZXJ0
X2VxdWFscyhyZWNlaXZlZC52YWx1ZS5ieXRlTGVuZ3RoLCAwKTsKKworICAgIC8vIFdlIHdyaXRl
IGFnYWluIGJ1dCB0aGlzIHRpbWUgd2l0aCBhIGNodW5rIHdlIGNhbiBkZWNyeXB0LgorICAgIGF3
YWl0IHNlbmRlcldyaXRlci53cml0ZShjaHVuayk7CisgICAgY29uc3QgZW5jcnlwdGVkID0gYXdh
aXQgc2VuZGVyUmVhZGVyLnJlYWQoKTsKKyAgICBhd2FpdCByZWNlaXZlcldyaXRlci53cml0ZShl
bmNyeXB0ZWQudmFsdWUpOworICAgIHJlY2VpdmVkID0gYXdhaXQgcmVjZWl2ZXJSZWFkZXIucmVh
ZCgpOworICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFsdWUuYnl0ZUxlbmd0aCwgOCk7Cit9
LCAiU0ZyYW1lIGRlY3J5cHRpb24gd2l0aCBhcnJheSBidWZmZXIgdGhhdCBpcyB0b28gc21hbGwi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3Qga2V5ID0gYXdh
aXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDMsIDc3
LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwg
MTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSk7CisKKyAg
ICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyBy
b2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHJl
Y2VpdmVyV3JpdGVyID0gcmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7Cisg
ICAgcmVjZWl2ZXJUcmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAgLy8gZGVj
cnlwdGlvbiBzaG91bGQgZmFpbCwgbGVhZGluZyB0byBlcnJvcmluZyB0aGUgdHJhbnNmb3JtLgor
ICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlY2VpdmVyV3Jp
dGVyLndyaXRlKHsgfSkpOworICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBl
RXJyb3IsIHJlY2VpdmVyV3JpdGVyLmNsb3NlZCk7Cit9LCAiU0ZyYW1lIHRyYW5zZm9ybSBnZXRz
IGVycm9yZWQgaWYgdHJ5aW5nIHRvIHByb2Nlc3MgdW5leHBlY3RlZCB2YWx1ZSB0eXBlcyIpOwor
CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvYm9keT4KIDwvaHRtbD4K
</data>
<flag name="commit-queue"
          id="431939"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414932</attachid>
            <date>2020-11-27 02:52:06 -0800</date>
            <delta_ts>2020-11-27 03:45:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127115203.patch</filename>
            <type>text/plain</type>
            <size>61205</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZmZDE5MWQzZWNhYTQy
ZjE2Njk5MDZlYWU2YWJkM2ZkZDgwYWQ0Ni4uNmM1NTRkYmIyNTgwZmNhN2ZkNGJiNDcxNGFmNmMy
NmNlNjQ4NTUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTExLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbG9ja2lu
ZyBXcml0YWJsZVN0cmVhbSBhbmQgY2hlY2tpbmcgbG9ja2VkIHN0YXRlLgorICAgICAgICBBZGQg
cmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyBzbyB0aGF0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBj
YW4gYmUgdXNlZCBhcyBhIFRyYW5zZm9ybVN0cmVhbS4KKyAgICAgICAgTWFrZSBhIHJlZmFjdG9y
aW5nIHRvIGFsbG93IHJldXNlIG9mIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlIGFuZCBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsuCisKKyAgICAgICAgSW4gY2FzZSBvZiBlbmNyeXB0aW9uL2Rl
Y3J5cHRpb24gZXJyb3IsIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtIGFzIHRoaXMgaXMg
ZmluYWwuCisgICAgICAgIEluc3RlYWQsIHdlIG91dHB1dCBlbXB0eSBidWZmZXJzLgorICAgICAg
ICBJbiBjYXNlIG9mIHRyeWluZyB0byBlbmNyeXB0IHVuZXhwZWN0ZWQgb2JqZWN0cywgd2UgZXJy
b3IgdGhlIHRyYW5zZm9ybS4KKworICAgICAgICBNb3ZlIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSB0byBiZSByZWYgY291bnRlZC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCBhIFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZSBmb3IgZWFjaCBSVENFbmNvZGVkRnJhbWUgZXZlbiB0aG91Z2gg
dGhlIHVuZGVybHlpbmcKKyAgICAgICAgd2VicnRjIGZyYW1lICh3aGljaCBpcyBhIHVuaXF1ZSBw
dHIpIGlzIGdpdmVuIGJhY2sgdG8gdGhlIHdlYnJ0YyBiYWNrZW5kIGFmdGVyIHByb2Nlc3Npbmcu
CisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5j
b2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRW5jb2RlZEZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENFbmNvZGVkRnJhbWU6
OnJ0Y0ZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRl
b0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENF
bmNvZGVkVmlkZW9GcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNv
ZGVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWU6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjppc0F0dGFjaGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybTo6aW5pdGlhbGl6ZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0
cFNGcmFtZVRyYW5zZm9ybTo6d2lsbENsZWFyQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06
OmNyZWF0ZVN0cmVhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
OjpyZWFkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06Ondy
aXRhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNy
eXB0aW9uS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpk
ZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OmVuY3J5cHRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
Ojp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEF1dGhlbnRpY2F0aW9uU2l6ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNh
dGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0U3RyZWFtcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHA6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9j
ZXNzVHJhbnNmb3JtZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxl
U3RyZWFtU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2U6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3Ry
ZWFtU291cmNlOjplbnF1ZXVlKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVT
dHJlYW1TaW5rLmg6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OlNp
bXBsZVdyaXRhYmxlU3RyZWFtU2luayk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OndyaXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbUludGVybmFsOjpjYWxsRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tXcml0YWJsZVN0cmVhbSk6CisgICAgICAg
IChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpXcml0
YWJsZVN0cmVhbTo6aXNMb2NrZWQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dyaXRh
YmxlU3RyZWFtLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6CisKIDIwMjAtMTEtMjYgIExh
dXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEJ1aWxkIGZp
eC4gQWRkIGNhc3Qgd2hlbiB0YWtpbmcgY29uc3QgZGF0YSBvd25lcnNoaXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKaW5kZXggODg1Mjc3MjYzNzlmYmZiNmRhNzg0ODM3MWVjZmIxMzE4ZGI4ZWRiNC4u
YTNlYjI4MmU2MWVjNDEzNjVkMjhmOGE4MzY5NzQzNGM3MDliZTIxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENF
bmNvZGVkQXVkaW9GcmFtZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNv
ZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAg
IDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5o
CmluZGV4IDgyYjZmMDgyNzVlNjkzNTliNDdjMGYwNTE2YzMyY2VlZDYwNDAxNTUuLmJlNzc2YmQy
YjI0MmNkMDgyNjYzNDc0NmFjODUwYjQxMGNlMDM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgKQEAg
LTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRB
dWRpb0ZyYW1lIDogcHVibGljIFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxSVENFbmNvZGVkQXVkaW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZEF1
ZGlvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZEF1
ZGlvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0VuY29kZWRBdWRpb0ZyYW1lKFdURk1vdmUoZnJhbWUp
KSk7IH0KICAgICB+UlRDRW5jb2RlZEF1ZGlvRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcAppbmRleCAwNzZhOTM5NTZhYmJiZTg0NjA0N2NjZTAxYWYxMmM1YzFjYjJkNTA5Li43MDIx
NTVmNWNlYjZmZTM0NGI0ODIyOWFlMzM4YzY1OGE2NTFjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCkBAIC0z
Myw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDRW5jb2RlZEZyYW1lOjpS
VENFbmNvZGVkRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFt
ZSkKK1JUQ0VuY29kZWRGcmFtZTo6UlRDRW5jb2RlZEZyYW1lKFJlZjxSVENSdHBUcmFuc2Zvcm1h
YmxlRnJhbWU+JiYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVk
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZy
YW1lLmgKaW5kZXggYWRiNDc0ZGI5MTMxNTA4ZGUzNWRkMGE3ZTBkMDFkNzRlYmE2YWY5Yi4uODcx
M2Y1YjhiM2Y3ZDhmODIxM2NiMDQ0ZmI1YjJmNjk3YzE3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5oCkBAIC00Mywx
MiArNDMsMTIgQEAgcHVibGljOgogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXREYXRhKEpTQzo6QXJyYXlCdWZmZXImKTsKIAotICAgIFVuaXF1
ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IHRha2VSVENGcmFtZSgpIHsgcmV0dXJuIFdU
Rk1vdmUobV9mcmFtZSk7IH0KKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIHJ0Y0ZyYW1l
KCkgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
UlRDRW5jb2RlZEZyYW1lKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpOwor
ICAgIGV4cGxpY2l0IFJUQ0VuY29kZWRGcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
PiYmKTsKIAotICAgIFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IG1fZnJhbWU7
CisgICAgUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKaW5kZXggY2FmNjNhMDljMmQ4
YTY5NWQ0Mzc2MmVmN2QzOTBjZmY5N2U2NjE0NS4uMWVkMTU1NjQ1MTA0MTBkNGU0Yzg4ODNhZDE0
YTNkMTExNzE0MzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5jb2Rl
ZFZpZGVvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkK
K1JUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENFbmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUo
ZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oCmluZGV4IDM3NzA1YWM4NTZhMDI2Mjk3Zjgx
OTA3M2VhZjRjODMwZTM2MTlhNTUuLmQ1ZmExMjBiZTI0YWZmMWI3ZmY4NTRkNTUzMzRmMTBlYzQ4
ZjRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RW5jb2RlZFZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRWaWRlb0ZyYW1lIDogcHVibGljIFJUQ0VuY29k
ZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkVmlkZW9GcmFtZT4g
Y3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZFZpZGVvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsg
fQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZFZpZGVvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0Vu
Y29kZWRWaWRlb0ZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZFZpZGVv
RnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShV
bmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENF
bmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCA1Yzg3
Y2Y1NjRhNTE1MzAxNDc5M2M0OGYyZjJkZTkyNzVjNzk3MmU4Li5lYzFkMzhlMzg5M2FhZTg0MDlm
MDI5MDg1MmYxMTJjN2U5NGVhNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0yOSwx
NiArMjksMjcgQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkNyeXB0b0tleVJh
dy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIlJU
Q0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgor
I2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCisjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0oKQotICAgIDogbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFu
c2Zvcm1lcjo6Y3JlYXRlKCkpCitSVENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1fdHJh
bnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpKQogeworICAgIG1fdHJh
bnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhvcHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlwdCk7
CisgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0aGVu
dGljYXRpb25TaXplKTsKIH0KIAogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp+UlRDUnRwU0ZyYW1l
VHJhbnNmb3JtKCkKQEAgLTY3LDExICs3OCwyMyBAQCB1aW50NjRfdCBSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OmNvdW50ZXJGb3JUZXN0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV90cmFuc2Zvcm1l
ci0+Y291bnRlcigpOwogfQogCitib29sIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRhY2hl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNBdHRhY2hlZCB8fCAobV9yZWFkYWJsZSAmJiBt
X3JlYWRhYmxlLT5pc0xvY2tlZCgpKSB8fCAobV93cml0YWJsZSAmJiBtX3dyaXRhYmxlLT5pc0xv
Y2tlZCgpKTsKK30KKwogdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFu
c2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kLCBTaWRlIHNpZGUpCiB7Cisg
ICAgQVNTRVJUKCFpc0F0dGFjaGVkKCkpOworCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKLSAg
ICBtX3RyYW5zZm9ybWVyLT5zZXRJc1NlbmRpbmcoc2lkZSA9PSBTaWRlOjpTZW5kZXIpOwotICAg
IG1fdHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlvKGJhY2tlbmQubWVkaWFUeXBlKCkg
PT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbyk7CisgICAgaWYgKG1f
cmVhZGFibGUpCisgICAgICAgIG1fcmVhZGFibGUtPmxvY2soKTsKKyAgICBpZiAobV93cml0YWJs
ZSkKKyAgICAgICAgbV93cml0YWJsZS0+bG9jaygpOworCisgICAgbV90cmFuc2Zvcm1lci0+c2V0
SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6U2VuZGVyKTsKKyAgICBtX3RyYW5zZm9ybWVyLT5z
ZXRBdXRoZW50aWNhdGlvblNpemUoYmFja2VuZC5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlvID8gNCA6IDEwKTsKIAogICAgIGJhY2tlbmQuc2V0
VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3RyYW5zZm9ybWVyID0gbV90cmFuc2Zvcm1lciwg
YmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCldKGF1dG8mJiBmcmFtZSkgewogICAgICAgICBhdXRv
IGNodW5rID0gZnJhbWUtPmRhdGEoKTsKQEAgLTg0LDExICsxMDcsMTAgQEAgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kJiBiYWNrZW4KIAogICAgICAgICBmcmFtZS0+c2V0RGF0YSh7IHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpIH0pOwogCi0gICAgICAgIGJh
Y2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFdURk1vdmUoZnJhbWUuZ2V0KCkpKTsKKyAg
ICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOwogICAg
IH0pOwogfQogCi0KIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFsaXplQmFja2Vu
ZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgaW5p
dGlhbGl6ZVRyYW5zZm9ybWVyKGJhY2tlbmQsIFNpZGU6OlJlY2VpdmVyKTsKQEAgLTEwMiw3ICsx
MjQsOTQgQEAgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9y
U2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGIKIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjp3aWxsQ2xlYXJCYWNrZW5kKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7
CiAgICAgYmFja2VuZC5jbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCk7Ci0gICAgbV9p
c0F0dGFjaGVkID0gZmFsc2U7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZyYW1lPgordm9pZCB0
cmFuc2Zvcm1GcmFtZShGcmFtZSYgZnJhbWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGNodW5rID0gZnJhbWUucnRjRnJhbWUo
KS5kYXRhKCk7CisgICAgYXV0byByZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oY2h1bmsu
ZGF0YSwgY2h1bmsuc2l6ZSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpLCBXZWJSVEMsICJSVENSdHBTRnJhbWVUcmFuc2Zvcm0gZmFpbGVkIHRyYW5zZm9y
bWluZyBhIGZyYW1lIik7CisKKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgdHJh
bnNmb3JtZWRDaHVuazsKKyAgICAvLyBJbiBjYXNlIG9mIGVycm9yLCB3ZSBqdXN0IHBhc3MgYWxv
bmcgdGhlIGZyYW1lIHdpdGggZW1wdHkgZGF0YS4KKyAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgdHJhbnNmb3JtZWRDaHVuayA9IHsgcmVzdWx0LnJldHVyblZhbHVlKCku
ZGF0YSgpLCByZXN1bHQucmV0dXJuVmFsdWUoKS5zaXplKCkgfTsKKworICAgIGZyYW1lLnJ0Y0Zy
YW1lKCkuc2V0RGF0YSh0cmFuc2Zvcm1lZENodW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pT
KCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4K
K3ZvaWQgdHJhbnNmb3JtRnJhbWUoSlNDOjpBcnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1l
ciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3Vs
dCA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFs
dWUuZGF0YSgpKSwgdmFsdWUuYnl0ZUxlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihyZXN1bHQuaGFzRXhjZXB0aW9uKCksIFdlYlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBm
YWlsZWQgdHJhbnNmb3JtaW5nIGEgZnJhbWUiKTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0
Lmhhc0V4Y2VwdGlvbigpID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCku
c2l6ZSgpKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxP
YmplY3QsIGJ1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lk
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xv
YmFsT2JqZWN0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisK
KyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6
OmNyZWF0ZSgpOworICAgIGF1dG8gcmVhZGFibGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChy
ZWFkYWJsZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0
YWJsZSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJs
ZVN0cmVhbVNvdXJjZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1
dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmpl
Y3QoKSk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9i
amVjdC52bSgpKTsKKworICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExB
cnJheUJ1ZmZlciwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJm
YWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
RXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworCisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRv
IHRocm93IGFueSBleGNlcHRpb24gaW4gdGhlIHRyYW5zZm9ybSB0byBtYWtlIHN1cmUgd2UgZG8g
bm90IGVycm9yIHRoZSB0cmFuc2Zvcm0uCisgICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsm
XShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgdHJh
bnNmb3JtRnJhbWUoKnZhbHVlLCBnbG9iYWxPYmplY3QsIHRyYW5zZm9ybWVyLmdldCgpLCAqcmVh
ZGFibGVTdHJlYW1Tb3VyY2UpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRl
b0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xv
YmFsT2JqZWN0LCB0cmFuc2Zvcm1lci5nZXQoKSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAg
ICAgICAgfSwgWyZdKFJlZlB0cjxBcnJheUJ1ZmZlcj4mIHZhbHVlKSB7CisgICAgICAgICAgICB0
cmFuc2Zvcm1GcmFtZSgqdmFsdWUsIGdsb2JhbE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpy
ZWFkYWJsZVN0cmVhbVNvdXJjZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0pKTsKKyAgICBpZiAod3JpdGFibGUuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcmVhZGFibGUgPSByZWFkYWJsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICBtX3dyaXRhYmxlID0gd3JpdGFibGUucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKG1f
aXNBdHRhY2hlZCkgeworICAgICAgICBtX3JlYWRhYmxlLT5sb2NrKCk7CisgICAgICAgIG1fd3Jp
dGFibGUtPmxvY2soKTsKKyAgICB9Cit9CisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0
cmVhbT4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6cmVhZGFibGUoKQoreworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICgh
bV9yZWFkYWJsZSkKKyAgICAgICAgY3JlYXRlU3RyZWFtcygpOworCisgICAgcmV0dXJuIG1fcmVh
ZGFibGUuY29weVJlZigpOworfQorCitFeGNlcHRpb25PcjxSZWZQdHI8V3JpdGFibGVTdHJlYW0+
PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OndyaXRhYmxlKCkKK3sKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAoIW1fd3Jp
dGFibGUpCisgICAgICAgIGNyZWF0ZVN0cmVhbXMoKTsKKworICAgIHJldHVybiBtX3dyaXRhYmxl
LmNvcHlSZWYoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmgKaW5kZXggZDQ3ZGI5YjI5YzhhNmJkNTc4Y2UyMzFhYTMxYjU2OWEwOWFlODVjNy4uYWI0OGYy
ZDBjZWQ1ODJkMTU0MjZlYTdhN2I0MDc3ZWRiNDgwODUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsMjkgKzM1LDQ1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0tleTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFt
OworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVh
bTsKIAotY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtPiB7CitjbGFzcyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+LCBwcml2YXRlIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0pOyB9CisgICAgZW51bSBjbGFzcyBSb2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAg
IHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9Owor
ICAgICAgICB1aW50NjRfdCBhdXRoZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CiAgICAgflJUQ1J0
cFNGcmFtZVRyYW5zZm9ybSgpOwogCiAgICAgdm9pZCBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tl
eSYsIE9wdGlvbmFsPHVpbnQ2NF90PiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0g
ICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CisgICAg
Ym9vbCBpc0F0dGFjaGVkKCkgY29uc3Q7CiAgICAgdm9pZCBpbml0aWFsaXplQmFja2VuZEZvclJl
Y2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIGluaXRpYWxpemVCYWNr
ZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIHdpbGxDbGVh
ckJhY2tlbmQoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dWludDY0X3QgY291bnRlckZvclRlc3RpbmcoKSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxSZWFkYWJsZVN0cmVhbT4+IHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUoKTsKKwogcHJpdmF0ZToKLSAgICBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0oKTsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIE9wdGlvbnMpOwogCiAgICAgZW51bSBjbGFzcyBTaWRlIHsgU2VuZGVyLCBSZWNl
aXZlciB9OwogICAgIHZvaWQgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyKFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQmLCBTaWRlKTsKKyAgICB2b2lkIGNyZWF0ZVN0cmVhbXMoKTsKIAogICAgIGJvb2wgbV9p
c0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IG1f
dHJhbnNmb3JtZXI7CisgICAgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiBtX3JlYWRhYmxlOworICAg
IFJlZlB0cjxXcml0YWJsZVN0cmVhbT4gbV93cml0YWJsZTsKKyAgICBSZWZQdHI8U2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U+IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2U7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKaW5kZXggMjY0MjhkZDkyZjUx
NTlkM2U5MjJiNTEwZTRkZTA3NTY2N2E5MTJhZS4uYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2
N2EwM2NhNTk5YjIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbApAQCAtMjMsMTggKzIzLDMw
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9s
ZSB7CisgICAgImVuY3J5cHQiLAorICAgICJkZWNyeXB0IgorfTsKKworZGljdGlvbmFyeSBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xl
IHJvbGUgPSAiZW5jcnlwdCI7CisgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUg
PSAxMDsKK307CisKIFsKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9V2ViUlRDSW5zZXJ0YWJsZVN0cmVhbXMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9F
WFBPUlQsCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0gewotICAgIGNvbnN0cnVjdG9yKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bU9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0RW5jcnlwdGlv
bktleShDcnlwdG9LZXkga2V5LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcga2V5SUQpOwog
ICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbWlzc2luZyBtZXRob2RzLgogICAgIC8vIFBy
b21pc2U8dW5kZWZpbmVkPiByYXRjaGV0RW5jcnlwdGlvbktleSgpOwogICAgIC8vIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRTaWduaW5nS2V5KENyeXB0b0tleSBrZXkpOworCisgICAgW01heVRocm93
RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7Cisg
ICAgW01heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV3JpdGFibGVTdHJlYW0g
d3JpdGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRleCA5ODA4ZmQ5YWIy
N2JjZTEwZjdjMTY1ZTNkZjkyZGIxNTk1MzkyNzFhLi5jOTIzNmZlNjU0NDE3NGU0ZWZmZWZhZmNi
OTEwNmQ4YWJlNDRiOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcApAQCAtMTY3LDE0
ICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNl
dEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3QKICAgICBpZiAoa2V5SWQpCiAgICAg
ICAgIG1fa2V5SWQgPSAqa2V5SWQ7CiAKKyAgICB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsK
ICAgICBtX2hhc0tleSA9IHRydWU7CisKICAgICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25P
cjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUo
Y29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IHNpZ25hdHVyZS4KLQogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9r
ZXlMb2NrKTsKIAogICAgIGF1dG8gaGVhZGVyID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRh
LCBmcmFtZVNpemUpOwpAQCAtMTkxLDYgKzE5MSw5IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIH0K
IAorICAgIGlmIChmcmFtZVNpemUgPCAoaGVhZGVyLT5zaXplICsgbV9hdXRoZW50aWNhdGlvblNp
emUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiQ2h1bmsgaXMgdG9v
IHNtYWxsIGZvciBhdXRoZW50aWNhdGlvbiBzaXplIiB9OworCiAgICAgLy8gQ29tcHV0ZSBzaWdu
YXR1cmUKICAgICBhdXRvKiB0cmFuc21pdHRlZFNpZ25hdHVyZSA9IGZyYW1lRGF0YSArIGZyYW1l
U2l6ZSAtIG1fYXV0aGVudGljYXRpb25TaXplOwogICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0
ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUoZnJhbWVEYXRhLCBmcmFtZVNpemUgIC0gbV9hdXRoZW50
aWNhdGlvblNpemUsIG1fYXV0aGVudGljYXRpb25LZXkpOwpAQCAtMjE0LDggKzIxNyw2IEBAIEV4
Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5
cHRGcmFtZShjb25zdCB1aW50OF90CiAKIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURh
dGEsIHNpemVfdCBmcmFtZVNpemUpCiB7Ci0gICAgLy8gRklYTUU6IFN1cHBvcnQgc2lnbmF0dXJl
LgotCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1heEhlYWRlclNpemUgPSAxNzsKIAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKQEAgLTI1OSw5ICsyNjAsOSBAQCBF
eGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNy
eXB0RnJhbWUoY29uc3QgdWludDhfdAogRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBzaXplKQogewogICAgIGlmICghbV9oYXNLZXkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJLZXkgaXMgbm90IGluaXRpYWxpemVkIl9zIH07CiAKLSAgICByZXR1cm4g
bV9pc1NlbmRpbmcgPyBlbmNyeXB0RnJhbWUoZGF0YSwgc2l6ZSkgOiBkZWNyeXB0RnJhbWUoZGF0
YSwgc2l6ZSk7CisgICAgcmV0dXJuIG1faXNFbmNyeXB0aW5nID8gZW5jcnlwdEZyYW1lKGRhdGEs
IHNpemUpIDogZGVjcnlwdEZyYW1lKGRhdGEsIHNpemUpOwogfQogCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQpAQCAtMjk0LDYgKzI5NSwxMCBAQCBWZWN0b3I8dWludDhfdD4gUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OmNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbgogewogICAg
IHJldHVybiB7IH07CiB9CisKK3ZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnVwZGF0ZUF1
dGhlbnRpY2F0aW9uU2l6ZSgpCit7Cit9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggYjMxMmI3
Y2EyMTRmZGE2MmY2ZTg5Y2YxMjA0YjU1OTAwYTMzMmZjMC4uYTRlMWFhMTc2ZTg2NmI0ZjE2MDZm
NjlmNjZjMjQ3NGE4MzQ5MTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtNDAsOCAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcj4gY3JlYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyKCk7CiAKLSAgICB2b2lkIHNldElzU2VuZGluZyhib29sKTsKLSAgICB2b2lk
IHNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wpOworICAgIHZvaWQgc2V0SXNFbmNyeXB0aW5nKGJv
b2wpOworICAgIHZvaWQgc2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90KTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9wdGlvbmFsPHVpbnQ2NF90Pik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm0oY29uc3QgdWludDhf
dCosIHNpemVfdCk7CkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAg
RXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwg
c2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleSk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJl
KGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAg
ICB2b2lkIHVwZGF0ZUF1dGhlbnRpY2F0aW9uU2l6ZSgpOwogCiAgICAgTG9jayBtX2tleUxvY2s7
CiAgICAgYm9vbCBtX2hhc0tleSB7IGZhbHNlIH07CkBAIC03MywyMCArNzQsMjAgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9lbmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50
OF90PiBtX3NhbHRLZXk7CiAKLSAgICBib29sIG1faXNTZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNFbmNyeXB0aW5nIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0
aW9uU2l6ZSB7IDEwIH07CiAgICAgdWludDY0X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRf
dCBtX2NvdW50ZXIgeyAwIH07CiB9OwogCi1pbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6c2V0SXNTZW5kaW5nKGJvb2wgaXNTZW5kaW5nKQoraW5saW5lIHZvaWQgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXI6OnNldElzRW5jcnlwdGluZyhib29sIGlzRW5jcnlwdGluZykKIHsKLSAg
ICBtX2lzU2VuZGluZyA9IGlzU2VuZGluZzsKKyAgICBtX2lzRW5jcnlwdGluZyA9IGlzRW5jcnlw
dGluZzsKIH0KIAotaW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzUHJv
Y2Vzc2luZ0F1ZGlvKGJvb2wgaXNQcm9jZXNzaW5nQXVkaW8pCitpbmxpbmUgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lcjo6c2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90IHNpemUpCiB7
Ci0gICAgbV9hdXRoZW50aWNhdGlvblNpemUgPSBpc1Byb2Nlc3NpbmdBdWRpbyA/IDQgOiAxMDsK
KyAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IHNpemU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmluZGV4IDRjM2Q0MjQ4
MDJlMTkzY2FkNzBkMjFiYzIxMzc5Zjg1MGZiMzU3NWMuLjU4MzM4MWZmMTViNmUwYjU2ZDgzMDRh
M2I4MzJiNWM0ZTA1OGExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNw
cApAQCAtNjgsNiArNjgsMTIgQEAgVmVjdG9yPHVpbnQ4X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOjpjb21wdXRlRW5jcnlwdGVkRGF0YVNpZ25hdHVyZShjb25zdCB1aW4KICAgICByZXR1cm4g
cmVzdWx0OwogfQogCit2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50
aWNhdGlvblNpemUoKQoreworICAgIGlmIChtX2F1dGhlbnRpY2F0aW9uU2l6ZSA+IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIKQorICAgICAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZDI3YzAz
YzliOGI4YzRhMDJiMDAxMWFiMDA5OGZkNzYwZmUzZmUwNC4uNGFiNTNlYWMyYWI1NmJiNTliZTY4
OGFmYzg4N2YwYTEwZTE2NDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTQw
LDYzICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUnRwUmVhZGFi
bGVTdHJlYW1Tb3VyY2UKLSAgICA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlPiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KLQot
ICAgIHZvaWQgY2xvc2UoKSB7IGNvbnRyb2xsZXIoKS5jbG9zZSgpOyB9Ci0gICAgdm9pZCBlbnF1
ZXVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBjb250cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0K
LQotcHJpdmF0ZToKLSAgICBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsK
LQotICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNlCi0gICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5h
bCB7IH0KLSAgICB2b2lkIHNldEluYWN0aXZlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1N0YXJ0
KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1B1bGwoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRvQ2Fu
Y2VsKCkgZmluYWwgeyB9Ci19OwotCi1jbGFzcyBSVENSdHBXcml0YWJsZVN0cmVhbVNpbmsgOiBw
dWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0
cFdyaXRhYmxlU3RyZWFtU2luaz4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoVW5pcXVlUmVmPFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZT4mJik+JiYgZW5xdWV1ZUZ1bmN0aW9uKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luayhXVEZNb3ZlKGVucXVldWVGdW5jdGlv
bikpKTsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2lu
ayhGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiYm
IGVucXVldWVGdW5jdGlvbikKLSAgICAgICAgOiBtX2VucXVldWVGdW5jdGlvbihXVEZNb3ZlKGVu
cXVldWVGdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQotICAgIHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0g
Y29udmVydDxJRExVbmlvbjxJRExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJ
bnRlcmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0K
LSAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0sIFJlamVjdEFzSGFuZGxl
ZDo6WWVzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdURjo6
c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkg
ewotICAgICAgICAgICAgbV9lbnF1ZXVlRnVuY3Rpb24odmFsdWUtPnRha2VSVENGcmFtZSgpKTsK
LSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0g
ICAgICAgICAgICBtX2VucXVldWVGdW5jdGlvbih2YWx1ZS0+dGFrZVJUQ0ZyYW1lKCkpOwotICAg
ICAgICB9KTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IERlY2lkZSB3aGV0aGVyIGNsZWFyaW5nIGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lk
IGNsb3NlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0K
LSAgICBGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYp
PiBtX2VucXVldWVGdW5jdGlvbjsKLX07Ci0KIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVz
c2FnZVBvcnQoKTsKQEAgLTExOCw3ICs2MSw3IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQogewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVT
dHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRw
VHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkKK1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kJiBiYWNrZW5kKQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2Fs
bGJhY2spOwogICAgIGlmICghY2FsbGJhY2spCkBAIC0xMzAsMTMgKzczLDI3IEBAIFJlZlB0cjxS
VENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0
U3RyZWFtcyhSVENSdHBUCiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3Vy
Y2UgPSBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFk
YWJsZVN0cmVhbVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsK
ICAgICBhdXRvIHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHJlYWRhYmxlU3RyZWFtU291cmNlLmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
UlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tl
bmQpXShhdXRvJiYgZnJhbWUpIHsKLSAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVk
RnJhbWUoV1RGTW92ZShmcmFtZS5nZXQoKSkpOworICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBX
cml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgU2ltcGxlV3JpdGFibGVTdHJlYW1T
aW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiBjb250ZXh0LCBh
dXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAgIGF1dG8mIGdsb2JhbE9i
amVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKKyAgICAgICAgYXV0byBmcmFt
ZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwg
SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUp
OworCisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisKKyAgICAgICAgYXV0byBydGNG
cmFtZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJh
bWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1l
KCkpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUp
IHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGJhY2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKHJ0Y0ZyYW1l
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9KSk7CiAgICAgaWYgKHdyaXRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuaAppbmRleCAzMTVkNDBjZmMwZWQ4NTAwNzQ4YzBiZWZkNzI0MjdkYWJjZmM2
MGZiLi5kYjQ0MDhiNmFlMWVhYTI1Y2VjZDVhMjQwYmViMWFiYTdhYTMzM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ry
b25nOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Y2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKLWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFt
U291cmNlOworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4KQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmKTsKIAotICAgIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRT
dHJlYW1zKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFi
bGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1C
YWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaAppbmRleCBhYTkyMmQzMjc5Mzc0NGFhOWNlODk5MzI2MTJmODZkY2I1NGM1
OWNhLi5jNTlhMzQxZDYyNTczNDYxODc5NDczOTU2NzE3MDYwNmE1Yjk1NDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaApAQCAtMzYsMTUgKzM2LDE1IEBAIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDUnRwVHJhbnNmb3JtQmFja2Vu
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDUnRwVHJhbnNmb3JtQmFja2VuZCgpID0gZGVmYXVs
dDsKIAotICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChVbmlxdWVSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmKT47CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUm
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSB7IEF1
ZGlvLCBWaWRlbyB9OwogICAgIHZpcnR1YWwgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0g
MDsKIAotICAgIGVudW0gY2xhc3MgU2lkZSB7IFNlbmRlciwgUmVjZWl2ZXIgfTsKKyAgICBlbnVt
IGNsYXNzIFNpZGUgeyBSZWNlaXZlciwgU2VuZGVyIH07CiAgICAgdmlydHVhbCBTaWRlIHNpZGUo
KSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAppbmRleCBkYjViMWYx
MWNmMTM4YmIwMzY4YmYxNzc0OGEzMTNjODI4M2IzMTc2Li40MGQwNzZhMGFmZWMwNWY4ZmVmNzYy
MjMxNzk3NDAzMTI2OGYwZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI2LDE2
ICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9
IGRlZmF1bHQ7CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRh
dGE7Ci0gICAgICAgIHNpemVfdCBzaXplOworICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhIHsg
bnVsbHB0ciB9OworICAgICAgICBzaXplX3Qgc2l6ZSB7IDAgfTsKICAgICB9OwogICAgIHZpcnR1
YWwgRGF0YSBkYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhKERhdGEp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJh
bnNmb3JtQmFja2VuZC5jcHAKaW5kZXggOWFmNDM5ZGNmZThjMDcyN2E2MDIyNDhiMGM5ZTRmOTkz
NWNiNThhMS4uMDRmMDg5MWYyZGJjMTEwOTYwYWFhN2RmZjhhNTUzYWMxZjRlY2M5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFj
a2VuZC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAgdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zv
cm1CYWNrZW5kOjpzZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhDYWxsYmFjayYKICAgICBt
X3J0Y1NlbmRlci0+U2V0RW5jb2RlclRvUGFja2V0aXplckZyYW1lVHJhbnNmb3JtZXIodGhpcyk7
CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQuY3BwCmluZGV4IDFlNTU5NTU1NDE4ZjgxN2RjYjhkNDBmZjlkM2Rm
N2I1MmJjNzNmZTguLjZjYWRiNDI0ZmQ2Y2U4NjliMmNkM2Y0NTdhN2U5YjZkMjkwODY0OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMp
CiAKICNpbmNsdWRlICJMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaCIKLSNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEgKzQ4
LDExIEBAIHZvaWQgTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6c2V0T3V0cHV0Q2FsbGJh
Y2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6CiAgICAgbV9vdXRwdXRDYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spOwogfQogCi12b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6
OnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmIGZyYW1l
KQordm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9jZXNzVHJhbnNmb3JtZWRG
cmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIGZyYW1lKQogewogICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9vdXRwdXRDYWxsYmFja0xvY2spOwogICAgIGlmIChtX291dHB1dENhbGxi
YWNrKQotICAgICAgICBtX291dHB1dENhbGxiYWNrLT5PblRyYW5zZm9ybWVkRnJhbWUoTGliV2Vi
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjp0b1JUQ0ZyYW1lKFdURk1vdmUoc3RhdGljX2Nhc3Q8
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lJj4oZnJhbWUpKSkpOworICAgICAgICBtX291
dHB1dENhbGxiYWNrLT5PblRyYW5zZm9ybWVkRnJhbWUoc3RhdGljX2Nhc3Q8TGliV2ViUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lJj4oZnJhbWUpLnRha2VSVENGcmFtZSgpKTsKIH0KIAogdm9pZCBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiBydGNGcmFtZSkKQEAgLTYxLDcgKzYw
LDcgQEAgdm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWIKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9pbnB1dENhbGxiYWNrTG9jayk7CiAgICAgICAgIGlmIChtX2lucHV0Q2Fs
bGJhY2spIHsKLSAgICAgICAgICAgIG1faW5wdXRDYWxsYmFjayhtYWtlVW5pcXVlUmVmPExpYldl
YlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4oV1RGTW92ZShydGNGcmFtZSkpKTsKKyAgICAgICAg
ICAgIG1faW5wdXRDYWxsYmFjayhMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmNyZWF0
ZShXVEZNb3ZlKHJ0Y0ZyYW1lKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5o
CmluZGV4IDIxNThjNjRiYjYxMTQwYzRlMmNlYjQ3YTE3MDM0MDk1ZjZiNGU5OTAuLjdiYjA4NTVh
MzUzYmY4MDNjZWNiZDQ5NzM0ZTEwMjA5ZmE5ZmZjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgKQEAgLTQ2LDEzICs0NiwxNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZChNZWRpYVR5cGUsIFNpZGUp
OwogICAgIHZvaWQgc2V0SW5wdXRDYWxsYmFjayhDYWxsYmFjayYmKTsKIAorcHJvdGVjdGVkOgor
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX21lZGlhVHlw
ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc2V0T3V0cHV0Q2FsbGJhY2socnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtZWRGcmFtZUNhbGxiYWNrPiYmKTsKIAogICAgIC8vIFJU
Q1J0cFRyYW5zZm9ybUJhY2tlbmQKLSAgICB2b2lkIHByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJU
Q1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmKSBmaW5hbDsKKyAgICB2b2lkIHByb2Nlc3NUcmFuc2Zv
cm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2xl
YXJUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjaygpIGZpbmFsOwotICAgIE1lZGlhVHlwZSBtZWRp
YVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX21lZGlhVHlwZTsgfQogICAgIFNpZGUgc2lk
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2lkZTsgfQogCiAgICAgLy8gd2VicnRjOjpGcmFt
ZVRyYW5zZm9ybWVySW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzA1ZGQ1NmM3NTM0OGFkNGJk
OWNiN2VmNTUwMzE2OTBiNTI4YjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJXZWJS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0Uo
TElCV0VCUlRDKQorCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKworI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvZnJhbWVfdHJh
bnNmb3JtZXJfaW50ZXJmYWNlLmg+CisKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxl
RnJhbWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNl
PiYmIGZyYW1lKQorICAgIDogbV9ydGNGcmFtZShXVEZNb3ZlKGZyYW1lKSkKK3sKK30KKworTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjp+TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lKCkKK3sKK30KKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1l
SW50ZXJmYWNlPiBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OnRha2VSVENGcmFtZSgp
Cit7CisgICAgcmV0dXJuIFdURk1vdmUobV9ydGNGcmFtZSk7Cit9CisKK1JUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZTo6RGF0YSBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmRhdGEoKSBj
b25zdAoreworICAgIGlmICghbV9ydGNGcmFtZSkKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwg
MCB9OworICAgIGF1dG8gZGF0YSA9IG1fcnRjRnJhbWUtPkdldERhdGEoKTsKKyAgICByZXR1cm4g
eyBkYXRhLmJlZ2luKCksIGRhdGEuc2l6ZSgpIH07Cit9CisKK3ZvaWQgTGliV2ViUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lOjpzZXREYXRhKERhdGEgZGF0YSkKK3sKKyAgICBpZiAobV9ydGNGcmFt
ZSkKKyAgICAgICAgbV9ydGNGcmFtZS0+U2V0RGF0YSh7IGRhdGEuZGF0YSwgZGF0YS5zaXplIH0p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JU
QykgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgKaW5kZXggNjI4NjMyYzZlMTdiMTFmZjc4Y2UyMzUxMTk3ZmZh
MGUzYTQ3ZjE0Zi4uODc5MGQ1M2YxNWYxN2IyMDkwOTQxNDBkMDNlZmM5YmZiOGQyMDhlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgK
QEAgLTI3LDQwICsyNywzMSBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKK2NsYXNzIFRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZTsKK30KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUg
ZmluYWwgOiBwdWJsaWMgUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBMaWJXZWJSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50
ZXJmYWNlPiYmKTsKLSAgICB2aXJ0dWFsIH5MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUo
KSA9IGRlZmF1bHQ7CisgICAgc3RhdGljIFJlZjxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRl
cmZhY2U+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KKyAgICB+TGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lKCk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJh
bnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiB0b1JUQ0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZSYmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxl
RnJhbWVJbnRlcmZhY2U+IHRha2VSVENGcmFtZSgpOwogCiBwcml2YXRlOgorICAgIGV4cGxpY2l0
IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpU
cmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+JiYpOworCiAgICAgRGF0YSBkYXRhKCkgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCBzZXREYXRhKERhdGEgZGF0YSkgZmluYWwgeyBtX3J0Y0ZyYW1lLT5T
ZXREYXRhKHsgZGF0YS5kYXRhLCBkYXRhLnNpemUgfSk7IH0KKyAgICB2b2lkIHNldERhdGEoRGF0
YSkgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJh
bWVJbnRlcmZhY2U+IG1fcnRjRnJhbWU7CiB9OwogCi1pbmxpbmUgTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmIGZyYW1lKQotICAgIDog
bV9ydGNGcmFtZShXVEZNb3ZlKGZyYW1lKSkKLXsKLX0KLQotaW5saW5lIHN0ZDo6dW5pcXVlX3B0
cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZT4gTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjp0b1JUQ0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYm
IGZyYW1lKQotewotICAgIHJldHVybiBXVEZNb3ZlKGZyYW1lLm1fcnRjRnJhbWUpOwotfQotCi1p
bmxpbmUgUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpEYXRhIExpYldlYlJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZTo6ZGF0YSgpIGNvbnN0Ci17Ci0gICAgYXV0byBkYXRhID0gbV9ydGNGcmFtZS0+
R2V0RGF0YSgpOwotICAgIHJldHVybiB7IGRhdGEuYmVnaW4oKSwgZGF0YS5zaXplKCkgfTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNv
dXJjZS5oCmluZGV4IDkxZTBjMmNmZDk5YTEzNDBhMzFmMzk0ZjQ5Y2VlNGRjMTk1ZTE5YjguLmY0
Y2RhNTIxNGQ5YzQyMmJhOGU4N2Q1OGM5N2Q4OTk4OGY1ODQ1OTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5oCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Niw0ICs2NywyNCBAQCBwcml2YXRlOgogICAg
IE9wdGlvbmFsPFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXI+IG1fY29udHJvbGxlcjsK
IH07CiAKK2NsYXNzIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgOiBwdWJsaWMgUmVh
ZGFibGVTdHJlYW1Tb3VyY2UKKyAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTaW1wbGVSZWFk
YWJsZVN0cmVhbVNvdXJjZT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8U2ltcGxlUmVhZGFi
bGVTdHJlYW1Tb3VyY2U+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2UpOyB9CisKKyAgICB2b2lkIGNsb3NlKCkgeyBjb250cm9sbGVyKCku
Y2xvc2UoKTsgfQorICAgIHZvaWQgZW5xdWV1ZShKU0M6OkpTVmFsdWUgdmFsdWUpIHsgY29udHJv
bGxlcigpLmVucXVldWUodmFsdWUpOyB9CisKK3ByaXZhdGU6CisgICAgU2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2UoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBSZWFkYWJsZVN0cmVhbVNvdXJjZQor
ICAgIHZvaWQgc2V0QWN0aXZlKCkgZmluYWwgeyB9CisgICAgdm9pZCBzZXRJbmFjdGl2ZSgpIGZp
bmFsIHsgfQorICAgIHZvaWQgZG9TdGFydCgpIGZpbmFsIHsgfQorICAgIHZvaWQgZG9QdWxsKCkg
ZmluYWwgeyB9CisgICAgdm9pZCBkb0NhbmNlbCgpIGZpbmFsIHsgfQorfTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1z
L1dyaXRhYmxlU3RyZWFtU2luay5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dy
aXRhYmxlU3RyZWFtU2luay5oCmluZGV4IDFhZmE1NWQ5NDVjNWU3Mzk2MDdlMDUwYjQ3YTFlZTlh
ZWI1MmQ2M2UuLjJjYWE4NmMzOTVkM2JiYzIwNGQ2OWU5YmY0NDhmNDI1NjQ5YjU3YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVTdHJlYW1TaW5r
LmgKQEAgLTQ1LDQgKzQ1LDI5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoU3Ry
aW5nJiYpID0gMDsKIH07CiAKK2NsYXNzIFNpbXBsZVdyaXRhYmxlU3RyZWFtU2luayA6IHB1Ymxp
YyBXcml0YWJsZVN0cmVhbVNpbmsgeworcHVibGljOgorICAgIHVzaW5nIFdyaXRlQ2FsbGJhY2sg
PSBGdW5jdGlvbjxFeGNlcHRpb25Pcjx2b2lkPihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlND
OjpKU1ZhbHVlKT47CisgICAgc3RhdGljIFJlZjxTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms+IGNy
ZWF0ZShXcml0ZUNhbGxiYWNrJiYgd3JpdGVDYWxsYmFjaykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbmsoV1RGTW92ZSh3cml0ZUNhbGxiYWNrKSkpOyB9CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rKFdyaXRlQ2Fs
bGJhY2smJik7CisKKyAgICB2b2lkIHdyaXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OkpTVmFsdWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNs
b3NlKCkgZmluYWwgeyB9CisgICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9CisKKyAg
ICBXcml0ZUNhbGxiYWNrIG1fd3JpdGVDYWxsYmFjazsKK307CisKK2lubGluZSBTaW1wbGVXcml0
YWJsZVN0cmVhbVNpbms6OlNpbXBsZVdyaXRhYmxlU3RyZWFtU2luayhXcml0ZUNhbGxiYWNrJiYg
d3JpdGVDYWxsYmFjaykKKyAgICA6IG1fd3JpdGVDYWxsYmFjayhXVEZNb3ZlKHdyaXRlQ2FsbGJh
Y2spKQoreworfQorCitpbmxpbmUgdm9pZCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OndyaXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNWYWx1ZSB2YWx1ZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBwcm9taXNlLnNldHRsZSht
X3dyaXRlQ2FsbGJhY2soY29udGV4dCwgdmFsdWUpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAppbmRleCA3MjYyODkxZWNjNjMwMzQ3ZGM4OTUwZTEzMGI0ZGQ1ZjFl
MmNmNTU5Li5iNDNlOTAzOWQyMzMyNzg3YzE0NDIyY2NkY2JhYTFhOTIzYjUwZTIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dApAQCAtMTgyLDYgKzE4Miw3IEBAIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9yLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJUcmFuc2Zvcm1CYWNrZW5kLmNwcAogTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2Vu
ZC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQuY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUuY3BwCiBNb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxl
bWVudC5jcHAKIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCiBNb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MWQ3NGM3NDUy
MjU5NzkwNjc5MWFkMWU4YTIxMjgzZDU0YzYxMTY4Li5jM2Q3MmY0MTJlMjM1YmNiNDljMzc3NjUz
YjNkMDhiZmQ1ZTdiZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NTMyLDYgKzc1MzIsNyBAQAogCQk0MTBBOEVGODI0RjhG
NDdBMDA0RjkwNzAgLyogVGV4dEVuY29kZXJTdHJlYW1FbmNvZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRleHRFbmNvZGVyU3RyZWFtRW5jb2Rlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMEE4RUY5MjRGOEY0N0IwMDRGOTA3MCAvKiBUZXh0RW5jb2RlclN0cmVhbUVu
Y29kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEVuY29kZXJTdHJlYW1FbmNvZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01l
c3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMEJBMTMxMjU3MEZFNTcwMDJFMkY4QSAvKiBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGliV2ViUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmNwcDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBFNDQ1
RjIzNDM3M0FEMDAwMTczRDQgLyogTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENTb2NrZXRJZGVudGlmaWVyLmg7IHBh
dGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTBGNTY1NTI0RkNGNzA1MDBBMkU1MEMgLyogUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMEY1NjU3MjRG
Q0Y3QzcwMEEyRTUwQyAvKiBSVENJY2VDYW5kaWRhdGVJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSVENJY2VDYW5kaWRhdGVJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4MDIyLDcgKzE4MDIzLDYgQEAKIAkJCQlBMUNDNTY0QTFGNDYxM0JCMDBBNDU1NUIg
LyogUGF5bWVudFJlcXVlc3QgKi8sCiAJCQkJMUQwMDI2OUEyMzc0QjlGODAwQ0E2Q0RGIC8qIFBp
Y3R1cmVJblBpY3R1cmUgKi8sCiAJCQkJQTlEMjQ3RjkwRDc1N0U0MTAwRkRGOTU5IC8qIFBsdWdp
bnMgKi8sCi0JCQkJODlGNjBCMTcxNTdGNkEwMjAwNzVFMTU3IC8qIFF1b3RhICovLAogCQkJCUJD
OTg1NDQ2MENEM0RBNUYwMDA2OUJDMSAvKiBSYW5nZXMgKi8sCiAJCQkJQ0Q4QzZDMjQyMkZEREE2
NDAwQTcyMEFCIC8qIFJlbW90ZVBsYXliYWNrICovLAogCQkJCTUxODJDMjRDMUYzMTQyMDkwMDU5
QkE3QyAvKiBTZXJ2aWNlV29ya2VycyAqLywKQEAgLTE5MjcyLDYgKzE5MjcyLDcgQEAKIAkJCQk0
MTgxQzVCRTI1NTNFQjZFMDBBRUIwRkYgLyogTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFj
a2VuZC5oICovLAogCQkJCTQxODZCRDREMjE0MEI5RTgwMDAxODI2RiAvKiBMaWJXZWJSVENSdHBU
cmFuc2NlaXZlckJhY2tlbmQuY3BwICovLAogCQkJCTQxODZCRDRCMjE0MEE4MDUwMDAxODI2RiAv
KiBMaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuaCAqLywKKwkJCQk0MTBCQTEzMTI1NzBG
RTU3MDAyRTJGOEEgLyogTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcCAqLywKIAkJ
CQk0MTgxQzVDQzI1NTU4MzY4MDBBRUIwRkYgLyogTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lLmggKi8sCiAJCQkJNDE4MUM1Q0UyNTU1ODk1NTAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFRy
YW5zZm9ybUJhY2tlbmQuY3BwICovLAogCQkJCTQxODFDNUNGMjU1NTg5NTYwMEFFQjBGRiAvKiBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKaW5kZXggNjI5NjliZGUxNWYzOTc2OGFkMzQ2ZTc3
ZThjY2Q1MzYwYjRmNDc1Yi4uMzQ4N2NkYWQzOTMzNmRlOGJjNGY2NDZlN2ZmZmUwNTEzYzcwNjE0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcApA
QCAtMzYsNiArMzYsMzAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKK25hbWVzcGFjZSBXcml0YWJsZVN0cmVhbUludGVybmFsIHsKK3N0YXRpYyBpbmxpbmUg
SlNDOjpKU1ZhbHVlIGNhbGxGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUganNGdW5jdGlvbiwgSlNDOjpKU1ZhbHVlIHRoaXNWYWx1
ZSwgY29uc3QgSlNDOjpBcmdMaXN0JiBhcmd1bWVudHMpCit7CisgICAgVk0mIHZtID0gbGV4aWNh
bEdsb2JhbE9iamVjdC52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKyAgICBhdXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxsRGF0YSh2bSwganNGdW5jdGlv
bik7CisgICAgQVNTRVJUKGNhbGxEYXRhLnR5cGUgIT0gSlNDOjpDYWxsRGF0YTo6VHlwZTo6Tm9u
ZSk7CisgICAgYXV0byByZXN1bHQgPSBjYWxsKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBqc0Z1bmN0
aW9uLCBjYWxsRGF0YSwgdGhpc1ZhbHVlLCBhcmd1bWVudHMpOworICAgIHNjb3BlLmFzc2VydE5v
RXhjZXB0aW9uKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK30KKworc3RhdGljIGlubGluZSBi
b29sIGNoZWNrV3JpdGFibGVTdHJlYW0oSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwg
SlNXcml0YWJsZVN0cmVhbSogd3JpdGFibGVTdHJlYW0sIEpTQzo6SlNWYWx1ZSBmdW5jdGlvbikK
K3sKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gZ2xvYmFsT2JqZWN0OworCisgICAg
QVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50
czsKKyAgICBhcmd1bWVudHMuYXBwZW5kKHdyaXRhYmxlU3RyZWFtKTsKKyAgICBBU1NFUlQoIWFy
Z3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOworICAgIHJldHVybiBXcml0YWJsZVN0cmVhbUludGVy
bmFsOjpjYWxsRnVuY3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIEpTQzo6anNV
bmRlZmluZWQoKSwgYXJndW1lbnRzKS5pc1RydWUoKTsKK30KKwogRXhjZXB0aW9uT3I8UmVmPFdy
aXRhYmxlU3RyZWFtPj4gV3JpdGFibGVTdHJlYW06OmNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBSZWZQdHI8V3JpdGFibGVTdHJlYW1TaW5rPiYmIHNpbmsp
CiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwpAQCAtNjAsNCArODQs
MzAgQEAgRXhjZXB0aW9uT3I8UmVmPFdyaXRhYmxlU3RyZWFtPj4gV3JpdGFibGVTdHJlYW06OmNy
ZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICByZXR1cm4gY3JlYXRlKGdsb2JhbE9i
amVjdCwgKmpzQ2FzdDxKU1dyaXRhYmxlU3RyZWFtKj4ob2JqZWN0KSk7CiB9CiAKK3ZvaWQgV3Jp
dGFibGVTdHJlYW06OmxvY2soKQoreworICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAq
bV9nbG9iYWxPYmplY3Q7CisgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwor
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKworICAgIGF1dG8mIGNs
aWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsK
KworICAgIGF1dG8qIGNvbnN0cnVjdG9yID0gSlNDOjphc09iamVjdChtX2dsb2JhbE9iamVjdC0+
Z2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBjbGllbnREYXRhLmJ1aWx0aW5OYW1lcygpLldyaXRh
YmxlU3RyZWFtRGVmYXVsdFdyaXRlclByaXZhdGVOYW1lKCkpKTsKKworICAgIGF1dG8gY29uc3Ry
dWN0RGF0YSA9IGdldENvbnN0cnVjdERhdGEodm0sIGNvbnN0cnVjdG9yKTsKKyAgICBBU1NFUlQo
Y29uc3RydWN0RGF0YS50eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsKKworICAgIE1hcmtl
ZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQod3JpdGFibGVTdHJlYW0oKSk7
CisgICAgQVNTRVJUKCFhcmdzLmhhc092ZXJmbG93ZWQoKSk7CisKKyAgICBKU0M6OmNvbnN0cnVj
dCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3RydWN0b3IsIGNvbnN0cnVjdERhdGEsIGFyZ3Mp
OworICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7Cit9CisKK2Jvb2wgV3JpdGFibGVTdHJl
YW06OmlzTG9ja2VkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2hlY2tXcml0YWJsZVN0cmVhbSgq
Z2xvYmFsT2JqZWN0KCksIHdyaXRhYmxlU3RyZWFtKCksIGdsb2JhbE9iamVjdCgpLT5idWlsdGlu
SW50ZXJuYWxGdW5jdGlvbnMoKS53cml0YWJsZVN0cmVhbUludGVybmFscygpLm1faXNXcml0YWJs
ZVN0cmVhbUxvY2tlZEZ1bmN0aW9uLmdldCgpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKaW5kZXggMzVkYjgwNTg5YzAyZjA2ZjFkODQ0NDUx
OWIzNjNjMGRhZWVmYjRiOS4uNDZmZjg5ZDVjZGUwOGIwMDZmMjE1YjEzYjMwYmEyNGQ5ODUzNzIz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCkBAIC00
Miw2ICs0Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdyaXRhYmxl
U3RyZWFtPj4gY3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBSZWZQdHI8V3JpdGFibGVTdHJl
YW1TaW5rPiYmKTsKICAgICBKU1dyaXRhYmxlU3RyZWFtKiB3cml0YWJsZVN0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIGd1YXJkZWQoKTsgfQogCisgICAgdm9pZCBsb2NrKCk7CisgICAgYm9vbCBpc0xv
Y2tlZCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdyaXRhYmxlU3RyZWFtKEpTRE9NR2xvYmFs
T2JqZWN0JiwgSlNXcml0YWJsZVN0cmVhbSYpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzk4NzQ2NmJlMDQxZDNh
NjEzM2ZmNzVhNjc5YTQzYjZmZjRhOGRhYS4uOTJmZWM3NDE2NmJhOGE2M2RjZGNlNWE3ZTA2NGY3
N2ZhZTJkMzc0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTYzOCw2ICs2MzgsMTEgQEAgc3ViIEFkZFRvSW5jbHVkZXNG
b3JJRExUeXBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUtPm5hbWUg
ZXEgIldyaXRhYmxlU3RyZWFtIikgeworICAgICAgICBBZGRUb0luY2x1ZGVzKCJXcml0YWJsZVN0
cmVhbS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiKSB7CiAgICAg
ICAgIEFkZFRvSW5jbHVkZXMoIkpTWFBhdGhOU1Jlc29sdmVyLmgiLCAkaW5jbHVkZXNSZWYsICRj
b25kaXRpb25hbCk7CiAgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTRE9NQ29udmVydFhQYXRoTlNS
ZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQzZGZhZmNhMjU5N2I1NzRhMmJk
NWJhYWRmZTUzOWM3YTVkMDk5YjMuLmM3MTcxMDkyMGFkZGM3OTkyOGE4NTRkMWM3NzI3NzAxYWMy
YzllMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMS0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlYWRhYmxlL3dyaXRhYmxlIHRvIFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXJUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjcmVhdGVWaWRlb1Ry
YW5zZm9ybWVyKToKKwogMjAyMC0xMS0yNiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBVbnJldmlld2VkLiBSZW1vdmUgbGVmdG92ZXIgdGVzdCBjYXNl
IGFmdGVyIEludGVybmV0IEV4cGxvcmVyIHF1aXJrcyBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXJUZXN0cy5jcHAKaW5kZXggM2NkMTM0NDAxOWEzODk0MDAzOGI0OGQ2MzJiNDczMDFi
YjY3ZTlkNS4uYmQwZWYwODQyOWJkOGMxY2FjOTNhMzRmZWNmOGRlZTVhMDZiN2ZkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcApAQCAtNzAsMTEgKzcwLDExIEBAIFZlY3Rv
cjx1aW50OF90PiBnZXRSYXdLZXkoKQogICAgICk7CiB9CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIoYm9vbCBpc1Nl
bmRpbmcgPSB0cnVlKQorc3RhdGljIFJlZjxXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cj4gY3JlYXRlVmlkZW9UcmFuc2Zvcm1lcihib29sIGlzRW5jcnlwdGluZyA9IHRydWUpCiB7CiAg
ICAgYXV0byB0cmFuc2Zvcm1lciA9IFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpj
cmVhdGUoKTsKLSAgICB0cmFuc2Zvcm1lci0+c2V0SXNTZW5kaW5nKGlzU2VuZGluZyk7Ci0gICAg
dHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlvKGZhbHNlKTsKKyAgICB0cmFuc2Zvcm1l
ci0+c2V0SXNFbmNyeXB0aW5nKGlzRW5jcnlwdGluZyk7CisgICAgdHJhbnNmb3JtZXItPnNldEF1
dGhlbnRpY2F0aW9uU2l6ZSgxMCk7CiAKICAgICBhdXRvIGtleUlkID0gVmVjdG9yPHVpbnQ4X3Q+
Ojpmcm9tKDE5OCwgMzEsIDI1MSwgMTk3LCA0OCwgMTM5LCA5MSwgNTEpOwogICAgIHVpbnQ2NF90
IGtleUlkVmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAxOWQ5MDUwMjA1YTMwOTMzZGM0M2I1ZDE1OTI4NDk0
NjA4MzFiMjguLjcwMTQyNWFjMGIxMTQ1YTMwNWEyZTY1ZWU5MWMzNmEzYTIwMjg4NjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMS0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlYWRhYmxlL3dyaXRhYmxlIHRvIFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbDoKKwog
MjAyMC0xMS0yNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
VXBkYXRlIFdQVCBXZWJSVEMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAppbmRleCBlMDBlODZkZGRl
MjkzNWQxZjBmNWFjMDJkZDNhODdjNmEyZjc4ZGVlLi5mOWI3Nzk4ODU4NjdkNThmOTEwNDJkNDdh
ZTliNjVmODZjMDcyOWM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMv
c2ZyYW1lLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsOCBAQAogCiBQ
QVNTIENhbm5vdCByZXVzZSBhdHRhY2hlZCB0cmFuc2Zvcm1zCitQQVNTIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybSBleHBvc2VzIHJlYWRhYmxlIGFuZCB3cml0YWJsZQorUEFTUyByZWFkYWJsZS93cml0
YWJsZSBhcmUgbG9ja2VkIHdoZW4gYXR0YWNoZWQgYW5kIGFmdGVyIGJlaW5nIGF0dGFjaGVkCitQ
QVNTIFNGcmFtZSB3aXRoIGFycmF5IGJ1ZmZlciAtIGF1dGhlbnRpY2F0aW9uIHNpemUgMTAKK1BB
U1MgU0ZyYW1lIGRlY3J5cHRpb24gd2l0aCBhcnJheSBidWZmZXIgdGhhdCBpcyB0b28gc21hbGwK
K1BBU1MgU0ZyYW1lIHRyYW5zZm9ybSBnZXRzIGVycm9yZWQgaWYgdHJ5aW5nIHRvIHByb2Nlc3Mg
dW5leHBlY3RlZCB2YWx1ZSB0eXBlcwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
cnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbAppbmRleCBiYTA0ODgwZDE0NWFjZmI4MWQ3ZTk5YmYx
MTM4NGEwODUzNTEzM2M3Li5mYTM3ODE2MmJhMzExMzJkYTZjYzJhZjE4MGJjMjk2YjFiYTU1MTg3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9y
bS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3Jt
Lmh0bWwKQEAgLTI4LDYgKzI4LDExNCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
ICAgICBzZW5kZXIxLnRyYW5zZm9ybSA9IG51bGw7CiAgICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9
IG51bGw7CiB9LCAiQ2Fubm90IHJldXNlIGF0dGFjaGVkIHRyYW5zZm9ybXMiKTsKKwordGVzdCgo
KSA9PiB7CisgICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybSgpOworCisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlIGluc3Rh
bmNlb2YgUmVhZGFibGVTdHJlYW0pOworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS53
cml0YWJsZSBpbnN0YW5jZW9mIFdyaXRhYmxlU3RyZWFtKTsKK30sICJSVENSdHBTRnJhbWVUcmFu
c2Zvcm0gZXhwb3NlcyByZWFkYWJsZSBhbmQgd3JpdGFibGUiKTsKKworcHJvbWlzZV90ZXN0KGFz
eW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBjb25zdCBzZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCk7
CisgICAgY29uc3QgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
KCk7CisgICAgY29uc3Qgc2VuZGVyMSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpLnNlbmRl
cjsKKyAgICBjb25zdCBzZW5kZXIyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJykuc2VuZGVy
OworICAgIGNvbnN0IHJlY2VpdmVyMSA9IHBjLmdldFJlY2VpdmVycygpWzBdOworICAgIGNvbnN0
IHJlY2VpdmVyMiA9IHBjLmdldFJlY2VpdmVycygpWzFdOworCisgICAgYXNzZXJ0X2ZhbHNlKHNl
bmRlclRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJzZW5kZXIgcmVhZGFibGUgYmVmb3JlIik7
CisgICAgYXNzZXJ0X2ZhbHNlKHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJzZW5k
ZXIgd3JpdGFibGUgYmVmb3JlIik7CisgICAgYXNzZXJ0X2ZhbHNlKHJlY2VpdmVyVHJhbnNmb3Jt
LnJlYWRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHJlYWRhYmxlIGJlZm9yZSIpOworICAgIGFzc2Vy
dF9mYWxzZShyZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJyZWNlaXZlciB3cml0
YWJsZSBiZWZvcmUiKTsKKworICAgIHNlbmRlcjEudHJhbnNmb3JtID0gc2VuZGVyVHJhbnNmb3Jt
OworICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSByZWNlaXZlclRyYW5zZm9ybTsKKworICAgIGFz
c2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJzZW5kZXIgcmVhZGFi
bGUgZHVyaW5nIik7CisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlLmxv
Y2tlZCwgInNlbmRlciB3cml0YWJsZSBkdXJpbmciKTsKKyAgICBhc3NlcnRfdHJ1ZShyZWNlaXZl
clRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciByZWFkYWJsZSBkdXJpbmciKTsK
KyAgICBhc3NlcnRfdHJ1ZShyZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJyZWNl
aXZlciB3cml0YWJsZSBkdXJpbmciKTsKKworICAgIHNlbmRlcjEudHJhbnNmb3JtID0gbnVsbDsK
KyAgICByZWNlaXZlcjEudHJhbnNmb3JtID0gbnVsbDsKKworICAgIGFzc2VydF90cnVlKHNlbmRl
clRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJzZW5kZXIgcmVhZGFibGUgYWZ0ZXIiKTsKKyAg
ICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9ja2VkLCAic2VuZGVyIHdy
aXRhYmxlIGFmdGVyIik7CisgICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJUcmFuc2Zvcm0ucmVhZGFi
bGUubG9ja2VkLCAicmVjZWl2ZXIgcmVhZGFibGUgYWZ0ZXIiKTsKKyAgICBhc3NlcnRfdHJ1ZShy
ZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJyZWNlaXZlciB3cml0YWJsZSBhZnRl
ciIpOworfSwgInJlYWRhYmxlL3dyaXRhYmxlIGFyZSBsb2NrZWQgd2hlbiBhdHRhY2hlZCBhbmQg
YWZ0ZXIgYmVpbmcgYXR0YWNoZWQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7
CisgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5l
dyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwg
MjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIs
ICJkZXJpdmVLZXkiXSk7CisKKyAgICBjb25zdCBzZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6ICdlbmNyeXB0JywgYXV0aGVudGljYXRpb25TaXplOiAx
MCB9KTsKKyAgICBzZW5kZXJUcmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAg
Y29uc3QgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHsgcm9s
ZSA6ICdkZWNyeXB0JywgYXV0aGVudGljYXRpb25TaXplOiAxMCB9KTsKKyAgICByZWNlaXZlclRy
YW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICBjb25zdCB3cml0ZXIgPSBzZW5k
ZXJUcmFuc2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7CisgICAgY29uc3QgcmVhZGVyID0gcmVj
ZWl2ZXJUcmFuc2Zvcm0ucmVhZGFibGUuZ2V0UmVhZGVyKCk7CisKKyAgICBzZW5kZXJUcmFuc2Zv
cm0ucmVhZGFibGUucGlwZVRvKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlKTsKKworICAgIGNv
bnN0IHNlbnQgPSBuZXcgQXJyYXlCdWZmZXIoOCk7CisgICAgY29uc3QgdmlldyA9IG5ldyBJbnQ4
QXJyYXkoc2VudCk7CisgICAgZm9yIChsZXQgY3B0ciA9IDA7IGNwdHIgPCBzZW50LmJ5dGVMZW5n
dGg7ICsrY3B0cikKKyAgICAgICAgdmlld1tjcHRyXSA9IGNwdHI7CisKKyAgICB3cml0ZXIud3Jp
dGUoc2VudCk7CisgICAgY29uc3QgcmVjZWl2ZWQgPSBhd2FpdCByZWFkZXIucmVhZCgpOworCisg
ICAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlZC52YWx1ZS5ieXRlTGVuZ3RoLCA4KTsKKyAgICBjb25z
dCB2aWV3MiA9IG5ldyBJbnQ4QXJyYXkocmVjZWl2ZWQudmFsdWUpOworICAgIGZvciAobGV0IGNw
dHIgPSAwOyBjcHRyIDwgc2VudC5ieXRlTGVuZ3RoOyArK2NwdHIpCisgICAgICAgIGFzc2VydF9l
cXVhbHModmlldzJbY3B0cl0sIHZpZXdbY3B0cl0pOworfSwgIlNGcmFtZSB3aXRoIGFycmF5IGJ1
ZmZlciAtIGF1dGhlbnRpY2F0aW9uIHNpemUgMTAiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
InJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAy
MzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVy
aXZlQml0cyIsICJkZXJpdmVLZXkiXSk7CisKKyAgICBjb25zdCBzZW5kZXJUcmFuc2Zvcm0gPSBu
ZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6ICdlbmNyeXB0JywgYXV0aGVudGljYXRp
b25TaXplOiAxMCB9KTsKKyAgICBjb25zdCBzZW5kZXJXcml0ZXIgPSBzZW5kZXJUcmFuc2Zvcm0u
d3JpdGFibGUuZ2V0V3JpdGVyKCk7CisgICAgY29uc3Qgc2VuZGVyUmVhZGVyID0gc2VuZGVyVHJh
bnNmb3JtLnJlYWRhYmxlLmdldFJlYWRlcigpOworCisgICAgY29uc3QgcmVjZWl2ZXJUcmFuc2Zv
cm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHsgcm9sZSA6ICdkZWNyeXB0JywgYXV0aGVu
dGljYXRpb25TaXplOiAxMCB9KTsKKyAgICBjb25zdCByZWNlaXZlcldyaXRlciA9IHJlY2VpdmVy
VHJhbnNmb3JtLndyaXRhYmxlLmdldFdyaXRlcigpOworICAgIGNvbnN0IHJlY2VpdmVyUmVhZGVy
ID0gcmVjZWl2ZXJUcmFuc2Zvcm0ucmVhZGFibGUuZ2V0UmVhZGVyKCk7CisKKyAgICBzZW5kZXJU
cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNl
dEVuY3J5cHRpb25LZXkoa2V5KTsKKworICAgIGNvbnN0IGNodW5rID0gbmV3IEFycmF5QnVmZmVy
KDgpOworCisgICAgLy8gZGVjcnlwdGlvbiBzaG91bGQgZmFpbCwgbGVhZGluZyB0byBhbiBlbXB0
eSBhcnJheSBidWZmZXIuCisgICAgYXdhaXQgcmVjZWl2ZXJXcml0ZXIud3JpdGUoY2h1bmspOwor
ICAgIGxldCByZWNlaXZlZCA9IGF3YWl0IHJlY2VpdmVyUmVhZGVyLnJlYWQoKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHJlY2VpdmVkLnZhbHVlLmJ5dGVMZW5ndGgsIDApOworCisgICAgLy8gV2Ugd3Jp
dGUgYWdhaW4gYnV0IHRoaXMgdGltZSB3aXRoIGEgY2h1bmsgd2UgY2FuIGRlY3J5cHQuCisgICAg
YXdhaXQgc2VuZGVyV3JpdGVyLndyaXRlKGNodW5rKTsKKyAgICBjb25zdCBlbmNyeXB0ZWQgPSBh
d2FpdCBzZW5kZXJSZWFkZXIucmVhZCgpOworICAgIGF3YWl0IHJlY2VpdmVyV3JpdGVyLndyaXRl
KGVuY3J5cHRlZC52YWx1ZSk7CisgICAgcmVjZWl2ZWQgPSBhd2FpdCByZWNlaXZlclJlYWRlci5y
ZWFkKCk7CisgICAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlZC52YWx1ZS5ieXRlTGVuZ3RoLCA4KTsK
K30sICJTRnJhbWUgZGVjcnlwdGlvbiB3aXRoIGFycmF5IGJ1ZmZlciB0aGF0IGlzIHRvbyBzbWFs
bCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBh
d2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0Mywg
NzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkx
LCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKwor
ICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7
IHJvbGUgOiAnZGVjcnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAgfSk7CisgICAgY29uc3Qg
cmVjZWl2ZXJXcml0ZXIgPSByZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsK
KyAgICByZWNlaXZlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICAvLyBk
ZWNyeXB0aW9uIHNob3VsZCBmYWlsLCBsZWFkaW5nIHRvIGVycm9yaW5nIHRoZSB0cmFuc2Zvcm0u
CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5cGVFcnJvciwgcmVjZWl2ZXJX
cml0ZXIud3JpdGUoeyB9KSk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2pzKHRlc3QsIFR5
cGVFcnJvciwgcmVjZWl2ZXJXcml0ZXIuY2xvc2VkKTsKK30sICJTRnJhbWUgdHJhbnNmb3JtIGdl
dHMgZXJyb3JlZCBpZiB0cnlpbmcgdG8gcHJvY2VzcyB1bmV4cGVjdGVkIHZhbHVlIHR5cGVzIik7
CisKICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9ib2R5PgogPC9odG1sPgo=
</data>
<flag name="commit-queue"
          id="431946"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414934</attachid>
            <date>2020-11-27 03:03:59 -0800</date>
            <delta_ts>2020-12-01 00:58:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219298-20201127120356.patch</filename>
            <type>text/plain</type>
            <size>61974</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWZmZDE5MWQzZWNhYTQy
ZjE2Njk5MDZlYWU2YWJkM2ZkZDgwYWQ0Ni4uNmM1NTRkYmIyNTgwZmNhN2ZkNGJiNDcxNGFmNmMy
NmNlNjQ4NTUyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTExLTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbG9ja2lu
ZyBXcml0YWJsZVN0cmVhbSBhbmQgY2hlY2tpbmcgbG9ja2VkIHN0YXRlLgorICAgICAgICBBZGQg
cmVhZGFibGUvd3JpdGFibGUgZ2V0dGVycyBzbyB0aGF0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBj
YW4gYmUgdXNlZCBhcyBhIFRyYW5zZm9ybVN0cmVhbS4KKyAgICAgICAgTWFrZSBhIHJlZmFjdG9y
aW5nIHRvIGFsbG93IHJldXNlIG9mIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlIGFuZCBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsuCisKKyAgICAgICAgSW4gY2FzZSBvZiBlbmNyeXB0aW9uL2Rl
Y3J5cHRpb24gZXJyb3IsIHdlIGRvIG5vdCBlcnJvciB0aGUgdHJhbnNmb3JtIGFzIHRoaXMgaXMg
ZmluYWwuCisgICAgICAgIEluc3RlYWQsIHdlIG91dHB1dCBlbXB0eSBidWZmZXJzLgorICAgICAg
ICBJbiBjYXNlIG9mIHRyeWluZyB0byBlbmNyeXB0IHVuZXhwZWN0ZWQgb2JqZWN0cywgd2UgZXJy
b3IgdGhlIHRyYW5zZm9ybS4KKworICAgICAgICBNb3ZlIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZSB0byBiZSByZWYgY291bnRlZC4KKyAgICAgICAgVGhpcyBhbGxvd3MgdG8ga2VlcCBhIFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZSBmb3IgZWFjaCBSVENFbmNvZGVkRnJhbWUgZXZlbiB0aG91Z2gg
dGhlIHVuZGVybHlpbmcKKyAgICAgICAgd2VicnRjIGZyYW1lICh3aGljaCBpcyBhIHVuaXF1ZSBw
dHIpIGlzIGdpdmVuIGJhY2sgdG8gdGhlIHdlYnJ0YyBiYWNrZW5kIGFmdGVyIHByb2Nlc3Npbmcu
CisKKyAgICAgICAgQ292ZXJlZCBieSB1cGRhdGVkIHRlc3QuCisKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWU6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5j
b2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRW5jb2RlZEZyYW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENFbmNvZGVkRnJhbWU6
OnJ0Y0ZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRl
b0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENF
bmNvZGVkVmlkZW9GcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNv
ZGVkVmlkZW9GcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWU6
OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjppc0F0dGFjaGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybTo6aW5pdGlhbGl6ZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0
cFNGcmFtZVRyYW5zZm9ybTo6d2lsbENsZWFyQmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjp0
cmFuc2Zvcm1GcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06
OmNyZWF0ZVN0cmVhbXMpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
OjpyZWFkYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm06Ondy
aXRhYmxlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpjcmVhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNy
eXB0aW9uS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpk
ZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OmVuY3J5cHRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
Ojp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEF1dGhlbnRpY2F0aW9uU2l6ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNh
dGlvblNpemUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJh
bnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6
OnN0YXJ0U3RyZWFtcyk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtQmFja2VuZC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lLmg6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHA6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9j
ZXNzVHJhbnNmb3JtZWRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxl
U3RyZWFtU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2U6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3Ry
ZWFtU291cmNlOjplbnF1ZXVlKToKKyAgICAgICAgKiBNb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVT
dHJlYW1TaW5rLmg6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OlNp
bXBsZVdyaXRhYmxlU3RyZWFtU2luayk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OndyaXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVh
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbUludGVybmFsOjpjYWxsRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tXcml0YWJsZVN0cmVhbSk6CisgICAgICAg
IChXZWJDb3JlOjpXcml0YWJsZVN0cmVhbTo6bG9jayk6CisgICAgICAgIChXZWJDb3JlOjpXcml0
YWJsZVN0cmVhbTo6aXNMb2NrZWQgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dyaXRh
YmxlU3RyZWFtLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChBZGRUb0luY2x1ZGVzRm9ySURMVHlwZSk6CisKIDIwMjAtMTEtMjYgIExh
dXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEJ1aWxkIGZp
eC4gQWRkIGNhc3Qgd2hlbiB0YWtpbmcgY29uc3QgZGF0YSBvd25lcnNoaXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKaW5kZXggODg1Mjc3MjYzNzlmYmZiNmRhNzg0ODM3MWVjZmIxMzE4ZGI4ZWRiNC4u
YTNlYjI4MmU2MWVjNDEzNjVkMjhmOGE4MzY5NzQzNGM3MDliZTIxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9G
cmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENF
bmNvZGVkQXVkaW9GcmFtZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNv
ZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAg
IDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5o
CmluZGV4IDgyYjZmMDgyNzVlNjkzNTliNDdjMGYwNTE2YzMyY2VlZDYwNDAxNTUuLmJlNzc2YmQy
YjI0MmNkMDgyNjYzNDc0NmFjODUwYjQxMGNlMDM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgKQEAg
LTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRB
dWRpb0ZyYW1lIDogcHVibGljIFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxSVENFbmNvZGVkQXVkaW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZEF1
ZGlvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZEF1
ZGlvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0VuY29kZWRBdWRpb0ZyYW1lKFdURk1vdmUoZnJhbWUp
KSk7IH0KICAgICB+UlRDRW5jb2RlZEF1ZGlvRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1l
LmNwcAppbmRleCAwNzZhOTM5NTZhYmJiZTg0NjA0N2NjZTAxYWYxMmM1YzFjYjJkNTA5Li43MDIx
NTVmNWNlYjZmZTM0NGI0ODIyOWFlMzM4YzY1OGE2NTFjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCkBAIC0z
Myw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDRW5jb2RlZEZyYW1lOjpS
VENFbmNvZGVkRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFt
ZSkKK1JUQ0VuY29kZWRGcmFtZTo6UlRDRW5jb2RlZEZyYW1lKFJlZjxSVENSdHBUcmFuc2Zvcm1h
YmxlRnJhbWU+JiYgZnJhbWUpCiAgICAgOiBtX2ZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVk
RnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZy
YW1lLmgKaW5kZXggYWRiNDc0ZGI5MTMxNTA4ZGUzNWRkMGE3ZTBkMDFkNzRlYmE2YWY5Yi4uODcx
M2Y1YjhiM2Y3ZDhmODIxM2NiMDQ0ZmI1YjJmNjk3YzE3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5oCkBAIC00Mywx
MiArNDMsMTIgQEAgcHVibGljOgogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXREYXRhKEpTQzo6QXJyYXlCdWZmZXImKTsKIAotICAgIFVuaXF1
ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IHRha2VSVENGcmFtZSgpIHsgcmV0dXJuIFdU
Rk1vdmUobV9mcmFtZSk7IH0KKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIHJ0Y0ZyYW1l
KCkgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
UlRDRW5jb2RlZEZyYW1lKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpOwor
ICAgIGV4cGxpY2l0IFJUQ0VuY29kZWRGcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
PiYmKTsKIAotICAgIFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IG1fZnJhbWU7
CisgICAgUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKaW5kZXggY2FmNjNhMDljMmQ4
YTY5NWQ0Mzc2MmVmN2QzOTBjZmY5N2U2NjE0NS4uMWVkMTU1NjQ1MTA0MTBkNGU0Yzg4ODNhZDE0
YTNkMTExNzE0MzZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5jb2Rl
ZFZpZGVvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkK
K1JUQ0VuY29kZWRWaWRlb0ZyYW1lOjpSVENFbmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUo
ZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENFbmNvZGVkVmlkZW9GcmFtZS5oCmluZGV4IDM3NzA1YWM4NTZhMDI2Mjk3Zjgx
OTA3M2VhZjRjODMwZTM2MTlhNTUuLmQ1ZmExMjBiZTI0YWZmMWI3ZmY4NTRkNTUzMzRmMTBlYzQ4
ZjRkYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RW5jb2RlZFZpZGVvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRWaWRlb0ZyYW1lIDogcHVibGljIFJUQ0VuY29k
ZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkVmlkZW9GcmFtZT4g
Y3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZFZpZGVvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsg
fQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZFZpZGVvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0Vu
Y29kZWRWaWRlb0ZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZFZpZGVv
RnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShV
bmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENF
bmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCA1Yzg3
Y2Y1NjRhNTE1MzAxNDc5M2M0OGYyZjJkZTkyNzVjNzk3MmU4Li5lYzFkMzhlMzg5M2FhZTg0MDlm
MDI5MDg1MmYxMTJjN2U5NGVhNTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0yOSwx
NiArMjksMjcgQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkNyeXB0b0tleVJh
dy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKyNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIlJU
Q0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIu
aCIKICNpbmNsdWRlICJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNs
dWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgor
I2luY2x1ZGUgIldyaXRhYmxlU3RyZWFtLmgiCisjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5r
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENS
dHBTRnJhbWVUcmFuc2Zvcm0oKQotICAgIDogbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFu
c2Zvcm1lcjo6Y3JlYXRlKCkpCitSVENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRy
YW5zZm9ybShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMp
CisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1fdHJh
bnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpKQogeworICAgIG1fdHJh
bnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhvcHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlwdCk7
CisgICAgbV90cmFuc2Zvcm1lci0+c2V0QXV0aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0aGVu
dGljYXRpb25TaXplKTsKIH0KIAogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp+UlRDUnRwU0ZyYW1l
VHJhbnNmb3JtKCkKQEAgLTY3LDExICs3OCwyMyBAQCB1aW50NjRfdCBSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OmNvdW50ZXJGb3JUZXN0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV90cmFuc2Zvcm1l
ci0+Y291bnRlcigpOwogfQogCitib29sIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRhY2hl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faXNBdHRhY2hlZCB8fCAobV9yZWFkYWJsZSAmJiBt
X3JlYWRhYmxlLT5pc0xvY2tlZCgpKSB8fCAobV93cml0YWJsZSAmJiBtX3dyaXRhYmxlLT5pc0xv
Y2tlZCgpKTsKK30KKwogdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFu
c2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5kLCBTaWRlIHNpZGUpCiB7Cisg
ICAgQVNTRVJUKCFpc0F0dGFjaGVkKCkpOworCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKLSAg
ICBtX3RyYW5zZm9ybWVyLT5zZXRJc1NlbmRpbmcoc2lkZSA9PSBTaWRlOjpTZW5kZXIpOwotICAg
IG1fdHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlvKGJhY2tlbmQubWVkaWFUeXBlKCkg
PT0gUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbyk7CisgICAgaWYgKG1f
cmVhZGFibGUpCisgICAgICAgIG1fcmVhZGFibGUtPmxvY2soKTsKKyAgICBpZiAobV93cml0YWJs
ZSkKKyAgICAgICAgbV93cml0YWJsZS0+bG9jaygpOworCisgICAgbV90cmFuc2Zvcm1lci0+c2V0
SXNFbmNyeXB0aW5nKHNpZGUgPT0gU2lkZTo6U2VuZGVyKTsKKyAgICBtX3RyYW5zZm9ybWVyLT5z
ZXRBdXRoZW50aWNhdGlvblNpemUoYmFja2VuZC5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOjpNZWRpYVR5cGU6OkF1ZGlvID8gNCA6IDEwKTsKIAogICAgIGJhY2tlbmQuc2V0
VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soW3RyYW5zZm9ybWVyID0gbV90cmFuc2Zvcm1lciwg
YmFja2VuZCA9IG1ha2VSZWYoYmFja2VuZCldKGF1dG8mJiBmcmFtZSkgewogICAgICAgICBhdXRv
IGNodW5rID0gZnJhbWUtPmRhdGEoKTsKQEAgLTg0LDExICsxMDcsMTAgQEAgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNr
ZW5kJiBiYWNrZW4KIAogICAgICAgICBmcmFtZS0+c2V0RGF0YSh7IHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpIH0pOwogCi0gICAgICAgIGJh
Y2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFdURk1vdmUoZnJhbWUuZ2V0KCkpKTsKKyAg
ICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOwogICAg
IH0pOwogfQogCi0KIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFsaXplQmFja2Vu
ZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgaW5p
dGlhbGl6ZVRyYW5zZm9ybWVyKGJhY2tlbmQsIFNpZGU6OlJlY2VpdmVyKTsKQEAgLTEwMiw3ICsx
MjQsOTQgQEAgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9y
U2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGIKIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtOjp3aWxsQ2xlYXJCYWNrZW5kKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7
CiAgICAgYmFja2VuZC5jbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCk7Ci0gICAgbV9p
c0F0dGFjaGVkID0gZmFsc2U7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZyYW1lPgordm9pZCB0
cmFuc2Zvcm1GcmFtZShGcmFtZSYgZnJhbWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIGNodW5rID0gZnJhbWUucnRjRnJhbWUo
KS5kYXRhKCk7CisgICAgYXV0byByZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oY2h1bmsu
ZGF0YSwgY2h1bmsuc2l6ZSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpLCBXZWJSVEMsICJSVENSdHBTRnJhbWVUcmFuc2Zvcm0gZmFpbGVkIHRyYW5zZm9y
bWluZyBhIGZyYW1lIik7CisKKyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgdHJh
bnNmb3JtZWRDaHVuazsKKyAgICAvLyBJbiBjYXNlIG9mIGVycm9yLCB3ZSBqdXN0IHBhc3MgYWxv
bmcgdGhlIGZyYW1lIHdpdGggZW1wdHkgZGF0YS4KKyAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgdHJhbnNmb3JtZWRDaHVuayA9IHsgcmVzdWx0LnJldHVyblZhbHVlKCku
ZGF0YSgpLCByZXN1bHQucmV0dXJuVmFsdWUoKS5zaXplKCkgfTsKKworICAgIGZyYW1lLnJ0Y0Zy
YW1lKCkuc2V0RGF0YSh0cmFuc2Zvcm1lZENodW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pT
KCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4K
K3ZvaWQgdHJhbnNmb3JtRnJhbWUoSlNDOjpBcnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1l
ciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3Vs
dCA9IHRyYW5zZm9ybWVyLnRyYW5zZm9ybShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFs
dWUuZGF0YSgpKSwgdmFsdWUuYnl0ZUxlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihyZXN1bHQuaGFzRXhjZXB0aW9uKCksIFdlYlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBm
YWlsZWQgdHJhbnNmb3JtaW5nIGEgZnJhbWUiKTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0
Lmhhc0V4Y2VwdGlvbigpID8gU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCku
c2l6ZSgpKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxP
YmplY3QsIGJ1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lk
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xv
YmFsT2JqZWN0ID0gKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisK
KyAgICBtX3JlYWRhYmxlU3RyZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6
OmNyZWF0ZSgpOworICAgIGF1dG8gcmVhZGFibGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgbV9yZWFkYWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChy
ZWFkYWJsZS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0
YWJsZSA9IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbms6OmNyZWF0ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJs
ZVN0cmVhbVNvdXJjZSA9IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1
dG8gdmFsdWUpIC0+IEV4Y2VwdGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2Jq
ZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmpl
Y3QoKSk7CisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9i
amVjdC52bSgpKTsKKworICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExB
cnJheUJ1ZmZlciwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJm
YWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAg
ICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
RXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworCisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRv
IHRocm93IGFueSBleGNlcHRpb24gaW4gdGhlIHRyYW5zZm9ybSB0byBtYWtlIHN1cmUgd2UgZG8g
bm90IGVycm9yIHRoZSB0cmFuc2Zvcm0uCisgICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsm
XShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgdHJh
bnNmb3JtRnJhbWUoKnZhbHVlLCBnbG9iYWxPYmplY3QsIHRyYW5zZm9ybWVyLmdldCgpLCAqcmVh
ZGFibGVTdHJlYW1Tb3VyY2UpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRl
b0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xv
YmFsT2JqZWN0LCB0cmFuc2Zvcm1lci5nZXQoKSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAg
ICAgICAgfSwgWyZdKFJlZlB0cjxBcnJheUJ1ZmZlcj4mIHZhbHVlKSB7CisgICAgICAgICAgICB0
cmFuc2Zvcm1GcmFtZSgqdmFsdWUsIGdsb2JhbE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpy
ZWFkYWJsZVN0cmVhbVNvdXJjZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4geyB9Owor
ICAgIH0pKTsKKyAgICBpZiAod3JpdGFibGUuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcmVhZGFibGUgPSByZWFkYWJsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICBtX3dyaXRhYmxlID0gd3JpdGFibGUucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKG1f
aXNBdHRhY2hlZCkgeworICAgICAgICBtX3JlYWRhYmxlLT5sb2NrKCk7CisgICAgICAgIG1fd3Jp
dGFibGUtPmxvY2soKTsKKyAgICB9Cit9CisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0
cmVhbT4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6cmVhZGFibGUoKQoreworICAgIGF1dG8qIGNv
bnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICgh
bV9yZWFkYWJsZSkKKyAgICAgICAgY3JlYXRlU3RyZWFtcygpOworCisgICAgcmV0dXJuIG1fcmVh
ZGFibGUuY29weVJlZigpOworfQorCitFeGNlcHRpb25PcjxSZWZQdHI8V3JpdGFibGVTdHJlYW0+
PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OndyaXRhYmxlKCkKK3sKKyAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAoIW1fd3Jp
dGFibGUpCisgICAgICAgIGNyZWF0ZVN0cmVhbXMoKTsKKworICAgIHJldHVybiBtX3dyaXRhYmxl
LmNvcHlSZWYoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmgKaW5kZXggZDQ3ZGI5YjI5YzhhNmJkNTc4Y2UyMzFhYTMxYjU2OWEwOWFlODVjNy4uYWI0OGYy
ZDBjZWQ1ODJkMTU0MjZlYTdhN2I0MDc3ZWRiNDgwODUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsMjkgKzM1LDQ1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIENyeXB0b0tleTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFt
OworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVh
bTsKIAotY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRD
UnRwU0ZyYW1lVHJhbnNmb3JtPiB7CitjbGFzcyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gOiBwdWJs
aWMgUmVmQ291bnRlZDxSVENSdHBTRnJhbWVUcmFuc2Zvcm0+LCBwcml2YXRlIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0pOyB9CisgICAgZW51bSBjbGFzcyBSb2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAg
IHN0cnVjdCBPcHRpb25zIHsKKyAgICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9Owor
ICAgICAgICB1aW50NjRfdCBhdXRoZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgIH07CisKKyAg
ICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CiAgICAgflJUQ1J0
cFNGcmFtZVRyYW5zZm9ybSgpOwogCiAgICAgdm9pZCBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tl
eSYsIE9wdGlvbmFsPHVpbnQ2NF90PiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0g
ICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CisgICAg
Ym9vbCBpc0F0dGFjaGVkKCkgY29uc3Q7CiAgICAgdm9pZCBpbml0aWFsaXplQmFja2VuZEZvclJl
Y2VpdmVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIGluaXRpYWxpemVCYWNr
ZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIHdpbGxDbGVh
ckJhY2tlbmQoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dWludDY0X3QgY291bnRlckZvclRlc3RpbmcoKSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJl
ZlB0cjxSZWFkYWJsZVN0cmVhbT4+IHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PFdyaXRhYmxlU3RyZWFtPj4gd3JpdGFibGUoKTsKKwogcHJpdmF0ZToKLSAgICBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0oKTsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIE9wdGlvbnMpOwogCiAgICAgZW51bSBjbGFzcyBTaWRlIHsgU2VuZGVyLCBSZWNl
aXZlciB9OwogICAgIHZvaWQgaW5pdGlhbGl6ZVRyYW5zZm9ybWVyKFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQmLCBTaWRlKTsKKyAgICB2b2lkIGNyZWF0ZVN0cmVhbXMoKTsKIAogICAgIGJvb2wgbV9p
c0F0dGFjaGVkIHsgZmFsc2UgfTsKICAgICBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IG1f
dHJhbnNmb3JtZXI7CisgICAgUmVmUHRyPFJlYWRhYmxlU3RyZWFtPiBtX3JlYWRhYmxlOworICAg
IFJlZlB0cjxXcml0YWJsZVN0cmVhbT4gbV93cml0YWJsZTsKKyAgICBSZWZQdHI8U2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U+IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2U7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKaW5kZXggMjY0MjhkZDkyZjUx
NTlkM2U5MjJiNTEwZTRkZTA3NTY2N2E5MTJhZS4uYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2
N2EwM2NhNTk5YjIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbApAQCAtMjMsMTggKzIzLDMw
IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKK2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9s
ZSB7CisgICAgImVuY3J5cHQiLAorICAgICJkZWNyeXB0IgorfTsKKworZGljdGlvbmFyeSBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xl
IHJvbGUgPSAiZW5jcnlwdCI7CisgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUg
PSAxMDsKK307CisKIFsKICAgICBDb25kaXRpb25hbD1XRUJfUlRDLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9V2ViUlRDSW5zZXJ0YWJsZVN0cmVhbXMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9F
WFBPUlQsCiAgICAgRXhwb3NlZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSwKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTRnJh
bWVUcmFuc2Zvcm0gewotICAgIGNvbnN0cnVjdG9yKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIGNvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bU9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0RW5jcnlwdGlv
bktleShDcnlwdG9LZXkga2V5LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcga2V5SUQpOwog
ICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbWlzc2luZyBtZXRob2RzLgogICAgIC8vIFBy
b21pc2U8dW5kZWZpbmVkPiByYXRjaGV0RW5jcnlwdGlvbktleSgpOwogICAgIC8vIFByb21pc2U8
dW5kZWZpbmVkPiBzZXRTaWduaW5nS2V5KENyeXB0b0tleSBrZXkpOworCisgICAgW01heVRocm93
RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7Cisg
ICAgW01heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV3JpdGFibGVTdHJlYW0g
d3JpdGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRleCA5ODA4ZmQ5YWIy
N2JjZTEwZjdjMTY1ZTNkZjkyZGIxNTk1MzkyNzFhLi5jOTIzNmZlNjU0NDE3NGU0ZWZmZWZhZmNi
OTEwNmQ4YWJlNDRiOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcApAQCAtMTY3LDE0
ICsxNjcsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNl
dEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3QKICAgICBpZiAoa2V5SWQpCiAgICAg
ICAgIG1fa2V5SWQgPSAqa2V5SWQ7CiAKKyAgICB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsK
ICAgICBtX2hhc0tleSA9IHRydWU7CisKICAgICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25P
cjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUo
Y29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJ
WE1FOiBTdXBwb3J0IHNpZ25hdHVyZS4KLQogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9r
ZXlMb2NrKTsKIAogICAgIGF1dG8gaGVhZGVyID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRh
LCBmcmFtZVNpemUpOwpAQCAtMTkxLDYgKzE5MSw5IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50
OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIH0K
IAorICAgIGlmIChmcmFtZVNpemUgPCAoaGVhZGVyLT5zaXplICsgbV9hdXRoZW50aWNhdGlvblNp
emUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiQ2h1bmsgaXMgdG9v
IHNtYWxsIGZvciBhdXRoZW50aWNhdGlvbiBzaXplIiB9OworCiAgICAgLy8gQ29tcHV0ZSBzaWdu
YXR1cmUKICAgICBhdXRvKiB0cmFuc21pdHRlZFNpZ25hdHVyZSA9IGZyYW1lRGF0YSArIGZyYW1l
U2l6ZSAtIG1fYXV0aGVudGljYXRpb25TaXplOwogICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0
ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUoZnJhbWVEYXRhLCBmcmFtZVNpemUgIC0gbV9hdXRoZW50
aWNhdGlvblNpemUsIG1fYXV0aGVudGljYXRpb25LZXkpOwpAQCAtMjE0LDggKzIxNyw2IEBAIEV4
Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5
cHRGcmFtZShjb25zdCB1aW50OF90CiAKIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURh
dGEsIHNpemVfdCBmcmFtZVNpemUpCiB7Ci0gICAgLy8gRklYTUU6IFN1cHBvcnQgc2lnbmF0dXJl
LgotCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1heEhlYWRlclNpemUgPSAxNzsKIAogICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKQEAgLTI1OSw5ICsyNjAsOSBAQCBF
eGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNy
eXB0RnJhbWUoY29uc3QgdWludDhfdAogRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBzaXplKQogewogICAgIGlmICghbV9oYXNLZXkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJLZXkgaXMgbm90IGluaXRpYWxpemVkIl9zIH07CiAKLSAgICByZXR1cm4g
bV9pc1NlbmRpbmcgPyBlbmNyeXB0RnJhbWUoZGF0YSwgc2l6ZSkgOiBkZWNyeXB0RnJhbWUoZGF0
YSwgc2l6ZSk7CisgICAgcmV0dXJuIG1faXNFbmNyeXB0aW5nID8gZW5jcnlwdEZyYW1lKGRhdGEs
IHNpemUpIDogZGVjcnlwdEZyYW1lKGRhdGEsIHNpemUpOwogfQogCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQpAQCAtMjk0LDYgKzI5NSwxMCBAQCBWZWN0b3I8dWludDhfdD4gUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OmNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbgogewogICAg
IHJldHVybiB7IH07CiB9CisKK3ZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnVwZGF0ZUF1
dGhlbnRpY2F0aW9uU2l6ZSgpCit7Cit9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggYjMxMmI3
Y2EyMTRmZGE2MmY2ZTg5Y2YxMjA0YjU1OTAwYTMzMmZjMC4uYTRlMWFhMTc2ZTg2NmI0ZjE2MDZm
NjlmNjZjMjQ3NGE4MzQ5MTM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtNDAsOCAr
NDAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcj4gY3JlYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyKCk7CiAKLSAgICB2b2lkIHNldElzU2VuZGluZyhib29sKTsKLSAgICB2b2lk
IHNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wpOworICAgIHZvaWQgc2V0SXNFbmNyeXB0aW5nKGJv
b2wpOworICAgIHZvaWQgc2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90KTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiByYXdLZXksIE9wdGlvbmFsPHVpbnQ2NF90Pik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm0oY29uc3QgdWludDhf
dCosIHNpemVfdCk7CkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiBlbmNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAg
RXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBkZWNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwg
c2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGtleSk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJl
KGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAg
ICB2b2lkIHVwZGF0ZUF1dGhlbnRpY2F0aW9uU2l6ZSgpOwogCiAgICAgTG9jayBtX2tleUxvY2s7
CiAgICAgYm9vbCBtX2hhc0tleSB7IGZhbHNlIH07CkBAIC03MywyMCArNzQsMjAgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8dWludDhfdD4gbV9lbmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50
OF90PiBtX3NhbHRLZXk7CiAKLSAgICBib29sIG1faXNTZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faXNFbmNyeXB0aW5nIHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0
aW9uU2l6ZSB7IDEwIH07CiAgICAgdWludDY0X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRf
dCBtX2NvdW50ZXIgeyAwIH07CiB9OwogCi1pbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6c2V0SXNTZW5kaW5nKGJvb2wgaXNTZW5kaW5nKQoraW5saW5lIHZvaWQgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXI6OnNldElzRW5jcnlwdGluZyhib29sIGlzRW5jcnlwdGluZykKIHsKLSAg
ICBtX2lzU2VuZGluZyA9IGlzU2VuZGluZzsKKyAgICBtX2lzRW5jcnlwdGluZyA9IGlzRW5jcnlw
dGluZzsKIH0KIAotaW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzUHJv
Y2Vzc2luZ0F1ZGlvKGJvb2wgaXNQcm9jZXNzaW5nQXVkaW8pCitpbmxpbmUgdm9pZCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lcjo6c2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90IHNpemUpCiB7
Ci0gICAgbV9hdXRoZW50aWNhdGlvblNpemUgPSBpc1Byb2Nlc3NpbmdBdWRpbyA/IDQgOiAxMDsK
KyAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IHNpemU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmluZGV4IDRjM2Q0MjQ4
MDJlMTkzY2FkNzBkMjFiYzIxMzc5Zjg1MGZiMzU3NWMuLjU4MzM4MWZmMTViNmUwYjU2ZDgzMDRh
M2I4MzJiNWM0ZTA1OGExYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNw
cApAQCAtNjgsNiArNjgsMTIgQEAgVmVjdG9yPHVpbnQ4X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOjpjb21wdXRlRW5jcnlwdGVkRGF0YVNpZ25hdHVyZShjb25zdCB1aW4KICAgICByZXR1cm4g
cmVzdWx0OwogfQogCit2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50
aWNhdGlvblNpemUoKQoreworICAgIGlmIChtX2F1dGhlbnRpY2F0aW9uU2l6ZSA+IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIKQorICAgICAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IENDX1NIQTI1
Nl9ESUdFU1RfTEVOR1RIOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZDI3YzAz
YzliOGI4YzRhMDJiMDAxMWFiMDA5OGZkNzYwZmUzZmUwNC4uNGFiNTNlYWMyYWI1NmJiNTliZTY4
OGFmYzg4N2YwYTEwZTE2NDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTQw
LDYzICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUnRwUmVhZGFi
bGVTdHJlYW1Tb3VyY2UKLSAgICA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlPiB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KLQot
ICAgIHZvaWQgY2xvc2UoKSB7IGNvbnRyb2xsZXIoKS5jbG9zZSgpOyB9Ci0gICAgdm9pZCBlbnF1
ZXVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkgeyBjb250cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0K
LQotcHJpdmF0ZToKLSAgICBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsK
LQotICAgIC8vIFJlYWRhYmxlU3RyZWFtU291cmNlCi0gICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5h
bCB7IH0KLSAgICB2b2lkIHNldEluYWN0aXZlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1N0YXJ0
KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1B1bGwoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRvQ2Fu
Y2VsKCkgZmluYWwgeyB9Ci19OwotCi1jbGFzcyBSVENSdHBXcml0YWJsZVN0cmVhbVNpbmsgOiBw
dWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0
cFdyaXRhYmxlU3RyZWFtU2luaz4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoVW5pcXVlUmVmPFJUQ1J0
cFRyYW5zZm9ybWFibGVGcmFtZT4mJik+JiYgZW5xdWV1ZUZ1bmN0aW9uKSB7IHJldHVybiBhZG9w
dFJlZigqbmV3IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luayhXVEZNb3ZlKGVucXVldWVGdW5jdGlv
bikpKTsgfQotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2lu
ayhGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiYm
IGVucXVldWVGdW5jdGlvbikKLSAgICAgICAgOiBtX2VucXVldWVGdW5jdGlvbihXVEZNb3ZlKGVu
cXVldWVGdW5jdGlvbikpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQotICAgIHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0
ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0g
Y29udmVydDxJRExVbmlvbjxJRExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJ
bnRlcmZhY2U8UlRDRW5jb2RlZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0K
LSAgICAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0sIFJlamVjdEFzSGFuZGxl
ZDo6WWVzKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdURjo6
c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkg
ewotICAgICAgICAgICAgbV9lbnF1ZXVlRnVuY3Rpb24odmFsdWUtPnRha2VSVENGcmFtZSgpKTsK
LSAgICAgICAgfSwgWyZdKFJlZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0g
ICAgICAgICAgICBtX2VucXVldWVGdW5jdGlvbih2YWx1ZS0+dGFrZVJUQ0ZyYW1lKCkpOwotICAg
ICAgICB9KTsKLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklY
TUU6IERlY2lkZSB3aGV0aGVyIGNsZWFyaW5nIGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lk
IGNsb3NlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0K
LSAgICBGdW5jdGlvbjx2b2lkKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYp
PiBtX2VucXVldWVGdW5jdGlvbjsKLX07Ci0KIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVz
c2FnZVBvcnQoKTsKQEAgLTExOCw3ICs2MSw3IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIoKQogewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVT
dHJlYW1Tb3VyY2U+IFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRw
VHJhbnNmb3JtQmFja2VuZCYgYmFja2VuZCkKK1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNv
dXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kJiBiYWNrZW5kKQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2Fs
bGJhY2spOwogICAgIGlmICghY2FsbGJhY2spCkBAIC0xMzAsMTMgKzczLDI3IEBAIFJlZlB0cjxS
VENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0
U3RyZWFtcyhSVENSdHBUCiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3Vy
Y2UgPSBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFk
YWJsZVN0cmVhbVNvdXJjZSA9IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsK
ICAgICBhdXRvIHJlYWRhYmxlU3RyZWFtID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxP
YmplY3QsIHJlYWRhYmxlU3RyZWFtU291cmNlLmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwg
UlRDUnRwV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tl
bmQpXShhdXRvJiYgZnJhbWUpIHsKLSAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVk
RnJhbWUoV1RGTW92ZShmcmFtZS5nZXQoKSkpOworICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBX
cml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgU2ltcGxlV3JpdGFibGVTdHJlYW1T
aW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiBjb250ZXh0LCBh
dXRvIHZhbHVlKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CisgICAgICAgIGF1dG8mIGdsb2JhbE9i
amVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKKyAgICAgICAgYXV0byBmcmFt
ZSA9IGNvbnZlcnQ8SURMVW5pb248SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwg
SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUp
OworCisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisKKyAgICAgICAgYXV0byBydGNG
cmFtZSA9IFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJh
bWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1l
KCkpOworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUp
IHsKKyAgICAgICAgICAgIHJldHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGJhY2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKHJ0Y0ZyYW1l
LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9KSk7CiAgICAgaWYgKHdyaXRhYmxl
U3RyZWFtLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuaAppbmRleCAzMTVkNDBjZmMwZWQ4NTAwNzQ4YzBiZWZkNzI0MjdkYWJjZmM2
MGZiLi5kYjQ0MDhiNmFlMWVhYTI1Y2VjZDVhMjQwYmViMWFiYTdhYTMzM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3Jp
cHRUcmFuc2Zvcm1lci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ry
b25nOwogY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Y2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKLWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFt
U291cmNlOworY2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lcj4KQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSVENS
dHBTY3JpcHRUcmFuc2Zvcm1lcihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQ
b3J0PiYmKTsKIAotICAgIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRT
dHJlYW1zKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmKTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFi
bGVTdHJlYW1Tb3VyY2U+IHN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAK
ICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3RO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIjsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1C
YWNrZW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaAppbmRleCBhYTkyMmQzMjc5Mzc0NGFhOWNlODk5MzI2MTJmODZkY2I1NGM1
OWNhLi5jNTlhMzQxZDYyNTczNDYxODc5NDczOTU2NzE3MDYwNmE1Yjk1NDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaApAQCAtMzYsMTUgKzM2LDE1IEBAIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDUnRwVHJhbnNmb3JtQmFja2Vu
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UlRDUnRwVHJhbnNmb3JtQmFja2VuZCgpID0gZGVmYXVs
dDsKIAotICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChVbmlxdWVSZWY8UlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lPiYmKT47CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VHJhbnNmb3JtYWJsZUZyYW1lQ2FsbGJhY2soQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBjbGVhclRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUm
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSB7IEF1
ZGlvLCBWaWRlbyB9OwogICAgIHZpcnR1YWwgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0g
MDsKIAotICAgIGVudW0gY2xhc3MgU2lkZSB7IFNlbmRlciwgUmVjZWl2ZXIgfTsKKyAgICBlbnVt
IGNsYXNzIFNpZGUgeyBSZWNlaXZlciwgU2VuZGVyIH07CiAgICAgdmlydHVhbCBTaWRlIHNpZGUo
KSBjb25zdCA9IDA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAppbmRleCBkYjViMWYx
MWNmMTM4YmIwMzY4YmYxNzc0OGEzMTNjODI4M2IzMTc2Li40MGQwNzZhMGFmZWMwNWY4ZmVmNzYy
MjMxNzk3NDAzMTI2OGYwZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI2LDE2
ICsyNiwxNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWUgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9
IGRlZmF1bHQ7CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRh
dGE7Ci0gICAgICAgIHNpemVfdCBzaXplOworICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhIHsg
bnVsbHB0ciB9OworICAgICAgICBzaXplX3Qgc2l6ZSB7IDAgfTsKICAgICB9OwogICAgIHZpcnR1
YWwgRGF0YSBkYXRhKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhKERhdGEp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJh
bnNmb3JtQmFja2VuZC5jcHAKaW5kZXggOWFmNDM5ZGNmZThjMDcyN2E2MDIyNDhiMGM5ZTRmOTkz
NWNiNThhMS4uMDRmMDg5MWYyZGJjMTEwOTYwYWFhN2RmZjhhNTUzYWMxZjRlY2M5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFj
a2VuZC5jcHAKQEAgLTUyLDcgKzUyLDYgQEAgdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zv
cm1CYWNrZW5kOjpzZXRUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhDYWxsYmFjayYKICAgICBt
X3J0Y1NlbmRlci0+U2V0RW5jb2RlclRvUGFja2V0aXplckZyYW1lVHJhbnNmb3JtZXIodGhpcyk7
CiB9CiAKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9S
VEMpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQuY3BwCmluZGV4IDFlNTU5NTU1NDE4ZjgxN2RjYjhkNDBmZjlkM2Rm
N2I1MmJjNzNmZTguLjZjYWRiNDI0ZmQ2Y2U4NjliMmNkM2Y0NTdhN2U5YjZkMjkwODY0OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3Bw
CkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMp
CiAKICNpbmNsdWRlICJMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaCIKLSNpbmNsdWRl
IDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEgKzQ4
LDExIEBAIHZvaWQgTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6c2V0T3V0cHV0Q2FsbGJh
Y2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6CiAgICAgbV9vdXRwdXRDYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spOwogfQogCi12b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6
OnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmIGZyYW1l
KQordm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9jZXNzVHJhbnNmb3JtZWRG
cmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIGZyYW1lKQogewogICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9vdXRwdXRDYWxsYmFja0xvY2spOwogICAgIGlmIChtX291dHB1dENhbGxi
YWNrKQotICAgICAgICBtX291dHB1dENhbGxiYWNrLT5PblRyYW5zZm9ybWVkRnJhbWUoTGliV2Vi
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjp0b1JUQ0ZyYW1lKFdURk1vdmUoc3RhdGljX2Nhc3Q8
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lJj4oZnJhbWUpKSkpOworICAgICAgICBtX291
dHB1dENhbGxiYWNrLT5PblRyYW5zZm9ybWVkRnJhbWUoc3RhdGljX2Nhc3Q8TGliV2ViUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lJj4oZnJhbWUpLnRha2VSVENGcmFtZSgpKTsKIH0KIAogdm9pZCBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiBydGNGcmFtZSkKQEAgLTYxLDcgKzYw
LDcgQEAgdm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWIKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9pbnB1dENhbGxiYWNrTG9jayk7CiAgICAgICAgIGlmIChtX2lucHV0Q2Fs
bGJhY2spIHsKLSAgICAgICAgICAgIG1faW5wdXRDYWxsYmFjayhtYWtlVW5pcXVlUmVmPExpYldl
YlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4oV1RGTW92ZShydGNGcmFtZSkpKTsKKyAgICAgICAg
ICAgIG1faW5wdXRDYWxsYmFjayhMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmNyZWF0
ZShXVEZNb3ZlKHJ0Y0ZyYW1lKSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5o
CmluZGV4IDIxNThjNjRiYjYxMTQwYzRlMmNlYjQ3YTE3MDM0MDk1ZjZiNGU5OTAuLjdiYjA4NTVh
MzUzYmY4MDNjZWNiZDQ5NzM0ZTEwMjA5ZmE5ZmZjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmgKQEAgLTQ2LDEzICs0NiwxNSBAQCBwcm90
ZWN0ZWQ6CiAgICAgTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZChNZWRpYVR5cGUsIFNpZGUp
OwogICAgIHZvaWQgc2V0SW5wdXRDYWxsYmFjayhDYWxsYmFjayYmKTsKIAorcHJvdGVjdGVkOgor
ICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX21lZGlhVHlw
ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgc2V0T3V0cHV0Q2FsbGJhY2socnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtZWRGcmFtZUNhbGxiYWNrPiYmKTsKIAogICAgIC8vIFJU
Q1J0cFRyYW5zZm9ybUJhY2tlbmQKLSAgICB2b2lkIHByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJU
Q1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmKSBmaW5hbDsKKyAgICB2b2lkIHByb2Nlc3NUcmFuc2Zv
cm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2xl
YXJUcmFuc2Zvcm1hYmxlRnJhbWVDYWxsYmFjaygpIGZpbmFsOwotICAgIE1lZGlhVHlwZSBtZWRp
YVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX21lZGlhVHlwZTsgfQogICAgIFNpZGUgc2lk
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2lkZTsgfQogCiAgICAgLy8gd2VicnRjOjpGcmFt
ZVRyYW5zZm9ybWVySW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzA1ZGQ1NmM3NTM0OGFkNGJk
OWNiN2VmNTUwMzE2OTBiNTI4YjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJXZWJS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0Uo
TElCV0VCUlRDKQorCitBTExPV19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgorQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KKworI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvZnJhbWVfdHJh
bnNmb3JtZXJfaW50ZXJmYWNlLmg+CisKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VO
RAorQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfRU5ECisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxl
RnJhbWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNl
PiYmIGZyYW1lKQorICAgIDogbV9ydGNGcmFtZShXVEZNb3ZlKGZyYW1lKSkKK3sKK30KKworTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjp+TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lKCkKK3sKK30KKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1l
SW50ZXJmYWNlPiBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OnRha2VSVENGcmFtZSgp
Cit7CisgICAgcmV0dXJuIFdURk1vdmUobV9ydGNGcmFtZSk7Cit9CisKK1JUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZTo6RGF0YSBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmRhdGEoKSBj
b25zdAoreworICAgIGlmICghbV9ydGNGcmFtZSkKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwg
MCB9OworICAgIGF1dG8gZGF0YSA9IG1fcnRjRnJhbWUtPkdldERhdGEoKTsKKyAgICByZXR1cm4g
eyBkYXRhLmJlZ2luKCksIGRhdGEuc2l6ZSgpIH07Cit9CisKK3ZvaWQgTGliV2ViUlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lOjpzZXREYXRhKERhdGEgZGF0YSkKK3sKKyAgICBpZiAobV9ydGNGcmFt
ZSkKKyAgICAgICAgbV9ydGNGcmFtZS0+U2V0RGF0YSh7IGRhdGEuZGF0YSwgZGF0YS5zaXplIH0p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JU
QykgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
VHJhbnNmb3JtYWJsZUZyYW1lLmgKaW5kZXggNjI4NjMyYzZlMTdiMTFmZjc4Y2UyMzUxMTk3ZmZh
MGUzYTQ3ZjE0Zi4uODc5MGQ1M2YxNWYxN2IyMDkwOTQxNDBkMDNlZmM5YmZiOGQyMDhlNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgK
QEAgLTI3LDQwICsyNywzMSBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKK2NsYXNzIFRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZTsKK30KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUg
ZmluYWwgOiBwdWJsaWMgUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBMaWJXZWJSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50
ZXJmYWNlPiYmKTsKLSAgICB2aXJ0dWFsIH5MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUo
KSA9IGRlZmF1bHQ7CisgICAgc3RhdGljIFJlZjxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJh
bWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRl
cmZhY2U+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KKyAgICB+TGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lKCk7CiAKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJh
bnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiB0b1JUQ0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZSYmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxl
RnJhbWVJbnRlcmZhY2U+IHRha2VSVENGcmFtZSgpOwogCiBwcml2YXRlOgorICAgIGV4cGxpY2l0
IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpU
cmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+JiYpOworCiAgICAgRGF0YSBkYXRhKCkgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCBzZXREYXRhKERhdGEgZGF0YSkgZmluYWwgeyBtX3J0Y0ZyYW1lLT5T
ZXREYXRhKHsgZGF0YS5kYXRhLCBkYXRhLnNpemUgfSk7IH0KKyAgICB2b2lkIHNldERhdGEoRGF0
YSkgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJh
bWVJbnRlcmZhY2U+IG1fcnRjRnJhbWU7CiB9OwogCi1pbmxpbmUgTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmIGZyYW1lKQotICAgIDog
bV9ydGNGcmFtZShXVEZNb3ZlKGZyYW1lKSkKLXsKLX0KLQotaW5saW5lIHN0ZDo6dW5pcXVlX3B0
cjx3ZWJydGM6OlRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZT4gTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjp0b1JUQ0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYm
IGZyYW1lKQotewotICAgIHJldHVybiBXVEZNb3ZlKGZyYW1lLm1fcnRjRnJhbWUpOwotfQotCi1p
bmxpbmUgUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpEYXRhIExpYldlYlJUQ1J0cFRyYW5zZm9y
bWFibGVGcmFtZTo6ZGF0YSgpIGNvbnN0Ci17Ci0gICAgYXV0byBkYXRhID0gbV9ydGNGcmFtZS0+
R2V0RGF0YSgpOwotICAgIHJldHVybiB7IGRhdGEuYmVnaW4oKSwgZGF0YS5zaXplKCkgfTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFt
U291cmNlLmNwcAppbmRleCA0YzA0MTg2ZDlmN2I4MWMzMGIzNTc4YjI5YjI5YjBiODUyYjI4YWQ2
Li5hOWFhMzBmNjdjZDIwMjUyZmUwNzM3NTE2MTg1YWRjZTgyNTMxNmNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5j
cHAKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWFk
YWJsZVN0cmVhbVNvdXJjZS5oIgogCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6flJlYWRhYmxl
U3RyZWFtU291cmNlKCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuaAppbmRleCA5MWUwYzJjZmQ5OWExMzQw
YTMxZjM5NGY0OWNlZTRkYzE5NWUxOWI4Li5jOTk1OGFlNmIxNjgwNGViMzU3YjNlYzJhZWVmYWUy
ZDAyOTQ1NTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVh
ZGFibGVTdHJlYW1Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMv
UmVhZGFibGVTdHJlYW1Tb3VyY2UuaApAQCAtMjgsMTMgKzI4LDEzIEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0
ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Ci0KIGNsYXNzIFJl
YWRhYmxlU3RyZWFtU291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8UmVhZGFibGVTdHJlYW1Tb3Vy
Y2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbVNvdXJjZSgpOwpAQCAt
NjYsNCArNjYsMjQgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxSZWFkYWJsZVN0cmVhbURlZmF1
bHRDb250cm9sbGVyPiBtX2NvbnRyb2xsZXI7CiB9OwogCitjbGFzcyBTaW1wbGVSZWFkYWJsZVN0
cmVhbVNvdXJjZQorICAgIDogcHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgLCBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUmVmPFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlKTsgfQorCisgICAg
dm9pZCBjbG9zZSgpIHsgY29udHJvbGxlcigpLmNsb3NlKCk7IH0KKyAgICB2b2lkIGVucXVldWUo
SlNDOjpKU1ZhbHVlIHZhbHVlKSB7IGNvbnRyb2xsZXIoKS5lbnF1ZXVlKHZhbHVlKTsgfQorCitw
cml2YXRlOgorICAgIFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlKCkgPSBkZWZhdWx0OworCisg
ICAgLy8gUmVhZGFibGVTdHJlYW1Tb3VyY2UKKyAgICB2b2lkIHNldEFjdGl2ZSgpIGZpbmFsIHsg
fQorICAgIHZvaWQgc2V0SW5hY3RpdmUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRvU3RhcnQoKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGRvUHVsbCgpIGZpbmFsIHsgfQorICAgIHZvaWQgZG9DYW5jZWwo
KSBmaW5hbCB7IH0KK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaAppbmRleCAxYWZh
NTVkOTQ1YzVlNzM5NjA3ZTA1MGI0N2ExZWU5YWViNTJkNjNlLi4yY2FhODZjMzk1ZDNiYmMyMDRk
NjllOWJmNDQ4ZjQyNTY0OWI1N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0cmVhbXMvV3JpdGFibGVTdHJlYW1TaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdHJlYW1zL1dyaXRhYmxlU3RyZWFtU2luay5oCkBAIC00NSw0ICs0NSwyOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0cmluZyYmKSA9IDA7CiB9OwogCitjbGFzcyBTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmsgOiBwdWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBXcml0ZUNhbGxiYWNrID0gRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEpTQzo6SlNWYWx1ZSk+OworICAgIHN0YXRpYyBSZWY8
U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rPiBjcmVhdGUoV3JpdGVDYWxsYmFjayYmIHdyaXRlQ2Fs
bGJhY2spIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rKFdU
Rk1vdmUod3JpdGVDYWxsYmFjaykpKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNpbXBs
ZVdyaXRhYmxlU3RyZWFtU2luayhXcml0ZUNhbGxiYWNrJiYpOworCisgICAgdm9pZCB3cml0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJikgZmluYWw7CisgICAgdm9pZCBjbG9zZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgZXJy
b3IoU3RyaW5nJiYpIGZpbmFsIHsgfQorCisgICAgV3JpdGVDYWxsYmFjayBtX3dyaXRlQ2FsbGJh
Y2s7Cit9OworCitpbmxpbmUgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpTaW1wbGVXcml0YWJs
ZVN0cmVhbVNpbmsoV3JpdGVDYWxsYmFjayYmIHdyaXRlQ2FsbGJhY2spCisgICAgOiBtX3dyaXRl
Q2FsbGJhY2soV1RGTW92ZSh3cml0ZUNhbGxiYWNrKSkKK3sKK30KKworaW5saW5lIHZvaWQgU2lt
cGxlV3JpdGFibGVTdHJlYW1TaW5rOjp3cml0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBKU0M6OkpTVmFsdWUgdmFsdWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21p
c2UpCit7CisgICAgcHJvbWlzZS5zZXR0bGUobV93cml0ZUNhbGxiYWNrKGNvbnRleHQsIHZhbHVl
KSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNzI2Mjg5
MWVjYzYzMDM0N2RjODk1MGUxMzBiNGRkNWYxZTJjZjU1OS4uYjQzZTkwMzlkMjMzMjc4N2MxNDQy
MmNjZGNiYWExYTkyM2I1MGUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4Miw2ICsxODIsNyBAQCBN
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRv
ci5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVy
VHJhbnNmb3JtQmFja2VuZC5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcAorTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcAogTW9kdWxl
cy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1lbnQuY3BwCiBNb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNv
bnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOTFkNzRjNzQ1MjI1OTc5MDY3OTFhZDFlOGEyMTI4M2Q1NGM2MTE2
OC4uYzNkNzJmNDEyZTIzNWJjYjQ5YzM3NzY1M2IzZDA4YmZkNWU3YmU0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUzMiw2
ICs3NTMyLDcgQEAKIAkJNDEwQThFRjgyNEY4RjQ3QTAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3Ry
ZWFtRW5jb2Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RlclN0cmVhbUVuY29k
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGOTI0RjhGNDdCMDA0
RjkwNzAgLyogVGV4dEVuY29kZXJTdHJlYW1FbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRF
bmNvZGVyU3RyZWFtRW5jb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBC
N0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTBCQTEzMTI1NzBGRTU3MDAyRTJGOEEgLyog
TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHA7IHBhdGgg
PSBsaWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJU
Q1NvY2tldElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGli
V2ViUlRDU29ja2V0SWRlbnRpZmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1NvY2tl
dElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRjU2NTUyNEZD
RjcwNTAwQTJFNTBDIC8qIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTBGNTY1NzI0RkNGN0M3MDBBMkU1MEMgLyogUlRDSWNlQ2FuZGlk
YXRlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlQ2FuZGlkYXRlSW5pdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAyMiw3ICsxODAyMyw2IEBACiAJ
CQkJQTFDQzU2NEExRjQ2MTNCQjAwQTQ1NTVCIC8qIFBheW1lbnRSZXF1ZXN0ICovLAogCQkJCTFE
MDAyNjlBMjM3NEI5RjgwMENBNkNERiAvKiBQaWN0dXJlSW5QaWN0dXJlICovLAogCQkJCUE5RDI0
N0Y5MEQ3NTdFNDEwMEZERjk1OSAvKiBQbHVnaW5zICovLAotCQkJCTg5RjYwQjE3MTU3RjZBMDIw
MDc1RTE1NyAvKiBRdW90YSAqLywKIAkJCQlCQzk4NTQ0NjBDRDNEQTVGMDAwNjlCQzEgLyogUmFu
Z2VzICovLAogCQkJCUNEOEM2QzI0MjJGRERBNjQwMEE3MjBBQiAvKiBSZW1vdGVQbGF5YmFjayAq
LywKIAkJCQk1MTgyQzI0QzFGMzE0MjA5MDA1OUJBN0MgLyogU2VydmljZVdvcmtlcnMgKi8sCkBA
IC0xOTI3Miw2ICsxOTI3Miw3IEBACiAJCQkJNDE4MUM1QkUyNTUzRUI2RTAwQUVCMEZGIC8qIExp
YldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuaCAqLywKIAkJCQk0MTg2QkQ0RDIxNDBC
OUU4MDAwMTgyNkYgLyogTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCAqLywKIAkJ
CQk0MTg2QkQ0QjIxNDBBODA1MDAwMTgyNkYgLyogTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNr
ZW5kLmggKi8sCisJCQkJNDEwQkExMzEyNTcwRkU1NzAwMkUyRjhBIC8qIExpYldlYlJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZS5jcHAgKi8sCiAJCQkJNDE4MUM1Q0MyNTU1ODM2ODAwQUVCMEZGIC8q
IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oICovLAogCQkJCTQxODFDNUNFMjU1NTg5
NTUwMEFFQjBGRiAvKiBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCAqLywKIAkJCQk0
MTgxQzVDRjI1NTU4OTU2MDBBRUIwRkYgLyogTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5o
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJl
YW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uY3BwCmlu
ZGV4IDYyOTY5YmRlMTVmMzk3NjhhZDM0NmU3N2U4Y2NkNTM2MGI0ZjQ3NWIuLjM0ODdjZGFkMzkz
MzZkZThiYzRmNjQ2ZTdmZmZlMDUxM2M3MDYxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKQEAgLTM2LDYgKzM2LDMwIEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCituYW1lc3BhY2UgV3JpdGFibGVTdHJl
YW1JbnRlcm5hbCB7CitzdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBjYWxsRnVuY3Rpb24oSlND
OjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIGpzRnVu
Y3Rpb24sIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEpTQzo6QXJnTGlzdCYgYXJndW1l
bnRzKQoreworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgYXV0byBjYWxsRGF0YSA9IEpT
Qzo6Z2V0Q2FsbERhdGEodm0sIGpzRnVuY3Rpb24pOworICAgIEFTU0VSVChjYWxsRGF0YS50eXBl
ICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUpOworICAgIGF1dG8gcmVzdWx0ID0gY2FsbCgm
bGV4aWNhbEdsb2JhbE9iamVjdCwganNGdW5jdGlvbiwgY2FsbERhdGEsIHRoaXNWYWx1ZSwgYXJn
dW1lbnRzKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1dyaXRhYmxlU3RyZWFtKEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTV3JpdGFibGVTdHJlYW0qIHdyaXRhYmxlU3Ry
ZWFtLCBKU0M6OkpTVmFsdWUgZnVuY3Rpb24pCit7CisgICAgYXV0byYgbGV4aWNhbEdsb2JhbE9i
amVjdCA9IGdsb2JhbE9iamVjdDsKKworICAgIEFTU0VSVChmdW5jdGlvbik7CisgICAgSlNDOjpN
YXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1lbnRzLmFwcGVuZCh3cml0
YWJsZVN0cmVhbSk7CisgICAgQVNTRVJUKCFhcmd1bWVudHMuaGFzT3ZlcmZsb3dlZCgpKTsKKyAg
ICByZXR1cm4gV3JpdGFibGVTdHJlYW1JbnRlcm5hbDo6Y2FsbEZ1bmN0aW9uKGxleGljYWxHbG9i
YWxPYmplY3QsIGZ1bmN0aW9uLCBKU0M6OmpzVW5kZWZpbmVkKCksIGFyZ3VtZW50cykuaXNUcnVl
KCk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFt
OjpjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgUmVmUHRy
PFdyaXRhYmxlU3RyZWFtU2luaz4mJiBzaW5rKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3Qudm0oKTsKQEAgLTYwLDQgKzg0LDMwIEBAIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJs
ZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
CiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3QsICpqc0Nhc3Q8SlNXcml0YWJsZVN0cmVh
bSo+KG9iamVjdCkpOwogfQogCit2b2lkIFdyaXRhYmxlU3RyZWFtOjpsb2NrKCkKK3sKKyAgICBh
dXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsT2JqZWN0OworICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRD
SF9TQ09QRSh2bSk7CisKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1D
bGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisKKyAgICBhdXRvKiBjb25zdHJ1Y3RvciA9IEpT
Qzo6YXNPYmplY3QobV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY2xp
ZW50RGF0YS5idWlsdGluTmFtZXMoKS5Xcml0YWJsZVN0cmVhbURlZmF1bHRXcml0ZXJQcml2YXRl
TmFtZSgpKSk7CisKKyAgICBhdXRvIGNvbnN0cnVjdERhdGEgPSBnZXRDb25zdHJ1Y3REYXRhKHZt
LCBjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJUKGNvbnN0cnVjdERhdGEudHlwZSAhPSBDYWxsRGF0
YTo6VHlwZTo6Tm9uZSk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmdzOworICAgIGFy
Z3MuYXBwZW5kKHdyaXRhYmxlU3RyZWFtKCkpOworICAgIEFTU0VSVCghYXJncy5oYXNPdmVyZmxv
d2VkKCkpOworCisgICAgSlNDOjpjb25zdHJ1Y3QoJmxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0
cnVjdG9yLCBjb25zdHJ1Y3REYXRhLCBhcmdzKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlv
bigpOworfQorCitib29sIFdyaXRhYmxlU3RyZWFtOjppc0xvY2tlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGNoZWNrV3JpdGFibGVTdHJlYW0oKmdsb2JhbE9iamVjdCgpLCB3cml0YWJsZVN0cmVh
bSgpLCBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbkludGVybmFsRnVuY3Rpb25zKCkud3JpdGFibGVT
dHJlYW1JbnRlcm5hbHMoKS5tX2lzV3JpdGFibGVTdHJlYW1Mb2NrZWRGdW5jdGlvbi5nZXQoKSk7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxl
U3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5oCmlu
ZGV4IDM1ZGI4MDU4OWMwMmYwNmYxZDg0NDQ1MTliMzYzYzBkYWVlZmI0YjkuLjQ2ZmY4OWQ1Y2Rl
MDhiMDA2ZjIxNWIxM2IzMGJhMjRkOTg1MzcyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV3JpdGFibGVTdHJlYW0uaApAQCAtNDIsNiArNDIsOSBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IGNyZWF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJik7CiAgICAgSlNXcml0YWJsZVN0
cmVhbSogd3JpdGFibGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBndWFyZGVkKCk7IH0KIAorICAg
IHZvaWQgbG9jaygpOworICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICBXcml0YWJsZVN0cmVhbShKU0RPTUdsb2JhbE9iamVjdCYsIEpTV3JpdGFibGVTdHJlYW0mKTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IDc5ODc0NjZiZTA0MWQzYTYxMzNmZjc1YTY3OWE0M2I2ZmY0YThkYWEuLjky
ZmVjNzQxNjZiYThhNjNkY2RjZTVhN2UwNjRmNzdmYWUyZDM3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC02MzgsNiAr
NjM4LDExIEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJXcml0YWJsZVN0cmVhbSIpIHsKKyAgICAg
ICAgQWRkVG9JbmNsdWRlcygiV3JpdGFibGVTdHJlYW0uaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRp
dGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICgkdHlwZS0+bmFtZSBl
cSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU1hQYXRoTlNS
ZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0lu
Y2x1ZGVzKCJKU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIuaCIsICRpbmNsdWRlc1JlZiwgJGNv
bmRpdGlvbmFsKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBkM2RmYWZjYTI1OTdiNTc0YTJiZDViYWFkZmU1MzljN2E1ZDA5OWIzLi5jNzE3MTA5
MjBhZGRjNzk5MjhhODU0ZDFjNzcyNzcwMWFjMmM5ZTBjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMjcg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENSdHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Y3JlYXRlVmlkZW9UcmFuc2Zvcm1lcik6CisKIDIwMjAtMTEtMjYgIExh
dXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdl
ZC4gUmVtb3ZlIGxlZnRvdmVyIHRlc3QgY2FzZSBhZnRlciBJbnRlcm5ldCBFeHBsb3JlciBxdWly
a3MgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyVGVzdHMuY3BwCmluZGV4IDNjZDEz
NDQwMTlhMzg5NDAwMzhiNDhkNjMyYjQ3MzAxYmI2N2U5ZDUuLmJkMGVmMDg0MjliZDhjMWNhYzkz
YTM0ZmVjZjhkZWU1YTA2YjdmZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0cy5j
cHAKQEAgLTcwLDExICs3MCwxMSBAQCBWZWN0b3I8dWludDhfdD4gZ2V0UmF3S2V5KCkKICAgICAp
OwogfQogCi1zdGF0aWMgUmVmPFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVh
dGVWaWRlb1RyYW5zZm9ybWVyKGJvb2wgaXNTZW5kaW5nID0gdHJ1ZSkKK3N0YXRpYyBSZWY8V2Vi
Q29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIoYm9v
bCBpc0VuY3J5cHRpbmcgPSB0cnVlKQogewogICAgIGF1dG8gdHJhbnNmb3JtZXIgPSBXZWJDb3Jl
OjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCk7Ci0gICAgdHJhbnNmb3JtZXItPnNl
dElzU2VuZGluZyhpc1NlbmRpbmcpOwotICAgIHRyYW5zZm9ybWVyLT5zZXRJc1Byb2Nlc3NpbmdB
dWRpbyhmYWxzZSk7CisgICAgdHJhbnNmb3JtZXItPnNldElzRW5jcnlwdGluZyhpc0VuY3J5cHRp
bmcpOworICAgIHRyYW5zZm9ybWVyLT5zZXRBdXRoZW50aWNhdGlvblNpemUoMTApOwogCiAgICAg
YXV0byBrZXlJZCA9IFZlY3Rvcjx1aW50OF90Pjo6ZnJvbSgxOTgsIDMxLCAyNTEsIDE5NywgNDgs
IDEzOSwgOTEsIDUxKTsKICAgICB1aW50NjRfdCBrZXlJZFZhbHVlID0gMDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMTlk
OTA1MDIwNWEzMDkzM2RjNDNiNWQxNTkyODQ5NDYwODMxYjI4Li43MDE0MjVhYzBiMTE0NWEzMDVh
MmU2NWVlOTFjMzZhM2EyMDI4ODYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMjcg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENSdHBTRnJhbWVUcmFuc2Zvcm0KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTI5OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvd2VicnRj
L3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0
Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWw6CisKIDIwMjAtMTEtMjcgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXUFQgV2ViUlRDIHRlc3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1l
eHBlY3RlZC50eHQKaW5kZXggZTAwZTg2ZGRkZTI5MzVkMWYwZjVhYzAyZGQzYTg3YzZhMmY3OGRl
ZS4uZjliNzc5ODg1ODY3ZDU4ZjkxMDQyZDQ3YWU5YjY1Zjg2YzA3MjljNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDggQEAKIAogUEFTUyBDYW5ub3QgcmV1c2UgYXR0YWNoZWQgdHJh
bnNmb3JtcworUEFTUyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gZXhwb3NlcyByZWFkYWJsZSBhbmQg
d3JpdGFibGUKK1BBU1MgcmVhZGFibGUvd3JpdGFibGUgYXJlIGxvY2tlZCB3aGVuIGF0dGFjaGVk
IGFuZCBhZnRlciBiZWluZyBhdHRhY2hlZAorUEFTUyBTRnJhbWUgd2l0aCBhcnJheSBidWZmZXIg
LSBhdXRoZW50aWNhdGlvbiBzaXplIDEwCitQQVNTIFNGcmFtZSBkZWNyeXB0aW9uIHdpdGggYXJy
YXkgYnVmZmVyIHRoYXQgaXMgdG9vIHNtYWxsCitQQVNTIFNGcmFtZSB0cmFuc2Zvcm0gZ2V0cyBl
cnJvcmVkIGlmIHRyeWluZyB0byBwcm9jZXNzIHVuZXhwZWN0ZWQgdmFsdWUgdHlwZXMKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwKaW5k
ZXggYmEwNDg4MGQxNDVhY2ZiODFkN2U5OWJmMTEzODRhMDg1MzUxMzNjNy4uZmEzNzgxNjJiYTMx
MTMyZGE2Y2MyYWYxODBiYzI5NmIxYmE1NTE4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sCkBAIC0yOCw2ICsyOCwxMTQgQEAgcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgc2VuZGVyMS50cmFuc2Zvcm0gPSBudWxs
OwogICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSBudWxsOwogfSwgIkNhbm5vdCByZXVzZSBhdHRh
Y2hlZCB0cmFuc2Zvcm1zIik7CisKK3Rlc3QoKCkgPT4geworICAgIGNvbnN0IHNlbmRlclRyYW5z
Zm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKworICAgIGFzc2VydF90cnVlKHNl
bmRlclRyYW5zZm9ybS5yZWFkYWJsZSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKTsKKyAgICBh
c3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ud3JpdGFibGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0
cmVhbSk7Cit9LCAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIGV4cG9zZXMgcmVhZGFibGUgYW5kIHdy
aXRhYmxlIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IHBj
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0g
bmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgpOworICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3Jt
ID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgpOworICAgIGNvbnN0IHNlbmRlcjEgPSBwYy5h
ZGRUcmFuc2NlaXZlcignYXVkaW8nKS5zZW5kZXI7CisgICAgY29uc3Qgc2VuZGVyMiA9IHBjLmFk
ZFRyYW5zY2VpdmVyKCd2aWRlbycpLnNlbmRlcjsKKyAgICBjb25zdCByZWNlaXZlcjEgPSBwYy5n
ZXRSZWNlaXZlcnMoKVswXTsKKyAgICBjb25zdCByZWNlaXZlcjIgPSBwYy5nZXRSZWNlaXZlcnMo
KVsxXTsKKworICAgIGFzc2VydF9mYWxzZShzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2Vk
LCAic2VuZGVyIHJlYWRhYmxlIGJlZm9yZSIpOworICAgIGFzc2VydF9mYWxzZShzZW5kZXJUcmFu
c2Zvcm0ud3JpdGFibGUubG9ja2VkLCAic2VuZGVyIHdyaXRhYmxlIGJlZm9yZSIpOworICAgIGFz
c2VydF9mYWxzZShyZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciBy
ZWFkYWJsZSBiZWZvcmUiKTsKKyAgICBhc3NlcnRfZmFsc2UocmVjZWl2ZXJUcmFuc2Zvcm0ud3Jp
dGFibGUubG9ja2VkLCAicmVjZWl2ZXIgd3JpdGFibGUgYmVmb3JlIik7CisKKyAgICBzZW5kZXIx
LnRyYW5zZm9ybSA9IHNlbmRlclRyYW5zZm9ybTsKKyAgICByZWNlaXZlcjEudHJhbnNmb3JtID0g
cmVjZWl2ZXJUcmFuc2Zvcm07CisKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ucmVh
ZGFibGUubG9ja2VkLCAic2VuZGVyIHJlYWRhYmxlIGR1cmluZyIpOworICAgIGFzc2VydF90cnVl
KHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJzZW5kZXIgd3JpdGFibGUgZHVyaW5n
Iik7CisgICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAi
cmVjZWl2ZXIgcmVhZGFibGUgZHVyaW5nIik7CisgICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJUcmFu
c2Zvcm0ud3JpdGFibGUubG9ja2VkLCAicmVjZWl2ZXIgd3JpdGFibGUgZHVyaW5nIik7CisKKyAg
ICBzZW5kZXIxLnRyYW5zZm9ybSA9IG51bGw7CisgICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9IG51
bGw7CisKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUubG9ja2VkLCAi
c2VuZGVyIHJlYWRhYmxlIGFmdGVyIik7CisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3Jt
LndyaXRhYmxlLmxvY2tlZCwgInNlbmRlciB3cml0YWJsZSBhZnRlciIpOworICAgIGFzc2VydF90
cnVlKHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHJlYWRhYmxl
IGFmdGVyIik7CisgICAgYXNzZXJ0X3RydWUocmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUubG9j
a2VkLCAicmVjZWl2ZXIgd3JpdGFibGUgYWZ0ZXIiKTsKK30sICJyZWFkYWJsZS93cml0YWJsZSBh
cmUgbG9ja2VkIHdoZW4gYXR0YWNoZWQgYW5kIGFmdGVyIGJlaW5nIGF0dGFjaGVkIik7CisKK3By
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3YWl0IGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3NywgNDMsIDEw
LCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEsIDE3OF0pLCAi
SEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworCisgICAgY29uc3Qg
c2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJvbGUgOiAnZW5j
cnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAgfSk7CisgICAgc2VuZGVyVHJhbnNmb3JtLnNl
dEVuY3J5cHRpb25LZXkoa2V5KTsKKworICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJvbGUgOiAnZGVjcnlwdCcsIGF1dGhlbnRpY2F0aW9u
U2l6ZTogMTAgfSk7CisgICAgcmVjZWl2ZXJUcmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkp
OworCisgICAgY29uc3Qgd3JpdGVyID0gc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlLmdldFdyaXRl
cigpOworICAgIGNvbnN0IHJlYWRlciA9IHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmdldFJl
YWRlcigpOworCisgICAgc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLnBpcGVUbyhyZWNlaXZlclRy
YW5zZm9ybS53cml0YWJsZSk7CisKKyAgICBjb25zdCBzZW50ID0gbmV3IEFycmF5QnVmZmVyKDgp
OworICAgIGNvbnN0IHZpZXcgPSBuZXcgSW50OEFycmF5KHNlbnQpOworICAgIGZvciAobGV0IGNw
dHIgPSAwOyBjcHRyIDwgc2VudC5ieXRlTGVuZ3RoOyArK2NwdHIpCisgICAgICAgIHZpZXdbY3B0
cl0gPSBjcHRyOworCisgICAgd3JpdGVyLndyaXRlKHNlbnQpOworICAgIGNvbnN0IHJlY2VpdmVk
ID0gYXdhaXQgcmVhZGVyLnJlYWQoKTsKKworICAgIGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFs
dWUuYnl0ZUxlbmd0aCwgOCk7CisgICAgY29uc3QgdmlldzIgPSBuZXcgSW50OEFycmF5KHJlY2Vp
dmVkLnZhbHVlKTsKKyAgICBmb3IgKGxldCBjcHRyID0gMDsgY3B0ciA8IHNlbnQuYnl0ZUxlbmd0
aDsgKytjcHRyKQorICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZXcyW2NwdHJdLCB2aWV3W2NwdHJd
KTsKK30sICJTRnJhbWUgd2l0aCBhcnJheSBidWZmZXIgLSBhdXRoZW50aWNhdGlvbiBzaXplIDEw
Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGtleSA9IGF3
YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShbMTQzLCA3
NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2NSwgOTEs
IDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0pOworCisg
ICAgY29uc3Qgc2VuZGVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7IHJv
bGUgOiAnZW5jcnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAgfSk7CisgICAgY29uc3Qgc2Vu
ZGVyV3JpdGVyID0gc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlLmdldFdyaXRlcigpOworICAgIGNv
bnN0IHNlbmRlclJlYWRlciA9IHNlbmRlclRyYW5zZm9ybS5yZWFkYWJsZS5nZXRSZWFkZXIoKTsK
KworICAgIGNvbnN0IHJlY2VpdmVyVHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bSh7IHJvbGUgOiAnZGVjcnlwdCcsIGF1dGhlbnRpY2F0aW9uU2l6ZTogMTAgfSk7CisgICAgY29u
c3QgcmVjZWl2ZXJXcml0ZXIgPSByZWNlaXZlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIo
KTsKKyAgICBjb25zdCByZWNlaXZlclJlYWRlciA9IHJlY2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxl
LmdldFJlYWRlcigpOworCisgICAgc2VuZGVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5
KTsKKyAgICByZWNlaXZlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7CisKKyAgICBj
b25zdCBjaHVuayA9IG5ldyBBcnJheUJ1ZmZlcig4KTsKKworICAgIC8vIGRlY3J5cHRpb24gc2hv
dWxkIGZhaWwsIGxlYWRpbmcgdG8gYW4gZW1wdHkgYXJyYXkgYnVmZmVyLgorICAgIGF3YWl0IHJl
Y2VpdmVyV3JpdGVyLndyaXRlKGNodW5rKTsKKyAgICBsZXQgcmVjZWl2ZWQgPSBhd2FpdCByZWNl
aXZlclJlYWRlci5yZWFkKCk7CisgICAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlZC52YWx1ZS5ieXRl
TGVuZ3RoLCAwKTsKKworICAgIC8vIFdlIHdyaXRlIGFnYWluIGJ1dCB0aGlzIHRpbWUgd2l0aCBh
IGNodW5rIHdlIGNhbiBkZWNyeXB0LgorICAgIGF3YWl0IHNlbmRlcldyaXRlci53cml0ZShjaHVu
ayk7CisgICAgY29uc3QgZW5jcnlwdGVkID0gYXdhaXQgc2VuZGVyUmVhZGVyLnJlYWQoKTsKKyAg
ICBhd2FpdCByZWNlaXZlcldyaXRlci53cml0ZShlbmNyeXB0ZWQudmFsdWUpOworICAgIHJlY2Vp
dmVkID0gYXdhaXQgcmVjZWl2ZXJSZWFkZXIucmVhZCgpOworICAgIGFzc2VydF9lcXVhbHMocmVj
ZWl2ZWQudmFsdWUuYnl0ZUxlbmd0aCwgOCk7Cit9LCAiU0ZyYW1lIGRlY3J5cHRpb24gd2l0aCBh
cnJheSBidWZmZXIgdGhhdCBpcyB0b28gc21hbGwiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXko
InJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAy
MzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVy
aXZlQml0cyIsICJkZXJpdmVLZXkiXSk7CisKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9
IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNh
dGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHJlY2VpdmVyV3JpdGVyID0gcmVjZWl2ZXJUcmFu
c2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7CisgICAgcmVjZWl2ZXJUcmFuc2Zvcm0uc2V0RW5j
cnlwdGlvbktleShrZXkpOworCisgICAgLy8gZGVjcnlwdGlvbiBzaG91bGQgZmFpbCwgbGVhZGlu
ZyB0byBlcnJvcmluZyB0aGUgdHJhbnNmb3JtLgorICAgIGF3YWl0IHByb21pc2VfcmVqZWN0c19q
cyh0ZXN0LCBUeXBlRXJyb3IsIHJlY2VpdmVyV3JpdGVyLndyaXRlKHsgfSkpOworICAgIGF3YWl0
IHByb21pc2VfcmVqZWN0c19qcyh0ZXN0LCBUeXBlRXJyb3IsIHJlY2VpdmVyV3JpdGVyLmNsb3Nl
ZCk7Cit9LCAiU0ZyYW1lIHRyYW5zZm9ybSBnZXRzIGVycm9yZWQgaWYgdHJ5aW5nIHRvIHByb2Nl
c3MgdW5leHBlY3RlZCB2YWx1ZSB0eXBlcyIpOworCiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwv
Ym9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415109</attachid>
            <date>2020-12-01 00:58:41 -0800</date>
            <delta_ts>2020-12-01 01:43:25 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-219298-20201201095839.patch</filename>
            <type>text/plain</type>
            <size>61723</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY2NjgzMDI0N2JhNGRm
MTEzNTg0YjQwZjFjMDg3NDI4NDlmMGNlMy4uNjY4YjczNGZlNDQ4YzA3OTViZjEzM2MwOGYwZThl
OTg4NjAwMTY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVhZGFibGUvd3JpdGFibGUgdG8gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyOTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGxvY2tpbmcg
V3JpdGFibGVTdHJlYW0gYW5kIGNoZWNraW5nIGxvY2tlZCBzdGF0ZS4KKyAgICAgICAgQWRkIHJl
YWRhYmxlL3dyaXRhYmxlIGdldHRlcnMgc28gdGhhdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gY2Fu
IGJlIHVzZWQgYXMgYSBUcmFuc2Zvcm1TdHJlYW0uCisgICAgICAgIE1ha2UgYSByZWZhY3Rvcmlu
ZyB0byBhbGxvdyByZXVzZSBvZiBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZSBhbmQgU2ltcGxl
V3JpdGFibGVTdHJlYW1TaW5rLgorCisgICAgICAgIEluIGNhc2Ugb2YgZW5jcnlwdGlvbi9kZWNy
eXB0aW9uIGVycm9yLCB3ZSBkbyBub3QgZXJyb3IgdGhlIHRyYW5zZm9ybSBhcyB0aGlzIGlzIGZp
bmFsLgorICAgICAgICBJbnN0ZWFkLCB3ZSBvdXRwdXQgZW1wdHkgYnVmZmVycy4KKyAgICAgICAg
SW4gY2FzZSBvZiB0cnlpbmcgdG8gZW5jcnlwdCB1bmV4cGVjdGVkIG9iamVjdHMsIHdlIGVycm9y
IHRoZSB0cmFuc2Zvcm0uCisKKyAgICAgICAgTW92ZSBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUg
dG8gYmUgcmVmIGNvdW50ZWQuCisgICAgICAgIFRoaXMgYWxsb3dzIHRvIGtlZXAgYSBSVENSdHBU
cmFuc2Zvcm1hYmxlRnJhbWUgZm9yIGVhY2ggUlRDRW5jb2RlZEZyYW1lIGV2ZW4gdGhvdWdoIHRo
ZSB1bmRlcmx5aW5nCisgICAgICAgIHdlYnJ0YyBmcmFtZSAod2hpY2ggaXMgYSB1bmlxdWUgcHRy
KSBpcyBnaXZlbiBiYWNrIHRvIHRoZSB3ZWJydGMgYmFja2VuZCBhZnRlciBwcm9jZXNzaW5nLgor
CisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
VENFbmNvZGVkQXVkaW9GcmFtZTo6UlRDRW5jb2RlZEF1ZGlvRnJhbWUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ0VuY29kZWRBdWRpb0ZyYW1lOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29k
ZWRGcmFtZTo6UlRDRW5jb2RlZEZyYW1lKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0VuY29kZWRGcmFtZS5oOgorICAgICAgICAoV2ViQ29yZTo6UlRDRW5jb2RlZEZyYW1lOjpy
dGNGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlkZW9G
cmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5j
b2RlZFZpZGVvRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2Rl
ZFZpZGVvRnJhbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0VuY29kZWRWaWRlb0ZyYW1lOjpj
cmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6UlRDUnRw
U0ZyYW1lVHJhbnNmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9y
bTo6aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcik6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBT
RnJhbWVUcmFuc2Zvcm06OndpbGxDbGVhckJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6dHJh
bnNmb3JtRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpj
cmVhdGVTdHJlYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6
cmVhZGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp3cml0
YWJsZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm0uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6Y3JlYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGw6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0RW5jcnlw
dGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6ZGVj
cnlwdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpl
bmNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OnRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6
dXBkYXRlQXV0aGVudGljYXRpb25TaXplKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6c2V0SXNFbmNyeXB0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRBdXRoZW50aWNhdGlvblNpemUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJDb2NvYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dXBkYXRlQXV0aGVudGljYXRp
b25TaXplKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjpz
dGFydFN0cmVhbXMpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQuaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5z
Zm9ybWFibGVGcmFtZS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6cHJvY2Vz
c1RyYW5zZm9ybWVkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUnRwVHJhbnNm
b3JtQmFja2VuZDo6VHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmg6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNw
cDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmg6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1Jl
YWRhYmxlU3RyZWFtU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVSZWFkYWJsZVN0
cmVhbVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZVJlYWRhYmxlU3Ry
ZWFtU291cmNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVSZWFkYWJsZVN0cmVh
bVNvdXJjZTo6ZW5xdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxlU3Ry
ZWFtU2luay5oOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpTaW1w
bGVXcml0YWJsZVN0cmVhbVNpbmspOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlV3JpdGFibGVT
dHJlYW1TaW5rOjp3cml0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V3JpdGFibGVTdHJlYW1JbnRlcm5hbDo6Y2FsbEZ1bmN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrV3JpdGFibGVTdHJlYW0pOgorICAgICAgICAo
V2ViQ29yZTo6V3JpdGFibGVTdHJlYW06OmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6V3JpdGFi
bGVTdHJlYW06OmlzTG9ja2VkIGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xcml0YWJs
ZVN0cmVhbS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUpOgorCiAyMDIwLTExLTMwICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgZG9BWEF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZV0gbmVlZHMg
dG8gcnVuIG9uIHRoZSBtYWluIHRocmVhZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKaW5kZXggODg1
Mjc3MjYzNzlmYmZiNmRhNzg0ODM3MWVjZmIxMzE4ZGI4ZWRiNC4uYTNlYjI4MmU2MWVjNDEzNjVk
MjhmOGE4MzY5NzQzNGM3MDliZTIxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5jcHAKQEAgLTMwLDcg
KzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SVENFbmNvZGVkQXVkaW9GcmFtZTo6
UlRDRW5jb2RlZEF1ZGlvRnJhbWUoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4m
JiBmcmFtZSkKK1JUQ0VuY29kZWRBdWRpb0ZyYW1lOjpSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1l
KFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkQXVkaW9GcmFtZS5oCmluZGV4IDgyYjZmMDgyNzVl
NjkzNTliNDdjMGYwNTE2YzMyY2VlZDYwNDAxNTUuLmJlNzc2YmQyYjI0MmNkMDgyNjYzNDc0NmFj
ODUwYjQxMGNlMDM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJUQ0VuY29kZWRBdWRpb0ZyYW1lIDogcHVibGlj
IFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkQXVk
aW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJh
bWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUlRDRW5jb2RlZEF1ZGlvRnJhbWUoV1RGTW92ZShm
cmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+IGNyZWF0ZShS
ZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFJUQ0VuY29kZWRBdWRpb0ZyYW1lKFdURk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5j
b2RlZEF1ZGlvRnJhbWUoKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkQXVk
aW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBs
aWNpdCBSVENFbmNvZGVkQXVkaW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmNwcAppbmRleCAwNzZhOTM5
NTZhYmJiZTg0NjA0N2NjZTAxYWYxMmM1YzFjYjJkNTA5Li43MDIxNTVmNWNlYjZmZTM0NGI0ODIy
OWFlMzM4YzY1OGE2NTFjZDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotUlRDRW5jb2RlZEZyYW1lOjpSVENFbmNvZGVkRnJhbWUoVW5p
cXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRGcmFt
ZTo6UlRDRW5jb2RlZEZyYW1lKFJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUp
CiAgICAgOiBtX2ZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZEZyYW1lLmgKaW5kZXggYWRiNDc0
ZGI5MTMxNTA4ZGUzNWRkMGE3ZTBkMDFkNzRlYmE2YWY5Yi4uODcxM2Y1YjhiM2Y3ZDhmODIxM2Ni
MDQ0ZmI1YjJmNjk3YzE3MzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENFbmNvZGVkRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0VuY29kZWRGcmFtZS5oCkBAIC00MywxMiArNDMsMTIgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxKU0M6OkFycmF5QnVmZmVyPiBkYXRhKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXREYXRhKEpTQzo6QXJyYXlCdWZmZXImKTsKIAotICAgIFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWU+IHRha2VSVENGcmFtZSgpIHsgcmV0dXJuIFdURk1vdmUobV9mcmFtZSk7IH0K
KyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmIHJ0Y0ZyYW1lKCkgeyByZXR1cm4gbV9mcmFt
ZS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgUlRDRW5jb2RlZEZyYW1lKFVu
aXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpOworICAgIGV4cGxpY2l0IFJUQ0Vu
Y29kZWRGcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIAotICAgIFVuaXF1
ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IG1fZnJhbWU7CisgICAgUmVmPFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZT4gbV9mcmFtZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2Rl
ZFZpZGVvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENF
bmNvZGVkVmlkZW9GcmFtZS5jcHAKaW5kZXggY2FmNjNhMDljMmQ4YTY5NWQ0Mzc2MmVmN2QzOTBj
ZmY5N2U2NjE0NS4uMWVkMTU1NjQ1MTA0MTBkNGU0Yzg4ODNhZDE0YTNkMTExNzE0MzZlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlk
ZW9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENF
bmNvZGVkVmlkZW9GcmFtZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1SVENFbmNvZGVkVmlkZW9GcmFtZTo6UlRDRW5jb2RlZFZpZGVvRnJhbWUoVW5pcXVl
UmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZT4mJiBmcmFtZSkKK1JUQ0VuY29kZWRWaWRlb0Zy
YW1lOjpSVENFbmNvZGVkVmlkZW9GcmFtZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYm
IGZyYW1lKQogICAgIDogUlRDRW5jb2RlZEZyYW1lKFdURk1vdmUoZnJhbWUpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVkVmlk
ZW9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFbmNvZGVk
VmlkZW9GcmFtZS5oCmluZGV4IDM3NzA1YWM4NTZhMDI2Mjk3ZjgxOTA3M2VhZjRjODMwZTM2MTlh
NTUuLmQ1ZmExMjBiZTI0YWZmMWI3ZmY4NTRkNTUzMzRmMTBlYzQ4ZjRkYTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRW5jb2RlZFZpZGVvRnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0VuY29kZWRWaWRl
b0ZyYW1lLmgKQEAgLTMzLDExICszMywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJUQ0VuY29kZWRWaWRlb0ZyYW1lIDogcHVibGljIFJUQ0VuY29kZWRGcmFtZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxSVENFbmNvZGVkVmlkZW9GcmFtZT4gY3JlYXRlKFVuaXF1ZVJlZjxS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYgZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UlRDRW5jb2RlZFZpZGVvRnJhbWUoV1RGTW92ZShmcmFtZSkpKTsgfQorICAgIHN0YXRpYyBSZWY8
UlRDRW5jb2RlZFZpZGVvRnJhbWU+IGNyZWF0ZShSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
PiYmIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ0VuY29kZWRWaWRlb0ZyYW1lKFdU
Rk1vdmUoZnJhbWUpKSk7IH0KICAgICB+UlRDRW5jb2RlZFZpZGVvRnJhbWUoKTsKIAogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShVbmlxdWVSZWY8UlRDUnRwVHJh
bnNmb3JtYWJsZUZyYW1lPiYmKTsKKyAgICBleHBsaWNpdCBSVENFbmNvZGVkVmlkZW9GcmFtZShS
ZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCA1Yzg3Y2Y1NjRhNTE1MzAxNDc5M2M0
OGYyZjJkZTkyNzVjNzk3MmU4Li5lYzFkMzhlMzg5M2FhZTg0MDlmMDI5MDg1MmYxMTJjN2U5NGVh
NTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0yOSwxNiArMjksMjcgQEAKICNpZiBF
TkFCTEUoV0VCX1JUQykKIAogI2luY2x1ZGUgIkNyeXB0b0tleVJhdy5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydEJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIlJUQ0VuY29kZWRWaWRlb0ZyYW1l
LmgiCiAjaW5jbHVkZSAiUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaCIKICNpbmNsdWRlICJSVENS
dHBUcmFuc2Zvcm1CYWNrZW5kLmgiCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
LmgiCisjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNsdWRlICJSZWFkYWJsZVN0cmVh
bVNvdXJjZS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIldyaXRhYmxl
U3RyZWFtLmgiCisjaW5jbHVkZSAiV3JpdGFibGVTdHJlYW1TaW5rLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0o
KQotICAgIDogbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCkp
CitSVENSdHBTRnJhbWVUcmFuc2Zvcm06OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBPcHRpb25zIG9wdGlvbnMpCisgICAgOiBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKKyAgICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXI6OmNyZWF0ZSgpKQogeworICAgIG1fdHJhbnNmb3JtZXItPnNldElzRW5j
cnlwdGluZyhvcHRpb25zLnJvbGUgPT0gUm9sZTo6RW5jcnlwdCk7CisgICAgbV90cmFuc2Zvcm1l
ci0+c2V0QXV0aGVudGljYXRpb25TaXplKG9wdGlvbnMuYXV0aGVudGljYXRpb25TaXplKTsKIH0K
IAogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp+UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKCkKQEAgLTY3
LDExICs3OCwyMyBAQCB1aW50NjRfdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmNvdW50ZXJGb3JU
ZXN0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV90cmFuc2Zvcm1lci0+Y291bnRlcigpOwogfQog
Citib29sIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6aXNBdHRhY2hlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1faXNBdHRhY2hlZCB8fCAobV9yZWFkYWJsZSAmJiBtX3JlYWRhYmxlLT5pc0xvY2tl
ZCgpKSB8fCAobV93cml0YWJsZSAmJiBtX3dyaXRhYmxlLT5pc0xvY2tlZCgpKTsKK30KKwogdm9p
ZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kJiBiYWNrZW5kLCBTaWRlIHNpZGUpCiB7CisgICAgQVNTRVJUKCFpc0F0dGFj
aGVkKCkpOworCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKLSAgICBtX3RyYW5zZm9ybWVyLT5z
ZXRJc1NlbmRpbmcoc2lkZSA9PSBTaWRlOjpTZW5kZXIpOwotICAgIG1fdHJhbnNmb3JtZXItPnNl
dElzUHJvY2Vzc2luZ0F1ZGlvKGJhY2tlbmQubWVkaWFUeXBlKCkgPT0gUlRDUnRwVHJhbnNmb3Jt
QmFja2VuZDo6TWVkaWFUeXBlOjpBdWRpbyk7CisgICAgaWYgKG1fcmVhZGFibGUpCisgICAgICAg
IG1fcmVhZGFibGUtPmxvY2soKTsKKyAgICBpZiAobV93cml0YWJsZSkKKyAgICAgICAgbV93cml0
YWJsZS0+bG9jaygpOworCisgICAgbV90cmFuc2Zvcm1lci0+c2V0SXNFbmNyeXB0aW5nKHNpZGUg
PT0gU2lkZTo6U2VuZGVyKTsKKyAgICBtX3RyYW5zZm9ybWVyLT5zZXRBdXRoZW50aWNhdGlvblNp
emUoYmFja2VuZC5tZWRpYVR5cGUoKSA9PSBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpNZWRpYVR5
cGU6OkF1ZGlvID8gNCA6IDEwKTsKIAogICAgIGJhY2tlbmQuc2V0VHJhbnNmb3JtYWJsZUZyYW1l
Q2FsbGJhY2soW3RyYW5zZm9ybWVyID0gbV90cmFuc2Zvcm1lciwgYmFja2VuZCA9IG1ha2VSZWYo
YmFja2VuZCldKGF1dG8mJiBmcmFtZSkgewogICAgICAgICBhdXRvIGNodW5rID0gZnJhbWUtPmRh
dGEoKTsKQEAgLTg0LDExICsxMDcsMTAgQEAgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm06Omlu
aXRpYWxpemVUcmFuc2Zvcm1lcihSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW4KIAogICAg
ICAgICBmcmFtZS0+c2V0RGF0YSh7IHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0
LnJldHVyblZhbHVlKCkuc2l6ZSgpIH0pOwogCi0gICAgICAgIGJhY2tlbmQtPnByb2Nlc3NUcmFu
c2Zvcm1lZEZyYW1lKFdURk1vdmUoZnJhbWUuZ2V0KCkpKTsKKyAgICAgICAgYmFja2VuZC0+cHJv
Y2Vzc1RyYW5zZm9ybWVkRnJhbWUoZnJhbWUuZ2V0KCkpOwogICAgIH0pOwogfQogCi0KIHZvaWQg
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjppbml0aWFsaXplQmFja2VuZEZvclJlY2VpdmVyKFJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgaW5pdGlhbGl6ZVRyYW5zZm9ybWVy
KGJhY2tlbmQsIFNpZGU6OlJlY2VpdmVyKTsKQEAgLTEwMiw3ICsxMjQsOTQgQEAgdm9pZCBSVENS
dHBTRnJhbWVUcmFuc2Zvcm06OmluaXRpYWxpemVCYWNrZW5kRm9yU2VuZGVyKFJUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQmIGIKIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjp3aWxsQ2xlYXJCYWNr
ZW5kKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmIGJhY2tlbmQpCiB7CiAgICAgYmFja2VuZC5jbGVh
clRyYW5zZm9ybWFibGVGcmFtZUNhbGxiYWNrKCk7Ci0gICAgbV9pc0F0dGFjaGVkID0gZmFsc2U7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEZyYW1lPgordm9pZCB0cmFuc2Zvcm1GcmFtZShGcmFt
ZSYgZnJhbWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2UmIHNvdXJj
ZSkKK3sKKyAgICBhdXRvIGNodW5rID0gZnJhbWUucnRjRnJhbWUoKS5kYXRhKCk7CisgICAgYXV0
byByZXN1bHQgPSB0cmFuc2Zvcm1lci50cmFuc2Zvcm0oY2h1bmsuZGF0YSwgY2h1bmsuc2l6ZSk7
CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYocmVzdWx0Lmhhc0V4Y2VwdGlvbigpLCBXZWJSVEMs
ICJSVENSdHBTRnJhbWVUcmFuc2Zvcm0gZmFpbGVkIHRyYW5zZm9ybWluZyBhIGZyYW1lIik7CisK
KyAgICBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OkRhdGEgdHJhbnNmb3JtZWRDaHVuazsKKyAg
ICAvLyBJbiBjYXNlIG9mIGVycm9yLCB3ZSBqdXN0IHBhc3MgYWxvbmcgdGhlIGZyYW1lIHdpdGgg
ZW1wdHkgZGF0YS4KKyAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgdHJh
bnNmb3JtZWRDaHVuayA9IHsgcmVzdWx0LnJldHVyblZhbHVlKCkuZGF0YSgpLCByZXN1bHQucmV0
dXJuVmFsdWUoKS5zaXplKCkgfTsKKworICAgIGZyYW1lLnJ0Y0ZyYW1lKCkuc2V0RGF0YSh0cmFu
c2Zvcm1lZENodW5rKTsKKyAgICBzb3VyY2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZn
bG9iYWxPYmplY3QsIGZyYW1lKSk7Cit9CisKK3RlbXBsYXRlPD4KK3ZvaWQgdHJhbnNmb3JtRnJh
bWUoSlNDOjpBcnJheUJ1ZmZlciYgdmFsdWUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyJiB0cmFuc2Zvcm1lciwgU2ltcGxlUmVhZGFibGVT
dHJlYW1Tb3VyY2UmIHNvdXJjZSkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IHRyYW5zZm9ybWVyLnRy
YW5zZm9ybShzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4odmFsdWUuZGF0YSgpKSwgdmFsdWUu
Ynl0ZUxlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihyZXN1bHQuaGFzRXhjZXB0
aW9uKCksIFdlYlJUQywgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSBmYWlsZWQgdHJhbnNmb3JtaW5n
IGEgZnJhbWUiKTsKKworICAgIGF1dG8gYnVmZmVyID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8g
U2hhcmVkQnVmZmVyOjpjcmVhdGUoKSA6IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlc3VsdC5yZXR1
cm5WYWx1ZSgpLmRhdGEoKSwgcmVzdWx0LnJldHVyblZhbHVlKCkuc2l6ZSgpKTsKKyAgICBzb3Vy
Y2UuZW5xdWV1ZSh0b0pTKCZnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QsIGJ1ZmZlci0+dHJ5
Q3JlYXRlQXJyYXlCdWZmZXIoKS5nZXQoKSkpOworfQorCit2b2lkIFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybTo6Y3JlYXRlU3RyZWFtcygpCit7CisgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+Z2xvYmFsT2JqZWN0KCk7CisKKyAgICBtX3JlYWRhYmxlU3Ry
ZWFtU291cmNlID0gU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U6OmNyZWF0ZSgpOworICAgIGF1
dG8gcmVhZGFibGUgPSBSZWFkYWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgbV9yZWFk
YWJsZVN0cmVhbVNvdXJjZS5jb3B5UmVmKCkpOworICAgIGlmIChyZWFkYWJsZS5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byB3cml0YWJsZSA9IFdyaXRhYmxlU3Ry
ZWFtOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBTaW1wbGVXcml0YWJsZVN0cmVhbVNpbms6OmNyZWF0
ZShbdHJhbnNmb3JtZXIgPSBtX3RyYW5zZm9ybWVyLCByZWFkYWJsZVN0cmVhbVNvdXJjZSA9IG1f
cmVhZGFibGVTdHJlYW1Tb3VyY2VdKGF1dG8mIGNvbnRleHQsIGF1dG8gdmFsdWUpIC0+IEV4Y2Vw
dGlvbk9yPHZvaWQ+IHsKKyAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0
PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY29udGV4dC5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKKworICAg
ICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlciwgSURMSW50
ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0VuY29kZWRWaWRl
b0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworICAgICAgICBpZiAoc2NvcGUuZXhjZXB0
aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25F
cnJvciB9OworCisgICAgICAgIC8vIFdlIGRvIG5vdCB3YW50IHRvIHRocm93IGFueSBleGNlcHRp
b24gaW4gdGhlIHRyYW5zZm9ybSB0byBtYWtlIHN1cmUgd2UgZG8gbm90IGVycm9yIHRoZSB0cmFu
c2Zvcm0uCisgICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2Rl
ZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAgICAgICAgICAgdHJhbnNmb3JtRnJhbWUoKnZhbHVl
LCBnbG9iYWxPYmplY3QsIHRyYW5zZm9ybWVyLmdldCgpLCAqcmVhZGFibGVTdHJlYW1Tb3VyY2Up
OworICAgICAgICB9LCBbJl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsK
KyAgICAgICAgICAgIHRyYW5zZm9ybUZyYW1lKCp2YWx1ZSwgZ2xvYmFsT2JqZWN0LCB0cmFuc2Zv
cm1lci5nZXQoKSwgKnJlYWRhYmxlU3RyZWFtU291cmNlKTsKKyAgICAgICAgfSwgWyZdKFJlZlB0
cjxBcnJheUJ1ZmZlcj4mIHZhbHVlKSB7CisgICAgICAgICAgICB0cmFuc2Zvcm1GcmFtZSgqdmFs
dWUsIGdsb2JhbE9iamVjdCwgdHJhbnNmb3JtZXIuZ2V0KCksICpyZWFkYWJsZVN0cmVhbVNvdXJj
ZSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4geyB9OworICAgIH0pKTsKKyAgICBpZiAo
d3JpdGFibGUuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVhZGFi
bGUgPSByZWFkYWJsZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICBtX3dyaXRhYmxlID0gd3Jp
dGFibGUucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgaWYgKG1faXNBdHRhY2hlZCkgeworICAg
ICAgICBtX3JlYWRhYmxlLT5sb2NrKCk7CisgICAgICAgIG1fd3JpdGFibGUtPmxvY2soKTsKKyAg
ICB9Cit9CisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0cmVhbT4+IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybTo6cmVhZGFibGUoKQoreworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKKworICAgIGlmICghbV9yZWFkYWJsZSkKKyAgICAg
ICAgY3JlYXRlU3RyZWFtcygpOworCisgICAgcmV0dXJuIG1fcmVhZGFibGUuY29weVJlZigpOwor
fQorCitFeGNlcHRpb25PcjxSZWZQdHI8V3JpdGFibGVTdHJlYW0+PiBSVENSdHBTRnJhbWVUcmFu
c2Zvcm06OndyaXRhYmxlKCkKK3sKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yIH07CisKKyAgICBpZiAoIW1fd3JpdGFibGUpCisgICAgICAgIGNy
ZWF0ZVN0cmVhbXMoKTsKKworICAgIHJldHVybiBtX3dyaXRhYmxlLmNvcHlSZWYoKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKaW5kZXggZDQ3ZGI5YjI5
YzhhNmJkNTc4Y2UyMzFhYTMxYjU2OWEwOWFlODVjNy4uYWI0OGYyZDBjZWQ1ODJkMTU0MjZlYTdh
N2I0MDc3ZWRiNDgwODUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzQsMjkgKzM1LDQ1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENyeXB0b0tleTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOwogY2xhc3MgUlRDUnRw
VHJhbnNmb3JtQmFja2VuZDsKK2NsYXNzIFJlYWRhYmxlU3RyZWFtOworY2xhc3MgU2ltcGxlUmVh
ZGFibGVTdHJlYW1Tb3VyY2U7CitjbGFzcyBXcml0YWJsZVN0cmVhbTsKIAotY2xhc3MgUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
PiB7CitjbGFzcyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gOiBwdWJsaWMgUmVmQ291bnRlZDxSVENS
dHBTRnJhbWVUcmFuc2Zvcm0+LCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0pOyB9CisgICAgZW51
bSBjbGFzcyBSb2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAgIHN0cnVjdCBPcHRpb25zIHsK
KyAgICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9OworICAgICAgICB1aW50NjRfdCBh
dXRoZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CiAgICAgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybSgp
OwogCiAgICAgdm9pZCBzZXRFbmNyeXB0aW9uS2V5KENyeXB0b0tleSYsIE9wdGlvbmFsPHVpbnQ2
NF90PiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogCi0gICAgYm9vbCBpc0F0dGFjaGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CisgICAgYm9vbCBpc0F0dGFjaGVkKCkg
Y29uc3Q7CiAgICAgdm9pZCBpbml0aWFsaXplQmFja2VuZEZvclJlY2VpdmVyKFJUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIGluaXRpYWxpemVCYWNrZW5kRm9yU2VuZGVyKFJUQ1J0
cFRyYW5zZm9ybUJhY2tlbmQmKTsKICAgICB2b2lkIHdpbGxDbGVhckJhY2tlbmQoUlRDUnRwVHJh
bnNmb3JtQmFja2VuZCYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdWludDY0X3QgY291bnRlckZv
clRlc3RpbmcoKSBjb25zdDsKIAorICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxSZWFkYWJsZVN0cmVh
bT4+IHJlYWRhYmxlKCk7CisgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFdyaXRhYmxlU3RyZWFtPj4g
d3JpdGFibGUoKTsKKwogcHJpdmF0ZToKLSAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oKTsKKyAg
ICBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE9wdGlvbnMp
OwogCiAgICAgZW51bSBjbGFzcyBTaWRlIHsgU2VuZGVyLCBSZWNlaXZlciB9OwogICAgIHZvaWQg
aW5pdGlhbGl6ZVRyYW5zZm9ybWVyKFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQmLCBTaWRlKTsKKyAg
ICB2b2lkIGNyZWF0ZVN0cmVhbXMoKTsKIAogICAgIGJvb2wgbV9pc0F0dGFjaGVkIHsgZmFsc2Ug
fTsKICAgICBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IG1fdHJhbnNmb3JtZXI7CisgICAg
UmVmUHRyPFJlYWRhYmxlU3RyZWFtPiBtX3JlYWRhYmxlOworICAgIFJlZlB0cjxXcml0YWJsZVN0
cmVhbT4gbV93cml0YWJsZTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+
IG1fcmVhZGFibGVTdHJlYW1Tb3VyY2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFt
ZVRyYW5zZm9ybS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybS5pZGwKaW5kZXggMjY0MjhkZDkyZjUxNTlkM2U5MjJiNTEwZTRkZTA3
NTY2N2E5MTJhZS4uYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2N2EwM2NhNTk5YjIzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm0uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmlkbApAQCAtMjMsMTggKzIzLDMwIEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKK2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9sZSB7CisgICAgImVuY3J5cHQi
LAorICAgICJkZWNyeXB0IgorfTsKKworZGljdGlvbmFyeSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1P
cHRpb25zIHsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xlIHJvbGUgPSAiZW5jcnlwdCI7
CisgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUgPSAxMDsKK307CisKIFsKICAg
ICBDb25kaXRpb25hbD1XRUJfUlRDLAogICAgIEVuYWJsZWRCeVNldHRpbmc9V2ViUlRDSW5zZXJ0
YWJsZVN0cmVhbXMsCiAgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCiAgICAgRXhwb3Nl
ZD1XaW5kb3csCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBKU0dlbmVyYXRl
VG9OYXRpdmVPYmplY3QsCiBdIGludGVyZmFjZSBSVENSdHBTRnJhbWVUcmFuc2Zvcm0gewotICAg
IGNvbnN0cnVjdG9yKCk7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIGNv
bnN0cnVjdG9yKG9wdGlvbmFsIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybU9wdGlvbnMgb3B0aW9ucyk7
CiAKICAgICBQcm9taXNlPHVuZGVmaW5lZD4gc2V0RW5jcnlwdGlvbktleShDcnlwdG9LZXkga2V5
LCBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGxvbmcga2V5SUQpOwogICAgIC8vIEZJWE1FOiBBZGQg
c3VwcG9ydCBmb3IgbWlzc2luZyBtZXRob2RzLgogICAgIC8vIFByb21pc2U8dW5kZWZpbmVkPiBy
YXRjaGV0RW5jcnlwdGlvbktleSgpOwogICAgIC8vIFByb21pc2U8dW5kZWZpbmVkPiBzZXRTaWdu
aW5nS2V5KENyeXB0b0tleSBrZXkpOworCisgICAgW01heVRocm93RXhjZXB0aW9uXSByZWFkb25s
eSBhdHRyaWJ1dGUgUmVhZGFibGVTdHJlYW0gcmVhZGFibGU7CisgICAgW01heVRocm93RXhjZXB0
aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV3JpdGFibGVTdHJlYW0gd3JpdGFibGU7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRleCA5ODA4ZmQ5YWIyN2JjZTEwZjdjMTY1ZTNkZjky
ZGIxNTk1MzkyNzFhLi5jOTIzNmZlNjU0NDE3NGU0ZWZmZWZhZmNiOTEwNmQ4YWJlNDRiOTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcApAQCAtMTY3LDE0ICsxNjcsMTQgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldEVuY3J5cHRpb25LZXkoY29u
c3QgVmVjdG9yPHVpbnQ4X3QKICAgICBpZiAoa2V5SWQpCiAgICAgICAgIG1fa2V5SWQgPSAqa2V5
SWQ7CiAKKyAgICB1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKTsKICAgICBtX2hhc0tleSA9IHRy
dWU7CisKICAgICByZXR1cm4geyB9OwogfQogCiBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUoY29uc3QgdWludDhfdCogZnJh
bWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogewotICAgIC8vIEZJWE1FOiBTdXBwb3J0IHNpZ25h
dHVyZS4KLQogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKIAogICAgIGF1
dG8gaGVhZGVyID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRhLCBmcmFtZVNpemUpOwpAQCAt
MTkxLDYgKzE5MSw5IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90CiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogICAgIH0KIAorICAgIGlmIChmcmFtZVNp
emUgPCAoaGVhZGVyLT5zaXplICsgbV9hdXRoZW50aWNhdGlvblNpemUpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiQ2h1bmsgaXMgdG9vIHNtYWxsIGZvciBhdXRoZW50
aWNhdGlvbiBzaXplIiB9OworCiAgICAgLy8gQ29tcHV0ZSBzaWduYXR1cmUKICAgICBhdXRvKiB0
cmFuc21pdHRlZFNpZ25hdHVyZSA9IGZyYW1lRGF0YSArIGZyYW1lU2l6ZSAtIG1fYXV0aGVudGlj
YXRpb25TaXplOwogICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0ZUVuY3J5cHRlZERhdGFTaWdu
YXR1cmUoZnJhbWVEYXRhLCBmcmFtZVNpemUgIC0gbV9hdXRoZW50aWNhdGlvblNpemUsIG1fYXV0
aGVudGljYXRpb25LZXkpOwpAQCAtMjE0LDggKzIxNyw2IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1
aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50
OF90CiAKIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXI6OmVuY3J5cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNp
emUpCiB7Ci0gICAgLy8gRklYTUU6IFN1cHBvcnQgc2lnbmF0dXJlLgotCiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIE1heEhlYWRlclNpemUgPSAxNzsKIAogICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9rZXlMb2NrKTsKQEAgLTI1OSw5ICsyNjAsOSBAQCBFeGNlcHRpb25PcjxWZWN0b3I8
dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWlu
dDhfdAogRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQogewogICAgIGlm
ICghbV9oYXNLZXkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJLZXkg
aXMgbm90IGluaXRpYWxpemVkIl9zIH07CiAKLSAgICByZXR1cm4gbV9pc1NlbmRpbmcgPyBlbmNy
eXB0RnJhbWUoZGF0YSwgc2l6ZSkgOiBkZWNyeXB0RnJhbWUoZGF0YSwgc2l6ZSk7CisgICAgcmV0
dXJuIG1faXNFbmNyeXB0aW5nID8gZW5jcnlwdEZyYW1lKGRhdGEsIHNpemUpIDogZGVjcnlwdEZy
YW1lKGRhdGEsIHNpemUpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpAQCAtMjk0LDYgKzI5
NSwxMCBAQCBWZWN0b3I8dWludDhfdD4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNvbXB1dGVF
bmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbgogewogICAgIHJldHVybiB7IH07CiB9CisK
K3ZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnVwZGF0ZUF1dGhlbnRpY2F0aW9uU2l6ZSgp
Cit7Cit9CiAjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKaW5kZXggYjMxMmI3Y2EyMTRmZGE2MmY2ZTg5Y2Yx
MjA0YjU1OTAwYTMzMmZjMC4uYTRlMWFhMTc2ZTg2NmI0ZjE2MDZmNjlmNjZjMjQ3NGE4MzQ5MTM2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
RnJhbWVUcmFuc2Zvcm1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApAQCAtNDAsOCArNDAsOCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gY3Jl
YXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCk7CiAK
LSAgICB2b2lkIHNldElzU2VuZGluZyhib29sKTsKLSAgICB2b2lkIHNldElzUHJvY2Vzc2luZ0F1
ZGlvKGJvb2wpOworICAgIHZvaWQgc2V0SXNFbmNyeXB0aW5nKGJvb2wpOworICAgIHZvaWQgc2V0
QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldEVuY3J5cHRpb25LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByYXdL
ZXksIE9wdGlvbmFsPHVpbnQ2NF90Pik7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiB0cmFuc2Zvcm0oY29uc3QgdWludDhfdCosIHNpemVfdCk7CkBAIC02
Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBl
bmNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAgRXhjZXB0aW9uT3I8VmVjdG9y
PHVpbnQ4X3Q+PiBkZWNyeXB0RGF0YShjb25zdCB1aW50OF90Kiwgc2l6ZV90LCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIGl2LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSk7CiAgICAgVmVjdG9y
PHVpbnQ4X3Q+IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKGNvbnN0IHVpbnQ4X3QqLCBz
aXplX3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5KTsKKyAgICB2b2lkIHVwZGF0ZUF1dGhl
bnRpY2F0aW9uU2l6ZSgpOwogCiAgICAgTG9jayBtX2tleUxvY2s7CiAgICAgYm9vbCBtX2hhc0tl
eSB7IGZhbHNlIH07CkBAIC03MywyMCArNzQsMjAgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8dWlu
dDhfdD4gbV9lbmNyeXB0aW9uS2V5OwogICAgIFZlY3Rvcjx1aW50OF90PiBtX3NhbHRLZXk7CiAK
LSAgICBib29sIG1faXNTZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNFbmNyeXB0aW5n
IHsgZmFsc2UgfTsKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSB7IDEwIH07CiAg
ICAgdWludDY0X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRfdCBtX2NvdW50ZXIgeyAwIH07
CiB9OwogCi1pbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0SXNTZW5kaW5n
KGJvb2wgaXNTZW5kaW5nKQoraW5saW5lIHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNl
dElzRW5jcnlwdGluZyhib29sIGlzRW5jcnlwdGluZykKIHsKLSAgICBtX2lzU2VuZGluZyA9IGlz
U2VuZGluZzsKKyAgICBtX2lzRW5jcnlwdGluZyA9IGlzRW5jcnlwdGluZzsKIH0KIAotaW5saW5l
IHZvaWQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnNldElzUHJvY2Vzc2luZ0F1ZGlvKGJvb2wg
aXNQcm9jZXNzaW5nQXVkaW8pCitpbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6
c2V0QXV0aGVudGljYXRpb25TaXplKHVpbnQ2NF90IHNpemUpCiB7Ci0gICAgbV9hdXRoZW50aWNh
dGlvblNpemUgPSBpc1Byb2Nlc3NpbmdBdWRpbyA/IDQgOiAxMDsKKyAgICBtX2F1dGhlbnRpY2F0
aW9uU2l6ZSA9IHNpemU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmluZGV4IDRjM2Q0MjQ4MDJlMTkzY2FkNzBkMjFiYzIx
Mzc5Zjg1MGZiMzU3NWMuLjU4MzM4MWZmMTViNmUwYjU2ZDgzMDRhM2I4MzJiNWM0ZTA1OGExYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcApAQCAtNjgsNiArNjgsMTIg
QEAgVmVjdG9yPHVpbnQ4X3Q+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpjb21wdXRlRW5jcnlw
dGVkRGF0YVNpZ25hdHVyZShjb25zdCB1aW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lk
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp1cGRhdGVBdXRoZW50aWNhdGlvblNpemUoKQorewor
ICAgIGlmIChtX2F1dGhlbnRpY2F0aW9uU2l6ZSA+IENDX1NIQTI1Nl9ESUdFU1RfTEVOR1RIKQor
ICAgICAgICBtX2F1dGhlbnRpY2F0aW9uU2l6ZSA9IENDX1NIQTI1Nl9ESUdFU1RfTEVOR1RIOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2Ny
aXB0VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKaW5kZXggZDI3YzAzYzliOGI4YzRhMDJiMDAxMWFi
MDA5OGZkNzYwZmUzZmUwNC4uNGFiNTNlYWMyYWI1NmJiNTliZTY4OGFmYzg4N2YwYTEwZTE2NDAw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
Y3JpcHRUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAKQEAgLTQwLDYzICs0MCw2IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgUlRDUnRwUmVhZGFibGVTdHJlYW1Tb3VyY2UKLSAg
ICA6IHB1YmxpYyBSZWFkYWJsZVN0cmVhbVNvdXJjZQotICAgICwgcHVibGljIENhbk1ha2VXZWFr
UHRyPFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSk7IH0KLQotICAgIHZvaWQgY2xvc2UoKSB7
IGNvbnRyb2xsZXIoKS5jbG9zZSgpOyB9Ci0gICAgdm9pZCBlbnF1ZXVlKEpTQzo6SlNWYWx1ZSB2
YWx1ZSkgeyBjb250cm9sbGVyKCkuZW5xdWV1ZSh2YWx1ZSk7IH0KLQotcHJpdmF0ZToKLSAgICBS
VENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZSgpID0gZGVmYXVsdDsKLQotICAgIC8vIFJlYWRhYmxl
U3RyZWFtU291cmNlCi0gICAgdm9pZCBzZXRBY3RpdmUoKSBmaW5hbCB7IH0KLSAgICB2b2lkIHNl
dEluYWN0aXZlKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkb1N0YXJ0KCkgZmluYWwgeyB9Ci0gICAg
dm9pZCBkb1B1bGwoKSBmaW5hbCB7IH0KLSAgICB2b2lkIGRvQ2FuY2VsKCkgZmluYWwgeyB9Ci19
OwotCi1jbGFzcyBSVENSdHBXcml0YWJsZVN0cmVhbVNpbmsgOiBwdWJsaWMgV3JpdGFibGVTdHJl
YW1TaW5rIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2lu
az4gY3JlYXRlKEZ1bmN0aW9uPHZvaWQoVW5pcXVlUmVmPFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFt
ZT4mJik+JiYgZW5xdWV1ZUZ1bmN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFdy
aXRhYmxlU3RyZWFtU2luayhXVEZNb3ZlKGVucXVldWVGdW5jdGlvbikpKTsgfQotCi1wcml2YXRl
OgotICAgIGV4cGxpY2l0IFJUQ1J0cFdyaXRhYmxlU3RyZWFtU2luayhGdW5jdGlvbjx2b2lkKFVu
aXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiYmIGVucXVldWVGdW5jdGlvbikK
LSAgICAgICAgOiBtX2VucXVldWVGdW5jdGlvbihXVEZNb3ZlKGVucXVldWVGdW5jdGlvbikpCi0g
ICAgewotICAgIH0KLQotICAgIHZvaWQgd3JpdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgSlNDOjpKU1ZhbHVlIHZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKQotICAgIHsKLSAgICAgICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFs
T2JqZWN0KCk7Ci0KLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xv
YmFsT2JqZWN0LnZtKCkpOwotICAgICAgICBhdXRvIGZyYW1lID0gY29udmVydDxJRExVbmlvbjxJ
RExJbnRlcmZhY2U8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+LCBJRExJbnRlcmZhY2U8UlRDRW5jb2Rl
ZFZpZGVvRnJhbWU+Pj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7Ci0KLSAgICAgICAgaWYgKHNjb3Bl
LmV4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBF
eGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0sIFJlamVjdEFzSGFuZGxlZDo6WWVzKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIFdURjo6c3dpdGNoT24oZnJhbWUsIFsm
XShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgewotICAgICAgICAgICAgbV9l
bnF1ZXVlRnVuY3Rpb24odmFsdWUtPnRha2VSVENGcmFtZSgpKTsKLSAgICAgICAgfSwgWyZdKFJl
ZlB0cjxSVENFbmNvZGVkVmlkZW9GcmFtZT4mIHZhbHVlKSB7Ci0gICAgICAgICAgICBtX2VucXVl
dWVGdW5jdGlvbih2YWx1ZS0+dGFrZVJUQ0ZyYW1lKCkpOwotICAgICAgICB9KTsKLSAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKCk7Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IERlY2lkZSB3aGV0aGVy
IGNsZWFyaW5nIGFsbCBwZW5kaW5nIGZyYW1lcy4KLSAgICB2b2lkIGNsb3NlKCkgZmluYWwgeyB9
Ci0gICAgdm9pZCBlcnJvcihTdHJpbmcmJikgZmluYWwgeyB9Ci0KLSAgICBGdW5jdGlvbjx2b2lk
KFVuaXF1ZVJlZjxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+JiYpPiBtX2VucXVldWVGdW5jdGlv
bjsKLX07Ci0KIEV4Y2VwdGlvbk9yPFJlZjxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4+IFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCkKIHsKICAgICBhdXRvIHBvcnQgPSBkb3duY2FzdDxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCkudGFrZVBlbmRpbmdSVENUcmFuc2ZvbWVyTWVzc2FnZVBvcnQoKTsKQEAgLTEx
OCw3ICs2MSw3IEBAIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyOjp+UlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIoKQogewogfQogCi1SZWZQdHI8UlRDUnRwUmVhZGFibGVTdHJlYW1Tb3VyY2U+IFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyOjpzdGFydFN0cmVhbXMoUlRDUnRwVHJhbnNmb3JtQmFja2VuZCYg
YmFja2VuZCkKK1JlZlB0cjxTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZT4gUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJiBiYWNrZW5k
KQogewogICAgIGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spOwogICAgIGlmICgh
Y2FsbGJhY2spCkBAIC0xMzAsMTMgKzczLDI3IEBAIFJlZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVh
bVNvdXJjZT4gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXI6OnN0YXJ0U3RyZWFtcyhSVENSdHBUCiAg
ICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qudm0oKTsKICAgICBKU0M6OkpTTG9ja0hvbGRlciBs
b2NrKHZtKTsKIAotICAgIGF1dG8gcmVhZGFibGVTdHJlYW1Tb3VyY2UgPSBSVENSdHBSZWFkYWJs
ZVN0cmVhbVNvdXJjZTo6Y3JlYXRlKCk7CisgICAgYXV0byByZWFkYWJsZVN0cmVhbVNvdXJjZSA9
IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlOjpjcmVhdGUoKTsKICAgICBhdXRvIHJlYWRhYmxl
U3RyZWFtID0gUmVhZGFibGVTdHJlYW06OmNyZWF0ZShnbG9iYWxPYmplY3QsIHJlYWRhYmxlU3Ry
ZWFtU291cmNlLmNvcHlSZWYoKSk7CiAgICAgaWYgKHJlYWRhYmxlU3RyZWFtLmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gd3JpdGFibGVTdHJlYW0g
PSBXcml0YWJsZVN0cmVhbTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgUlRDUnRwV3JpdGFibGVTdHJl
YW1TaW5rOjpjcmVhdGUoW2JhY2tlbmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiYgZnJhbWUp
IHsKLSAgICAgICAgYmFja2VuZC0+cHJvY2Vzc1RyYW5zZm9ybWVkRnJhbWUoV1RGTW92ZShmcmFt
ZS5nZXQoKSkpOworICAgIGF1dG8gd3JpdGFibGVTdHJlYW0gPSBXcml0YWJsZVN0cmVhbTo6Y3Jl
YXRlKGdsb2JhbE9iamVjdCwgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpjcmVhdGUoW2JhY2tl
bmQgPSBtYWtlUmVmKGJhY2tlbmQpXShhdXRvJiBjb250ZXh0LCBhdXRvIHZhbHVlKSAtPiBFeGNl
cHRpb25Pcjx2b2lkPiB7CisgICAgICAgIGF1dG8mIGdsb2JhbE9iamVjdCA9ICpjb250ZXh0Lmds
b2JhbE9iamVjdCgpOworCisgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KGdsb2JhbE9iamVjdC52bSgpKTsKKyAgICAgICAgYXV0byBmcmFtZSA9IGNvbnZlcnQ8SURMVW5p
b248SURMSW50ZXJmYWNlPFJUQ0VuY29kZWRBdWRpb0ZyYW1lPiwgSURMSW50ZXJmYWNlPFJUQ0Vu
Y29kZWRWaWRlb0ZyYW1lPj4+KGdsb2JhbE9iamVjdCwgdmFsdWUpOworCisgICAgICAgIGlmIChz
Y29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGlu
Z0V4Y2VwdGlvbkVycm9yIH07CisKKyAgICAgICAgYXV0byBydGNGcmFtZSA9IFdURjo6c3dpdGNo
T24oZnJhbWUsIFsmXShSZWZQdHI8UlRDRW5jb2RlZEF1ZGlvRnJhbWU+JiB2YWx1ZSkgeworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VSZWYodmFsdWUtPnJ0Y0ZyYW1lKCkpOworICAgICAgICB9LCBb
Jl0oUmVmUHRyPFJUQ0VuY29kZWRWaWRlb0ZyYW1lPiYgdmFsdWUpIHsKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlUmVmKHZhbHVlLT5ydGNGcmFtZSgpKTsKKyAgICAgICAgfSk7CisgICAgICAgIGJh
Y2tlbmQtPnByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKHJ0Y0ZyYW1lLmdldCgpKTsKKyAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9KSk7CiAgICAgaWYgKHdyaXRhYmxlU3RyZWFtLmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRl
eCAzMTVkNDBjZmMwZWQ4NTAwNzQ4YzBiZWZkNzI0MjdkYWJjZmM2MGZiLi5kYjQ0MDhiNmFlMWVh
YTI1Y2VjZDVhMjQwYmViMWFiYTdhYTMzM2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBA
IC0zOCw3ICszOCw3IEBAIGNsYXNzIEpTQ2FsbGJhY2tEYXRhU3Ryb25nOwogY2xhc3MgTWVzc2Fn
ZVBvcnQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgUlRDUnRwVHJhbnNm
b3JtQmFja2VuZDsKLWNsYXNzIFJUQ1J0cFJlYWRhYmxlU3RyZWFtU291cmNlOworY2xhc3MgU2lt
cGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CiAKIGNsYXNzIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
CiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENSdHBTY3JpcHRUcmFuc2Zvcm1lcj4KQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBSVENSdHBTY3JpcHRUcmFuc2Zvcm1l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPE1lc3NhZ2VQb3J0PiYmKTsKIAotICAgIFJl
ZlB0cjxSVENSdHBSZWFkYWJsZVN0cmVhbVNvdXJjZT4gc3RhcnRTdHJlYW1zKFJUQ1J0cFRyYW5z
Zm9ybUJhY2tlbmQmKTsKKyAgICBSZWZQdHI8U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHN0
YXJ0U3RyZWFtcyhSVENSdHBUcmFuc2Zvcm1CYWNrZW5kJik7CiAKICAgICAvLyBBY3RpdmVET01P
YmplY3QKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgeyByZXR1
cm4gIlJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyIjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaAppbmRl
eCBhYTkyMmQzMjc5Mzc0NGFhOWNlODk5MzI2MTJmODZkY2I1NGM1OWNhLi5jNTlhMzQxZDYyNTcz
NDYxODc5NDczOTU2NzE3MDYwNmE1Yjk1NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaApAQCAt
MzYsMTUgKzM2LDE1IEBAIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQgOiBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8UlRDUnRwVHJhbnNmb3JtQmFja2VuCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB+UlRDUnRwVHJhbnNmb3JtQmFja2VuZCgpID0gZGVmYXVsdDsKIAotICAgIHVzaW5nIENh
bGxiYWNrID0gRnVuY3Rpb248dm9pZChVbmlxdWVSZWY8UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
PiYmKT47CisgICAgdXNpbmcgQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJlZjxSVENSdHBUcmFu
c2Zvcm1hYmxlRnJhbWU+JiYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VHJhbnNmb3JtYWJsZUZy
YW1lQ2FsbGJhY2soQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhclRyYW5z
Zm9ybWFibGVGcmFtZUNhbGxiYWNrKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVHJh
bnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUmJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUm
KSA9IDA7CiAKICAgICBlbnVtIGNsYXNzIE1lZGlhVHlwZSB7IEF1ZGlvLCBWaWRlbyB9OwogICAg
IHZpcnR1YWwgTWVkaWFUeXBlIG1lZGlhVHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIGVudW0gY2xh
c3MgU2lkZSB7IFNlbmRlciwgUmVjZWl2ZXIgfTsKKyAgICBlbnVtIGNsYXNzIFNpZGUgeyBSZWNl
aXZlciwgU2VuZGVyIH07CiAgICAgdmlydHVhbCBTaWRlIHNpZGUoKSBjb25zdCA9IDA7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaAppbmRleCBkYjViMWYxMWNmMTM4YmIwMzY4YmYxNzc0
OGEzMTNjODI4M2IzMTc2Li40MGQwNzZhMGFmZWMwNWY4ZmVmNzYyMjMxNzk3NDAzMTI2OGYwZTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI2LDE2ICsyNiwxNyBAQAogCiAjaWYg
RU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSB7Ci0gICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUgOiBw
dWJsaWMgUmVmQ291bnRlZDxSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5SVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9IGRlZmF1bHQ7CiAKICAgICBz
dHJ1Y3QgRGF0YSB7Ci0gICAgICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGE7Ci0gICAgICAgIHNpemVf
dCBzaXplOworICAgICAgICBjb25zdCB1aW50OF90KiBkYXRhIHsgbnVsbHB0ciB9OworICAgICAg
ICBzaXplX3Qgc2l6ZSB7IDAgfTsKICAgICB9OwogICAgIHZpcnR1YWwgRGF0YSBkYXRhKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREYXRhKERhdGEpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAK
aW5kZXggOWFmNDM5ZGNmZThjMDcyN2E2MDIyNDhiMGM5ZTRmOTkzNWNiNThhMS4uMDRmMDg5MWYy
ZGJjMTEwOTYwYWFhN2RmZjhhNTUzYWMxZjRlY2M5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNm
b3JtQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUnRwU2VuZGVyVHJhbnNmb3JtQmFja2VuZC5jcHAKQEAgLTUyLDcg
KzUyLDYgQEAgdm9pZCBMaWJXZWJSVENSdHBTZW5kZXJUcmFuc2Zvcm1CYWNrZW5kOjpzZXRUcmFu
c2Zvcm1hYmxlRnJhbWVDYWxsYmFjayhDYWxsYmFjayYKICAgICBtX3J0Y1NlbmRlci0+U2V0RW5j
b2RlclRvUGFja2V0aXplckZyYW1lVHJhbnNmb3JtZXIodGhpcyk7CiB9CiAKLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJS
VEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQu
Y3BwCmluZGV4IDFlNTU5NTU1NDE4ZjgxN2RjYjhkNDBmZjlkM2RmN2I1MmJjNzNmZTguLjZjYWRi
NDI0ZmQ2Y2U4NjliMmNkM2Y0NTdhN2U5YjZkMjkwODY0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9y
bUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuY3BwCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNsdWRlICJMaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuaCIKLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksMTEgKzQ4LDExIEBAIHZvaWQgTGliV2Vi
UlRDUnRwVHJhbnNmb3JtQmFja2VuZDo6c2V0T3V0cHV0Q2FsbGJhY2socnRjOjpzY29wZWRfcmVm
cHRyPHdlYnJ0Yzo6CiAgICAgbV9vdXRwdXRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwog
fQogCi12b2lkIExpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ6OnByb2Nlc3NUcmFuc2Zvcm1l
ZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmIGZyYW1lKQordm9pZCBMaWJXZWJSVENS
dHBUcmFuc2Zvcm1CYWNrZW5kOjpwcm9jZXNzVHJhbnNmb3JtZWRGcmFtZShSVENSdHBUcmFuc2Zv
cm1hYmxlRnJhbWUmIGZyYW1lKQogewogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9vdXRw
dXRDYWxsYmFja0xvY2spOwogICAgIGlmIChtX291dHB1dENhbGxiYWNrKQotICAgICAgICBtX291
dHB1dENhbGxiYWNrLT5PblRyYW5zZm9ybWVkRnJhbWUoTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJs
ZUZyYW1lOjp0b1JUQ0ZyYW1lKFdURk1vdmUoc3RhdGljX2Nhc3Q8TGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lJj4oZnJhbWUpKSkpOworICAgICAgICBtX291dHB1dENhbGxiYWNrLT5PblRy
YW5zZm9ybWVkRnJhbWUoc3RhdGljX2Nhc3Q8TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
Jj4oZnJhbWUpLnRha2VSVENGcmFtZSgpKTsKIH0KIAogdm9pZCBMaWJXZWJSVENSdHBUcmFuc2Zv
cm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJs
ZUZyYW1lSW50ZXJmYWNlPiBydGNGcmFtZSkKQEAgLTYxLDcgKzYwLDcgQEAgdm9pZCBMaWJXZWJS
VENSdHBUcmFuc2Zvcm1CYWNrZW5kOjpUcmFuc2Zvcm0oc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6
VHJhbnNmb3JtYWIKICAgICB7CiAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9pbnB1
dENhbGxiYWNrTG9jayk7CiAgICAgICAgIGlmIChtX2lucHV0Q2FsbGJhY2spIHsKLSAgICAgICAg
ICAgIG1faW5wdXRDYWxsYmFjayhtYWtlVW5pcXVlUmVmPExpYldlYlJUQ1J0cFRyYW5zZm9ybWFi
bGVGcmFtZT4oV1RGTW92ZShydGNGcmFtZSkpKTsKKyAgICAgICAgICAgIG1faW5wdXRDYWxsYmFj
ayhMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmNyZWF0ZShXVEZNb3ZlKHJ0Y0ZyYW1l
KSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRw
VHJhbnNmb3JtQmFja2VuZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtQmFja2VuZC5oCmluZGV4IDIxNThjNjRiYjYx
MTQwYzRlMmNlYjQ3YTE3MDM0MDk1ZjZiNGU5OTAuLjdiYjA4NTVhMzUzYmY4MDNjZWNiZDQ5NzM0
ZTEwMjA5ZmE5ZmZjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFu
c2Zvcm1CYWNrZW5kLmgKQEAgLTQ2LDEzICs0NiwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgTGliV2Vi
UlRDUnRwVHJhbnNmb3JtQmFja2VuZChNZWRpYVR5cGUsIFNpZGUpOwogICAgIHZvaWQgc2V0SW5w
dXRDYWxsYmFjayhDYWxsYmFjayYmKTsKIAorcHJvdGVjdGVkOgorICAgIE1lZGlhVHlwZSBtZWRp
YVR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX21lZGlhVHlwZTsgfQorCiBwcml2YXRlOgog
ICAgIHZvaWQgc2V0T3V0cHV0Q2FsbGJhY2socnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6VHJh
bnNmb3JtZWRGcmFtZUNhbGxiYWNrPiYmKTsKIAogICAgIC8vIFJUQ1J0cFRyYW5zZm9ybUJhY2tl
bmQKLSAgICB2b2lkIHByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRyYW5zZm9ybWFibGVG
cmFtZSYmKSBmaW5hbDsKKyAgICB2b2lkIHByb2Nlc3NUcmFuc2Zvcm1lZEZyYW1lKFJUQ1J0cFRy
YW5zZm9ybWFibGVGcmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJUcmFuc2Zvcm1hYmxlRnJh
bWVDYWxsYmFjaygpIGZpbmFsOwotICAgIE1lZGlhVHlwZSBtZWRpYVR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX21lZGlhVHlwZTsgfQogICAgIFNpZGUgc2lkZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2lkZTsgfQogCiAgICAgLy8gd2VicnRjOjpGcmFtZVRyYW5zZm9ybWVySW50ZXJm
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYzA1ZGQ1NmM3NTM0OGFkNGJkOWNiN2VmNTUwMzE2OTBiNTI4
YjYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcApAQCAtMCwwICsx
LDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxl
RnJhbWUuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQorCitBTExP
V19VTlVTRURfUEFSQU1FVEVSU19CRUdJTgorQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
QkVHSU4KKworI2luY2x1ZGUgPHdlYnJ0Yy9hcGkvZnJhbWVfdHJhbnNmb3JtZXJfaW50ZXJmYWNl
Lmg+CisKK0FMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorQUxMT1dfVU5VU0VEX1BB
UkFNRVRFUlNfRU5ECisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjpMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVf
cHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmIGZyYW1lKQorICAgIDog
bV9ydGNGcmFtZShXVEZNb3ZlKGZyYW1lKSkKK3sKK30KKworTGliV2ViUlRDUnRwVHJhbnNmb3Jt
YWJsZUZyYW1lOjp+TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKCkKK3sKK30KKworc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiBMaWJXZWJS
VENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OnRha2VSVENGcmFtZSgpCit7CisgICAgcmV0dXJuIFdU
Rk1vdmUobV9ydGNGcmFtZSk7Cit9CisKK1JUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6RGF0YSBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU6OmRhdGEoKSBjb25zdAoreworICAgIGlmICgh
bV9ydGNGcmFtZSkKKyAgICAgICAgcmV0dXJuIHsgbnVsbHB0ciwgMCB9OworICAgIGF1dG8gZGF0
YSA9IG1fcnRjRnJhbWUtPkdldERhdGEoKTsKKyAgICByZXR1cm4geyBkYXRhLmJlZ2luKCksIGRh
dGEuc2l6ZSgpIH07Cit9CisKK3ZvaWQgTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpz
ZXREYXRhKERhdGEgZGF0YSkKK3sKKyAgICBpZiAobV9ydGNGcmFtZSkKKyAgICAgICAgbV9ydGNG
cmFtZS0+U2V0RGF0YSh7IGRhdGEuZGF0YSwgZGF0YS5zaXplIH0pOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykgJiYgVVNFKExJQldFQlJU
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1l
LmgKaW5kZXggNjI4NjMyYzZlMTdiMTFmZjc4Y2UyMzUxMTk3ZmZhMGUzYTQ3ZjE0Zi4uODc5MGQ1
M2YxNWYxN2IyMDkwOTQxNDBkMDNlZmM5YmZiOGQyMDhlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3Jt
YWJsZUZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmgKQEAgLTI3LDQwICsyNywzMSBA
QAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiUlRDUnRwVHJhbnNmb3JtYWJsZUZy
YW1lLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCituYW1lc3BhY2Ugd2VicnRjIHsKK2NsYXNz
IFRyYW5zZm9ybWFibGVGcmFtZUludGVyZmFjZTsKK30KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUgZmluYWwgOiBwdWJsaWMgUlRD
UnRwVHJhbnNmb3JtYWJsZUZyYW1lIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmKTsKLSAgICB2
aXJ0dWFsIH5MaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoKSA9IGRlZmF1bHQ7CisgICAg
c3RhdGljIFJlZjxMaWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWU+IGNyZWF0ZShzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+JiYgZnJhbWUpIHsg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKFdURk1v
dmUoZnJhbWUpKSk7IH0KKyAgICB+TGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lKCk7CiAK
LSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNmb3JtYWJsZUZyYW1lSW50
ZXJmYWNlPiB0b1JUQ0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmKTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+IHRh
a2VSVENGcmFtZSgpOwogCiBwcml2YXRlOgorICAgIGV4cGxpY2l0IExpYldlYlJUQ1J0cFRyYW5z
Zm9ybWFibGVGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJ
bnRlcmZhY2U+JiYpOworCiAgICAgRGF0YSBkYXRhKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBz
ZXREYXRhKERhdGEgZGF0YSkgZmluYWwgeyBtX3J0Y0ZyYW1lLT5TZXREYXRhKHsgZGF0YS5kYXRh
LCBkYXRhLnNpemUgfSk7IH0KKyAgICB2b2lkIHNldERhdGEoRGF0YSkgZmluYWw7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpUcmFuc2Zvcm1hYmxlRnJhbWVJbnRlcmZhY2U+IG1fcnRj
RnJhbWU7CiB9OwogCi1pbmxpbmUgTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjpMaWJX
ZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VHJhbnNm
b3JtYWJsZUZyYW1lSW50ZXJmYWNlPiYmIGZyYW1lKQotICAgIDogbV9ydGNGcmFtZShXVEZNb3Zl
KGZyYW1lKSkKLXsKLX0KLQotaW5saW5lIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlRyYW5zZm9y
bWFibGVGcmFtZUludGVyZmFjZT4gTGliV2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lOjp0b1JU
Q0ZyYW1lKExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZSYmIGZyYW1lKQotewotICAgIHJl
dHVybiBXVEZNb3ZlKGZyYW1lLm1fcnRjRnJhbWUpOwotfQotCi1pbmxpbmUgUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lOjpEYXRhIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZTo6ZGF0YSgp
IGNvbnN0Ci17Ci0gICAgYXV0byBkYXRhID0gbV9ydGNGcmFtZS0+R2V0RGF0YSgpOwotICAgIHJl
dHVybiB7IGRhdGEuYmVnaW4oKSwgZGF0YS5zaXplKCkgfTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmNwcAppbmRleCA0
YzA0MTg2ZDlmN2I4MWMzMGIzNTc4YjI5YjI5YjBiODUyYjI4YWQ2Li5hOWFhMzBmNjdjZDIwMjUy
ZmUwNzM3NTE2MTg1YWRjZTgyNTMxNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RyZWFtcy9SZWFkYWJsZVN0cmVhbVNvdXJjZS5jcHAKQEAgLTI3LDggKzI3LDYg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbVNvdXJjZS5o
IgogCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZWFkYWJsZVN0cmVhbVNvdXJjZTo6flJlYWRhYmxlU3RyZWFtU291cmNlKCkgPSBk
ZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1JlYWRh
YmxlU3RyZWFtU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFi
bGVTdHJlYW1Tb3VyY2UuaAppbmRleCA5MWUwYzJjZmQ5OWExMzQwYTMxZjM5NGY0OWNlZTRkYzE5
NWUxOWI4Li5jOTk1OGFlNmIxNjgwNGViMzU3YjNlYzJhZWVmYWUyZDAyOTQ1NTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvUmVhZGFibGVTdHJlYW1Tb3Vy
Y2UuaApAQCAtMjgsMTMgKzI4LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBl
PiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7Ci0KIGNsYXNzIFJlYWRhYmxlU3RyZWFtU291cmNl
IDogcHVibGljIFJlZkNvdW50ZWQ8UmVhZGFibGVTdHJlYW1Tb3VyY2U+IHsKIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5SZWFkYWJsZVN0cmVhbVNvdXJjZSgpOwpAQCAtNjYsNCArNjYsMjQgQEAgcHJp
dmF0ZToKICAgICBPcHRpb25hbDxSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyPiBtX2Nv
bnRyb2xsZXI7CiB9OwogCitjbGFzcyBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZQorICAgIDog
cHVibGljIFJlYWRhYmxlU3RyZWFtU291cmNlCisgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
U2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFNp
bXBsZVJlYWRhYmxlU3RyZWFtU291cmNlPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IFNpbXBsZVJlYWRhYmxlU3RyZWFtU291cmNlKTsgfQorCisgICAgdm9pZCBjbG9zZSgpIHsgY29u
dHJvbGxlcigpLmNsb3NlKCk7IH0KKyAgICB2b2lkIGVucXVldWUoSlNDOjpKU1ZhbHVlIHZhbHVl
KSB7IGNvbnRyb2xsZXIoKS5lbnF1ZXVlKHZhbHVlKTsgfQorCitwcml2YXRlOgorICAgIFNpbXBs
ZVJlYWRhYmxlU3RyZWFtU291cmNlKCkgPSBkZWZhdWx0OworCisgICAgLy8gUmVhZGFibGVTdHJl
YW1Tb3VyY2UKKyAgICB2b2lkIHNldEFjdGl2ZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgc2V0SW5h
Y3RpdmUoKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRvU3RhcnQoKSBmaW5hbCB7IH0KKyAgICB2b2lk
IGRvUHVsbCgpIGZpbmFsIHsgfQorICAgIHZvaWQgZG9DYW5jZWwoKSBmaW5hbCB7IH0KK307CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RyZWFtcy9Xcml0YWJsZVN0cmVhbVNpbmsuaAppbmRleCAxYWZhNTVkOTQ1YzVlNzM5NjA3ZTA1
MGI0N2ExZWU5YWViNTJkNjNlLi4yY2FhODZjMzk1ZDNiYmMyMDRkNjllOWJmNDQ4ZjQyNTY0OWI1
N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0cmVhbXMvV3JpdGFibGVT
dHJlYW1TaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdHJlYW1zL1dyaXRhYmxl
U3RyZWFtU2luay5oCkBAIC00NSw0ICs0NSwyOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGVycm9yKFN0cmluZyYmKSA9IDA7CiB9OwogCitjbGFzcyBTaW1wbGVXcml0YWJsZVN0cmVhbVNp
bmsgOiBwdWJsaWMgV3JpdGFibGVTdHJlYW1TaW5rIHsKK3B1YmxpYzoKKyAgICB1c2luZyBXcml0
ZUNhbGxiYWNrID0gRnVuY3Rpb248RXhjZXB0aW9uT3I8dm9pZD4oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIEpTQzo6SlNWYWx1ZSk+OworICAgIHN0YXRpYyBSZWY8U2ltcGxlV3JpdGFibGVTdHJl
YW1TaW5rPiBjcmVhdGUoV3JpdGVDYWxsYmFjayYmIHdyaXRlQ2FsbGJhY2spIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rKFdURk1vdmUod3JpdGVDYWxsYmFj
aykpKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFNpbXBsZVdyaXRhYmxlU3RyZWFtU2lu
ayhXcml0ZUNhbGxiYWNrJiYpOworCisgICAgdm9pZCB3cml0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgSlNDOjpKU1ZhbHVlLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikgZmluYWw7Cisg
ICAgdm9pZCBjbG9zZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgZXJyb3IoU3RyaW5nJiYpIGZpbmFs
IHsgfQorCisgICAgV3JpdGVDYWxsYmFjayBtX3dyaXRlQ2FsbGJhY2s7Cit9OworCitpbmxpbmUg
U2ltcGxlV3JpdGFibGVTdHJlYW1TaW5rOjpTaW1wbGVXcml0YWJsZVN0cmVhbVNpbmsoV3JpdGVD
YWxsYmFjayYmIHdyaXRlQ2FsbGJhY2spCisgICAgOiBtX3dyaXRlQ2FsbGJhY2soV1RGTW92ZSh3
cml0ZUNhbGxiYWNrKSkKK3sKK30KKworaW5saW5lIHZvaWQgU2ltcGxlV3JpdGFibGVTdHJlYW1T
aW5rOjp3cml0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OkpTVmFsdWUg
dmFsdWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgcHJvbWlz
ZS5zZXR0bGUobV93cml0ZUNhbGxiYWNrKGNvbnRleHQsIHZhbHVlKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYmU3ZDViMGRmZGU5ZWZjYjgzMmYyMTYz
ZGMzMTUwMzEyMTZlNjQ3Mi4uZDFhMzVjYzAwOGFlYTY5ZmZmMmNkOTFkMDIzMmVmYTA3MWU3ZWQ1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTE4Miw2ICsxODIsNyBAQCBNb2R1bGVzL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvci5jcHAKIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFJlY2VpdmVyVHJhbnNmb3JtQmFja2VuZC5j
cHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlclRyYW5z
Zm9ybUJhY2tlbmQuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENS
dHBUcmFuc2Zvcm1CYWNrZW5kLmNwcAorTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcAogTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hU
TUxNb2RlbEVsZW1lbnQuY3BwCiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cAogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNvbnRyb2xsZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGEyMzk1MDdlYmJkODU5OTAyMjVmYmViMTg1MDUwMTA0ODg2MTEyZC4uZjIyMmVkNmNjMjRlNmU2
Njg4NjBmNzRjYzllZGQ4NGIzZDlkZGMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzUzNyw2ICs3NTM3LDcgQEAKIAkJNDEw
QThFRjgyNEY4RjQ3QTAwNEY5MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtRW5jb2Rlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUZXh0RW5jb2RlclN0cmVhbUVuY29kZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGOTI0RjhGNDdCMDA0RjkwNzAgLyogVGV4dEVuY29k
ZXJTdHJlYW1FbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFbmNvZGVyU3RyZWFtRW5jb2Rl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTBCQTEzMTI1NzBGRTU3MDAyRTJGOEEgLyogTGliV2ViUlRDUnRwVHJhbnNm
b3JtYWJsZUZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IExp
YldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHA7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2Vi
UlRDUnRwVHJhbnNmb3JtYWJsZUZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDEwRTQ0NUYyMzQzNzNBRDAwMDE3M0Q0IC8qIExpYldlYlJUQ1NvY2tldElkZW50aWZpZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDU29ja2V0SWRlbnRp
Zmllci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1NvY2tldElkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwRjU2NTUyNEZDRjcwNTAwQTJFNTBDIC8qIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTBGNTY1NzI0RkNGN0M3MDBBMkU1MEMgLyogUlRDSWNlQ2FuZGlkYXRlSW5pdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUlRDSWNlQ2FuZGlkYXRlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTI4NSw2ICsxOTI4Niw3IEBACiAJCQkJNDE4MUM1QkUyNTUzRUI2
RTAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFNlbmRlclRyYW5zZm9ybUJhY2tlbmQuaCAqLywKIAkJ
CQk0MTg2QkQ0RDIxNDBCOUU4MDAwMTgyNkYgLyogTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNr
ZW5kLmNwcCAqLywKIAkJCQk0MTg2QkQ0QjIxNDBBODA1MDAwMTgyNkYgLyogTGliV2ViUlRDUnRw
VHJhbnNjZWl2ZXJCYWNrZW5kLmggKi8sCisJCQkJNDEwQkExMzEyNTcwRkU1NzAwMkUyRjhBIC8q
IExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHAgKi8sCiAJCQkJNDE4MUM1Q0MyNTU1
ODM2ODAwQUVCMEZGIC8qIExpYldlYlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5oICovLAogCQkJ
CTQxODFDNUNFMjU1NTg5NTUwMEFFQjBGRiAvKiBMaWJXZWJSVENSdHBUcmFuc2Zvcm1CYWNrZW5k
LmNwcCAqLywKIAkJCQk0MTgxQzVDRjI1NTU4OTU2MDBBRUIwRkYgLyogTGliV2ViUlRDUnRwVHJh
bnNmb3JtQmFja2VuZC5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvV3JpdGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFi
bGVTdHJlYW0uY3BwCmluZGV4IDYyOTY5YmRlMTVmMzk3NjhhZDM0NmU3N2U4Y2NkNTM2MGI0ZjQ3
NWIuLjM0ODdjZGFkMzkzMzZkZThiYzRmNjQ2ZTdmZmZlMDUxM2M3MDYxNGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0YWJsZVN0cmVhbS5jcHAKQEAgLTM2LDYgKzM2LDMw
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCituYW1lc3Bh
Y2UgV3JpdGFibGVTdHJlYW1JbnRlcm5hbCB7CitzdGF0aWMgaW5saW5lIEpTQzo6SlNWYWx1ZSBj
YWxsRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpKU1ZhbHVlIGpzRnVuY3Rpb24sIEpTQzo6SlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEpTQzo6
QXJnTGlzdCYgYXJndW1lbnRzKQoreworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qu
dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisgICAgYXV0
byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGpzRnVuY3Rpb24pOworICAgIEFTU0VS
VChjYWxsRGF0YS50eXBlICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUpOworICAgIGF1dG8g
cmVzdWx0ID0gY2FsbCgmbGV4aWNhbEdsb2JhbE9iamVjdCwganNGdW5jdGlvbiwgY2FsbERhdGEs
IHRoaXNWYWx1ZSwgYXJndW1lbnRzKTsKKyAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBjaGVja1dyaXRh
YmxlU3RyZWFtKEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIEpTV3JpdGFibGVTdHJl
YW0qIHdyaXRhYmxlU3RyZWFtLCBKU0M6OkpTVmFsdWUgZnVuY3Rpb24pCit7CisgICAgYXV0byYg
bGV4aWNhbEdsb2JhbE9iamVjdCA9IGdsb2JhbE9iamVjdDsKKworICAgIEFTU0VSVChmdW5jdGlv
bik7CisgICAgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CisgICAgYXJndW1l
bnRzLmFwcGVuZCh3cml0YWJsZVN0cmVhbSk7CisgICAgQVNTRVJUKCFhcmd1bWVudHMuaGFzT3Zl
cmZsb3dlZCgpKTsKKyAgICByZXR1cm4gV3JpdGFibGVTdHJlYW1JbnRlcm5hbDo6Y2FsbEZ1bmN0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGZ1bmN0aW9uLCBKU0M6OmpzVW5kZWZpbmVkKCksIGFy
Z3VtZW50cykuaXNUcnVlKCk7Cit9CisKIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+
IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJiBzaW5rKQogewogICAgIFZNJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKQEAgLTYwLDQgKzg0LDMwIEBAIEV4Y2VwdGlv
bk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IFdyaXRhYmxlU3RyZWFtOjpjcmVhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIGNyZWF0ZShnbG9iYWxPYmplY3QsICpqc0Nhc3Q8
SlNXcml0YWJsZVN0cmVhbSo+KG9iamVjdCkpOwogfQogCit2b2lkIFdyaXRhYmxlU3RyZWFtOjps
b2NrKCkKK3sKKyAgICBhdXRvJiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsT2JqZWN0
OworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0
YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7CisKKyAgICBhdXRvKiBj
b25zdHJ1Y3RvciA9IEpTQzo6YXNPYmplY3QobV9nbG9iYWxPYmplY3QtPmdldCgmbGV4aWNhbEds
b2JhbE9iamVjdCwgY2xpZW50RGF0YS5idWlsdGluTmFtZXMoKS5Xcml0YWJsZVN0cmVhbURlZmF1
bHRXcml0ZXJQcml2YXRlTmFtZSgpKSk7CisKKyAgICBhdXRvIGNvbnN0cnVjdERhdGEgPSBnZXRD
b25zdHJ1Y3REYXRhKHZtLCBjb25zdHJ1Y3Rvcik7CisgICAgQVNTRVJUKGNvbnN0cnVjdERhdGEu
dHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CisKKyAgICBNYXJrZWRBcmd1bWVudEJ1ZmZl
ciBhcmdzOworICAgIGFyZ3MuYXBwZW5kKHdyaXRhYmxlU3RyZWFtKCkpOworICAgIEFTU0VSVCgh
YXJncy5oYXNPdmVyZmxvd2VkKCkpOworCisgICAgSlNDOjpjb25zdHJ1Y3QoJmxleGljYWxHbG9i
YWxPYmplY3QsIGNvbnN0cnVjdG9yLCBjb25zdHJ1Y3REYXRhLCBhcmdzKTsKKyAgICBzY29wZS5h
c3NlcnROb0V4Y2VwdGlvbigpOworfQorCitib29sIFdyaXRhYmxlU3RyZWFtOjppc0xvY2tlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGNoZWNrV3JpdGFibGVTdHJlYW0oKmdsb2JhbE9iamVjdCgp
LCB3cml0YWJsZVN0cmVhbSgpLCBnbG9iYWxPYmplY3QoKS0+YnVpbHRpbkludGVybmFsRnVuY3Rp
b25zKCkud3JpdGFibGVTdHJlYW1JbnRlcm5hbHMoKS5tX2lzV3JpdGFibGVTdHJlYW1Mb2NrZWRG
dW5jdGlvbi5nZXQoKSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dyaXRhYmxlU3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xcml0
YWJsZVN0cmVhbS5oCmluZGV4IDM1ZGI4MDU4OWMwMmYwNmYxZDg0NDQ1MTliMzYzYzBkYWVlZmI0
YjkuLjQ2ZmY4OWQ1Y2RlMDhiMDA2ZjIxNWIxM2IzMGJhMjRkOTg1MzcyMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dyaXRhYmxlU3RyZWFtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV3JpdGFibGVTdHJlYW0uaApAQCAtNDIsNiArNDIsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXcml0YWJsZVN0cmVhbT4+IGNyZWF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgUmVmUHRyPFdyaXRhYmxlU3RyZWFtU2luaz4mJik7CiAg
ICAgSlNXcml0YWJsZVN0cmVhbSogd3JpdGFibGVTdHJlYW0oKSBjb25zdCB7IHJldHVybiBndWFy
ZGVkKCk7IH0KIAorICAgIHZvaWQgbG9jaygpOworICAgIGJvb2wgaXNMb2NrZWQoKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICBXcml0YWJsZVN0cmVhbShKU0RPTUdsb2JhbE9iamVjdCYsIEpTV3Jp
dGFibGVTdHJlYW0mKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDc5ODc0NjZiZTA0MWQzYTYxMzNmZjc1YTY3OWE0
M2I2ZmY0YThkYWEuLjkyZmVjNzQxNjZiYThhNjNkY2RjZTVhN2UwNjRmNzdmYWUyZDM3NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC02MzgsNiArNjM4LDExIEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJXcml0YWJsZVN0
cmVhbSIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiV3JpdGFibGVTdHJlYW0uaCIsICRpbmNs
dWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlm
ICgkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICBBZGRUb0luY2x1
ZGVzKCJKU1hQYXRoTlNSZXNvbHZlci5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwpOwog
ICAgICAgICBBZGRUb0luY2x1ZGVzKCJKU0RPTUNvbnZlcnRYUGF0aE5TUmVzb2x2ZXIuaCIsICRp
bmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwODQxNjYzMmVkZDlmOTE1YTIzYTBkYTQ3ZmIzNDI5NDQ4
OGEwNzcxLi4wMjIyN2I3YjVlNDZjMjQ0NGQ4OWRiNzQ1ZTc2MmE5MGM0ODUzZDkyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjAtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciByZWFkYWJsZS93cml0YWJsZSB0byBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
OTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIpOgorCiAy
MDIwLTExLTMwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91bGQgYWxsb3cgV2ViS2l0QWRkaXRpb25zIGhlYWRl
cnMgdG8gYXBwZWFyIGFmdGVyIHNvZnQgbGlua2luZyBoZWFkZXJzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0
cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXJUZXN0cy5jcHAKaW5kZXggM2NkMTM0NDAxOWEzODk0MDAzOGI0OGQ2MzJiNDczMDFi
YjY3ZTlkNS4uYmQwZWYwODQyOWJkOGMxY2FjOTNhMzRmZWNmOGRlZTVhMDZiN2ZkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcApAQCAtNzAsMTEgKzcwLDExIEBAIFZlY3Rv
cjx1aW50OF90PiBnZXRSYXdLZXkoKQogICAgICk7CiB9CiAKLXN0YXRpYyBSZWY8V2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNyZWF0ZVZpZGVvVHJhbnNmb3JtZXIoYm9vbCBpc1Nl
bmRpbmcgPSB0cnVlKQorc3RhdGljIFJlZjxXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cj4gY3JlYXRlVmlkZW9UcmFuc2Zvcm1lcihib29sIGlzRW5jcnlwdGluZyA9IHRydWUpCiB7CiAg
ICAgYXV0byB0cmFuc2Zvcm1lciA9IFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpj
cmVhdGUoKTsKLSAgICB0cmFuc2Zvcm1lci0+c2V0SXNTZW5kaW5nKGlzU2VuZGluZyk7Ci0gICAg
dHJhbnNmb3JtZXItPnNldElzUHJvY2Vzc2luZ0F1ZGlvKGZhbHNlKTsKKyAgICB0cmFuc2Zvcm1l
ci0+c2V0SXNFbmNyeXB0aW5nKGlzRW5jcnlwdGluZyk7CisgICAgdHJhbnNmb3JtZXItPnNldEF1
dGhlbnRpY2F0aW9uU2l6ZSgxMCk7CiAKICAgICBhdXRvIGtleUlkID0gVmVjdG9yPHVpbnQ4X3Q+
Ojpmcm9tKDE5OCwgMzEsIDI1MSwgMTk3LCA0OCwgMTM5LCA5MSwgNTEpOwogICAgIHVpbnQ2NF90
IGtleUlkVmFsdWUgPSAwOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ0ZjEzMTdmMDk4NWQ5NTlkZWM4NzZmNTg3NjFmN2I4
ZWZjMDdjYmYuLmQzODYyNGUyYWFhZjI2ZjhlN2M1MmM4NzVhY2YwMDhlZTJkMDIxMTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlYWRhYmxlL3dyaXRhYmxlIHRvIFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE5Mjk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgor
CisgICAgICAgICogaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWw6CisKIDIw
MjAtMTItMDEgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbV1BFXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBVcGRhdGUgV1BFIGJhc2VsaW5lcyBv
ZiBiYXNlbGluZXMgdXBkYXRlZCByMjM4NzMxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFuc2Zvcm0tZXhwZWN0ZWQudHh0CmluZGV4IGUwMGU4
NmRkZGUyOTM1ZDFmMGY1YWMwMmRkM2E4N2M2YTJmNzhkZWUuLmY5Yjc3OTg4NTg2N2Q1OGY5MTA0
MmQ0N2FlOWI2NWY4NmMwNzI5YzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw4IEBA
CiAKIFBBU1MgQ2Fubm90IHJldXNlIGF0dGFjaGVkIHRyYW5zZm9ybXMKK1BBU1MgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtIGV4cG9zZXMgcmVhZGFibGUgYW5kIHdyaXRhYmxlCitQQVNTIHJlYWRhYmxl
L3dyaXRhYmxlIGFyZSBsb2NrZWQgd2hlbiBhdHRhY2hlZCBhbmQgYWZ0ZXIgYmVpbmcgYXR0YWNo
ZWQKK1BBU1MgU0ZyYW1lIHdpdGggYXJyYXkgYnVmZmVyIC0gYXV0aGVudGljYXRpb24gc2l6ZSAx
MAorUEFTUyBTRnJhbWUgZGVjcnlwdGlvbiB3aXRoIGFycmF5IGJ1ZmZlciB0aGF0IGlzIHRvbyBz
bWFsbAorUEFTUyBTRnJhbWUgdHJhbnNmb3JtIGdldHMgZXJyb3JlZCBpZiB0cnlpbmcgdG8gcHJv
Y2VzcyB1bmV4cGVjdGVkIHZhbHVlIHR5cGVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJhbnNmb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJydGMvc2ZyYW1lLXRyYW5zZm9ybS5odG1sCmluZGV4IGJhMDQ4ODBkMTQ1YWNmYjgxZDdl
OTliZjExMzg0YTA4NTM1MTMzYzcuLmZhMzc4MTYyYmEzMTEzMmRhNmNjMmFmMTgwYmMyOTZiMWJh
NTUxODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYnJ0Yy9zZnJhbWUtdHJh
bnNmb3JtLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2VicnRjL3NmcmFtZS10cmFu
c2Zvcm0uaHRtbApAQCAtMjgsNiArMjgsMTE0IEBAIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkg
PT4gewogICAgIHNlbmRlcjEudHJhbnNmb3JtID0gbnVsbDsKICAgICByZWNlaXZlcjEudHJhbnNm
b3JtID0gbnVsbDsKIH0sICJDYW5ub3QgcmV1c2UgYXR0YWNoZWQgdHJhbnNmb3JtcyIpOworCit0
ZXN0KCgpID0+IHsKKyAgICBjb25zdCBzZW5kZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtKCk7CisKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ucmVhZGFibGUg
aW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSk7CisgICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNm
b3JtLndyaXRhYmxlIGluc3RhbmNlb2YgV3JpdGFibGVTdHJlYW0pOworfSwgIlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybSBleHBvc2VzIHJlYWRhYmxlIGFuZCB3cml0YWJsZSIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zv
cm0oKTsKKyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0oKTsKKyAgICBjb25zdCBzZW5kZXIxID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyku
c2VuZGVyOworICAgIGNvbnN0IHNlbmRlcjIgPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nKS5z
ZW5kZXI7CisgICAgY29uc3QgcmVjZWl2ZXIxID0gcGMuZ2V0UmVjZWl2ZXJzKClbMF07CisgICAg
Y29uc3QgcmVjZWl2ZXIyID0gcGMuZ2V0UmVjZWl2ZXJzKClbMV07CisKKyAgICBhc3NlcnRfZmFs
c2Uoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInNlbmRlciByZWFkYWJsZSBiZWZv
cmUiKTsKKyAgICBhc3NlcnRfZmFsc2Uoc2VuZGVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tlZCwg
InNlbmRlciB3cml0YWJsZSBiZWZvcmUiKTsKKyAgICBhc3NlcnRfZmFsc2UocmVjZWl2ZXJUcmFu
c2Zvcm0ucmVhZGFibGUubG9ja2VkLCAicmVjZWl2ZXIgcmVhZGFibGUgYmVmb3JlIik7CisgICAg
YXNzZXJ0X2ZhbHNlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tlZCwgInJlY2VpdmVy
IHdyaXRhYmxlIGJlZm9yZSIpOworCisgICAgc2VuZGVyMS50cmFuc2Zvcm0gPSBzZW5kZXJUcmFu
c2Zvcm07CisgICAgcmVjZWl2ZXIxLnRyYW5zZm9ybSA9IHJlY2VpdmVyVHJhbnNmb3JtOworCisg
ICAgYXNzZXJ0X3RydWUoc2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInNlbmRlciBy
ZWFkYWJsZSBkdXJpbmciKTsKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJUcmFuc2Zvcm0ud3JpdGFi
bGUubG9ja2VkLCAic2VuZGVyIHdyaXRhYmxlIGR1cmluZyIpOworICAgIGFzc2VydF90cnVlKHJl
Y2VpdmVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHJlYWRhYmxlIGR1cmlu
ZyIpOworICAgIGFzc2VydF90cnVlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tlZCwg
InJlY2VpdmVyIHdyaXRhYmxlIGR1cmluZyIpOworCisgICAgc2VuZGVyMS50cmFuc2Zvcm0gPSBu
dWxsOworICAgIHJlY2VpdmVyMS50cmFuc2Zvcm0gPSBudWxsOworCisgICAgYXNzZXJ0X3RydWUo
c2VuZGVyVHJhbnNmb3JtLnJlYWRhYmxlLmxvY2tlZCwgInNlbmRlciByZWFkYWJsZSBhZnRlciIp
OworICAgIGFzc2VydF90cnVlKHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5sb2NrZWQsICJzZW5k
ZXIgd3JpdGFibGUgYWZ0ZXIiKTsKKyAgICBhc3NlcnRfdHJ1ZShyZWNlaXZlclRyYW5zZm9ybS5y
ZWFkYWJsZS5sb2NrZWQsICJyZWNlaXZlciByZWFkYWJsZSBhZnRlciIpOworICAgIGFzc2VydF90
cnVlKHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmxvY2tlZCwgInJlY2VpdmVyIHdyaXRhYmxl
IGFmdGVyIik7Cit9LCAicmVhZGFibGUvd3JpdGFibGUgYXJlIGxvY2tlZCB3aGVuIGF0dGFjaGVk
IGFuZCBhZnRlciBiZWluZyBhdHRhY2hlZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgicmF3
IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywgNjcsIDIzNiwg
MjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwgWyJkZXJpdmVC
aXRzIiwgImRlcml2ZUtleSJdKTsKKworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9ybSA9IG5ldyBS
VENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2VuY3J5cHQnLCBhdXRoZW50aWNhdGlvblNp
emU6IDEwIH0pOworICAgIHNlbmRlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7CisK
KyAgICBjb25zdCByZWNlaXZlclRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0o
eyByb2xlIDogJ2RlY3J5cHQnLCBhdXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIHJlY2Vp
dmVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KTsKKworICAgIGNvbnN0IHdyaXRlciA9
IHNlbmRlclRyYW5zZm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsKKyAgICBjb25zdCByZWFkZXIg
PSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5nZXRSZWFkZXIoKTsKKworICAgIHNlbmRlclRy
YW5zZm9ybS5yZWFkYWJsZS5waXBlVG8ocmVjZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUpOworCisg
ICAgY29uc3Qgc2VudCA9IG5ldyBBcnJheUJ1ZmZlcig4KTsKKyAgICBjb25zdCB2aWV3ID0gbmV3
IEludDhBcnJheShzZW50KTsKKyAgICBmb3IgKGxldCBjcHRyID0gMDsgY3B0ciA8IHNlbnQuYnl0
ZUxlbmd0aDsgKytjcHRyKQorICAgICAgICB2aWV3W2NwdHJdID0gY3B0cjsKKworICAgIHdyaXRl
ci53cml0ZShzZW50KTsKKyAgICBjb25zdCByZWNlaXZlZCA9IGF3YWl0IHJlYWRlci5yZWFkKCk7
CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkLnZhbHVlLmJ5dGVMZW5ndGgsIDgpOworICAg
IGNvbnN0IHZpZXcyID0gbmV3IEludDhBcnJheShyZWNlaXZlZC52YWx1ZSk7CisgICAgZm9yIChs
ZXQgY3B0ciA9IDA7IGNwdHIgPCBzZW50LmJ5dGVMZW5ndGg7ICsrY3B0cikKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyh2aWV3MltjcHRyXSwgdmlld1tjcHRyXSk7Cit9LCAiU0ZyYW1lIHdpdGggYXJy
YXkgYnVmZmVyIC0gYXV0aGVudGljYXRpb24gc2l6ZSAxMCIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywg
NjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwg
WyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKworICAgIGNvbnN0IHNlbmRlclRyYW5zZm9y
bSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2VuY3J5cHQnLCBhdXRoZW50
aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHNlbmRlcldyaXRlciA9IHNlbmRlclRyYW5z
Zm9ybS53cml0YWJsZS5nZXRXcml0ZXIoKTsKKyAgICBjb25zdCBzZW5kZXJSZWFkZXIgPSBzZW5k
ZXJUcmFuc2Zvcm0ucmVhZGFibGUuZ2V0UmVhZGVyKCk7CisKKyAgICBjb25zdCByZWNlaXZlclRy
YW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oeyByb2xlIDogJ2RlY3J5cHQnLCBh
dXRoZW50aWNhdGlvblNpemU6IDEwIH0pOworICAgIGNvbnN0IHJlY2VpdmVyV3JpdGVyID0gcmVj
ZWl2ZXJUcmFuc2Zvcm0ud3JpdGFibGUuZ2V0V3JpdGVyKCk7CisgICAgY29uc3QgcmVjZWl2ZXJS
ZWFkZXIgPSByZWNlaXZlclRyYW5zZm9ybS5yZWFkYWJsZS5nZXRSZWFkZXIoKTsKKworICAgIHNl
bmRlclRyYW5zZm9ybS5zZXRFbmNyeXB0aW9uS2V5KGtleSk7CisgICAgcmVjZWl2ZXJUcmFuc2Zv
cm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworCisgICAgY29uc3QgY2h1bmsgPSBuZXcgQXJyYXlC
dWZmZXIoOCk7CisKKyAgICAvLyBkZWNyeXB0aW9uIHNob3VsZCBmYWlsLCBsZWFkaW5nIHRvIGFu
IGVtcHR5IGFycmF5IGJ1ZmZlci4KKyAgICBhd2FpdCByZWNlaXZlcldyaXRlci53cml0ZShjaHVu
ayk7CisgICAgbGV0IHJlY2VpdmVkID0gYXdhaXQgcmVjZWl2ZXJSZWFkZXIucmVhZCgpOworICAg
IGFzc2VydF9lcXVhbHMocmVjZWl2ZWQudmFsdWUuYnl0ZUxlbmd0aCwgMCk7CisKKyAgICAvLyBX
ZSB3cml0ZSBhZ2FpbiBidXQgdGhpcyB0aW1lIHdpdGggYSBjaHVuayB3ZSBjYW4gZGVjcnlwdC4K
KyAgICBhd2FpdCBzZW5kZXJXcml0ZXIud3JpdGUoY2h1bmspOworICAgIGNvbnN0IGVuY3J5cHRl
ZCA9IGF3YWl0IHNlbmRlclJlYWRlci5yZWFkKCk7CisgICAgYXdhaXQgcmVjZWl2ZXJXcml0ZXIu
d3JpdGUoZW5jcnlwdGVkLnZhbHVlKTsKKyAgICByZWNlaXZlZCA9IGF3YWl0IHJlY2VpdmVyUmVh
ZGVyLnJlYWQoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVkLnZhbHVlLmJ5dGVMZW5ndGgs
IDgpOworfSwgIlNGcmFtZSBkZWNyeXB0aW9uIHdpdGggYXJyYXkgYnVmZmVyIHRoYXQgaXMgdG9v
IHNtYWxsIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGtl
eSA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBuZXcgVWludDhBcnJheShb
MTQzLCA3NywgNDMsIDEwLCA3MiwgMTksIDM3LCA2NywgMjM2LCAyMTksIDI0LCA5MywgMjYsIDE2
NSwgOTEsIDE3OF0pLCAiSEtERiIsIGZhbHNlLCBbImRlcml2ZUJpdHMiLCAiZGVyaXZlS2V5Il0p
OworCisgICAgY29uc3QgcmVjZWl2ZXJUcmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtKHsgcm9sZSA6ICdkZWNyeXB0JywgYXV0aGVudGljYXRpb25TaXplOiAxMCB9KTsKKyAgICBj
b25zdCByZWNlaXZlcldyaXRlciA9IHJlY2VpdmVyVHJhbnNmb3JtLndyaXRhYmxlLmdldFdyaXRl
cigpOworICAgIHJlY2VpdmVyVHJhbnNmb3JtLnNldEVuY3J5cHRpb25LZXkoa2V5KTsKKworICAg
IC8vIGRlY3J5cHRpb24gc2hvdWxkIGZhaWwsIGxlYWRpbmcgdG8gZXJyb3JpbmcgdGhlIHRyYW5z
Zm9ybS4KKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanModGVzdCwgVHlwZUVycm9yLCByZWNl
aXZlcldyaXRlci53cml0ZSh7IH0pKTsKKyAgICBhd2FpdCBwcm9taXNlX3JlamVjdHNfanModGVz
dCwgVHlwZUVycm9yLCByZWNlaXZlcldyaXRlci5jbG9zZWQpOworfSwgIlNGcmFtZSB0cmFuc2Zv
cm0gZ2V0cyBlcnJvcmVkIGlmIHRyeWluZyB0byBwcm9jZXNzIHVuZXhwZWN0ZWQgdmFsdWUgdHlw
ZXMiKTsKKwogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>