<?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>226490</bug_id>
          
          <creation_ts>2021-06-01 04:45:23 -0700</creation_ts>
          <short_desc>Update opus to M92</short_desc>
          <delta_ts>2021-06-02 05:18:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765560</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 04:45:23 -0700</bug_when>
    <thetext>Update opus to M92</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765579</commentid>
    <comment_count>1</comment_count>
      <attachid>430253</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 05:18:09 -0700</bug_when>
    <thetext>Created attachment 430253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765944</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 05:17:08 -0700</bug_when>
    <thetext>Committed r278348 (238380@main): &lt;https://commits.webkit.org/238380@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430253.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765948</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-02 05:18:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/78758209&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430253</attachid>
            <date>2021-06-01 05:18:09 -0700</date>
            <delta_ts>2021-06-02 05:17:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226490-20210601141807.patch</filename>
            <type>text/plain</type>
            <size>184303</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAzNTcyODIwODM5MWE2YWI4YjZiN2I3OTdlMTBjZGQ3NzcwMjZkOTVlLi40MjE5
MGE3ZmE5MGNhYjVmNzdkZDEyNWQ4MWIyMWQyMzhjYWViNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNi0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIG9wdXMgdG8gTTkyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0OTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS90
aGlyZF9wYXJ0eTogUmVzeW5jZWQuCisKIDIwMjEtMDYtMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBsaWJ5dXYgdG8gTTkyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvQlVJ
TEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29w
dXMvQlVJTEQuZ24KaW5kZXggNDEzYTBlOWE3ZjUxZjg2Yjg0OTc2Mzk0MDdmMmJmYTQ0ZWY2NWE1
Yy4uMjM5NGY1Y2Q0Njk2Mjg0NjljOGU3MjVjY2U2Y2Q1MDhjNTk2ZGM1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL0JVSUxE
LmduCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
b3B1cy9CVUlMRC5nbgpAQCAtMjEsNyArMjEsOCBAQCB1c2Vfb3B1c194ODZfb3B0aW1pemF0aW9u
ID0KICMgSWYgT1BVUyBSdW4gVGltZSBDUFUgRGV0ZWN0aW9ucyAoUlRDRCkgc2hhbGwgYmUgdXNl
ZC4KICMgQmFzZWQgb24gdGhlIGNvbmRpdGlvbnMgaW4gY2VsdC9hcm0vYXJtY3B1LmM6CiAjIGRl
ZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19saW51eF9fKS4KLXVzZV9vcHVzX2FybV9ydGNk
ID0gY3VycmVudF9jcHUgPT0gImFybSIgJiYgKGlzX3dpbiB8fCBpc19hbmRyb2lkIHx8IGlzX2xp
bnV4IHx8IGlzX2Nocm9tZW9zKQordXNlX29wdXNfYXJtX3J0Y2QgPQorICAgIGN1cnJlbnRfY3B1
ID09ICJhcm0iICYmIChpc193aW4gfHwgaXNfYW5kcm9pZCB8fCBpc19saW51eCB8fCBpc19jaHJv
bWVvcykKIAogY29uZmlnKCJvcHVzX2NvbmZpZyIpIHsKICAgaW5jbHVkZV9kaXJzID0gWyAic3Jj
L2luY2x1ZGUiIF0KQEAgLTM3Miw4ICszNzMsOCBAQCBzdGF0aWNfbGlicmFyeSgib3B1cyIpIHsK
ICAgICAic3JjL3NyYy9vcHVzX211bHRpc3RyZWFtX2RlY29kZXIuYyIsCiAgICAgInNyYy9zcmMv
b3B1c19tdWx0aXN0cmVhbV9lbmNvZGVyLmMiLAogICAgICJzcmMvc3JjL29wdXNfcHJpdmF0ZS5o
IiwKLSAgICAic3JjL3NyYy9vcHVzX3Byb2plY3Rpb25fZW5jb2Rlci5jIiwKICAgICAic3JjL3Ny
Yy9vcHVzX3Byb2plY3Rpb25fZGVjb2Rlci5jIiwKKyAgICAic3JjL3NyYy9vcHVzX3Byb2plY3Rp
b25fZW5jb2Rlci5jIiwKICAgICAic3JjL3NyYy9yZXBhY2tldGl6ZXIuYyIsCiAgICAgInNyYy9z
cmMvdGFuc2lnX3RhYmxlLmgiLAogICBdCkBAIC0zODUsNyArMzg2LDcgQEAgc3RhdGljX2xpYnJh
cnkoIm9wdXMiKSB7CiAgIF0KICAgcHVibGljX2NvbmZpZ3MgPSBbICI6b3B1c19jb25maWciIF0K
IAotICBpZiAoIWlzX2RlYnVnICYmIChjdXJyZW50X2NwdSA9PSAiYXJtIiB8fCBjdXJyZW50X2Nw
dSA9PSAiYXJtNjQiKSkgeworICBpZiAoIWlzX2RlYnVnKSB7CiAgICAgY29uZmlncyAtPSBbICIv
L2J1aWxkL2NvbmZpZy9jb21waWxlcjpkZWZhdWx0X29wdGltaXphdGlvbiIgXQogCiAgICAgIyBU
T0RPKGNyYnVnLmNvbS82MjEzMzUpIFJld29yayB0aGlzIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0
aGUgY29uZnVzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvRElSX01FVEFEQVRBIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL0RJUl9NRVRBREFUQQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MGYyZmQzZWU1MTgyZDEyZDA5ZDU5MGNjODQwMjJlYTAyOGZiODg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL0RJ
Ul9NRVRBREFUQQpAQCAtMCwwICsxLDMgQEAKK21vbm9yYWlsOiB7CisgIGNvbXBvbmVudDogIklu
dGVybmFscz5NZWRpYT5Db2RlY3MiCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvT1dORVJTIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL09XTkVSUwppbmRleCBiY2VjZDJh
ZjliM2I4MzEzMjIwZWJkZjkyNDdlMzNjNWY0ZDIzZGY4Li5mNDZiOGQxNzY5NjQzNTdhMDg2NTNk
NmZjY2YwZjBhZThhNzUwMDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvT1dORVJTCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9PV05FUlMKQEAgLTEsMyArMSwyIEBA
CiBmbGltQGNocm9taXVtLm9yZwogaGVucmlrYUBjaHJvbWl1bS5vcmcKLSMgQ09NUE9ORU5UOiBJ
bnRlcm5hbHM+TWVkaWE+Q29kZWNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvUkVBRE1FLmNocm9taXVtIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL1JFQURNRS5jaHJvbWl1
bQppbmRleCA4ZjRlZDVlYjQyMDUzMmM5OGFhYmMzYmVhM2E3ODMzYzA3MjY5MDY3Li43YmEyYWE1
ZDBjMmQ3NzJlYWEwOGRhMGIwYTM3ZDVlMTM4M2UxNzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvUkVBRE1FLmNocm9taXVt
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9SRUFETUUuY2hyb21pdW0KQEAgLTEsNiArMSw2IEBACiBOYW1lOiBvcHVzCi1VUkw6IGh0dHBz
Oi8vZ2l0LnhpcGgub3JnLz9wPW9wdXMuZ2l0Ci1WZXJzaW9uOiA2ZDI5ZjUxYTQwYmU2NGUwM2Fj
YzI2MTlmMzViNDk3MWJhMDA2MTdjCitVUkw6IGh0dHBzOi8vZ2l0bGFiLnhpcGgub3JnL3hpcGgv
b3B1cworVmVyc2lvbjogN2IwNWY0NGYKIExpY2Vuc2U6IEJTRAogTGljZW5zZSBGaWxlOiBzcmMv
Q09QWUlORwogU2VjdXJpdHkgQ3JpdGljYWw6IHllcwpAQCAtMTUsOCArMTUsNyBAQCBMb2NhbCBj
aGFuZ2VzOgogKiBjb3B5IC5naXRpZ25vcmUgZnJvbSBodHRwczovL2dpdC54aXBoLm9yZy8/cD1v
cHVzLmdpdDthPXRyZWUKICogc2V0ICd4JyBmbGFnczogImNobW9kIDc1MCB3aW4zMi9nZW52ZXJz
aW9uLmJhdCIKICogcmVtb3ZlIGFzc2VydGlvbiBtZXNzYWdlcyBpbiByZWxlYXNlIGJ1aWxkcyAo
c2VlIGNyYnVnLzEwNTM1NzIpCi0qIGFwcGx5IHBhdGNoIHRvIGZpeCBpbnQtb3ZlcmZsb3cgaW4g
c2lsayAoaHR0cHM6Ly9naXRsYWIueGlwaC5vcmcveGlwaC9vcHVzLy0vY29tbWl0LzkyM2JlYmRl
KQotKiBhcHBseSBwYXRjaCB0byBmaXggYW5vdGhlciBpbnQtb3ZlcmZsb3cgaW4gc2lsayAoaHR0
cHM6Ly9naXRsYWIueGlwaC5vcmcveGlwaC9vcHVzLy0vY29tbWl0L2FkY2I3YmMyKQorKiBhZGQg
d29ya2Fyb3VuZCB0byBpZ25vcmUgc29tZSBpbnQtb3ZlcmZsb3dzIHdoZW4gZnV6emluZyAoc2Vl
IGNyYnVnLzExNDYxNzQpCiAKIE9wdXMnIG93biB1bml0IHRlc3RzIGFyZSBsb2NhdGVkIGluIC4v
c3JjL3Rlc3RzCiBBZGRpdGlvbmFsIGNocm9taXVtIHRlc3RzIGFyZSBsb2NhdGVkIGluIC4vdGVz
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvb3B1cy9jb252ZXJ0X3J0Y2RfYXNzZW1ibGVyLnB5IGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL2NvbnZlcnRfcnRjZF9hc3NlbWJsZXIu
cHkKaW5kZXggMmY2MDcxZjQxMjE4NjFiYzBkMDc5ODkzNTcyZGQ3MDkyYWMxYzA0Mi4uYWQ3ZTM2
ZDNhYzM4ZjQzNmY3MWE2ZTE4M2RjMjVlODllYjNlMzUzZiAxMDA3NTUKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL2NvbnZlcnRfcnRjZF9h
c3NlbWJsZXIucHkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL2NvbnZlcnRfcnRjZF9hc3NlbWJsZXIucHkKQEAgLTYsNiArNiw4IEBACiAj
IFNjcmlwdCBmb3IgY29udmVydGluZyBjZWx0X3BpdGNoX3hjb3JyX2FybS5zIC0+IGNlbHRfcGl0
Y2hfeGNvcnJfYXJtLlMKICMgdXNpbmcgdGhlIGFybTJnbnUucGwgc2NyaXB0LgogCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBvcwogaW1wb3J0IHN5cwog
CkBAIC0xNiwyMiArMTgsMjIgQEAgVVNBR0UgPSAoJ1VzYWdlOlxuJwogCiBkZWYgbWFpbihhcmd2
KToKICAgaWYgbGVuKGFyZ3YpICE9IDM6Ci0gICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgKCdFcnJv
cjogWW91IG11c3QgcGFzcyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbicKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyAqIGFybTJnbnVfc2NyaXB0X3BhdGhcbicKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJyAqIGlucHV0X2ZpbGVcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
JyAqIG91dHB1dF9maWxlJykKLSAgICBwcmludCBVU0FHRQorICAgIHByaW50KCdFcnJvcjogWW91
IG11c3QgcGFzcyB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbicKKyAgICAgICAgICAnICogYXJt
MmdudV9zY3JpcHRfcGF0aFxuJworICAgICAgICAgICcgKiBpbnB1dF9maWxlXG4nCisgICAgICAg
ICAgJyAqIG91dHB1dF9maWxlJywgZmlsZT1zeXMuc3RkZXJyKQorICAgIHByaW50KFVTQUdFKQog
ICAgIHJldHVybiAxCiAKICAgYXJtMmdudV9zY3JpcHQgPSBvcy5wYXRoLmFic3BhdGgoYXJndlsw
XSkKICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGFybTJnbnVfc2NyaXB0KToKLSAgICBwcmludCA+
PiBzeXMuc3RkZXJyLCAoJ0Vycm9yOiBDYW5ub3QgZmluZCBhcm0yZ251LnBsIHNjcmlwdCBhdDog
JXMuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFybTJnbnVfc2NyaXB0KQorICAgIHBy
aW50KCdFcnJvcjogQ2Fubm90IGZpbmQgYXJtMmdudS5wbCBzY3JpcHQgYXQ6ICVzLicgJQorICAg
ICAgICAgIGFybTJnbnVfc2NyaXB0LCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgcmV0dXJuIDIKIAog
ICBpbnB1dF9maWxlID0gb3MucGF0aC5hYnNwYXRoKGFyZ3ZbMV0pCiAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhpbnB1dF9maWxlKToKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAnRXJyb3I6IENh
bm5vdCBmaW5kIGlucHV0IGZpbGUgYXQ6ICVzLicgJSBpbnB1dF9maWxlCisgICAgcHJpbnQoJ0Vy
cm9yOiBDYW5ub3QgZmluZCBpbnB1dCBmaWxlIGF0OiAlcy4nICUgaW5wdXRfZmlsZSwgZmlsZT1z
eXMuc3RkZXJyKQogICAgIHJldHVybiAzCiAKICAgb3V0cHV0X2ZpbGUgPSBhcmd2WzJdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29w
dXMvc3JjLy5naXRpZ25vcmUgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L29wdXMvc3JjLy5naXRpZ25vcmUKaW5kZXggMzFlMjkwMTQzYzY1YWNjNGQ1NWU4
M2VlNmMyYzUxMzg3MDE5MTM3MC4uODM3NjE5ZjljODliOTNjOTRhNDIwMzk5ZWJmODMwN2YxNWM1
ZmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy8uZ2l0aWdub3JlCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvLmdpdGlnbm9yZQpAQCAtMzgsNiArMzgs
NyBAQCBvcHVzX2RlbW8KIHJlcGFja2V0aXplcl9kZW1vCiBzdGFtcC1oMQogdGVzdC1kcml2ZXIK
K3RyaXZpYWxfZXhhbXBsZQogKi5zdyoKICoubwogKi5sbwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9zcmMvQ01ha2VMaXN0cy50eHQKaW5kZXggYmE4NjkzOWE5YzFhZDExNjQwZWM3MGJkNDdkNDJj
YWE0Mzg0YWRlMS4uYTI4ZjQ0MWMwZGM4YWVlNDRjZjVjMDJhZDM3MDk0ZjA3YTcwZWQ2NCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL0NNYWtlTGlzdHMudHh0CkBAIC0xLDExNyArMSwy
MzYgQEAKIGNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjEpCitsaXN0KEFQUEVORCBD
TUFLRV9NT0RVTEVfUEFUSCAiJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2NtYWtlIikKIAot
aW5jbHVkZShvcHVzX2Z1bmN0aW9ucy5jbWFrZSkKLQotZ2V0X2xpYnJhcnlfdmVyc2lvbihPUFVT
X0xJQlJBUllfVkVSU0lPTiBPUFVTX0xJQlJBUllfVkVSU0lPTl9NQUpPUikKLW1lc3NhZ2UoU1RB
VFVTICJPcHVzIGxpYnJhcnkgdmVyc2lvbjogJHtPUFVTX0xJQlJBUllfVkVSU0lPTn0iKQotCi1n
ZXRfcGFja2FnZV92ZXJzaW9uKFBBQ0tBR0VfVkVSU0lPTikKLW1lc3NhZ2UoU1RBVFVTICJPcHVz
IHBhY2thZ2UgdmVyc2lvbjogJHtQQUNLQUdFX1ZFUlNJT059IikKLQotc3RyaW5nKFJFR0VYCi0g
ICAgICAgUkVQTEFDRSAiXihbMC05XSsuWzAtOV0rXFwuPyhbMC05XSspPykuKiIKLSAgICAgICAg
ICAgICAgICJcXDEiCi0gICAgICAgICAgICAgICBQUk9KRUNUX1ZFUlNJT04KLSAgICAgICAgICAg
ICAgICR7UEFDS0FHRV9WRVJTSU9OfSkKLW1lc3NhZ2UoU1RBVFVTICJPcHVzIHByb2plY3QgdmVy
c2lvbjogJHtQUk9KRUNUX1ZFUlNJT059IikKK2luY2x1ZGUoT3B1c1BhY2thZ2VWZXJzaW9uKQor
Z2V0X3BhY2thZ2VfdmVyc2lvbihQQUNLQUdFX1ZFUlNJT04gUFJPSkVDVF9WRVJTSU9OKQogCiBw
cm9qZWN0KE9wdXMgTEFOR1VBR0VTIEMgVkVSU0lPTiAke1BST0pFQ1RfVkVSU0lPTn0pCi1pbmNs
dWRlKG9wdXNfYnVpbGR0eXBlLmNtYWtlKQotCi1vcHRpb24oT1BVU19CVUlMRF9TSEFSRURfTElC
UkFSWSAiQnVpbGQgc2hhcmVkIGxpYnJhcnkiIE9GRikKLW9wdGlvbihPUFVTX1NUQUNLX1BST1RF
Q1RPUiAiVXNlIHN0YWNrIHByb3RlY3Rpb24iIE9OKQotb3B0aW9uKE9QVVNfVVNFX0FMTE9DQSAi
VXNlIGFsbG9jYSBmb3Igc3RhY2sgYXJyYXlzIChvbiBub24tQzk5IGNvbXBpbGVycykiIE9GRikK
LW9wdGlvbihPUFVTX0NVU1RPTV9NT0RFUyAiRW5hYmxlIG5vbi1PcHVzIG1vZGVzLCBlLmcuIDQ0
LjEga0h6ICYgMl5uIGZyYW1lcyIKLSAgICAgICBPRkYpCi1vcHRpb24oT1BVU19CVUlMRF9QUk9H
UkFNUyAiQnVpbGQgcHJvZ3JhbXMiIE9GRikKLW9wdGlvbihPUFVTX0ZJWEVEX1BPSU5UCi0gICAg
ICAgIkNvbXBpbGUgYXMgZml4ZWQtcG9pbnQgKGZvciBtYWNoaW5lcyB3aXRob3V0IGEgZmFzdCBl
bm91Z2ggRlBVKSIgT0ZGKQotb3B0aW9uKE9QVVNfRU5BQkxFX0ZMT0FUX0FQSQotICAgICAgICJD
b21waWxlIHdpdGggdGhlIGZsb2F0aW5nIHBvaW50IEFQSSAoZm9yIG1hY2hpbmVzIHdpdGggZmxv
YXQgbGlicmFyeSIKLSAgICAgICBPTikKLW9wdGlvbihPUFVTX0lOU1RBTExfUEtHX0NPTkZJR19N
T0RVTEUgIkluc3RhbGwgUGtnQ29uZmlnIG1vZHVsZSIgT04pCi1vcHRpb24oT1BVU19JTlNUQUxM
X0NNQUtFX0NPTkZJR19NT0RVTEUgIkluc3RhbGwgQ01ha2UgcGFja2FnZSBjb25maWcgbW9kdWxl
IgotICAgICAgIE9OKQotCi1pbmNsdWRlKG9wdXNfY29uZmlnLmNtYWtlKQotaW5jbHVkZShvcHVz
X3NvdXJjZXMuY21ha2UpCisKK2luY2x1ZGUoT3B1c0Z1bmN0aW9ucykKK2luY2x1ZGUoT3B1c0J1
aWxkdHlwZSkKK2luY2x1ZGUoT3B1c0NvbmZpZykKK2luY2x1ZGUoT3B1c1NvdXJjZXMpCiBpbmNs
dWRlKEdOVUluc3RhbGxEaXJzKQogaW5jbHVkZShDTWFrZURlcGVuZGVudE9wdGlvbikKIGluY2x1
ZGUoRmVhdHVyZVN1bW1hcnkpCiAKLWlmKE9QVVNfQlVJTERfU0hBUkVEX0xJQlJBUlkgT1IgQlVJ
TERfU0hBUkVEX0xJQlMpCitzZXQoT1BVU19CVUlMRF9TSEFSRURfTElCUkFSWV9IRUxQX1NUUiAi
YnVpbGQgc2hhcmVkIGxpYnJhcnkuIikKK29wdGlvbihPUFVTX0JVSUxEX1NIQVJFRF9MSUJSQVJZ
ICR7T1BVU19CVUlMRF9TSEFSRURfTElCUkFSWV9IRUxQX1NUUn0gT0ZGKQoraWYoT1BVU19CVUlM
RF9TSEFSRURfTElCUkFSWSBPUiBCVUlMRF9TSEFSRURfTElCUyBPUiBPUFVTX0JVSUxEX0ZSQU1F
V09SSykKICAgIyBHbG9iYWwgZmxhZyB0byBjYXVzZSBhZGRfbGlicmFyeSgpIHRvIGNyZWF0ZSBz
aGFyZWQgbGlicmFyaWVzIGlmIG9uLgogICBzZXQoQlVJTERfU0hBUkVEX0xJQlMgT04pCiAgIHNl
dChPUFVTX0JVSUxEX1NIQVJFRF9MSUJSQVJZIE9OKQogZW5kaWYoKQorYWRkX2ZlYXR1cmVfaW5m
byhPUFVTX0JVSUxEX1NIQVJFRF9MSUJSQVJZIE9QVVNfQlVJTERfU0hBUkVEX0xJQlJBUlkgJHtP
UFVTX0JVSUxEX1NIQVJFRF9MSUJSQVJZX0hFTFBfU1RSfSkKIAotaWYoT1BVU19TVEFDS19QUk9U
RUNUT1IpCi0gIGlmKE5PVCBNU1ZDKSAjIEdDIG9uIGJ5IGRlZmF1bHQgb24gTVNWQwotICAgIGNo
ZWNrX2FuZF9zZXRfZmxhZyhTVEFDS19QUk9URUNUSU9OX1NUUk9ORyAtZnN0YWNrLXByb3RlY3Rv
ci1zdHJvbmcpCi0gIGVuZGlmKCkKLWVsc2UoKQotICBpZihNU1ZDKQotICAgIGNoZWNrX2FuZF9z
ZXRfZmxhZyhCVUZGRVJfU0VDVVJJVFlfQ0hFQ0sgL0dTLSkKLSAgZW5kaWYoKQorc2V0KE9QVVNf
QlVJTERfVEVTVElOR19IRUxQX1NUUiAiYnVpbGQgdGVzdHMuIikKK29wdGlvbihPUFVTX0JVSUxE
X1RFU1RJTkcgJHtPUFVTX0JVSUxEX1RFU1RJTkdfSEVMUF9TVFJ9IE9GRikKK2lmKE9QVVNfQlVJ
TERfVEVTVElORyBPUiBCVUlMRF9URVNUSU5HKQorICBzZXQoT1BVU19CVUlMRF9URVNUSU5HIE9O
KQorICBzZXQoQlVJTERfVEVTVElORyBPTikKK2VuZGlmKCkKK2FkZF9mZWF0dXJlX2luZm8oT1BV
U19CVUlMRF9URVNUSU5HIE9QVVNfQlVJTERfVEVTVElORyAke09QVVNfQlVJTERfVEVTVElOR19I
RUxQX1NUUn0pCisKK3NldChPUFVTX0NVU1RPTV9NT0RFU19IRUxQX1NUUiAiZW5hYmxlIG5vbi1P
cHVzIG1vZGVzLCBlLmcuIDQ0LjEga0h6ICYgMl5uIGZyYW1lcy4iKQorb3B0aW9uKE9QVVNfQ1VT
VE9NX01PREVTICR7T1BVU19DVVNUT01fTU9ERVNfSEVMUF9TVFJ9IE9GRikKK2FkZF9mZWF0dXJl
X2luZm8oT1BVU19DVVNUT01fTU9ERVMgT1BVU19DVVNUT01fTU9ERVMgJHtPUFVTX0NVU1RPTV9N
T0RFU19IRUxQX1NUUn0pCisKK3NldChPUFVTX0JVSUxEX1BST0dSQU1TX0hFTFBfU1RSICJidWls
ZCBwcm9ncmFtcy4iKQorb3B0aW9uKE9QVVNfQlVJTERfUFJPR1JBTVMgJHtPUFVTX0JVSUxEX1BS
T0dSQU1TX0hFTFBfU1RSfSBPRkYpCithZGRfZmVhdHVyZV9pbmZvKE9QVVNfQlVJTERfUFJPR1JB
TVMgT1BVU19CVUlMRF9QUk9HUkFNUyAke09QVVNfQlVJTERfUFJPR1JBTVNfSEVMUF9TVFJ9KQor
CitzZXQoT1BVU19ESVNBQkxFX0lOVFJJTlNJQ1NfSEVMUF9TVFIgImRpc2FibGUgYWxsIGludHJp
bnNpY3Mgb3B0aW1pemF0aW9ucy4iKQorb3B0aW9uKE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTICR7
T1BVU19ESVNBQkxFX0lOVFJJTlNJQ1NfSEVMUF9TVFJ9IE9GRikKK2FkZF9mZWF0dXJlX2luZm8o
T1BVU19ESVNBQkxFX0lOVFJJTlNJQ1MgT1BVU19ESVNBQkxFX0lOVFJJTlNJQ1MgJHtPUFVTX0RJ
U0FCTEVfSU5UUklOU0lDU19IRUxQX1NUUn0pCisKK3NldChPUFVTX0ZJWEVEX1BPSU5UX0hFTFBf
U1RSICJjb21waWxlIGFzIGZpeGVkLXBvaW50IChmb3IgbWFjaGluZXMgd2l0aG91dCBhIGZhc3Qg
ZW5vdWdoIEZQVSkuIikKK29wdGlvbihPUFVTX0ZJWEVEX1BPSU5UICR7T1BVU19GSVhFRF9QT0lO
VF9IRUxQX1NUUn0gT0ZGKQorYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX0ZJWEVEX1BPSU5UIE9QVVNf
RklYRURfUE9JTlQgJHtPUFVTX0ZJWEVEX1BPSU5UX0hFTFBfU1RSfSkKKworc2V0KE9QVVNfRU5B
QkxFX0ZMT0FUX0FQSV9IRUxQX1NUUiAiY29tcGlsZSB3aXRoIHRoZSBmbG9hdGluZyBwb2ludCBB
UEkgKGZvciBtYWNoaW5lcyB3aXRoIGZsb2F0IGxpYnJhcnkpLiIpCitvcHRpb24oT1BVU19FTkFC
TEVfRkxPQVRfQVBJICR7T1BVU19FTkFCTEVfRkxPQVRfQVBJX0hFTFBfU1RSfSBPTikKK2FkZF9m
ZWF0dXJlX2luZm8oT1BVU19FTkFCTEVfRkxPQVRfQVBJIE9QVVNfRU5BQkxFX0ZMT0FUX0FQSSAk
e09QVVNfRU5BQkxFX0ZMT0FUX0FQSV9IRUxQX1NUUn0pCisKK3NldChPUFVTX0ZMT0FUX0FQUFJP
WF9IRUxQX1NUUiAiZW5hYmxlIGZsb2F0aW5nIHBvaW50IGFwcHJveGltYXRpb25zIChFbnN1cmUg
eW91ciBwbGF0Zm9ybSBzdXBwb3J0cyBJRUVFIDc1NCBiZWZvcmUgZW5hYmxpbmcpLiIpCitvcHRp
b24oT1BVU19GTE9BVF9BUFBST1ggJHtPUFVTX0ZMT0FUX0FQUFJPWF9IRUxQX1NUUn0gT0ZGKQor
YWRkX2ZlYXR1cmVfaW5mbyhPUFVTX0ZMT0FUX0FQUFJPWCBPUFVTX0ZMT0FUX0FQUFJPWCAke09Q
VVNfRkxPQVRfQVBQUk9YX0hFTFBfU1RSfSkKKworc2V0KE9QVVNfQVNTRVJUSU9OU19IRUxQX1NU
UiAiYWRkaXRpb25hbCBzb2Z0d2FyZSBlcnJvciBjaGVja2luZy4iKQorb3B0aW9uKE9QVVNfQVNT
RVJUSU9OUyAke09QVVNfQVNTRVJUSU9OU19IRUxQX1NUUn0gT0ZGKQorYWRkX2ZlYXR1cmVfaW5m
byhPUFVTX0FTU0VSVElPTlMgT1BVU19BU1NFUlRJT05TICR7T1BVU19BU1NFUlRJT05TX0hFTFBf
U1RSfSkKKworc2V0KE9QVVNfSEFSREVOSU5HX0hFTFBfU1RSICJydW4tdGltZSBjaGVja3MgdGhh
dCBhcmUgY2hlYXAgYW5kIHNhZmUgZm9yIHVzZSBpbiBwcm9kdWN0aW9uLiIpCitvcHRpb24oT1BV
U19IQVJERU5JTkcgJHtPUFVTX0hBUkRFTklOR19IRUxQX1NUUn0gT04pCithZGRfZmVhdHVyZV9p
bmZvKE9QVVNfSEFSREVOSU5HIE9QVVNfSEFSREVOSU5HICR7T1BVU19IQVJERU5JTkdfSEVMUF9T
VFJ9KQorCitzZXQoT1BVU19GVVpaSU5HX0hFTFBfU1RSICJjYXVzZXMgdGhlIGVuY29kZXIgdG8g
bWFrZSByYW5kb20gZGVjaXNpb25zIChkbyBub3QgdXNlIGluIHByb2R1Y3Rpb24pLiIpCitvcHRp
b24oT1BVU19GVVpaSU5HICR7T1BVU19GVVpaSU5HX0hFTFBfU1RSfSBPRkYpCithZGRfZmVhdHVy
ZV9pbmZvKE9QVVNfRlVaWklORyBPUFVTX0ZVWlpJTkcgJHtPUFVTX0ZVWlpJTkdfSEVMUF9TVFJ9
KQorCitzZXQoT1BVU19DSEVDS19BU01fSEVMUF9TVFIgImVuYWJsZSBiaXQtZXhhY3RuZXNzIGNo
ZWNrcyBiZXR3ZWVuIG9wdGltaXplZCBhbmQgYyBpbXBsZW1lbnRhdGlvbnMuIikKK29wdGlvbihP
UFVTX0NIRUNLX0FTTSAke09QVVNfQ0hFQ0tfQVNNX0hFTFBfU1RSfSBPRkYpCithZGRfZmVhdHVy
ZV9pbmZvKE9QVVNfQ0hFQ0tfQVNNIE9QVVNfQ0hFQ0tfQVNNICR7T1BVU19DSEVDS19BU01fSEVM
UF9TVFJ9KQorCitzZXQoT1BVU19JTlNUQUxMX1BLR19DT05GSUdfTU9EVUxFX0hFTFBfU1RSICJp
bnN0YWxsIHBrZy1jb25maWcgbW9kdWxlLiIpCitvcHRpb24oT1BVU19JTlNUQUxMX1BLR19DT05G
SUdfTU9EVUxFICR7T1BVU19JTlNUQUxMX1BLR19DT05GSUdfTU9EVUxFX0hFTFBfU1RSfSBPTikK
K2FkZF9mZWF0dXJlX2luZm8oT1BVU19JTlNUQUxMX1BLR19DT05GSUdfTU9EVUxFIE9QVVNfSU5T
VEFMTF9QS0dfQ09ORklHX01PRFVMRSAke09QVVNfSU5TVEFMTF9QS0dfQ09ORklHX01PRFVMRV9I
RUxQX1NUUn0pCisKK3NldChPUFVTX0lOU1RBTExfQ01BS0VfQ09ORklHX01PRFVMRV9IRUxQX1NU
UiAiaW5zdGFsbCBDTWFrZSBwYWNrYWdlIGNvbmZpZyBtb2R1bGUuIikKK29wdGlvbihPUFVTX0lO
U1RBTExfQ01BS0VfQ09ORklHX01PRFVMRSAke09QVVNfSU5TVEFMTF9DTUFLRV9DT05GSUdfTU9E
VUxFX0hFTFBfU1RSfSBPTikKK2FkZF9mZWF0dXJlX2luZm8oT1BVU19JTlNUQUxMX0NNQUtFX0NP
TkZJR19NT0RVTEUgT1BVU19JTlNUQUxMX0NNQUtFX0NPTkZJR19NT0RVTEUgJHtPUFVTX0lOU1RB
TExfQ01BS0VfQ09ORklHX01PRFVMRV9IRUxQX1NUUn0pCisKK2lmKEFQUExFKQorICBzZXQoT1BV
U19CVUlMRF9GUkFNRVdPUktfSEVMUF9TVFIgImJ1aWxkIEZyYW1ld29yayBidW5kbGUgZm9yIEFw
cGxlIHN5c3RlbXMuIikKKyAgb3B0aW9uKE9QVVNfQlVJTERfRlJBTUVXT1JLICR7T1BVU19CVUlM
RF9GUkFNRVdPUktfSEVMUF9TVFJ9IE9GRikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX0JVSUxE
X0ZSQU1FV09SSyBPUFVTX0JVSUxEX0ZSQU1FV09SSyAke09QVVNfQlVJTERfRlJBTUVXT1JLX0hF
TFBfU1RSfSkKK2VuZGlmKCkKKworc2V0KE9QVVNfRklYRURfUE9JTlRfREVCVUdfSEVMUF9TVFIg
ImRlYnVnIGZpeGVkLXBvaW50IGltcGxlbWVudGF0aW9uLiIpCitjbWFrZV9kZXBlbmRlbnRfb3B0
aW9uKE9QVVNfRklYRURfUE9JTlRfREVCVUcKKyAgICAgICAgICAgICAgICAgICAgICAke09QVVNf
RklYRURfUE9JTlRfREVCVUdfSEVMUF9TVFJ9CisgICAgICAgICAgICAgICAgICAgICAgT04KKyAg
ICAgICAgICAgICAgICAgICAgICAiT1BVU19GSVhFRF9QT0lOVDsgT1BVU19GSVhFRF9QT0lOVF9E
RUJVRyIKKyAgICAgICAgICAgICAgICAgICAgICBPRkYpCithZGRfZmVhdHVyZV9pbmZvKE9QVVNf
RklYRURfUE9JTlRfREVCVUcgT1BVU19GSVhFRF9QT0lOVF9ERUJVRyAke09QVVNfRklYRURfUE9J
TlRfREVCVUdfSEVMUF9TVFJ9KQorCitzZXQoT1BVU19WQVJfQVJSQVlTX0hFTFBfU1RSICJ1c2Ug
dmFyaWFibGUgbGVuZ3RoIGFycmF5cyBmb3Igc3RhY2sgYXJyYXlzLiIpCitjbWFrZV9kZXBlbmRl
bnRfb3B0aW9uKE9QVVNfVkFSX0FSUkFZUworICAgICAgICAgICAgICAgICAgICAgICR7T1BVU19W
QVJfQVJSQVlTX0hFTFBfU1RSfQorICAgICAgICAgICAgICAgICAgICAgIE9OCisgICAgICAgICAg
ICAgICAgICAgICAgIlZMQV9TVVBQT1JURUQ7IE5PVCBPUFVTX1VTRV9BTExPQ0E7IE5PVCBPUFVT
X05PTlRIUkVBRFNBRkVfUFNFVURPU1RBQ0siCisgICAgICAgICAgICAgICAgICAgICAgT0ZGKQor
YWRkX2ZlYXR1cmVfaW5mbyhPUFVTX1ZBUl9BUlJBWVMgT1BVU19WQVJfQVJSQVlTICR7T1BVU19W
QVJfQVJSQVlTX0hFTFBfU1RSfSkKKworc2V0KE9QVVNfVVNFX0FMTE9DQV9IRUxQX1NUUiAidXNl
IGFsbG9jYSBmb3Igc3RhY2sgYXJyYXlzIChvbiBub24tQzk5IGNvbXBpbGVycykuIikKK2NtYWtl
X2RlcGVuZGVudF9vcHRpb24oT1BVU19VU0VfQUxMT0NBCisgICAgICAgICAgICAgICAgICAgICAg
ICR7T1BVU19VU0VfQUxMT0NBX0hFTFBfU1RSfQorICAgICAgICAgICAgICAgICAgICAgICBPTgor
ICAgICAgICAgICAgICAgICAgICAgICAiVVNFX0FMTE9DQV9TVVBQT1JURUQ7IE5PVCBPUFVTX1ZB
Ul9BUlJBWVM7IE5PVCBPUFVTX05PTlRIUkVBRFNBRkVfUFNFVURPU1RBQ0siCisgICAgICAgICAg
ICAgICAgICAgICAgIE9GRikKK2FkZF9mZWF0dXJlX2luZm8oT1BVU19VU0VfQUxMT0NBIE9QVVNf
VVNFX0FMTE9DQSAke09QVVNfVVNFX0FMTE9DQV9IRUxQX1NUUn0pCisKK3NldChPUFVTX05PTlRI
UkVBRFNBRkVfUFNFVURPU1RBQ0tfSEVMUF9TVFIgInVzZSBhIG5vbiB0aHJlYWRzYWZlIHBzZXVk
b3N0YWNrIHdoZW4gbmVpdGhlciB2YXJpYWJsZSBsZW5ndGggYXJyYXlzIG9yIGFsbG9jYSBpcyBz
dXBwb3J0ZWQuIikKK2NtYWtlX2RlcGVuZGVudF9vcHRpb24oT1BVU19OT05USFJFQURTQUZFX1BT
RVVET1NUQUNLCisgICAgICAgICAgICAgICAgICAgICAgICR7T1BVU19OT05USFJFQURTQUZFX1BT
RVVET1NUQUNLX0hFTFBfU1RSfQorICAgICAgICAgICAgICAgICAgICAgICBPTgorICAgICAgICAg
ICAgICAgICAgICAgICAiTk9UIE9QVVNfVkFSX0FSUkFZUzsgTk9UIE9QVVNfVVNFX0FMTE9DQSIK
KyAgICAgICAgICAgICAgICAgICAgICAgT0ZGKQorYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX05PTlRI
UkVBRFNBRkVfUFNFVURPU1RBQ0sgT1BVU19OT05USFJFQURTQUZFX1BTRVVET1NUQUNLICR7T1BV
U19OT05USFJFQURTQUZFX1BTRVVET1NUQUNLX0hFTFBfU1RSfSkKKworc2V0KE9QVVNfRkFTVF9N
QVRIX0hFTFBfU1RSICJlbmFibGUgZmFzdCBtYXRoICh1bnN1cHBvcnRlZCBhbmQgZGlzY291cmFn
ZWQgdXNlLCBhcyBjb2RlIGlzIG5vdCB3ZWxsIHRlc3RlZCB3aXRoIHRoaXMgYnVpbGQgb3B0aW9u
KS4iKQorY21ha2VfZGVwZW5kZW50X29wdGlvbihPUFVTX0ZBU1RfTUFUSAorICAgICAgICAgICAg
ICAgICAgICAgICAke09QVVNfRkFTVF9NQVRIX0hFTFBfU1RSfQorICAgICAgICAgICAgICAgICAg
ICAgICBPTgorICAgICAgICAgICAgICAgICAgICAgICAiT1BVU19GTE9BVF9BUFBST1g7IE9QVVNf
RkFTVF9NQVRIOyBGQVNUX01BVEhfU1VQUE9SVEVEIgorICAgICAgICAgICAgICAgICAgICAgICBP
RkYpCithZGRfZmVhdHVyZV9pbmZvKE9QVVNfRkFTVF9NQVRIIE9QVVNfRkFTVF9NQVRIICR7T1BV
U19GQVNUX01BVEhfSEVMUF9TVFJ9KQorCitzZXQoT1BVU19TVEFDS19QUk9URUNUT1JfSEVMUF9T
VFIgInVzZSBzdGFjayBwcm90ZWN0aW9uLiIpCitjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9QVVNf
U1RBQ0tfUFJPVEVDVE9SCisgICAgICAgICAgICAgICAgICAgICAgICR7T1BVU19TVEFDS19QUk9U
RUNUT1JfSEVMUF9TVFJ9CisgICAgICAgICAgICAgICAgICAgICAgIE9OCisgICAgICAgICAgICAg
ICAgICAgICAgICJTVEFDS19QUk9URUNUT1JfU1VQUE9SVEVEIgorICAgICAgICAgICAgICAgICAg
ICAgICBPRkYpCithZGRfZmVhdHVyZV9pbmZvKE9QVVNfU1RBQ0tfUFJPVEVDVE9SIE9QVVNfU1RB
Q0tfUFJPVEVDVE9SICR7T1BVU19TVEFDS19QUk9URUNUT1JfSEVMUF9TVFJ9KQorCitpZihOT1Qg
TVNWQykKKyAgc2V0KE9QVVNfRk9SVElGWV9TT1VSQ0VfSEVMUF9TVFIgImFkZCBwcm90ZWN0aW9u
IGFnYWluc3QgYnVmZmVyIG92ZXJmbG93cy4iKQorICBjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9Q
VVNfRk9SVElGWV9TT1VSQ0UKKyAgICAgICAgICAgICAgICAgICAgICAgICAke09QVVNfRk9SVElG
WV9TT1VSQ0VfSEVMUF9TVFJ9CisgICAgICAgICAgICAgICAgICAgICAgICAgT04KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiRk9SVElGWV9TT1VSQ0VfU1VQUE9SVEVEIgorICAgICAgICAgICAg
ICAgICAgICAgICAgIE9GRikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX0ZPUlRJRllfU09VUkNF
IE9QVVNfRk9SVElGWV9TT1VSQ0UgJHtPUFVTX0ZPUlRJRllfU09VUkNFX0hFTFBfU1RSfSkKK2Vu
ZGlmKCkKKworaWYoTUlOR1cgQU5EIChPUFVTX0ZPUlRJRllfU09VUkNFIE9SIE9QVVNfU1RBQ0tf
UFJPVEVDVE9SKSkKKyAgIyBzc3AgbGliIGlzIG5lZWRlZCBmb3Igc2VjdXJpdHkgZmVhdHVyZXMg
Zm9yIE1JTkdXCisgIGxpc3QoQVBQRU5EIE9QVVNfUkVRVUlSRURfTElCUkFSSUVTIHNzcCkKIGVu
ZGlmKCkKIAogaWYoT1BVU19DUFVfWDg2IE9SIE9QVVNfQ1BVX1g2NCkKKyAgc2V0KE9QVVNfWDg2
X01BWV9IQVZFX1NTRV9IRUxQX1NUUiAiZG9lcyBydW50aW1lIGNoZWNrIGZvciBTU0UxIHN1cHBv
cnQuIikKICAgY21ha2VfZGVwZW5kZW50X29wdGlvbihPUFVTX1g4Nl9NQVlfSEFWRV9TU0UKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAiRG9lcyBydW50aW1lIGNoZWNrIGZvciBTU0UxIHN1cHBv
cnQiCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtPUFVTX1g4Nl9NQVlfSEFWRV9TU0VfSEVM
UF9TVFJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgT04KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiU1NFMV9TVVBQT1JURUQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIlNTRTFfU1VQ
UE9SVEVEOyBOT1QgT1BVU19ESVNBQkxFX0lOVFJJTlNJQ1MiCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgT0ZGKQorICBhZGRfZmVhdHVyZV9pbmZvKE9QVVNfWDg2X01BWV9IQVZFX1NTRSBPUFVT
X1g4Nl9NQVlfSEFWRV9TU0UgJHtPUFVTX1g4Nl9NQVlfSEFWRV9TU0VfSEVMUF9TVFJ9KQorCisg
IHNldChPUFVTX1g4Nl9NQVlfSEFWRV9TU0UyX0hFTFBfU1RSICJkb2VzIHJ1bnRpbWUgY2hlY2sg
Zm9yIFNTRTIgc3VwcG9ydC4iKQogICBjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9QVVNfWDg2X01B
WV9IQVZFX1NTRTIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRG9lcyBydW50aW1lIGNoZWNr
IGZvciBTU0UyIHN1cHBvcnQiCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtPUFVTX1g4Nl9N
QVlfSEFWRV9TU0UyX0hFTFBfU1RSfQogICAgICAgICAgICAgICAgICAgICAgICAgIE9OCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIlNTRTJfU1VQUE9SVEVEIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICJTU0UyX1NVUFBPUlRFRDsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgogICAg
ICAgICAgICAgICAgICAgICAgICAgIE9GRikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX1g4Nl9N
QVlfSEFWRV9TU0UyIE9QVVNfWDg2X01BWV9IQVZFX1NTRTIgJHtPUFVTX1g4Nl9NQVlfSEFWRV9T
U0UyX0hFTFBfU1RSfSkKKworICBzZXQoT1BVU19YODZfTUFZX0hBVkVfU1NFNF8xX0hFTFBfU1RS
ICJkb2VzIHJ1bnRpbWUgY2hlY2sgZm9yIFNTRTQuMSBzdXBwb3J0LiIpCiAgIGNtYWtlX2RlcGVu
ZGVudF9vcHRpb24oT1BVU19YODZfTUFZX0hBVkVfU1NFNF8xCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIkRvZXMgcnVudGltZSBjaGVjayBmb3IgU1NFNC4xIHN1cHBvcnQiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJHtPUFVTX1g4Nl9NQVlfSEFWRV9TU0U0XzFfSEVMUF9TVFJ9CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgT04KLSAgICAgICAgICAgICAgICAgICAgICAgICAiU1NFNF8x
X1NVUFBPUlRFRCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiU1NFNF8xX1NVUFBPUlRFRDsg
Tk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgogICAgICAgICAgICAgICAgICAgICAgICAgIE9G
RikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX1g4Nl9NQVlfSEFWRV9TU0U0XzEgT1BVU19YODZf
TUFZX0hBVkVfU1NFNF8xICR7T1BVU19YODZfTUFZX0hBVkVfU1NFNF8xX0hFTFBfU1RSfSkKKwor
ICBzZXQoT1BVU19YODZfTUFZX0hBVkVfQVZYX0hFTFBfU1RSICJkb2VzIHJ1bnRpbWUgY2hlY2sg
Zm9yIEFWWCBzdXBwb3J0LiIpCiAgIGNtYWtlX2RlcGVuZGVudF9vcHRpb24oT1BVU19YODZfTUFZ
X0hBVkVfQVZYCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkRvZXMgcnVudGltZSBjaGVjayBm
b3IgQVZYIHN1cHBvcnQiCisgICAgICAgICAgICAgICAgICAgICAgICAgJHtPUFVTX1g4Nl9NQVlf
SEFWRV9BVlhfSEVMUF9TVFJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgT04KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAiQVZYX1NVUFBPUlRFRCIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAiQVZYX1NVUFBPUlRFRDsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgogICAgICAgICAg
ICAgICAgICAgICAgICAgIE9GRikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX1g4Nl9NQVlfSEFW
RV9BVlggT1BVU19YODZfTUFZX0hBVkVfQVZYICR7T1BVU19YODZfTUFZX0hBVkVfQVZYX0hFTFBf
U1RSfSkKIAotICBpZihPUFVTX0NQVV9YNjQpICMgQXNzdW1lIDY0IGJpdCBoYXMgU1NFMiBzdXBw
b3J0CisgICMgUFJFU1VNRSBkZXBlbmRzIG9uIE1BWSBIQVZFLCBidXQgUFJFU1VNRSB3aWxsIG92
ZXJyaWRlIHJ1bnRpbWUgZGV0ZWN0aW9uCisgIHNldChPUFVTX1g4Nl9QUkVTVU1FX1NTRV9IRUxQ
X1NUUiAiYXNzdW1lIHRhcmdldCBDUFUgaGFzIFNTRTEgc3VwcG9ydCAob3ZlcnJpZGUgcnVudGlt
ZSBjaGVjaykuIikKKyAgc2V0KE9QVVNfWDg2X1BSRVNVTUVfU1NFMl9IRUxQX1NUUiAiYXNzdW1l
IHRhcmdldCBDUFUgaGFzIFNTRTIgc3VwcG9ydCAob3ZlcnJpZGUgcnVudGltZSBjaGVjaykuIikK
KyAgaWYoT1BVU19DUFVfWDY0KSAjIEFzc3VtZSB4ODZfNjQgaGFzIHVwIHRvIFNTRTIgc3VwcG9y
dAogICAgIGNtYWtlX2RlcGVuZGVudF9vcHRpb24oT1BVU19YODZfUFJFU1VNRV9TU0UKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJBc3N1bWUgdGFyZ2V0IENQVSBoYXMgU1NFMSBzdXBwb3J0
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtPUFVTX1g4Nl9QUkVTVU1FX1NTRV9IRUxQ
X1NUUn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9OCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAiT1BVU19YODZfTUFZX0hBVkVfU1NFIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIk9QVVNfWDg2X01BWV9IQVZFX1NTRTsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGKQorCiAgICAgY21ha2VfZGVwZW5kZW50X29w
dGlvbihPUFVTX1g4Nl9QUkVTVU1FX1NTRTIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJB
c3N1bWUgdGFyZ2V0IENQVSBoYXMgU1NFMiBzdXBwb3J0IgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJHtPUFVTX1g4Nl9QUkVTVU1FX1NTRTJfSEVMUF9TVFJ9CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBPTgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9QVVNfWDg2X01BWV9I
QVZFX1NTRTIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiT1BVU19YODZfTUFZX0hBVkVf
U1NFMjsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgT0ZGKQogICBlbHNlKCkKICAgICBjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9QVVNfWDg2
X1BSRVNVTUVfU1NFCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiQXNzdW1lIHRhcmdldCBD
UFUgaGFzIFNTRTEgc3VwcG9ydCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICR7T1BVU19Y
ODZfUFJFU1VNRV9TU0VfSEVMUF9TVFJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRkYK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICJPUFVTX1g4Nl9NQVlfSEFWRV9TU0UiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiT1BVU19YODZfTUFZX0hBVkVfU1NFOyBOT1QgT1BVU19E
SVNBQkxFX0lOVFJJTlNJQ1MiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPRkYpCisKICAg
ICBjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9QVVNfWDg2X1BSRVNVTUVfU1NFMgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkFzc3VtZSB0YXJnZXQgQ1BVIGhhcyBTU0UyIHN1cHBvcnQiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAke09QVVNfWDg2X1BSRVNVTUVfU1NFMl9IRUxQX1NU
Un0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9GRgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIk9QVVNfWDg2X01BWV9IQVZFX1NTRTIiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiT1BVU19YODZfTUFZX0hBVkVfU1NFMjsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGKQogICBlbmRpZigpCisgIGFkZF9mZWF0dXJl
X2luZm8oT1BVU19YODZfUFJFU1VNRV9TU0UgT1BVU19YODZfUFJFU1VNRV9TU0UgJHtPUFVTX1g4
Nl9QUkVTVU1FX1NTRV9IRUxQX1NUUn0pCisgIGFkZF9mZWF0dXJlX2luZm8oT1BVU19YODZfUFJF
U1VNRV9TU0UyIE9QVVNfWDg2X1BSRVNVTUVfU1NFMiAke09QVVNfWDg2X1BSRVNVTUVfU1NFMl9I
RUxQX1NUUn0pCisKKyAgc2V0KE9QVVNfWDg2X1BSRVNVTUVfU1NFNF8xX0hFTFBfU1RSICJhc3N1
bWUgdGFyZ2V0IENQVSBoYXMgU1NFNC4xIHN1cHBvcnQgKG92ZXJyaWRlIHJ1bnRpbWUgY2hlY2sp
LiIpCiAgIGNtYWtlX2RlcGVuZGVudF9vcHRpb24oT1BVU19YODZfUFJFU1VNRV9TU0U0XzEKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAiQXNzdW1lIHRhcmdldCBDUFUgaGFzIFNTRTQuMSBzdXBw
b3J0IgorICAgICAgICAgICAgICAgICAgICAgICAgICR7T1BVU19YODZfUFJFU1VNRV9TU0U0XzFf
SEVMUF9TVFJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIk9QVVNfWDg2X01BWV9IQVZFX1NTRTRfMSIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAiT1BVU19YODZfTUFZX0hBVkVfU1NFNF8xOyBOT1QgT1BVU19ESVNBQkxFX0lOVFJJTlNJ
Q1MiCiAgICAgICAgICAgICAgICAgICAgICAgICAgT0ZGKQorICBhZGRfZmVhdHVyZV9pbmZvKE9Q
VVNfWDg2X1BSRVNVTUVfU1NFNF8xIE9QVVNfWDg2X1BSRVNVTUVfU1NFNF8xICR7T1BVU19YODZf
UFJFU1VNRV9TU0U0XzFfSEVMUF9TVFJ9KQorCisgIHNldChPUFVTX1g4Nl9QUkVTVU1FX0FWWF9I
RUxQX1NUUiAiYXNzdW1lIHRhcmdldCBDUFUgaGFzIEFWWCBzdXBwb3J0IChvdmVycmlkZSBydW50
aW1lIGNoZWNrKS4iKQogICBjbWFrZV9kZXBlbmRlbnRfb3B0aW9uKE9QVVNfWDg2X1BSRVNVTUVf
QVZYCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkFzc3VtZSB0YXJnZXQgQ1BVIGhhcyBBVlgg
c3VwcG9ydCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAke09QVVNfWDg2X1BSRVNVTUVfQVZY
X0hFTFBfU1RSfQogICAgICAgICAgICAgICAgICAgICAgICAgIE9GRgotICAgICAgICAgICAgICAg
ICAgICAgICAgICJPUFVTX1g4Nl9NQVlfSEFWRV9BVlgiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIk9QVVNfWDg2X01BWV9IQVZFX0FWWDsgTk9UIE9QVVNfRElTQUJMRV9JTlRSSU5TSUNTIgog
ICAgICAgICAgICAgICAgICAgICAgICAgIE9GRikKKyAgYWRkX2ZlYXR1cmVfaW5mbyhPUFVTX1g4
Nl9QUkVTVU1FX0FWWCBPUFVTX1g4Nl9QUkVTVU1FX0FWWCAke09QVVNfWDg2X1BSRVNVTUVfQVZY
X0hFTFBfU1RSfSkKIGVuZGlmKCkKIAorZmVhdHVyZV9zdW1tYXJ5KFdIQVQgQUxMKQorCiBzZXRf
cGFja2FnZV9wcm9wZXJ0aWVzKEdpdAogICAgICAgICAgICAgICAgICAgICAgICBQUk9QRVJUSUVT
CiAgICAgICAgICAgICAgICAgICAgICAgIFRZUEUKQEAgLTEyMyw1OCArMjQyLDIzIEBAIHNldF9w
YWNrYWdlX3Byb3BlcnRpZXMoR2l0CiAgICAgICAgICAgICAgICAgICAgICAgIFBVUlBPU0UKICAg
ICAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVkIHRvIHNldCB1cCBwYWNrYWdlIHZlcnNpb24i
KQogCi1hZGRfZmVhdHVyZV9pbmZvKEJVSUxEX1NIQVJFRF9MSUJSQVJZIE9QVVNfQlVJTERfU0hB
UkVEX0xJQlJBUlkgIkJ1aWxkIHNoYXJlZCBsaWJyYXJ5IikKLWFkZF9mZWF0dXJlX2luZm8oU1RB
Q0tfUFJPVEVDVE9SIE9QVVNfU1RBQ0tfUFJPVEVDVE9SICJVc2Ugc3RhY2sgcHJvdGVjdGlvbiIp
Ci1hZGRfZmVhdHVyZV9pbmZvKFVTRV9BTExPQ0EgT1BVU19VU0VfQUxMT0NBCi0gICAgICAgICAg
ICAgICAgICJVc2UgYWxsb2NhIGZvciBzdGFjayBhcnJheXMgKG9uIG5vbi1DOTkgY29tcGlsZXJz
KSIpCi1hZGRfZmVhdHVyZV9pbmZvKENVU1RPTV9NT0RFUyBPUFVTX0NVU1RPTV9NT0RFUwotICAg
ICAgICAgICAgICAgICAiRW5hYmxlIG5vbi1PcHVzIG1vZGVzLCBlLmcuIDQ0LjEga0h6ICYgMl5u
IGZyYW1lcyIpCi1hZGRfZmVhdHVyZV9pbmZvKEJVSUxEX1BST0dSQU1TIE9QVVNfQlVJTERfUFJP
R1JBTVMgIkJ1aWxkIHByb2dyYW1zIikKLWFkZF9mZWF0dXJlX2luZm8oCi0gIEZJWEVEX1BPSU5U
IE9QVVNfRklYRURfUE9JTlQKLSAgImNvbXBpbGUgYXMgZml4ZWQtcG9pbnQgKGZvciBtYWNoaW5l
cyB3aXRob3V0IGEgZmFzdCBlbm91Z2ggRlBVKSIpCi1hZGRfZmVhdHVyZV9pbmZvKAotICBGTE9B
VF9BUEkgT1BVU19FTkFCTEVfRkxPQVRfQVBJCi0gICJjb21waWxlIHdpdGggdGhlIGZsb2F0aW5n
IHBvaW50IEFQSSAoZm9yIG1hY2hpbmVzIHdpdGggZmxvYXQgbGlicmFyeSkiKQotCi1hZGRfZmVh
dHVyZV9pbmZvKElOU1RBTExfUEtHX0NPTkZJR19NT0RVTEUgT1BVU19JTlNUQUxMX1BLR19DT05G
SUdfTU9EVUxFCi0gICAgICAgICAgICAgICAgICJpbnN0YWxsIFBrZ0NvbmZpZyBtb2R1bGUiKQot
YWRkX2ZlYXR1cmVfaW5mbyhJTlNUQUxMX0NNQUtFX0NPTkZJR19NT0RVTEUgT1BVU19JTlNUQUxM
X0NNQUtFX0NPTkZJR19NT0RVTEUKLSAgICAgICAgICAgICAgICAgImluc3RhbGwgQ01ha2UgcGFj
a2FnZSBjb25maWcgbW9kdWxlIikKLQotaWYoT1BVU19DUFVfWDg2IE9SIE9QVVNfQ1BVX1g2NCkK
LSAgYWRkX2ZlYXR1cmVfaW5mbyhYODZfTUFZX0hBVkVfU1NFIE9QVVNfWDg2X01BWV9IQVZFX1NT
RQotICAgICAgICAgICAgICAgICAgICJkb2VzIHJ1bnRpbWUgY2hlY2sgZm9yIFNTRTEgc3VwcG9y
dCIpCi0gIGFkZF9mZWF0dXJlX2luZm8oWDg2X01BWV9IQVZFX1NTRTIgT1BVU19YODZfTUFZX0hB
VkVfU1NFMgotICAgICAgICAgICAgICAgICAgICJkb2VzIHJ1bnRpbWUgY2hlY2sgZm9yIFNTRTIg
c3VwcG9ydCIpCi0gIGFkZF9mZWF0dXJlX2luZm8oWDg2X01BWV9IQVZFX1NTRTRfMSBPUFVTX1g4
Nl9NQVlfSEFWRV9TU0U0XzEKLSAgICAgICAgICAgICAgICAgICAiZG9lcyBydW50aW1lIGNoZWNr
IGZvciBTU0U0XzEgc3VwcG9ydCIpCi0gIGFkZF9mZWF0dXJlX2luZm8oWDg2X01BWV9IQVZFX0FW
WCBPUFVTX1g4Nl9NQVlfSEFWRV9BVlgKLSAgICAgICAgICAgICAgICAgICAiZG9lcyBydW50aW1l
IGNoZWNrIGZvciBBVlggc3VwcG9ydCIpCi0gIGFkZF9mZWF0dXJlX2luZm8oWDg2X1BSRVNVTUVf
U1NFIE9QVVNfWDg2X1BSRVNVTUVfU1NFCi0gICAgICAgICAgICAgICAgICAgImFzc3VtZSB0YXJn
ZXQgQ1BVIGhhcyBTU0UxIHN1cHBvcnQiKQotICBhZGRfZmVhdHVyZV9pbmZvKFg4Nl9QUkVTVU1F
X1NTRTIgT1BVU19YODZfUFJFU1VNRV9TU0UyCi0gICAgICAgICAgICAgICAgICAgImFzc3VtZSB0
YXJnZXQgQ1BVIGhhcyBTU0UyIHN1cHBvcnQiKQotICBhZGRfZmVhdHVyZV9pbmZvKFg4Nl9QUkVT
VU1FX1NTRTRfMSBPUFVTX1g4Nl9QUkVTVU1FX1NTRTRfMQotICAgICAgICAgICAgICAgICAgICJh
c3N1bWUgdGFyZ2V0IENQVSBoYXMgU1NFNF8xIHN1cHBvcnQiKQotICBhZGRfZmVhdHVyZV9pbmZv
KFg4Nl9QUkVTVU1FX0FWWCBPUFVTX1g4Nl9QUkVTVU1FX0FWWAotICAgICAgICAgICAgICAgICAg
ICJhc3N1bWUgdGFyZ2V0IENQVSBoYXMgQVZYIHN1cHBvcnQiKQotZW5kaWYoKQotCi1mZWF0dXJl
X3N1bW1hcnkoV0hBVCBBTEwpCi0KLWFkZF9saWJyYXJ5KG9wdXMgJHtvcHVzX3NvdXJjZXN9ICR7
b3B1c19zb3VyY2VzX2Zsb2F0fSkKLQotYWRkX2xpYnJhcnkoT3B1czo6b3B1cyBBTElBUyBvcHVz
KQotCiBzZXQoT3B1c19QVUJMSUNfSEVBREVSCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9E
SVJ9L2luY2x1ZGUvb3B1cy5oCi0gICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1
ZGUvb3B1c19jdXN0b20uaAogICAgICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRl
L29wdXNfZGVmaW5lcy5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGUv
b3B1c19tdWx0aXN0cmVhbS5oCiAgICAgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1
ZGUvb3B1c19wcm9qZWN0aW9uLmgKICAgICAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vaW5j
bHVkZS9vcHVzX3R5cGVzLmgpCiAKK2lmKE9QVVNfQ1VTVE9NX01PREVTKQorICBsaXN0KEFQUEVO
RCBPcHVzX1BVQkxJQ19IRUFERVIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2luY2x1ZGUv
b3B1c19jdXN0b20uaCkKK2VuZGlmKCkKKworYWRkX2xpYnJhcnkob3B1cyAke29wdXNfaGVhZGVy
c30gJHtvcHVzX3NvdXJjZXN9ICR7b3B1c19zb3VyY2VzX2Zsb2F0fSAke09wdXNfUFVCTElDX0hF
QURFUn0pCithZGRfbGlicmFyeShPcHVzOjpvcHVzIEFMSUFTIG9wdXMpCisKK2dldF9saWJyYXJ5
X3ZlcnNpb24oT1BVU19MSUJSQVJZX1ZFUlNJT04gT1BVU19MSUJSQVJZX1ZFUlNJT05fTUFKT1Ip
CittZXNzYWdlKERFQlVHICJPcHVzIGxpYnJhcnkgdmVyc2lvbjogJHtPUFVTX0xJQlJBUllfVkVS
U0lPTn0iKQorCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMob3B1cwogICAgICAgICAgICAgICAgICAg
ICAgIFBST1BFUlRJRVMgU09WRVJTSU9OCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAke09QVVNfTElCUkFSWV9WRVJTSU9OX01BSk9SfQpAQCAtMTg3LDQ2ICsyNzEsODYgQEAgdGFy
Z2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMoCiAgIG9wdXMKICAgUFVCTElDICQ8QlVJTERfSU5URVJG
QUNFOiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9pbmNsdWRlPgogICAgICAgICAgJDxJTlNU
QUxMX0lOVEVSRkFDRToke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0+CisgICAgICAgICAkPElO
U1RBTExfSU5URVJGQUNFOiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS9vcHVzPgogICBQUklW
QVRFICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfQogICAgICAgICAgICR7Q01BS0VfQ1VSUkVO
VF9TT1VSQ0VfRElSfQogICAgICAgICAgIGNlbHQKICAgICAgICAgICBzaWxrKQogCiB0YXJnZXRf
bGlua19saWJyYXJpZXMob3B1cyBQUklWQVRFICR7T1BVU19SRVFVSVJFRF9MSUJSQVJJRVN9KQot
dGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIE9QVVNfQlVJTEQgRU5BQkxF
X0hBUkRFTklORykKK3RhcmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVT
X0JVSUxEKQogCi1pZihOT1QgTVNWQykKLSAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1
cyBQUklWQVRFIF9GT1JUSUZZX1NPVVJDRT0yKQoraWYoT1BVU19GSVhFRF9QT0lOVF9ERUJVRykK
KyAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIEZJWEVEX0RFQlVHKQor
ZW5kaWYoKQorCitpZihPUFVTX0ZPUlRJRllfU09VUkNFIEFORCBOT1QgTVNWQykKKyAgdGFyZ2V0
X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQ8JDxOT1Q6JDxDT05GSUc6ZGVidWc+PjpfRk9SVElGWV9TT1VSQ0U9Mj4pCiBlbmRp
ZigpCiAKLSMgSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gdW5jb21tZW50IG9uZSBvZiB0
aGVzZSBWQVJfQVJSQVlTOiBVc2UgQzk5Ci0jIHZhcmlhYmxlLWxlbmd0aCBhcnJheXMgZm9yIHN0
YWNrIGFsbG9jYXRpb24gVVNFX0FMTE9DQTogVXNlIGFsbG9jYSgpIGZvciBzdGFjawotIyBhbGxv
Y2F0aW9uIElmIG5vbmUgaXMgZGVmaW5lZCwgdGhlbiB0aGUgZmFsbGJhY2sgaXMgYSBub24tdGhy
ZWFkc2FmZSBnbG9iYWwKLSMgYXJyYXkKLWlmKE9QVVNfVVNFX0FMTE9DQSBPUiBNU1ZDKQoraWYo
T1BVU19GTE9BVF9BUFBST1gpCisgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJ
VkFURSBGTE9BVF9BUFBST1gpCitlbmRpZigpCisKK2lmKE9QVVNfQVNTRVJUSU9OUykKKyAgdGFy
Z2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIEVOQUJMRV9BU1NFUlRJT05TKQor
ZW5kaWYoKQorCitpZihPUFVTX0hBUkRFTklORykKKyAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlv
bnMob3B1cyBQUklWQVRFIEVOQUJMRV9IQVJERU5JTkcpCitlbmRpZigpCisKK2lmKE9QVVNfRlVa
WklORykKKyAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIEZVWlpJTkcp
CitlbmRpZigpCisKK2lmKE9QVVNfQ0hFQ0tfQVNNKQorICB0YXJnZXRfY29tcGlsZV9kZWZpbml0
aW9ucyhvcHVzIFBSSVZBVEUgT1BVU19DSEVDS19BU00pCitlbmRpZigpCisKK2lmKE9QVVNfVkFS
X0FSUkFZUykKKyAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIFZBUl9B
UlJBWVMpCitlbHNlaWYoT1BVU19VU0VfQUxMT0NBKQogICB0YXJnZXRfY29tcGlsZV9kZWZpbml0
aW9ucyhvcHVzIFBSSVZBVEUgVVNFX0FMTE9DQSkKK2Vsc2VpZihPUFVTX05PTlRIUkVBRFNBRkVf
UFNFVURPU1RBQ0spCisgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBO
T05USFJFQURTQUZFX1BTRVVET1NUQUNLKQogZWxzZSgpCi0gIHRhcmdldF9jb21waWxlX2RlZmlu
aXRpb25zKG9wdXMgUFJJVkFURSBWQVJfQVJSQVlTKQorICBtZXNzYWdlKEVSUk9SICJOZWVkIHRv
IHNldCBhIGRlZmluZSBmb3Igc3RhY2sgYWxsb2NhdGlvbiIpCiBlbmRpZigpCiAKIGlmKE9QVVNf
Q1VTVE9NX01PREVTKQogICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzIFBSSVZBVEUg
Q1VTVE9NX01PREVTKQogZW5kaWYoKQogCitpZihPUFVTX0ZBU1RfTUFUSCkKKyAgaWYoTVNWQykK
KyAgICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKG9wdXMgUFJJVkFURSAvZnA6ZmFzdCkKKyAgZWxz
ZSgpCisgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhvcHVzIFBSSVZBVEUgLWZmYXN0LW1hdGgp
CisgIGVuZGlmKCkKK2VuZGlmKCkKKworaWYoT1BVU19TVEFDS19QUk9URUNUT1IpCisgIGlmKE1T
VkMpCisgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhvcHVzIFBSSVZBVEUgL0dTKQorICBlbHNl
KCkKKyAgICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKG9wdXMgUFJJVkFURSAtZnN0YWNrLXByb3Rl
Y3Rvci1zdHJvbmcpCisgIGVuZGlmKCkKK2Vsc2VpZihTVEFDS19QUk9URUNUT1JfRElTQUJMRURf
U1VQUE9SVEVEKQorICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKG9wdXMgUFJJVkFURSAvR1MtKQor
ZW5kaWYoKQorCiBpZihCVUlMRF9TSEFSRURfTElCUykKICAgaWYoV0lOMzIpCiAgICAgdGFyZ2V0
X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIERMTF9FWFBPUlQpCi0gIGVsc2UoKQot
ICAgIGluY2x1ZGUoQ2hlY2tDQ29tcGlsZXJGbGFnKQotICAgIGNoZWNrX2NfY29tcGlsZXJfZmxh
ZygtZnZpc2liaWxpdHk9aGlkZGVuIENPTVBJTEVSX0hBU19ISURERU5fVklTSUJJTElUWSkKLSAg
ICBpZihDT01QSUxFUl9IQVNfSElEREVOX1ZJU0lCSUxJVFkpCi0gICAgICBzZXRfdGFyZ2V0X3By
b3BlcnRpZXMob3B1cyBQUk9QRVJUSUVTIENfVklTSUJJTElUWV9QUkVTRVQgaGlkZGVuKQotICAg
IGVuZGlmKCkKKyAgZWxzZWlmKEhJRERFTl9WSVNJQklMSVRZX1NVUFBPUlRFRCkKKyAgICBzZXRf
dGFyZ2V0X3Byb3BlcnRpZXMob3B1cyBQUk9QRVJUSUVTIENfVklTSUJJTElUWV9QUkVTRVQgaGlk
ZGVuKQogICBlbmRpZigpCiBlbmRpZigpCiAKLWFkZF9zb3VyY2VzX2dyb3VwKG9wdXMgc2lsayAk
e3NpbGtfc291cmNlc30pCi1hZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X3NvdXJj
ZXN9KQorYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBzaWxrICR7c2lsa19oZWFkZXJzfSAke3NpbGtf
c291cmNlc30pCithZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X2hlYWRlcnN9ICR7
Y2VsdF9zb3VyY2VzfSkKIAogaWYoT1BVU19GSVhFRF9QT0lOVCkKICAgYWRkX3NvdXJjZXNfZ3Jv
dXAob3B1cyBzaWxrICR7c2lsa19zb3VyY2VzX2ZpeGVkfSkKQEAgLTI0MSw4NCArMzY1LDE1NiBA
QCBpZihOT1QgT1BVU19FTkFCTEVfRkxPQVRfQVBJKQogICB0YXJnZXRfY29tcGlsZV9kZWZpbml0
aW9ucyhvcHVzIFBSSVZBVEUgRElTQUJMRV9GTE9BVF9BUEkpCiBlbmRpZigpCiAKLWlmKE9QVVNf
WDg2X01BWV9IQVZFX1NTRQotICAgT1IgT1BVU19YODZfTUFZX0hBVkVfU1NFMgotICAgT1IgT1BV
U19YODZfTUFZX0hBVkVfU1NFNF8xCi0gICBPUiBPUFVTX1g4Nl9NQVlfSEFWRV9BVlgpCi0gIHRh
cmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX0hBVkVfUlRDRCkKLWVu
ZGlmKCkKLQotaWYoT1BVU19YODZfTUFZX0hBVkVfU1NFKQotICBhZGRfc291cmNlc19ncm91cChv
cHVzIGNlbHQgJHtjZWx0X3NvdXJjZXNfc3NlfSkKLSAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlv
bnMob3B1cyBQUklWQVRFIE9QVVNfWDg2X01BWV9IQVZFX1NTRSkKLWVuZGlmKCkKLWlmKE9QVVNf
WDg2X1BSRVNVTUVfU1NFKQotICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzIFBSSVZB
VEUgT1BVU19YODZfUFJFU1VNRV9TU0UpCi1lbmRpZigpCitpZihOT1QgT1BVU19ESVNBQkxFX0lO
VFJJTlNJQ1MpCisgIGlmKChPUFVTX1g4Nl9NQVlfSEFWRV9TU0UgQU5EIE5PVCBPUFVTX1g4Nl9Q
UkVTVU1FX1NTRSkgT1IKKyAgICAgKE9QVVNfWDg2X01BWV9IQVZFX1NTRTIgQU5EIE5PVCBPUFVT
X1g4Nl9QUkVTVU1FX1NTRTIpIE9SCisgICAgIChPUFVTX1g4Nl9NQVlfSEFWRV9TU0U0XzEgQU5E
IE5PVCBPUFVTX1g4Nl9QUkVTVU1FX1NTRTRfMSkgT1IKKyAgICAgKE9QVVNfWDg2X01BWV9IQVZF
X0FWWCBBTkQgTk9UIE9QVVNfWDg2X1BSRVNVTUVfQVZYKSkKKyAgICB0YXJnZXRfY29tcGlsZV9k
ZWZpbml0aW9ucyhvcHVzIFBSSVZBVEUgT1BVU19IQVZFX1JUQ0QpCisgIGVuZGlmKCkKIAotaWYo
T1BVU19YODZfTUFZX0hBVkVfU1NFMikKLSAgYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBjZWx0ICR7
Y2VsdF9zb3VyY2VzX3NzZTJ9KQotICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzIFBS
SVZBVEUgT1BVU19YODZfTUFZX0hBVkVfU1NFMikKLWVuZGlmKCkKLWlmKE9QVVNfWDg2X1BSRVNV
TUVfU1NFMikKLSAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIE9QVVNf
WDg2X1BSRVNVTUVfU1NFMikKLWVuZGlmKCkKKyAgaWYoU1NFMV9TVVBQT1JURUQpCisgICAgaWYo
T1BVU19YODZfTUFZX0hBVkVfU1NFKQorICAgICAgYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBjZWx0
ICR7Y2VsdF9zb3VyY2VzX3NzZX0pCisgICAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhv
cHVzIFBSSVZBVEUgT1BVU19YODZfTUFZX0hBVkVfU1NFKQorICAgICAgaWYoTk9UIE1TVkMpCisg
ICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke2NlbHRfc291cmNlc19zc2V9IFBS
T1BFUlRJRVMgQ09NUElMRV9GTEFHUyAtbXNzZSkKKyAgICAgIGVuZGlmKCkKKyAgICBlbmRpZigp
CisgICAgaWYoT1BVU19YODZfUFJFU1VNRV9TU0UpCisgICAgICB0YXJnZXRfY29tcGlsZV9kZWZp
bml0aW9ucyhvcHVzIFBSSVZBVEUgT1BVU19YODZfUFJFU1VNRV9TU0UpCisgICAgICBpZihOT1Qg
TVNWQykKKyAgICAgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhvcHVzIFBSSVZBVEUgLW1zc2Up
CisgICAgICBlbmRpZigpCisgICAgZW5kaWYoKQorICBlbmRpZigpCiAKLWlmKE9QVVNfWDg2X01B
WV9IQVZFX1NTRSkKLSAgYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBjZWx0ICR7Y2VsdF9zb3VyY2Vz
X3NzZTRfMX0pCi0gIGFkZF9zb3VyY2VzX2dyb3VwKG9wdXMgc2lsayAke3NpbGtfc291cmNlc19z
c2U0XzF9KQotICBpZihPUFVTX0ZJWEVEX1BPSU5UKQotICAgIGFkZF9zb3VyY2VzX2dyb3VwKG9w
dXMgc2lsayAke3NpbGtfc291cmNlc19maXhlZF9zc2U0XzF9KQorICBpZihTU0UyX1NVUFBPUlRF
RCkKKyAgICBpZihPUFVTX1g4Nl9NQVlfSEFWRV9TU0UyKQorICAgICAgYWRkX3NvdXJjZXNfZ3Jv
dXAob3B1cyBjZWx0ICR7Y2VsdF9zb3VyY2VzX3NzZTJ9KQorICAgICAgdGFyZ2V0X2NvbXBpbGVf
ZGVmaW5pdGlvbnMob3B1cyBQUklWQVRFIE9QVVNfWDg2X01BWV9IQVZFX1NTRTIpCisgICAgICBp
ZihOT1QgTVNWQykKKyAgICAgICAgc2V0X3NvdXJjZV9maWxlc19wcm9wZXJ0aWVzKCR7Y2VsdF9z
b3VyY2VzX3NzZTJ9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAtbXNzZTIpCisgICAgICBlbmRp
ZigpCisgICAgZW5kaWYoKQorICAgIGlmKE9QVVNfWDg2X1BSRVNVTUVfU1NFMikKKyAgICAgIHRh
cmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX1g4Nl9QUkVTVU1FX1NT
RTIpCisgICAgICBpZihOT1QgTVNWQykKKyAgICAgICAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhv
cHVzIFBSSVZBVEUgLW1zc2UyKQorICAgICAgZW5kaWYoKQorICAgIGVuZGlmKCkKICAgZW5kaWYo
KQotICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzIFBSSVZBVEUgT1BVU19YODZfTUFZ
X0hBVkVfU1NFNF8xKQotZW5kaWYoKQotaWYoT1BVU19YODZfUFJFU1VNRV9TU0U0XzEpCi0gIHRh
cmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX1g4Nl9QUkVTVU1FX1NT
RTRfMSkKLWVuZGlmKCkKIAotaWYoQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICIoYXJt
djctYSkiKQotICBhZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X3NvdXJjZXNfYXJt
fSkKLWVuZGlmKCkKKyAgaWYoU1NFNF8xX1NVUFBPUlRFRCkKKyAgICBpZihPUFVTX1g4Nl9NQVlf
SEFWRV9TU0U0XzEpCisgICAgICBhZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X3Nv
dXJjZXNfc3NlNF8xfSkKKyAgICAgIGFkZF9zb3VyY2VzX2dyb3VwKG9wdXMgc2lsayAke3NpbGtf
c291cmNlc19zc2U0XzF9KQorICAgICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQ
UklWQVRFIE9QVVNfWDg2X01BWV9IQVZFX1NTRTRfMSkKKyAgICAgIGlmKE5PVCBNU1ZDKQorICAg
ICAgICBzZXRfc291cmNlX2ZpbGVzX3Byb3BlcnRpZXMoJHtjZWx0X3NvdXJjZXNfc3NlNF8xfSAk
e3NpbGtfc291cmNlc19zc2U0XzF9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAtbXNzZTQuMSkK
KyAgICAgIGVuZGlmKCkKKworICAgICAgaWYoT1BVU19GSVhFRF9QT0lOVCkKKyAgICAgICAgYWRk
X3NvdXJjZXNfZ3JvdXAob3B1cyBzaWxrICR7c2lsa19zb3VyY2VzX2ZpeGVkX3NzZTRfMX0pCisg
ICAgICAgIGlmKE5PVCBNU1ZDKQorICAgICAgICAgIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGll
cygke3NpbGtfc291cmNlc19maXhlZF9zc2U0XzF9IFBST1BFUlRJRVMgQ09NUElMRV9GTEFHUyAt
bXNzZTQuMSkKKyAgICAgICAgZW5kaWYoKQorICAgICAgZW5kaWYoKQorICAgIGVuZGlmKCkKKyAg
ICBpZihPUFVTX1g4Nl9QUkVTVU1FX1NTRTRfMSkKKyAgICAgIHRhcmdldF9jb21waWxlX2RlZmlu
aXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX1g4Nl9QUkVTVU1FX1NTRTRfMSkKKyAgICAgIGlmKE5P
VCBNU1ZDKQorICAgICAgICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKG9wdXMgUFJJVkFURSAtbXNz
ZTQuMSkKKyAgICAgIGVuZGlmKCkKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKIAotaWYoQ09NUElM
RVJfU1VQUE9SVF9ORU9OIEFORCBPUFVTX1VTRV9ORU9OKQorICBpZihBVlhfU1VQUE9SVEVEKQor
ICAgICMgbW9zdGx5IHBsYWNlaG9sZGVyIGluIGNhc2Ugb2YgYXZ4IGludHJpbnNpY3MgaXMgYWRk
ZWQKKyAgICBpZihPUFVTX1g4Nl9NQVlfSEFWRV9BVlgpCisgICAgICB0YXJnZXRfY29tcGlsZV9k
ZWZpbml0aW9ucyhvcHVzIFBSSVZBVEUgT1BVU19YODZfTUFZX0hBVkVfQVZYKQorICAgIGVuZGlm
KCkKKyAgICBpZihPUFVTX1g4Nl9QUkVTVU1FX0FWWCkKKyAgICAgIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX1g4Nl9QUkVTVU1FX0FWWCkKKyAgICAgIGlmKE5P
VCBNU1ZDKQorICAgICAgICB0YXJnZXRfY29tcGlsZV9vcHRpb25zKG9wdXMgUFJJVkFURSAtbWF2
eCkKKyAgICAgIGVuZGlmKCkKKyAgICBlbmRpZigpCisgIGVuZGlmKCkKIAotICBpZihPUFVTX01B
WV9IQVZFX05FT04pCi0gICAgaWYoUlVOVElNRV9DUFVfQ0FQQUJJTElUWV9ERVRFQ1RJT04pCi0g
ICAgICBtZXNzYWdlKFNUQVRVUyAiT1BVU19NQVlfSEFWRV9ORU9OIGVuYWJsaW5nIHJ1bnRpbWUg
ZGV0ZWN0aW9uIikKLSAgICAgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFU
RSBPUFVTX0hBVkVfUlRDRCkKLSAgICBlbHNlKCkKLSAgICAgIG1lc3NhZ2UoRVJST1IgIlJ1bnRp
bWUgY3B1IGNhcGFiaWxpdHkgZGV0ZWN0aW9uIG5lZWRlZCBmb3IgTUFZX0hBVkVfTkVPTiIpCisg
IGlmKE1TVkMpCisgICAgaWYoQVZYX1NVUFBPUlRFRCBBTkQgT1BVU19YODZfUFJFU1VNRV9BVlgp
ICMgb24gNjQgYml0IGFuZCAzMiBiaXRzCisgICAgICBhZGRfZGVmaW5pdGlvbnMoL2FyY2g6QVZY
KQorICAgIGVsc2VpZihPUFVTX0NQVV9YODYpICMgaWYgQVZYIG5vdCBzdXBwb3J0ZWQgdGhlbiBz
ZXQgU1NFIGZsYWcKKyAgICAgIGlmKChTU0U0XzFfU1VQUE9SVEVEIEFORCBPUFVTX1g4Nl9QUkVT
VU1FX1NTRTRfMSkKKyAgICAgICAgIE9SIChTU0UyX1NVUFBPUlRFRCBBTkQgT1BVU19YODZfUFJF
U1VNRV9TU0UyKSkKKyAgICAgICAgdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMob3B1cyBQUklW
QVRFIC9hcmNoOlNTRTIpCisgICAgICBlbHNlaWYoU1NFMV9TVVBQT1JURUQgQU5EIE9QVVNfWDg2
X1BSRVNVTUVfU1NFKQorICAgICAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzIFBS
SVZBVEUgL2FyY2g6U1NFKQorICAgICAgZW5kaWYoKQogICAgIGVuZGlmKCkKLSAgICAjIERvIHJ1
bnRpbWUgY2hlY2sgZm9yIE5FT04KLSAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVz
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJVkFURQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE9QVVNfQVJNX01BWV9IQVZFX05FT04KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBPUFVTX0FSTV9NQVlfSEFWRV9ORU9OX0lOVFIpCiAgIGVuZGlmKCkKIAot
ICBhZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X3NvdXJjZXNfYXJtX25lb25faW50
cn0pCi0gIGFkZF9zb3VyY2VzX2dyb3VwKG9wdXMgc2lsayAke3NpbGtfc291cmNlc19hcm1fbmVv
bl9pbnRyfSkKKyAgaWYoQ01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICIoYXJtfGFhcmNo
NjQpIikKKyAgICBhZGRfc291cmNlc19ncm91cChvcHVzIGNlbHQgJHtjZWx0X3NvdXJjZXNfYXJt
fSkKKyAgZW5kaWYoKQogCi0gICMgc2lsayBhcm0gbmVvbiBkZXBlbmRzIG9uIG1haW5fRml4LmgK
LSAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMob3B1cyBQUklWQVRFIHNpbGsvZml4ZWQpCisg
IGlmKENPTVBJTEVSX1NVUFBPUlRfTkVPTikKKyAgICBpZihPUFVTX01BWV9IQVZFX05FT04pCisg
ICAgICBpZihSVU5USU1FX0NQVV9DQVBBQklMSVRZX0RFVEVDVElPTikKKyAgICAgICAgbWVzc2Fn
ZShTVEFUVVMgIk9QVVNfTUFZX0hBVkVfTkVPTiBlbmFibGluZyBydW50aW1lIGRldGVjdGlvbiIp
CisgICAgICAgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKG9wdXMgUFJJVkFURSBPUFVTX0hB
VkVfUlRDRCkKKyAgICAgIGVsc2UoKQorICAgICAgICBtZXNzYWdlKEVSUk9SICJSdW50aW1lIGNw
dSBjYXBhYmlsaXR5IGRldGVjdGlvbiBuZWVkZWQgZm9yIE1BWV9IQVZFX05FT04iKQorICAgICAg
ZW5kaWYoKQorICAgICAgIyBEbyBydW50aW1lIGNoZWNrIGZvciBORU9OCisgICAgICB0YXJnZXRf
Y29tcGlsZV9kZWZpbml0aW9ucyhvcHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUklWQVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFVTX0FSTV9NQVlf
SEFWRV9ORU9OCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFVTX0FSTV9NQVlf
SEFWRV9ORU9OX0lOVFIpCisgICAgZW5kaWYoKQogCi0gIGlmKE9QVVNfRklYRURfUE9JTlQpCi0g
ICAgYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBzaWxrICR7c2lsa19zb3VyY2VzX2ZpeGVkX2FybV9u
ZW9uX2ludHJ9KQotICBlbmRpZigpCisgICAgYWRkX3NvdXJjZXNfZ3JvdXAob3B1cyBjZWx0ICR7
Y2VsdF9zb3VyY2VzX2FybV9uZW9uX2ludHJ9KQorICAgIGFkZF9zb3VyY2VzX2dyb3VwKG9wdXMg
c2lsayAke3NpbGtfc291cmNlc19hcm1fbmVvbl9pbnRyfSkKIAotICBpZihPUFVTX1BSRVNVTUVf
TkVPTikKLSAgICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhvcHVzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJJVkFURQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE9QVVNfQVJNX1BSRVNVTUVfTkVPTgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9Q
VVNfQVJNX1BSRVNVTUVfTkVPTl9JTlRSKQorICAgICMgc2lsayBhcm0gbmVvbiBkZXBlbmRzIG9u
IG1haW5fRml4LmgKKyAgICB0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhvcHVzIFBSSVZBVEUg
c2lsay9maXhlZCkKKworICAgIGlmKE9QVVNfRklYRURfUE9JTlQpCisgICAgICBhZGRfc291cmNl
c19ncm91cChvcHVzIHNpbGsgJHtzaWxrX3NvdXJjZXNfZml4ZWRfYXJtX25lb25faW50cn0pCisg
ICAgZW5kaWYoKQorCisgICAgaWYoT1BVU19QUkVTVU1FX05FT04pCisgICAgICB0YXJnZXRfY29t
cGlsZV9kZWZpbml0aW9ucyhvcHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ
UklWQVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUFVTX0FSTV9QUkVTVU1F
X05FT04KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QVVNfQVJNX1BSRVNVTUVf
TkVPTl9JTlRSKQorICAgIGVuZGlmKCkKICAgZW5kaWYoKQogZW5kaWYoKQogCit0YXJnZXRfY29t
cGlsZV9kZWZpbml0aW9ucyhvcHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQUklWQVRF
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAkPCQ8Qk9PTDoke0hBVkVfTFJJTlR9PjpIQVZF
X0xSSU5UPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgJDwkPEJPT0w6JHtIQVZFX0xSSU5U
Rn0+OkhBVkVfTFJJTlRGPikKKworaWYoT1BVU19CVUlMRF9GUkFNRVdPUkspCisgIHNldF90YXJn
ZXRfcHJvcGVydGllcyhvcHVzIFBST1BFUlRJRVMKKyAgICAgICAgICAgICAgICAgICAgICAgIEZS
QU1FV09SSyBUUlVFCisgICAgICAgICAgICAgICAgICAgICAgICBGUkFNRVdPUktfVkVSU0lPTiAk
e1BST0pFQ1RfVkVSU0lPTn0KKyAgICAgICAgICAgICAgICAgICAgICAgIE1BQ09TWF9GUkFNRVdP
UktfSURFTlRJRklFUiBvcmcueGlwaC5vcHVzCisgICAgICAgICAgICAgICAgICAgICAgICBNQUNP
U1hfRlJBTUVXT1JLX1NIT1JUX1ZFUlNJT05fU1RSSU5HICR7UFJPSkVDVF9WRVJTSU9OfQorICAg
ICAgICAgICAgICAgICAgICAgICAgTUFDT1NYX0ZSQU1FV09SS19CVU5ETEVfVkVSU0lPTiAke1BS
T0pFQ1RfVkVSU0lPTn0KKyAgICAgICAgICAgICAgICAgICAgICAgIFhDT0RFX0FUVFJJQlVURV9J
TlNUQUxMX1BBVEggIkBycGF0aCIKKyAgICAgICAgICAgICAgICAgICAgICAgIE9VVFBVVF9OQU1F
IE9wdXMpCitlbmRpZigpCisKIGluc3RhbGwoVEFSR0VUUyBvcHVzCiAgICAgICAgIEVYUE9SVCBP
cHVzVGFyZ2V0cwogICAgICAgICBBUkNISVZFIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9M
SUJESVJ9CiAgICAgICAgIExJQlJBUlkgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJ
Un0KICAgICAgICAgUlVOVElNRSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfQklORElSfQor
ICAgICAgICBGUkFNRVdPUksgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0KICAg
ICAgICAgUFVCTElDX0hFQURFUiBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJ
Un0vb3B1cykKIAogaWYoT1BVU19JTlNUQUxMX1BLR19DT05GSUdfTU9EVUxFKQpAQCAtMzM2LDYg
KzUzMiw4IEBAIGlmKE9QVVNfSU5TVEFMTF9QS0dfQ09ORklHX01PRFVMRSkKIGVuZGlmKCkKIAog
aWYoT1BVU19JTlNUQUxMX0NNQUtFX0NPTkZJR19NT0RVTEUpCisgIHNldChDUEFDS19HRU5FUkFU
T1IgVEdaKQorICBpbmNsdWRlKENQYWNrKQogICBzZXQoQ01BS0VfSU5TVEFMTF9QQUNLQUdFRElS
ICR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L2NtYWtlLyR7UFJPSkVDVF9OQU1FfSkKICAgaW5zdGFs
bChFWFBPUlQgT3B1c1RhcmdldHMKICAgICAgICAgICBOQU1FU1BBQ0UgT3B1czo6CkBAIC0zNDQs
NyArNTQyLDcgQEAgaWYoT1BVU19JTlNUQUxMX0NNQUtFX0NPTkZJR19NT0RVTEUpCiAgIGluY2x1
ZGUoQ01ha2VQYWNrYWdlQ29uZmlnSGVscGVycykKIAogICBzZXQoSU5DTFVERV9JTlNUQUxMX0RJ
UiAke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0pCi0gIGNvbmZpZ3VyZV9wYWNrYWdlX2NvbmZp
Z19maWxlKE9wdXNDb25maWcuY21ha2UuaW4KKyAgY29uZmlndXJlX3BhY2thZ2VfY29uZmlnX2Zp
bGUoJHtQUk9KRUNUX1NPVVJDRV9ESVJ9L2NtYWtlL09wdXNDb25maWcuY21ha2UuaW4KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3B1c0NvbmZpZy5jbWFrZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBJTlNUQUxMX0RFU1RJTkFUSU9OCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICR7Q01BS0VfSU5TVEFMTF9QQUNLQUdFRElSfQpAQCAtMzczLDEyICs1
NzEsMTIgQEAgaWYoT1BVU19CVUlMRF9QUk9HUkFNUykKICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0
b3JpZXMob3B1c19kZW1vIFBSSVZBVEUgJHtDTUFLRV9DVVJSRU5UX0JJTkFSWV9ESVJ9KQogICB0
YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhvcHVzX2RlbW8gUFJJVkFURSBzaWxrKSAjIGRlYnVn
LmgKICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMob3B1c19kZW1vIFBSSVZBVEUgY2VsdCkg
IyBhcmNoLmgKLSAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wdXNfZGVtbyBQUklWQVRFIG9wdXMp
CisgIHRhcmdldF9saW5rX2xpYnJhcmllcyhvcHVzX2RlbW8gUFJJVkFURSBvcHVzICR7T1BVU19S
RVFVSVJFRF9MSUJSQVJJRVN9KQogCiAgICMgY29tcGFyZQogICBhZGRfZXhlY3V0YWJsZShvcHVz
X2NvbXBhcmUgJHtvcHVzX2NvbXBhcmVfc291cmNlc30pCiAgIHRhcmdldF9pbmNsdWRlX2RpcmVj
dG9yaWVzKG9wdXNfY29tcGFyZSBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSkK
LSAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKG9wdXNfY29tcGFyZSBQUklWQVRFIG9wdXMpCisgIHRh
cmdldF9saW5rX2xpYnJhcmllcyhvcHVzX2NvbXBhcmUgUFJJVkFURSBvcHVzICR7T1BVU19SRVFV
SVJFRF9MSUJSQVJJRVN9KQogZW5kaWYoKQogCiBpZihCVUlMRF9URVNUSU5HKQpAQCAtMzkyLDEz
ICs1OTAsMTMgQEAgaWYoQlVJTERfVEVTVElORykKICAgaWYoT1BVU19GSVhFRF9QT0lOVCkKICAg
ICB0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyh0ZXN0X29wdXNfZGVjb2RlIFBSSVZBVEUgRElT
QUJMRV9GTE9BVF9BUEkpCiAgIGVuZGlmKCkKLSAgYWRkX3Rlc3QodGVzdF9vcHVzX2RlY29kZSB0
ZXN0X29wdXNfZGVjb2RlKQorICBhZGRfdGVzdChOQU1FIHRlc3Rfb3B1c19kZWNvZGUgQ09NTUFO
RCAkPFRBUkdFVF9GSUxFOnRlc3Rfb3B1c19kZWNvZGU+IFdPUktJTkdfRElSRUNUT1JZICR7Q01B
S0VfQklOQVJZX0RJUn0pCiAKICAgYWRkX2V4ZWN1dGFibGUodGVzdF9vcHVzX3BhZGRpbmcgJHt0
ZXN0X29wdXNfcGFkZGluZ19zb3VyY2VzfSkKICAgdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMo
dGVzdF9vcHVzX3BhZGRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJVkFURSAk
e0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0pCiAgIHRhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0
X29wdXNfcGFkZGluZyBQUklWQVRFIG9wdXMpCi0gIGFkZF90ZXN0KHRlc3Rfb3B1c19wYWRkaW5n
IHRlc3Rfb3B1c19wYWRkaW5nKQorICBhZGRfdGVzdChOQU1FIHRlc3Rfb3B1c19wYWRkaW5nIENP
TU1BTkQgJDxUQVJHRVRfRklMRTp0ZXN0X29wdXNfcGFkZGluZz4gV09SS0lOR19ESVJFQ1RPUlkg
JHtDTUFLRV9CSU5BUllfRElSfSkKIAogICBpZihOT1QgQlVJTERfU0hBUkVEX0xJQlMpCiAgICAg
IyBkaXNhYmxlIHRlc3RzIHRoYXQgZGVwZW5kcyBvbiBwcml2YXRlIEFQSSB3aGVuIGJ1aWxkaW5n
IHNoYXJlZCBsaWIKQEAgLTQwOSwxMiArNjA3LDEyIEBAIGlmKEJVSUxEX1RFU1RJTkcpCiAgICAg
aWYoT1BVU19GSVhFRF9QT0lOVCkKICAgICAgIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKHRl
c3Rfb3B1c19hcGkgUFJJVkFURSBESVNBQkxFX0ZMT0FUX0FQSSkKICAgICBlbmRpZigpCi0gICAg
YWRkX3Rlc3QodGVzdF9vcHVzX2FwaSB0ZXN0X29wdXNfYXBpKQorICAgIGFkZF90ZXN0KE5BTUUg
dGVzdF9vcHVzX2FwaSBDT01NQU5EICQ8VEFSR0VUX0ZJTEU6dGVzdF9vcHVzX2FwaT4gV09SS0lO
R19ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfSkKIAogICAgIGFkZF9leGVjdXRhYmxlKHRl
c3Rfb3B1c19lbmNvZGUgJHt0ZXN0X29wdXNfZW5jb2RlX3NvdXJjZXN9KQogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKHRlc3Rfb3B1c19lbmNvZGUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUklWQVRFICR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfSBjZWx0KQogICAg
IHRhcmdldF9saW5rX2xpYnJhcmllcyh0ZXN0X29wdXNfZW5jb2RlIFBSSVZBVEUgb3B1cykKLSAg
ICBhZGRfdGVzdCh0ZXN0X29wdXNfZW5jb2RlIHRlc3Rfb3B1c19lbmNvZGUpCisgICAgYWRkX3Rl
c3QoTkFNRSB0ZXN0X29wdXNfZW5jb2RlIENPTU1BTkQgJDxUQVJHRVRfRklMRTp0ZXN0X29wdXNf
ZW5jb2RlPiBXT1JLSU5HX0RJUkVDVE9SWSAke0NNQUtFX0JJTkFSWV9ESVJ9KQogICBlbmRpZigp
CiBlbmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL01ha2VmaWxlLmFtIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9NYWtlZmlsZS5hbQppbmRleCA3Zjkw
NWIwOTY5NzIyNzNjNTA5NDEwODI0MjExNzUxMjBhODRkZjllLi44M2JlYWEzZjFkNWZiZTdjZTJh
NDU2N2Q2OWQyMTQzNjFiNTEyNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL01ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvTWFrZWZp
bGUuYW0KQEAgLTEwMyw3ICsxMDMsOCBAQCBub2luc3RfUFJPR1JBTVMgPSBjZWx0L3Rlc3RzL3Rl
c3RfdW5pdF9jd3JzMzIgXAogICAgICAgICAgICAgICAgICAgdGVzdHMvdGVzdF9vcHVzX2RlY29k
ZSBcCiAgICAgICAgICAgICAgICAgICB0ZXN0cy90ZXN0X29wdXNfZW5jb2RlIFwKICAgICAgICAg
ICAgICAgICAgIHRlc3RzL3Rlc3Rfb3B1c19wYWRkaW5nIFwKLSAgICAgICAgICAgICAgICAgIHRl
c3RzL3Rlc3Rfb3B1c19wcm9qZWN0aW9uCisgICAgICAgICAgICAgICAgICB0ZXN0cy90ZXN0X29w
dXNfcHJvamVjdGlvbiBcCisgICAgICAgICAgICAgICAgICB0cml2aWFsX2V4YW1wbGUKIAogVEVT
VFMgPSBjZWx0L3Rlc3RzL3Rlc3RfdW5pdF9jd3JzMzIgXAogICAgICAgICBjZWx0L3Rlc3RzL3Rl
c3RfdW5pdF9kZnQgXApAQCAtMTMxLDYgKzEzMiw5IEBAIHJlcGFja2V0aXplcl9kZW1vX0xEQURE
ID0gbGlib3B1cy5sYSAkKE5FMTBfTElCUykgJChMSUJNKQogb3B1c19jb21wYXJlX1NPVVJDRVMg
PSBzcmMvb3B1c19jb21wYXJlLmMKIG9wdXNfY29tcGFyZV9MREFERCA9ICQoTElCTSkKIAordHJp
dmlhbF9leGFtcGxlX1NPVVJDRVMgPSBkb2MvdHJpdmlhbF9leGFtcGxlLmMKK3RyaXZpYWxfZXhh
bXBsZV9MREFERCA9IGxpYm9wdXMubGEgJChMSUJNKQorCiB0ZXN0c190ZXN0X29wdXNfYXBpX1NP
VVJDRVMgPSB0ZXN0cy90ZXN0X29wdXNfYXBpLmMgdGVzdHMvdGVzdF9vcHVzX2NvbW1vbi5oCiB0
ZXN0c190ZXN0X29wdXNfYXBpX0xEQUREID0gbGlib3B1cy5sYSAkKE5FMTBfTElCUykgJChMSUJN
KQogCkBAIC0yMTEsMTIgKzIxNSwyNyBAQCBFWFRSQV9ESVNUID0gb3B1cy5wYy5pbiBcCiAgICAg
ICAgICAgICAgTWFrZWZpbGUubWlwcyBcCiAgICAgICAgICAgICAgTWFrZWZpbGUudW5peCBcCiAg
ICAgICAgICAgICAgQ01ha2VMaXN0cy50eHQgXAotICAgICAgICAgICAgIGNvbmZpZy5oLmNtYWtl
LmluIFwKLSAgICAgICAgICAgICBvcHVzX2J1aWxkdHlwZS5jbWFrZSBcCi0gICAgICAgICAgICAg
b3B1c19jb25maWcuY21ha2UgXAotICAgICAgICAgICAgIG9wdXNfZnVuY3Rpb25zLmNtYWtlIFwK
LSAgICAgICAgICAgICBvcHVzX3NvdXJjZXMuY21ha2UgXAotICAgICAgICAgICAgIE9wdXNDb25m
aWcuY21ha2UuaW4gXAorICAgICAgICAgICAgIGNtYWtlL0NGZWF0dXJlQ2hlY2suY21ha2UgXAor
ICAgICAgICAgICAgIGNtYWtlL09wdXNCdWlsZHR5cGUuY21ha2UgXAorICAgICAgICAgICAgIGNt
YWtlL09wdXNDb25maWcuY21ha2UgXAorICAgICAgICAgICAgIGNtYWtlL09wdXNDb25maWcuY21h
a2UuaW4gXAorICAgICAgICAgICAgIGNtYWtlL09wdXNGdW5jdGlvbnMuY21ha2UgXAorICAgICAg
ICAgICAgIGNtYWtlL09wdXNQYWNrYWdlVmVyc2lvbi5jbWFrZSBcCisgICAgICAgICAgICAgY21h
a2UvT3B1c1NvdXJjZXMuY21ha2UgXAorICAgICAgICAgICAgIGNtYWtlL2NvbmZpZy5oLmNtYWtl
LmluIFwKKyAgICAgICAgICAgICBjbWFrZS92bGEuYyBcCisgICAgICAgICAgICAgbWVzb24vZ2V0
LXZlcnNpb24ucHkgXAorICAgICAgICAgICAgIG1lc29uL3JlYWQtc291cmNlcy1saXN0LnB5IFwK
KyAgICAgICAgICAgICBtZXNvbi5idWlsZCBcCisgICAgICAgICAgICAgbWVzb25fb3B0aW9ucy50
eHQgXAorICAgICAgICAgICAgIGluY2x1ZGUvbWVzb24uYnVpbGQgXAorICAgICAgICAgICAgIGNl
bHQvbWVzb24uYnVpbGQgXAorICAgICAgICAgICAgIGNlbHQvdGVzdHMvbWVzb24uYnVpbGQgXAor
ICAgICAgICAgICAgIHNpbGsvbWVzb24uYnVpbGQgXAorICAgICAgICAgICAgIHNpbGsvdGVzdHMv
bWVzb24uYnVpbGQgXAorICAgICAgICAgICAgIHNyYy9tZXNvbi5idWlsZCBcCisgICAgICAgICAg
ICAgdGVzdHMvbWVzb24uYnVpbGQgXAorICAgICAgICAgICAgIGRvYy9tZXNvbi5idWlsZCBcCiAg
ICAgICAgICAgICAgdGVzdHMvcnVuX3ZlY3RvcnMuc2ggXAogICAgICAgICAgICAgIGNlbHQvYXJt
L2FybTJnbnUucGwgXAogICAgICAgICAgICAgIGNlbHQvYXJtL2NlbHRfcGl0Y2hfeGNvcnJfYXJt
LnMgXApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9PcHVzQ29uZmlnLmNtYWtlLmluIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9PcHVzQ29uZmlnLmNtYWtlLmlu
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTc3MTc0M2FmODMxNWE1YzBiNDhmOThk
MjIwZWY1ZmU3ODAyNjY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9zcmMvT3B1c0NvbmZpZy5jbWFrZS5pbgorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAK
LXNldChPUFVTX1ZFUlNJT04gQFBST0pFQ1RfVkVSU0lPTkApCi1zZXQoT1BVU19WRVJTSU9OX1NU
UklORyBAUFJPSkVDVF9WRVJTSU9OQCkKLXNldChPUFVTX1ZFUlNJT05fTUFKT1IgQFBST0pFQ1Rf
VkVSU0lPTl9NQUpPUkApCi1zZXQoT1BVU19WRVJTSU9OX01JTk9SIEBQUk9KRUNUX1ZFUlNJT05f
TUlOT1JAKQotc2V0KE9QVVNfVkVSU0lPTl9QQVRDSCBAUFJPSkVDVF9WRVJTSU9OX1BBVENIQCkK
LQotQFBBQ0tBR0VfSU5JVEAKLQotc2V0X2FuZF9jaGVjayhPUFVTX0lOQ0xVREVfRElSICJAUEFD
S0FHRV9JTkNMVURFX0lOU1RBTExfRElSQCIpCi1zZXRfYW5kX2NoZWNrKE9QVVNfSU5DTFVERV9E
SVJTICJAUEFDS0FHRV9JTkNMVURFX0lOU1RBTExfRElSQCIpCi0KLWluY2x1ZGUoJHtDTUFLRV9D
VVJSRU5UX0xJU1RfRElSfS9PcHVzVGFyZ2V0cy5jbWFrZSkKLQotc2V0KE9QVVNfTElCUkFSWSBP
cHVzOjpvcHVzKQotc2V0KE9QVVNfTElCUkFSSUVTIE9wdXM6Om9wdXMpCi0KLWNoZWNrX3JlcXVp
cmVkX2NvbXBvbmVudHMoT3B1cykKLQotc2V0KE9QVVNfRk9VTkQgMSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvUkVB
RE1FIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVz
L3NyYy9SRUFETUUKaW5kZXggMjdmZGRmOTZlOTAxM2I4NzNiMmEzOWM3MDc2MmUzOGQzOWIyMjQw
Ni4uNGIxMzA3NmZhMDU1ZjkyMDk0MTM2MmY3YTg0MjlmZDFlNWZlYjY4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9S
RUFETUUKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9SRUFETUUKQEAgLTM1LDcgKzM1LDcgQEAgQW4gb3B1cy10b29scyBwYWNrYWdl
IGlzIGF2YWlsYWJsZSB3aGljaCBwcm92aWRlcyBlbmNvZGluZyBhbmQgZGVjb2Rpbmcgb2YKIE9n
ZyBlbmNhcHN1bGF0ZWQgT3B1cyBmaWxlcyBhbmQgaW5jbHVkZXMgYSBudW1iZXIgb2YgdXNlZnVs
IGZlYXR1cmVzLgogCiBPcHVzLXRvb2xzIGNhbiBiZSBmb3VuZCBhdDoKLSBodHRwczovL2dpdC54
aXBoLm9yZy8/cD1vcHVzLXRvb2xzLmdpdAorIGh0dHBzOi8vZ2l0bGFiLnhpcGgub3JnL3hpcGgv
b3B1cy10b29scy5naXQKIG9yIG9uIHRoZSBtYWluIE9wdXMgd2Vic2l0ZToKICBodHRwczovL29w
dXMtY29kZWMub3JnLwogCkBAIC02OCw3ICs2OCw3IEBAIE9uIEFwcGxlIG1hY09TLCBpbnN0YWxs
IFhjb2RlIGFuZCBicmV3LnNoLCB0aGVuIGluIHRoZSBUZXJtaW5hbCBlbnRlcjoKIAogMSkgQ2xv
bmUgdGhlIHJlcG9zaXRvcnk6CiAKLSAgICAlIGdpdCBjbG9uZSBodHRwczovL2dpdC54aXBoLm9y
Zy9vcHVzLmdpdAorICAgICUgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0bGFiLnhpcGgub3JnL3hpcGgv
b3B1cy5naXQKICAgICAlIGNkIG9wdXMKIAogMikgQ29tcGlsaW5nIHRoZSBzb3VyY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9zcmMvUkVBRE1FLmRyYWZ0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9SRUFETUUuZHJhZnQKaW5kZXggOGQ4ZTI0ZGYyMmZmODRhNmQx
YTJiOWFlNjY5MTg3ZmIyODdhMzI0Yi4uOWMzMWJkMDIzZGE1Y2M4MmM1ZGEyYjI1YzJiZjUxNWQ3
YmNiZjJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9SRUFETUUuZHJhZnQKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9SRUFETUUuZHJhZnQKQEAgLTcs
NyArNyw3IEBAIElmIHRoaXMgZG9lcyBub3Qgd29yaywgb3IgaWYgeW91IHdhbnQgdG8gY2hhbmdl
IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24KIGluIHRoZSBNYWtlZmlsZS4KIAogQW4gdXAtdG8t
ZGF0ZSBpbXBsZW1lbnRhdGlvbiBjb25mb3JtaW5nIHRvIHRoaXMgc3RhbmRhcmQgaXMgYXZhaWxh
YmxlIGluIGEKLUdpdCByZXBvc2l0b3J5IGF0IGh0dHBzOi8vZ2l0LnhpcGgub3JnL29wdXMuZ2l0
IG9yIG9uIGEgd2Vic2l0ZSBhdDoKK0dpdCByZXBvc2l0b3J5IGF0IGh0dHBzOi8vZ2l0bGFiLnhp
cGgub3JnL3hpcGgvb3B1cy5naXQgb3Igb24gYSB3ZWJzaXRlIGF0OgogaHR0cHM6Ly9vcHVzLWNv
ZGVjLm9yZy8KIEhvd2V2ZXIsIGFsdGhvdWdoIHRoYXQgaW1wbGVtZW50YXRpb24gaXMgZXhwZWN0
ZWQgdG8gcmVtYWluIGNvbmZvcm1hbnQKIHdpdGggdGhlIHN0YW5kYXJkLCBpdCBpcyB0aGUgY29k
ZSBpbiB0aGlzIFJGQyB0aGF0IHNoYWxsIHJlbWFpbiBub3JtYXRpdmUuCkBAIC0xNyw3ICsxNyw3
IEBAIHN0ZXBzOgogMSkgQ2xvbmUgdGhlIHJlcG9zaXRvcnkgKGxhdGVzdCBpbXBsZW1lbnRhdGlv
biBvZiB0aGlzIHN0YW5kYXJkIGF0IHRoZSB0aW1lCiBvZiBwdWJsaWNhdGlvbikKIAotJSBnaXQg
Y2xvbmUgaHR0cHM6Ly9naXQueGlwaC5vcmcvb3B1cy5naXQKKyUgZ2l0IGNsb25lIGh0dHBzOi8v
Z2l0bGFiLnhpcGgub3JnL3hpcGgvb3B1cy5naXQKICUgY2Qgb3B1cwogCiAyKSBDb21waWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L29wdXMvc3JjL2NlbHQvYXJjaC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2FyY2guaAppbmRleCA1YzQ5NTc5ZjAxOGNjZmJl
NTYwMmQ1MDFiZWZlOTFjM2ZiMzhiODRhLi43NGRjYzRlMTZhMWU3ZjY1MzcxMWQ5ODZmNjIzYTQ5
NmVhMmNjYzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvYXJjaC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9hcmNoLmgKQEAgLTc0
LDYgKzc0LDkgQEAgdm9pZCBjZWx0X2ZhdGFsKGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAq
ZmlsZSwgaW50IGxpbmUpCiB7CiAjaWYgIWRlZmluZWQoQ0hST01JVU1fTk9fTE9HR0lORykKICAg
IGZwcmludGYgKHN0ZGVyciwgIkZhdGFsIChpbnRlcm5hbCkgZXJyb3IgaW4gJXMsIGxpbmUgJWQ6
ICVzXG4iLCBmaWxlLCBsaW5lLCBzdHIpOworI2VuZGlmCisjaWYgZGVmaW5lZChfTVNDX1ZFUikK
KyAgIF9zZXRfYWJvcnRfYmVoYXZpb3IoIDAsIF9XUklURV9BQk9SVF9NU0cpOwogI2VuZGlmCiAg
ICBhYm9ydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2FybS9hcm1jcHUuYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9hcm0vYXJt
Y3B1LmMKaW5kZXggNjk0YTYzYjc4ZTY4NzRkMWE4MGZlNDNhOWEzOGZjYmE2ODdlMjIwZS4uY2Nl
M2FlM2E5ZGI3MGM3ZTI0YjU4NzNjMjAwMzQ3ZDEwYmM3ZTVkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2Fy
bS9hcm1jcHUuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL2NlbHQvYXJtL2FybWNwdS5jCkBAIC05Myw2ICs5Myw4IEBAIHN0YXRp
YyBPUFVTX0lOTElORSBvcHVzX3VpbnQzMiBvcHVzX2NwdV9jYXBhYmlsaXRpZXModm9pZCl7CiAK
ICNlbGlmIGRlZmluZWQoX19saW51eF9fKQogLyogTGludXggYmFzZWQgKi8KKyNpbmNsdWRlIDxz
dGRpby5oPgorCiBvcHVzX3VpbnQzMiBvcHVzX2NwdV9jYXBhYmlsaXRpZXModm9pZCkKIHsKICAg
b3B1c191aW50MzIgZmxhZ3MgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2NlbHRfZGVjb2Rlci5jIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9j
ZWx0L2NlbHRfZGVjb2Rlci5jCmluZGV4IGU2ZWZjZTkzNTg1MWY3NzgwMmUyMTcxN2ExN2E4N2U1
MDg3YjEyZmIuLjc0Y2EzYjc0MGRmNzcxMDRiYThkMWRhMDg4NmNhNjlhZjk1MWJjOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1
cy9zcmMvY2VsdC9jZWx0X2RlY29kZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvY2VsdF9kZWNvZGVyLmMKQEAgLTEx
NywxMyArMTE3LDE5IEBAIHZvaWQgdmFsaWRhdGVfY2VsdF9kZWNvZGVyKENFTFREZWNvZGVyICpz
dCkKICNpZm5kZWYgQ1VTVE9NX01PREVTCiAgICBjZWx0X2Fzc2VydChzdC0+bW9kZSA9PSBvcHVz
X2N1c3RvbV9tb2RlX2NyZWF0ZSg0ODAwMCwgOTYwLCBOVUxMKSk7CiAgICBjZWx0X2Fzc2VydChz
dC0+b3ZlcmxhcCA9PSAxMjApOworICAgY2VsdF9hc3NlcnQoc3QtPmVuZCA8PSAyMSk7CisjZWxz
ZQorLyogRnJvbSBTZWN0aW9uIDQuMyBpbiB0aGUgc3BlYzogIlRoZSBub3JtYWwgQ0VMVCBsYXll
ciB1c2VzIDIxIG9mIHRob3NlIGJhbmRzLAorICAgdGhvdWdoIE9wdXMgQ3VzdG9tIChzZWUgU2Vj
dGlvbiA2LjIpIG1heSB1c2UgYSBkaWZmZXJlbnQgbnVtYmVyIG9mIGJhbmRzIgorCisgICBDaGVj
ayBpZiBpdCdzIHdpdGhpbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgQmFyayBmcmVxdWVuY3kgYmFu
ZHMgaW5zdGVhZCAqLworICAgY2VsdF9hc3NlcnQoc3QtPmVuZCA8PSAyNSk7CiAjZW5kaWYKICAg
IGNlbHRfYXNzZXJ0KHN0LT5jaGFubmVscyA9PSAxIHx8IHN0LT5jaGFubmVscyA9PSAyKTsKICAg
IGNlbHRfYXNzZXJ0KHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMSB8fCBzdC0+c3RyZWFtX2NoYW5u
ZWxzID09IDIpOwogICAgY2VsdF9hc3NlcnQoc3QtPmRvd25zYW1wbGUgPiAwKTsKICAgIGNlbHRf
YXNzZXJ0KHN0LT5zdGFydCA9PSAwIHx8IHN0LT5zdGFydCA9PSAxNyk7CiAgICBjZWx0X2Fzc2Vy
dChzdC0+c3RhcnQgPCBzdC0+ZW5kKTsKLSAgIGNlbHRfYXNzZXJ0KHN0LT5lbmQgPD0gMjEpOwog
I2lmZGVmIE9QVVNfQVJDSE1BU0sKICAgIGNlbHRfYXNzZXJ0KHN0LT5hcmNoID49IDApOwogICAg
Y2VsdF9hc3NlcnQoc3QtPmFyY2ggPD0gT1BVU19BUkNITUFTSyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQv
Y2VsdF9lbmNvZGVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL2NlbHQvY2VsdF9lbmNvZGVyLmMKaW5kZXggNDRjYjA4NTBhYmQxYTIy
MzdhMTVkMGVkMTk0ZDg5ODI0N2VkMjE3NC4uZDZmOGFmYzIwYmZiNmNjOTJmMDA4ODk5ZWI4ODNl
ZDg1MWRkYmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2NlbHRfZW5jb2Rlci5jCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9jZWx0
X2VuY29kZXIuYwpAQCAtMTU3MSw3ICsxNTcxLDcgQEAgaW50IGNlbHRfZW5jb2RlX3dpdGhfZWMo
Q0VMVEVuY29kZXIgKiBPUFVTX1JFU1RSSUNUIHN0LCBjb25zdCBvcHVzX3ZhbDE2ICogcGNtLAog
ICAgICAgICAgICAgICAgKHRtcCs0Km1vZGUtPkZzKS8oOCptb2RlLT5GcyktISFzdC0+c2lnbmFs
bGluZykpOwogICAgICAgZWZmZWN0aXZlQnl0ZXMgPSBuYkNvbXByZXNzZWRCeXRlcyAtIG5iRmls
bGVkQnl0ZXM7CiAgICB9Ci0gICBlcXVpdl9yYXRlID0gKChvcHVzX2ludDMyKW5iQ29tcHJlc3Nl
ZEJ5dGVzKjgqNTAgPj4gKDMtTE0pKSAtICg0MCpDKzIwKSooKDQwMD4+TE0pIC0gNTApOworICAg
ZXF1aXZfcmF0ZSA9ICgob3B1c19pbnQzMiluYkNvbXByZXNzZWRCeXRlcyo4KjUwIDw8ICgzLUxN
KSkgLSAoNDAqQysyMCkqKCg0MDA+PkxNKSAtIDUwKTsKICAgIGlmIChzdC0+Yml0cmF0ZSAhPSBP
UFVTX0JJVFJBVEVfTUFYKQogICAgICAgZXF1aXZfcmF0ZSA9IElNSU4oZXF1aXZfcmF0ZSwgc3Qt
PmJpdHJhdGUgLSAoNDAqQysyMCkqKCg0MDA+PkxNKSAtIDUwKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2Vs
dC9jZWx0X2xwYy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9vcHVzL3NyYy9jZWx0L2NlbHRfbHBjLmMKaW5kZXggOGVjYjY5M2VlOTg0ZGI5NGQ4N2Qw
NDU5MjIyZDE5MTQzOWViZWU0ZC4uNDU3ZTdlZDBkMjRmNzFkNzc3MjJiNDI4ZjIyMjNkYjZhMmUy
MWY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2NlbHRfbHBjLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2NlbHRfbHBjLmMKQEAg
LTU3LDEwICs1NywxMCBAQCBpbnQgICAgICAgICAgcAogICAgICAgICAgb3B1c192YWwzMiByciA9
IDA7CiAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKQogICAgICAgICAgICAgcnIgKz0g
TVVMVDMyXzMyX1EzMShscGNbal0sYWNbaSAtIGpdKTsKLSAgICAgICAgIHJyICs9IFNIUjMyKGFj
W2kgKyAxXSwzKTsKLSAgICAgICAgIHIgPSAtZnJhY19kaXYzMihTSEwzMihyciwzKSwgZXJyb3Ip
OworICAgICAgICAgcnIgKz0gU0hSMzIoYWNbaSArIDFdLDYpOworICAgICAgICAgciA9IC1mcmFj
X2RpdjMyKFNITDMyKHJyLDYpLCBlcnJvcik7CiAgICAgICAgICAvKiAgVXBkYXRlIExQQyBjb2Vm
ZmljaWVudHMgYW5kIHRvdGFsIGVycm9yICovCi0gICAgICAgICBscGNbaV0gPSBTSFIzMihyLDMp
OworICAgICAgICAgbHBjW2ldID0gU0hSMzIociw2KTsKICAgICAgICAgIGZvciAoaiA9IDA7IGog
PCAoaSsxKT4+MTsgaisrKQogICAgICAgICAgewogICAgICAgICAgICAgb3B1c192YWwzMiB0bXAx
LCB0bXAyOwpAQCAtODIsOCArODIsNTIgQEAgaW50ICAgICAgICAgIHAKICAgICAgIH0KICAgIH0K
ICNpZmRlZiBGSVhFRF9QT0lOVAotICAgZm9yIChpPTA7aTxwO2krKykKLSAgICAgIF9scGNbaV0g
PSBST1VORDE2KGxwY1tpXSwxNik7CisgICB7CisgICAgICAvKiBDb252ZXJ0IHRoZSBpbnQzMiBs
cGNzIHRvIGludDE2IGFuZCBlbnN1cmUgdGhlcmUgYXJlIG5vIHdyYXAtYXJvdW5kcy4KKyAgICAg
ICAgIFRoaXMgcmV1c2VzIHRoZSBsb2dpYyBpbiBzaWxrX0xQQ19maXQoKSBhbmQgc2lsa19id2V4
cGFuZGVyXzMyKCkuIEFueSBidWcKKyAgICAgICAgIGZpeGVzIHNob3VsZCBhbHNvIGJlIGFwcGxp
ZWQgdGhlcmUuICovCisgICAgICBpbnQgaXRlciwgaWR4ID0gMDsKKyAgICAgIG9wdXNfdmFsMzIg
bWF4YWJzLCBhYnN2YWwsIGNoaXJwX1ExNiwgY2hpcnBfbWludXNfb25lX1ExNjsKKworICAgICAg
Zm9yIChpdGVyID0gMDsgaXRlciA8IDEwOyBpdGVyKyspIHsKKyAgICAgICAgIG1heGFicyA9IDA7
CisgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcDsgaSsrKSB7CisgICAgICAgICAgICBhYnN2YWwg
PSBBQlMzMihscGNbaV0pOworICAgICAgICAgICAgaWYgKGFic3ZhbCA+IG1heGFicykgeworICAg
ICAgICAgICAgICAgbWF4YWJzID0gYWJzdmFsOworICAgICAgICAgICAgICAgaWR4ID0gaTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIG1heGFicyA9IFBTSFIzMihtYXhhYnMs
IDEzKTsgIC8qIFEyNS0+UTEyICovCisKKyAgICAgICAgIGlmIChtYXhhYnMgPiAzMjc2Nykgewor
ICAgICAgICAgICAgbWF4YWJzID0gTUlOMzIobWF4YWJzLCAxNjM4MzgpOworICAgICAgICAgICAg
Y2hpcnBfUTE2ID0gUUNPTlNUMzIoMC45OTksIDE2KSAtIERJVjMyKFNITDMyKG1heGFicyAtIDMy
NzY3LCAxNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0hSMzIoTVVMVDMyXzMyXzMyKG1heGFicywgaWR4ICsgMSksIDIpKTsKKyAgICAgICAg
ICAgIGNoaXJwX21pbnVzX29uZV9RMTYgPSBjaGlycF9RMTYgLSA2NTUzNjsKKworICAgICAgICAg
ICAgLyogQXBwbHkgYmFuZHdpZHRoIGV4cGFuc2lvbi4gKi8KKyAgICAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBwIC0gMTsgaSsrKSB7CisgICAgICAgICAgICAgICBscGNbaV0gPSBNVUxUMzJfMzJf
UTE2KGNoaXJwX1ExNiwgbHBjW2ldKTsKKyAgICAgICAgICAgICAgIGNoaXJwX1ExNiArPSBQU0hS
MzIoTVVMVDMyXzMyXzMyKGNoaXJwX1ExNiwgY2hpcnBfbWludXNfb25lX1ExNiksIDE2KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGxwY1twIC0gMV0gPSBNVUxUMzJfMzJfUTE2KGNoaXJw
X1ExNiwgbHBjW3AgLSAxXSk7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICB9CisgICAgICB9CisKKyAgICAgIGlmIChpdGVyID09IDEwKSB7CisgICAgICAg
ICAvKiBJZiB0aGUgY29lZmZzIHN0aWxsIGRvIG5vdCBmaXQgaW50byB0aGUgMTYgYml0IHJhbmdl
IGFmdGVyIDEwIGl0ZXJhdGlvbnMsCisgICAgICAgICAgICBmYWxsIGJhY2sgdG8gdGhlIEEoeik9
MSBmaWx0ZXIuICovCisgICAgICAgICBPUFVTX0NMRUFSKGxwYywgcCk7CisgICAgICAgICBfbHBj
WzBdID0gNDA5NjsgIC8qIFExMiAqLworICAgICAgfSBlbHNlIHsKKyAgICAgICAgIGZvciAoaSA9
IDA7IGkgPCBwOyBpKyspIHsKKyAgICAgICAgICAgIF9scGNbaV0gPSBFWFRSQUNUMTYoUFNIUjMy
KGxwY1tpXSwgMTMpKTsgIC8qIFEyNS0+UTEyICovCisgICAgICAgICB9CisgICAgICB9CisgICB9
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2VjaW50cmluLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvZWNpbnRyaW4u
aAppbmRleCAyMjYzY2ZmNmJkZjMwMTVmMDZhODEzNTQxZjBiZmY1NWVmNjdhMzA4Li42NmE0YzM2
ZWE0MGQ1Y2YwYzUyM2YwNjZjYjMwOTNmZWE1YTBlYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvZWNpbnRy
aW4uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L29wdXMvc3JjL2NlbHQvZWNpbnRyaW4uaApAQCAtNDksNyArNDksMTEgQEAKICAgVGhpcyBtYWNy
byBzaG91bGQgb25seSBiZSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgZWNfaWxvZygpLCBpZiBpdCBp
cyBkZWZpbmVkLgogICBBbGwgb3RoZXIgY29kZSBzaG91bGQgdXNlIEVDX0lMT0coKSBpbnN0ZWFk
LiovCiAjaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE0MDApCisjaWYgZGVm
aW5lZChfTVNDX1ZFUikgJiYgKF9NU0NfVkVSID49IDE5MTApCisjIGluY2x1ZGUgPGludHJpbjAu
aD4gLyogSW1wcm92ZSBjb21waWxlciB0aHJvdWdocHV0LiAqLworI2Vsc2UKICMgaW5jbHVkZSA8
aW50cmluLmg+CisjZW5kaWYKIC8qSW4gX0RFQlVHIG1vZGUgdGhpcyBpcyBub3QgYW4gaW50cmlu
c2ljIGJ5IGRlZmF1bHQuKi8KICMgcHJhZ21hIGludHJpbnNpYyhfQml0U2NhblJldmVyc2UpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvb3B1cy9zcmMvY2VsdC9maXhlZF9kZWJ1Zy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2ZpeGVkX2RlYnVnLmgKaW5kZXgg
ZjQzNTI5NTIzNGNmZmI1M2NiMDU0ZmNkZDBjYTA4ODVmNzg2ZDBmYS4uMzc2NWJhYTYwYjUwMTZi
YjdiMDNkNTBlYzJlYmJjYjBmZWUzMmZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2ZpeGVkX2RlYnVnLmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVz
L3NyYy9jZWx0L2ZpeGVkX2RlYnVnLmgKQEAgLTQxMCw2ICs0MTAsNTEgQEAgc3RhdGljIE9QVVNf
SU5MSU5FIHNob3J0IE1VTFQxNl8xNl8xNihpbnQgYSwgaW50IGIpCiAgICByZXR1cm4gcmVzOwog
fQogCisvKiByZXN1bHQgZml0cyBpbiAzMiBiaXRzICovCitzdGF0aWMgT1BVU19JTkxJTkUgaW50
IE1VTFQzMl8zMl8zMihvcHVzX2ludDY0IGEsIG9wdXNfaW50NjQgYikKK3sKKyAgIG9wdXNfaW50
NjQgcmVzOworICAgaWYgKCFWRVJJRllfSU5UKGEpIHx8ICFWRVJJRllfSU5UKGIpKQorICAgewor
ICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTVVMVDMyXzMyXzMyOiBpbnB1dHMgYXJlIG5vdCBpbnQ6
ICVkICVkXG4iLCBhLCBiKTsKKyNpZmRlZiBGSVhFRF9ERUJVR19BU1NFUlQKKyAgICAgIGNlbHRf
YXNzZXJ0KDApOworI2VuZGlmCisgICB9CisgICByZXMgPSBhKmI7CisgICBpZiAoIVZFUklGWV9J
TlQocmVzKSkKKyAgIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIk1VTFQzMl8zMl8zMjogb3V0
cHV0IGlzIG5vdCBpbnQ6ICVkXG4iLCByZXMpOworI2lmZGVmIEZJWEVEX0RFQlVHX0FTU0VSVAor
ICAgICAgY2VsdF9hc3NlcnQoMCk7CisjZW5kaWYKKyAgIH0KKyAgIGNlbHRfbWlwcys9NTsKKyAg
IHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBPUFVTX0lOTElORSBpbnQgTVVMVDMyXzMyX1ExNihv
cHVzX2ludDY0IGEsIG9wdXNfaW50NjQgYikKK3sKKyAgIG9wdXNfaW50NjQgcmVzOworICAgaWYg
KCFWRVJJRllfSU5UKGEpIHx8ICFWRVJJRllfSU5UKGIpKQorICAgeworICAgICAgZnByaW50ZiAo
c3RkZXJyLCAiTVVMVDMyXzMyX1ExNjogaW5wdXRzIGFyZSBub3QgaW50OiAlZCAlZFxuIiwgYSwg
Yik7CisjaWZkZWYgRklYRURfREVCVUdfQVNTRVJUCisgICAgICBjZWx0X2Fzc2VydCgwKTsKKyNl
bmRpZgorICAgfQorICAgcmVzID0gKChvcHVzX2ludDY0KShhKSoob3B1c19pbnQ2NCkoYikpID4+
IDE2OworICAgaWYgKCFWRVJJRllfSU5UKHJlcykpCisgICB7CisgICAgICBmcHJpbnRmIChzdGRl
cnIsICJNVUxUMzJfMzJfUTE2OiBvdXRwdXQgaXMgbm90IGludDogJWQqJWQ9JWRcbiIsIGEsIGIs
IChpbnQpcmVzKTsKKyNpZmRlZiBGSVhFRF9ERUJVR19BU1NFUlQKKyAgICAgIGNlbHRfYXNzZXJ0
KDApOworI2VuZGlmCisgICB9CisgICBjZWx0X21pcHMrPTU7CisgICByZXR1cm4gcmVzOworfQor
CiAjZGVmaW5lIE1VTFQxNl8xNihhLCBiKSBNVUxUMTZfMTZfKGEsIGIsIF9fRklMRV9fLCBfX0xJ
TkVfXykKIHN0YXRpYyBPUFVTX0lOTElORSBpbnQgTVVMVDE2XzE2XyhpbnQgYSwgaW50IGIsIGNo
YXIgKmZpbGUsIGludCBsaW5lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L2ZpeGVkX2dlbmVyaWMuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMv
Y2VsdC9maXhlZF9nZW5lcmljLmgKaW5kZXggNWY0YWJkYTc2ZWQ4YzA5NmZkMzBmOTU3ZGYyMDBl
ZjcwOTE1ZTdlMy4uOGYyOWQ0NmJiNzY0NzVkZTQ3NTlkNGRjYTVhNDFhMTQwYzljYzEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9jZWx0L2ZpeGVkX2dlbmVyaWMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvZml4ZWRfZ2VuZXJpYy5oCkBA
IC01Nyw2ICs1NywxMyBAQAogI2RlZmluZSBNVUxUMTZfMzJfUTE1KGEsYikgQUREMzIoU0hMKE1V
TFQxNl8xNigoYSksU0hSKChiKSwxNikpLDEpLCBTSFIoTVVMVDE2XzE2U1UoKGEpLCgoYikmMHgw
MDAwZmZmZikpLDE1KSkKICNlbmRpZgogCisvKiogMzJ4MzIgbXVsdGlwbGljYXRpb24sIGZvbGxv
d2VkIGJ5IGEgMTYtYml0IHNoaWZ0IHJpZ2h0LiBSZXN1bHRzIGZpdHMgaW4gMzIgYml0cyAqLwor
I2lmIE9QVVNfRkFTVF9JTlQ2NAorI2RlZmluZSBNVUxUMzJfMzJfUTE2KGEsYikgKChvcHVzX3Zh
bDMyKVNIUigob3B1c19pbnQ2NCkoYSkqKG9wdXNfaW50NjQpKGIpLDE2KSkKKyNlbHNlCisjZGVm
aW5lIE1VTFQzMl8zMl9RMTYoYSxiKSAoQUREMzIoQUREMzIoQUREMzIoKG9wdXNfdmFsMzIpKFNI
UjMyKCgob3B1c191aW50MzIpKChhKSYweDAwMDBmZmZmKSoob3B1c191aW50MzIpKChiKSYweDAw
MDBmZmZmKSksMTYpKSwgTVVMVDE2XzE2U1UoU0hSMzIoYSwxNiksKChiKSYweDAwMDBmZmZmKSkp
LCBNVUxUMTZfMTZTVShTSFIzMihiLDE2KSwoKGEpJjB4MDAwMGZmZmYpKSksIFNITDMyKE1VTFQx
Nl8xNihTSFIzMihhLDE2KSxTSFIzMihiLDE2KSksMTYpKSkKKyNlbmRpZgorCiAvKiogMzJ4MzIg
bXVsdGlwbGljYXRpb24sIGZvbGxvd2VkIGJ5IGEgMzEtYml0IHNoaWZ0IHJpZ2h0LiBSZXN1bHRz
IGZpdHMgaW4gMzIgYml0cyAqLwogI2lmIE9QVVNfRkFTVF9JTlQ2NAogI2RlZmluZSBNVUxUMzJf
MzJfUTMxKGEsYikgKChvcHVzX3ZhbDMyKVNIUigob3B1c19pbnQ2NCkoYSkqKG9wdXNfaW50NjQp
KGIpLDMxKSkKQEAgLTEwMiw5ICsxMDksOSBAQAogCiAjZGVmaW5lIFNBVFVSQVRFMTYoeCkgKEVY
VFJBQ1QxNigoeCk+MzI3NjcgPyAzMjc2NyA6ICh4KTwtMzI3NjggPyAtMzI3NjggOiAoeCkpKQog
Ci0vKiogU2hpZnQgYnkgYSBhbmQgcm91bmQtdG8tbmVhcmVhc3QgMzItYml0IHZhbHVlLiBSZXN1
bHQgaXMgYSAxNi1iaXQgdmFsdWUgKi8KKy8qKiBTaGlmdCBieSBhIGFuZCByb3VuZC10by1uZWFy
ZXN0IDMyLWJpdCB2YWx1ZS4gUmVzdWx0IGlzIGEgMTYtYml0IHZhbHVlICovCiAjZGVmaW5lIFJP
VU5EMTYoeCxhKSAoRVhUUkFDVDE2KFBTSFIzMigoeCksKGEpKSkpCi0vKiogU2hpZnQgYnkgYSBh
bmQgcm91bmQtdG8tbmVhcmVhc3QgMzItYml0IHZhbHVlLiBSZXN1bHQgaXMgYSBzYXR1cmF0ZWQg
MTYtYml0IHZhbHVlICovCisvKiogU2hpZnQgYnkgYSBhbmQgcm91bmQtdG8tbmVhcmVzdCAzMi1i
aXQgdmFsdWUuIFJlc3VsdCBpcyBhIHNhdHVyYXRlZCAxNi1iaXQgdmFsdWUgKi8KICNkZWZpbmUg
U1JPVU5EMTYoeCxhKSBFWFRSQUNUMTYoU0FUVVJBVEUoUFNIUjMyKHgsYSksIDMyNzY3KSk7CiAK
IC8qKiBEaXZpZGUgYnkgdHdvICovCkBAIC0xMzEsNiArMTM4LDkgQEAKIC8qKiAxNngxNiBtdWx0
aXBsaWNhdGlvbiB3aGVyZSB0aGUgcmVzdWx0IGZpdHMgaW4gMTYgYml0cyAqLwogI2RlZmluZSBN
VUxUMTZfMTZfMTYoYSxiKSAgICAgKCgoKG9wdXNfdmFsMTYpKGEpKSooKG9wdXNfdmFsMTYpKGIp
KSkpCiAKKy8qKiAzMngzMiBtdWx0aXBsaWNhdGlvbiB3aGVyZSB0aGUgcmVzdWx0IGZpdHMgaW4g
MzIgYml0cyAqLworI2RlZmluZSBNVUxUMzJfMzJfMzIoYSxiKSAgICAgKCgoKG9wdXNfdmFsMzIp
KGEpKSooKG9wdXNfdmFsMzIpKGIpKSkpCisKIC8qIChvcHVzX3ZhbDMyKShvcHVzX3ZhbDE2KSBn
aXZlcyBUSSBjb21waWxlciBhIGhpbnQgdGhhdCBpdCdzIDE2eDE2LT4zMiBtdWx0aXBseSAqLwog
LyoqIDE2eDE2IG11bHRpcGxpY2F0aW9uIHdoZXJlIHRoZSByZXN1bHQgZml0cyBpbiAzMiBiaXRz
ICovCiAjZGVmaW5lIE1VTFQxNl8xNihhLGIpICAgICAoKChvcHVzX3ZhbDMyKShvcHVzX3ZhbDE2
KShhKSkqKChvcHVzX3ZhbDMyKShvcHVzX3ZhbDE2KShiKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvZmxv
YXRfY2FzdC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9jZWx0L2Zsb2F0X2Nhc3QuaAppbmRleCA4ODlkYWU5NjVmYWQ0ZmQzYTdiNzlh
MjY0MmQ3NzczZjkwNWIyMzI3Li45ZDM0OTc2ZWUyMTZhYjJkZWVhYWJmYzMwNzg4ZmUwYWU3NjNi
ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL2NlbHQvZmxvYXRfY2FzdC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9mbG9hdF9jYXN0LmgK
QEAgLTY3LDYgKzY3LDM4IEBACiAjaW5jbHVkZSA8eG1taW50cmluLmg+CiBzdGF0aWMgT1BVU19J
TkxJTkUgb3B1c19pbnQzMiBmbG9hdDJpbnQoZmxvYXQgeCkge3JldHVybiBfbW1fY3Z0X3NzMnNp
KF9tbV9zZXRfc3MoeCkpO30KIAorI2VsaWYgKGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVS
ID49IDE0MDApICYmIChkZWZpbmVkKF9NX1g2NCkgfHwgKGRlZmluZWQoX01fSVg4Nl9GUCkgJiYg
X01fSVg4Nl9GUCA+PSAxKSkKKworICAgICAgICAjaW5jbHVkZSA8eG1taW50cmluLmg+CisgICAg
ICAgIHN0YXRpYyBPUFVTX0lOTElORSBvcHVzX2ludDMyIGZsb2F0MmludChmbG9hdCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIF9tbV9sb2FkX3NzIHdpbGwgZ2VuZXJhdGUg
c2FtZSBjb2RlIGFzIF9tbV9zZXRfc3MKKyAgICAgICAgICAgICAgICAqKiBpbiBfTVNDX1ZFUiA+
PSAxOTE0IC8wMiBzbyBrZWVwIF9fbW1fbG9hZF9fc3MKKyAgICAgICAgICAgICAgICAqKiBmb3Ig
YmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAg
ICAgIHJldHVybiBfbW1fY3Z0c3Nfc2kzMihfbW1fbG9hZF9zcygmdmFsdWUpKTsKKyAgICAgICAg
fQorCisjZWxpZiAoZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTQwMCkgJiYgZGVm
aW5lZCAoX01fSVg4NikKKworICAgICAgICAjaW5jbHVkZSA8bWF0aC5oPgorCisgICAgICAgIC8q
ICAgICAgV2luMzIgZG9lc24ndCBzZWVtIHRvIGhhdmUgdGhlc2UgZnVuY3Rpb25zLgorICAgICAg
ICAqKiAgICAgIFRoZXJlZm9yZSBpbXBsZW1lbnQgT1BVU19JTkxJTkUgdmVyc2lvbnMgb2YgdGhl
c2UgZnVuY3Rpb25zIGhlcmUuCisgICAgICAgICovCisKKyAgICAgICAgc3RhdGljIE9QVVNfSU5M
SU5FIG9wdXNfaW50MzIKKyAgICAgICAgZmxvYXQyaW50IChmbG9hdCBmbHQpCisgICAgICAgIHsg
ICAgICAgaW50IGludGdyOworCisgICAgICAgICAgICAgICAgX2FzbQorICAgICAgICAgICAgICAg
IHsgICAgICAgZmxkIGZsdAorICAgICAgICAgICAgICAgICAgICAgICAgZmlzdHAgaW50Z3IKKyAg
ICAgICAgICAgICAgICB9IDsKKworICAgICAgICAgICAgICAgIHJldHVybiBpbnRnciA7CisgICAg
ICAgIH0KKwogI2VsaWYgZGVmaW5lZChIQVZFX0xSSU5URikKIAogLyogICAgICBUaGVzZSBkZWZp
bmVzIGVuYWJsZSBmdW5jdGlvbmFsaXR5IGludHJvZHVjZWQgd2l0aCB0aGUgMTk5OSBJU08gQwpA
QCAtOTYsMzIgKzEyOCw2IEBAIHN0YXRpYyBPUFVTX0lOTElORSBvcHVzX2ludDMyIGZsb2F0Mmlu
dChmbG9hdCB4KSB7cmV0dXJuIF9tbV9jdnRfc3Myc2koX21tX3NldF9zCiAjaW5jbHVkZSA8bWF0
aC5oPgogI2RlZmluZSBmbG9hdDJpbnQoeCkgbHJpbnQoeCkKIAotI2VsaWYgKGRlZmluZWQoX01T
Q19WRVIpICYmIF9NU0NfVkVSID49IDE0MDApICYmIChkZWZpbmVkKF9NX1g2NCkgfHwgKGRlZmlu
ZWQoX01fSVg4Nl9GUCkgJiYgX01fSVg4Nl9GUCA+PSAxKSkKLSAgICAgICAgI2luY2x1ZGUgPHht
bWludHJpbi5oPgotCi0gICAgICAgIHN0YXRpYyBfX2lubGluZSBsb25nIGludCBmbG9hdDJpbnQo
ZmxvYXQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gX21tX2N2dHNz
X3NpMzIoX21tX2xvYWRfc3MoJnZhbHVlKSk7Ci0gICAgICAgIH0KLSNlbGlmIChkZWZpbmVkKF9N
U0NfVkVSKSAmJiBfTVNDX1ZFUiA+PSAxNDAwKSAmJiBkZWZpbmVkIChfTV9JWDg2KQotICAgICAg
ICAjaW5jbHVkZSA8bWF0aC5oPgotCi0gICAgICAgIC8qICAgICAgV2luMzIgZG9lc24ndCBzZWVt
IHRvIGhhdmUgdGhlc2UgZnVuY3Rpb25zLgotICAgICAgICAqKiAgICAgIFRoZXJlZm9yZSBpbXBs
ZW1lbnQgT1BVU19JTkxJTkUgdmVyc2lvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGhlcmUuCi0gICAg
ICAgICovCi0KLSAgICAgICAgc3RhdGljIF9faW5saW5lIGxvbmcgaW50Ci0gICAgICAgIGZsb2F0
MmludCAoZmxvYXQgZmx0KQotICAgICAgICB7ICAgICAgIGludCBpbnRncjsKLQotICAgICAgICAg
ICAgICAgIF9hc20KLSAgICAgICAgICAgICAgICB7ICAgICAgIGZsZCBmbHQKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZpc3RwIGludGdyCi0gICAgICAgICAgICAgICAgfSA7Ci0KLSAgICAgICAg
ICAgICAgICByZXR1cm4gaW50Z3IgOwotICAgICAgICB9Ci0KICNlbHNlCiAKICNpZiAoZGVmaW5l
ZChfX0dOVUNfXykgJiYgZGVmaW5lZChfX1NURENfXykgJiYgX19TVERDX18gJiYgX19TVERDX1ZF
UlNJT05fXyA+PSAxOTk5MDFMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L21hdGhvcHMuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9tYXRo
b3BzLmgKaW5kZXggNWU4NmZmMGRkMjU3OWJhN2I0YjdhYTU3Yjg1OTNlYzA3MjIzM2E5NS4uZmUy
OWRhYzFjMjFkZjNiYTA2MGEwMDY3NzAwYTk0NzFhOGFjYWRmZCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L21h
dGhvcHMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L29wdXMvc3JjL2NlbHQvbWF0aG9wcy5oCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIE9Q
VVNfSU5MSU5FIGZsb2F0IGNlbHRfbG9nMihmbG9hdCB4KQogICAgfSBpbjsKICAgIGluLmYgPSB4
OwogICAgaW50ZWdlciA9IChpbi5pPj4yMyktMTI3OwotICAgaW4uaSAtPSBpbnRlZ2VyPDwyMzsK
KyAgIGluLmkgLT0gKG9wdXNfdWludDMyKWludGVnZXI8PDIzOwogICAgZnJhYyA9IGluLmYgLSAx
LjVmOwogICAgZnJhYyA9IC0wLjQxNDQ1NDE4ZiArIGZyYWMqKDAuOTU5MDkyMzJmCiAgICAgICAg
ICAgKyBmcmFjKigtMC4zMzk1MTI5MGYgKyBmcmFjKjAuMTY1NDEwOTdmKSk7CkBAIC0xNjAsNyAr
MTYwLDcgQEAgc3RhdGljIE9QVVNfSU5MSU5FIGZsb2F0IGNlbHRfZXhwMihmbG9hdCB4KQogICAg
LyogSzAgPSAxLCBLMSA9IGxvZygyKSwgSzIgPSAzLTQqbG9nKDIpLCBLMyA9IDMqbG9nKDIpIC0g
MiAqLwogICAgcmVzLmYgPSAwLjk5OTkyNTIyZiArIGZyYWMgKiAoMC42OTU4MzM1NGYKICAgICAg
ICAgICAgKyBmcmFjICogKDAuMjI2MDY3MTZmICsgMC4wNzgwMjQ1MjNmKmZyYWMpKTsKLSAgIHJl
cy5pID0gKHJlcy5pICsgKGludGVnZXI8PDIzKSkgJiAweDdmZmZmZmZmOworICAgcmVzLmkgPSAo
cmVzLmkgKyAoKG9wdXNfdWludDMyKWludGVnZXI8PDIzKSkgJiAweDdmZmZmZmZmOwogICAgcmV0
dXJuIHJlcy5mOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvbWVzb24uYnVpbGQgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvbWVzb24u
YnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzcwZWExZmUwYWM3ZWJhYWEzOGYyYWE3YTJiZTgzMWVmMjA4ZjA0
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9tZXNvbi5idWlsZApAQCAtMCwwICsxLDYzIEBACitj
ZWx0X3NvdXJjZXMgPSBzb3VyY2VzWydDRUxUX1NPVVJDRVMnXQorCitjZWx0X3NzZV9zb3VyY2Vz
ID0gc291cmNlc1snQ0VMVF9TT1VSQ0VTX1NTRSddCisKK2NlbHRfc3NlMl9zb3VyY2VzID0gc291
cmNlc1snQ0VMVF9TT1VSQ0VTX1NTRTInXQorCitjZWx0X3NzZTRfMV9zb3VyY2VzID0gc291cmNl
c1snQ0VMVF9TT1VSQ0VTX1NTRTRfMSddCisKK2NlbHRfbmVvbl9pbnRyX3NvdXJjZXMgPSBzb3Vy
Y2VzWydDRUxUX1NPVVJDRVNfQVJNX05FT05fSU5UUiddCisKK2NlbHRfc3RhdGljX2xpYnMgPSBb
XQorCitmb3JlYWNoIGludHJfbmFtZSA6IFsnc3NlJywgJ3NzZTInLCAnc3NlNF8xJywgJ25lb25f
aW50ciddCisgIGhhdmVfaW50ciA9IGdldF92YXJpYWJsZSgnaGF2ZV8nICsgaW50cl9uYW1lKQor
ICBpZiBub3QgaGF2ZV9pbnRyCisgICAgY29udGludWUKKyAgZW5kaWYKKworICBpbnRyX3NvdXJj
ZXMgPSBnZXRfdmFyaWFibGUoJ2NlbHRfQDBAX3NvdXJjZXMnLmZvcm1hdChpbnRyX25hbWUpKQor
ICBpbnRyX2FyZ3MgPSBnZXRfdmFyaWFibGUoJ29wdXNfQDBAX2FyZ3MnLmZvcm1hdChpbnRyX25h
bWUpLCBbXSkKKyAgY2VsdF9zdGF0aWNfbGlicyArPSBzdGF0aWNfbGlicmFyeSgnY2VsdF8nICsg
aW50cl9uYW1lLCBpbnRyX3NvdXJjZXMsCisgICAgICBjX2FyZ3M6IGludHJfYXJncywKKyAgICAg
IGluY2x1ZGVfZGlyZWN0b3JpZXM6IG9wdXNfaW5jbHVkZXMsCisgICAgICBpbnN0YWxsOiBmYWxz
ZSkKK2VuZGZvcmVhY2gKKworaGF2ZV9hcm1faW50cmluc2ljc19vcl9hc20gPSBoYXZlX2FybV9u
ZTEwCitpZiAoaW50cmluc2ljc19zdXBwb3J0Lmxlbmd0aCgpICsgYXNtX29wdGltaXphdGlvbi5s
ZW5ndGgoKSArIGlubGluZV9vcHRpbWl6YXRpb24ubGVuZ3RoKCkpID4gMAorICBoYXZlX2FybV9p
bnRyaW5zaWNzX29yX2FzbSA9IHRydWUKK2VuZGlmCisKK2lmIGhvc3RfY3B1X2ZhbWlseSBpbiBb
J2FybScsICdhYXJjaDY0J10gYW5kIGhhdmVfYXJtX2ludHJpbnNpY3Nfb3JfYXNtCisgIGNlbHRf
c291cmNlcyArPSAgc291cmNlc1snQ0VMVF9TT1VSQ0VTX0FSTSddCisgIGlmIGhhdmVfYXJtX25l
MTAKKyAgICBjZWx0X3NvdXJjZXMgKz0gc291cmNlc1snQ0VMVF9TT1VSQ0VTX0FSTV9ORTEwJ10K
KyAgZW5kaWYKKyAgaWYgb3B1c19hcm1fZXh0ZXJuYWxfYXNtCisgICAgYXJtMmdudSA9IFtmaW5k
X3Byb2dyYW0oJ2FybS9hcm0yZ251LnBsJyldICsgYXJtMmdudV9hcmdzCisgICAgY2VsdF9zb3Vy
Y2VzX2FybV9hc20gPSBjb25maWd1cmVfZmlsZShpbnB1dDogJ2FybS9jZWx0X3BpdGNoX3hjb3Jy
X2FybS5zJywKKyAgICAgIG91dHB1dDogJ0BCQVNFTkFNRUAtZ251LlMnLAorICAgICAgY29tbWFu
ZDogYXJtMmdudSArIFsnQElOUFVUQCddLAorICAgICAgY2FwdHVyZTogdHJ1ZSkKKyAgICBjZWx0
X2FybV9hcm1vcHRzX3MgPSBjb25maWd1cmVfZmlsZShpbnB1dDogJ2FybS9hcm1vcHRzLnMuaW4n
LAorICAgICAgb3V0cHV0OiAnYXJtL2FybW9wdHMucycsCisgICAgICBjb25maWd1cmF0aW9uOiBv
cHVzX2NvbmYpCisgICAgY2VsdF9zdGF0aWNfbGlicyArPSBzdGF0aWNfbGlicmFyeSgnY2VsdC1h
cm1hc20nLAorICAgICAgY2VsdF9hcm1fYXJtb3B0c19zLCBjZWx0X3NvdXJjZXNfYXJtX2FzbSwK
KyAgICAgIGluc3RhbGw6IGZhbHNlKQorICBlbmRpZgorZW5kaWYKKworY2VsdF9jX2FyZ3MgPSBb
XQoraWYgaG9zdF9zeXN0ZW0gPT0gJ3dpbmRvd3MnCisgIGNlbHRfY19hcmdzICs9IFsnLURETExf
RVhQT1JUJ10KK2VuZGlmCisKK2NlbHRfbGliID0gc3RhdGljX2xpYnJhcnkoJ29wdXMtY2VsdCcs
CisgIGNlbHRfc291cmNlcywKKyAgY19hcmdzOiBjZWx0X2NfYXJncywKKyAgaW5jbHVkZV9kaXJl
Y3Rvcmllczogb3B1c19pbmNsdWRlcywKKyAgbGlua193aG9sZTogY2VsdF9zdGF0aWNfbGlicywK
KyAgZGVwZW5kZW5jaWVzOiBsaWJtLAorICBpbnN0YWxsOiBmYWxzZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2Vs
dC9vc19zdXBwb3J0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL2NlbHQvb3Nfc3VwcG9ydC5oCmluZGV4IGEyMTcxOTcxZTlkNjU3ODQ5
MjEwYTZmOTA1NDlhNWQ4NjcwMDJkZDEuLjAwOWJmODYxZGFmN2ZhYzY0ZWVkMDc5OWQzOGM1NTkx
YzE2NDE5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9vc19zdXBwb3J0LmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L29zX3N1cHBv
cnQuaApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIm9wdXNfZGVmaW5lcy5oIgogCiAjaW5j
bHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4K
IAogLyoqIE9wdXMgd3JhcHBlciBmb3IgbWFsbG9jKCkuIFRvIGRvIHlvdXIgb3duIGR5bmFtaWMg
YWxsb2NhdGlvbiwgYWxsIHlvdSBuZWVkIHRvIGRvIGlzIHJlcGxhY2UgdGhpcyBmdW5jdGlvbiBh
bmQgb3B1c19mcmVlICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvc3RhY2tfYWxsb2MuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9zdGFj
a19hbGxvYy5oCmluZGV4IDJiNTFjOGQ4MGNjNThkMTk2MDIyMjlhOWI4N2I5MmVlZTY3MTRhNzIu
LmFlNDBlMmExNjU5ZmFjMzQ3MzUxNTMzYzg1ZDg5NGI0Y2MxMDU0MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2Vs
dC9zdGFja19hbGxvYy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC9zdGFja19hbGxvYy5oCkBAIC00MCw3ICs0MCw3IEBA
CiAjZW5kaWYKIAogI2lmZGVmIFVTRV9BTExPQ0EKLSMgaWZkZWYgV0lOMzIKKyMgaWZkZWYgX1dJ
TjMyCiAjICBpbmNsdWRlIDxtYWxsb2MuaD4KICMgZWxzZQogIyAgaWZkZWYgSEFWRV9BTExPQ0Ff
SApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICNkZWZpbmUgVkFSREVDTCh0eXBlLCB2YXIpIHR5cGUg
KnZhcgogCi0jIGlmZGVmIFdJTjMyCisjIGlmZGVmIF9XSU4zMgogIyAgZGVmaW5lIEFMTE9DKHZh
ciwgc2l6ZSwgdHlwZSkgdmFyID0gKCh0eXBlKilfYWxsb2NhKHNpemVvZih0eXBlKSooc2l6ZSkp
KQogIyBlbHNlCiAjICBkZWZpbmUgQUxMT0ModmFyLCBzaXplLCB0eXBlKSB2YXIgPSAoKHR5cGUq
KWFsbG9jYShzaXplb2YodHlwZSkqKHNpemUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC90ZXN0cy9tZXNv
bi5idWlsZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
b3B1cy9zcmMvY2VsdC90ZXN0cy9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTZkMmU2MjdiOGNk
ZThhMGZkZjllYTQ2NDRlMWI4OTJkMTYxZWRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L3Rlc3Rz
L21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsMTkgQEAKK3Rlc3RzID0gWworICAndGVzdF91bml0X3R5
cGVzJywKKyAgJ3Rlc3RfdW5pdF9tYXRob3BzJywKKyAgJ3Rlc3RfdW5pdF9lbnRyb3B5JywKKyAg
J3Rlc3RfdW5pdF9sYXBsYWNlJywKKyAgJ3Rlc3RfdW5pdF9kZnQnLAorICAndGVzdF91bml0X21k
Y3QnLAorICAndGVzdF91bml0X3JvdGF0aW9uJywKKyAgJ3Rlc3RfdW5pdF9jd3JzMzInLAorXQor
Citmb3JlYWNoIHRlc3RfbmFtZSA6IHRlc3RzCisgIGV4ZSA9IGV4ZWN1dGFibGUodGVzdF9uYW1l
LCAnQDBALmMnLmZvcm1hdCh0ZXN0X25hbWUpLAorICAgICAgICAgICAgICAgICAgIGluY2x1ZGVf
ZGlyZWN0b3JpZXMgOiBvcHVzX2luY2x1ZGVzLAorICAgICAgICAgICAgICAgICAgIGxpbmtfd2l0
aCA6IFtjZWx0X2xpYiwgY2VsdF9zdGF0aWNfbGlic10sCisgICAgICAgICAgICAgICAgICAgZGVw
ZW5kZW5jaWVzIDogbGlibSwKKyAgICAgICAgICAgICAgICAgICBpbnN0YWxsIDogZmFsc2UpCisg
IHRlc3QodGVzdF9uYW1lLCBleGUpCitlbmRmb3JlYWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQvdGVzdHMv
dGVzdF91bml0X21hdGhvcHMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC90ZXN0cy90ZXN0X3VuaXRfbWF0aG9wcy5jCmluZGV4
IDg3NGU5YWRmMGZiZjE2MWY3NDE3ZjNhZTUxMWI4YTlmZTc1MTVkNmUuLjA2MTU0NDhkYjJlNGE3
N2FjODJiYTM3NGU3NDg4N2ZhNDc3ODJlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC90ZXN0cy90ZXN0X3Vu
aXRfbWF0aG9wcy5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvb3B1cy9zcmMvY2VsdC90ZXN0cy90ZXN0X3VuaXRfbWF0aG9wcy5jCkBAIC0xNDMs
NyArMTQzLDcgQEAgdm9pZCB0ZXN0Yml0ZXhhY3Rsb2cydGFuKHZvaWQpCiB2b2lkIHRlc3Rsb2cy
KHZvaWQpCiB7CiAgICBmbG9hdCB4OwotICAgZm9yICh4PTAuMDAxO3g8MTY3NzcwMC4wO3grPSh4
LzguMCkpCisgICBmb3IgKHg9MC4wMDFmO3g8MTY3NzcwMC4wO3grPSh4LzguMCkpCiAgICB7CiAg
ICAgICBmbG9hdCBlcnJvciA9IGZhYnMoKDEuNDQyNjk1MDQwODg4OTYzMzg3KmxvZyh4KSktY2Vs
dF9sb2cyKHgpKTsKICAgICAgIGlmIChlcnJvcj4wLjAwMDkpCkBAIC0xNTcsNyArMTU3LDcgQEAg
dm9pZCB0ZXN0bG9nMih2b2lkKQogdm9pZCB0ZXN0ZXhwMih2b2lkKQogewogICAgZmxvYXQgeDsK
LSAgIGZvciAoeD0tMTEuMDt4PDI0LjA7eCs9MC4wMDA3KQorICAgZm9yICh4PS0xMS4wO3g8MjQu
MDt4Kz0wLjAwMDdmKQogICAgewogICAgICAgZmxvYXQgZXJyb3IgPSBmYWJzKHgtKDEuNDQyNjk1
MDQwODg4OTYzMzg3KmxvZyhjZWx0X2V4cDIoeCkpKSk7CiAgICAgICBpZiAoZXJyb3I+MC4wMDAy
KQpAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgdGVzdGV4cDIodm9pZCkKIHZvaWQgdGVzdGV4cDJs
b2cyKHZvaWQpCiB7CiAgICBmbG9hdCB4OwotICAgZm9yICh4PS0xMS4wO3g8MjQuMDt4Kz0wLjAw
MDcpCisgICBmb3IgKHg9LTExLjA7eDwyNC4wO3grPTAuMDAwN2YpCiAgICB7CiAgICAgICBmbG9h
dCBlcnJvciA9IGZhYnMoeC0oY2VsdF9sb2cyKGNlbHRfZXhwMih4KSkpKTsKICAgICAgIGlmIChl
cnJvcj4wLjAwMSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2VsdC94ODYvcGl0Y2hfc3NlLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NlbHQveDg2L3Bp
dGNoX3NzZS5oCmluZGV4IGU1Zjg3YWI1MWFmNmU4MDIzNTE0YjEwY2M0MzM2N2E5ZTNlMjAzOTEu
LmY3YTAxNGI2ZTAzYTFlZTFmYzM1ZjdmZDFmZGNkNWM3MTE3ZDEzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY2Vs
dC94ODYvcGl0Y2hfc3NlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jZWx0L3g4Ni9waXRjaF9zc2UuaApAQCAtOTEsNyArOTEs
NyBAQCBvcHVzX3ZhbDMyIGNlbHRfaW5uZXJfcHJvZF9zc2UyKAogICAgIGludCAgICAgICAgICAg
ICAgIE4pOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKE9QVVNfWDg2X01BWV9IQVZFX1NTRTIpICYm
ICFkZWZpbmVkKEZJWEVEX1BPSU5UKQorI2lmIGRlZmluZWQoT1BVU19YODZfTUFZX0hBVkVfU1NF
KSAmJiAhZGVmaW5lZChGSVhFRF9QT0lOVCkKIG9wdXNfdmFsMzIgY2VsdF9pbm5lcl9wcm9kX3Nz
ZSgKICAgICBjb25zdCBvcHVzX3ZhbDE2ICp4LAogICAgIGNvbnN0IG9wdXNfdmFsMTYgKnksCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L29wdXMvc3JjL2NtYWtlL0NGZWF0dXJlQ2hlY2suY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL0NGZWF0dXJlQ2hlY2su
Y21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDg4MjhmNTg1YzljZWJkMjM5YmRjNWMyMmU1YjVlYmVlMDFjMjkw
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvY21ha2UvQ0ZlYXR1cmVDaGVjay5jbWFrZQpAQCAtMCwwICsx
LDM5IEBACisjIC0gQ29tcGlsZSBhbmQgcnVuIGNvZGUgdG8gY2hlY2sgZm9yIEMgZmVhdHVyZXMK
KyMKKyMgVGhpcyBmdW5jdGlvbnMgY29tcGlsZXMgYSBzb3VyY2UgZmlsZSB1bmRlciB0aGUgYGNt
YWtlYCBmb2xkZXIKKyMgYW5kIGFkZHMgdGhlIGNvcnJlc3BvbmRpbmcgYEhBVkVfW0ZJTEVOQU1F
XWAgZmxhZyB0byB0aGUgQ01ha2UKKyMgZW52aXJvbm1lbnQKKyMKKyMgIGNfZmVhdHVyZV9jaGVj
ayg8RkxBRz4gWzxWQVJJQU5UPl0pCisjCisjIC0gRXhhbXBsZQorIworIyBpbmNsdWRlKENGZWF0
dXJlQ2hlY2spCisjIGNfZmVhdHVyZV9jaGVjayhWTEEpCisKK2lmKF9fY19mZWF0dXJlX2NoZWNr
KQorICByZXR1cm4oKQorZW5kaWYoKQorc2V0KF9fY19mZWF0dXJlX2NoZWNrIElOQ0xVREVEKQor
CitmdW5jdGlvbihjX2ZlYXR1cmVfY2hlY2sgRklMRSkKKyAgc3RyaW5nKFRPTE9XRVIgJHtGSUxF
fSBGSUxFKQorICBzdHJpbmcoVE9VUFBFUiAke0ZJTEV9IFZBUikKKyAgc3RyaW5nKFRPVVBQRVIg
IiR7VkFSfV9TVVBQT1JURUQiIEZFQVRVUkUpCisgIGlmIChERUZJTkVEICR7VkFSfV9TVVBQT1JU
RUQpCisgICAgc2V0KCR7VkFSfV9TVVBQT1JURUQgMSBQQVJFTlRfU0NPUEUpCisgICAgcmV0dXJu
KCkKKyAgZW5kaWYoKQorCisgIGlmIChOT1QgREVGSU5FRCBDT01QSUxFXyR7RkVBVFVSRX0pCisg
ICAgICBtZXNzYWdlKFNUQVRVUyAiUGVyZm9ybWluZyBUZXN0ICR7RkVBVFVSRX0iKQorICAgICAg
dHJ5X2NvbXBpbGUoQ09NUElMRV8ke0ZFQVRVUkV9ICR7UFJPSkVDVF9CSU5BUllfRElSfSAke1BS
T0pFQ1RfU09VUkNFX0RJUn0vY21ha2UvJHtGSUxFfS5jKQorICBlbmRpZigpCisKKyAgaWYoQ09N
UElMRV8ke0ZFQVRVUkV9KQorICAgIG1lc3NhZ2UoU1RBVFVTICJQZXJmb3JtaW5nIFRlc3QgJHtG
RUFUVVJFfSAtLSBzdWNjZXNzIikKKyAgICBzZXQoJHtWQVJ9X1NVUFBPUlRFRCAxIFBBUkVOVF9T
Q09QRSkKKyAgZWxzZSgpCisgICAgbWVzc2FnZShTVEFUVVMgIlBlcmZvcm1pbmcgVGVzdCAke0ZF
QVRVUkV9IC0tIGZhaWxlZCB0byBjb21waWxlIikKKyAgZW5kaWYoKQorZW5kZnVuY3Rpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9jbWFrZS9PcHVzQnVpbGR0eXBlLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9PcHVzQnVpbGR0eXBl
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1N2NjODliM2I0NGEyYWFlMTJiODJiOWM4MTg2MTMyODVkODUy
NzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL09wdXNCdWlsZHR5cGUuY21ha2UKQEAgLTAsMCAr
MSwyNyBAQAorIyBTZXQgYSBkZWZhdWx0IGJ1aWxkIHR5cGUgaWYgbm9uZSB3YXMgc3BlY2lmaWVk
CitpZihfX29wdXNfYnVpbGR0eXBlKQorICByZXR1cm4oKQorZW5kaWYoKQorc2V0KF9fb3B1c19i
dWlsZHR5cGUgSU5DTFVERUQpCisKK2lmKE5PVCBDTUFLRV9CVUlMRF9UWVBFIEFORCBOT1QgQ01B
S0VfQ09ORklHVVJBVElPTl9UWVBFUykKKyAgaWYoQ01BS0VfQ19GTEFHUykKKyAgICBtZXNzYWdl
KFNUQVRVUyAiQ01BS0VfQ19GTEFHUzogIiAke0NNQUtFX0NfRkxBR1N9KQorICBlbHNlKCkKKyAg
ICBzZXQoZGVmYXVsdF9idWlsZF90eXBlICJSZWxlYXNlIikKKyAgICBtZXNzYWdlKAorICAgICAg
U1RBVFVTCisgICAgICAgICJTZXR0aW5nIGJ1aWxkIHR5cGUgdG8gJyR7ZGVmYXVsdF9idWlsZF90
eXBlfScgYXMgbm9uZSB3YXMgc3BlY2lmaWVkIGFuZCBubyBDRkxBR1Mgd2FzIGV4cG9ydGVkLiIK
KyAgICAgICkKKyAgICBzZXQoQ01BS0VfQlVJTERfVFlQRSAiJHtkZWZhdWx0X2J1aWxkX3R5cGV9
IgorICAgICAgICBDQUNIRSBTVFJJTkcgIkNob29zZSB0aGUgdHlwZSBvZiBidWlsZC4iCisgICAg
ICAgIEZPUkNFKQorICAgICMgU2V0IHRoZSBwb3NzaWJsZSB2YWx1ZXMgb2YgYnVpbGQgdHlwZSBm
b3IgY21ha2UtZ3VpCisgICAgc2V0X3Byb3BlcnR5KENBQ0hFIENNQUtFX0JVSUxEX1RZUEUKKyAg
ICAgICAgICAgICAgICAgUFJPUEVSVFkgU1RSSU5HUworICAgICAgICAgICAgICAgICAgICAgICAg
ICAiRGVidWciCisgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWxlYXNlIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAiTWluU2l6ZVJlbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IlJlbFdpdGhEZWJJbmZvIikKKyAgZW5kaWYoKQorZW5kaWYoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9P
cHVzQ29uZmlnLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9PcHVzQ29uZmlnLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkMTlh
NTM1N2M0ZmUzNmQ3MDVlMDViODJiODk5Y2ZiMmRlYjJlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2Nt
YWtlL09wdXNDb25maWcuY21ha2UKQEAgLTAsMCArMSwxMDQgQEAKK2lmKF9fb3B1c19jb25maWcp
CisgIHJldHVybigpCitlbmRpZigpCitzZXQoX19vcHVzX2NvbmZpZyBJTkNMVURFRCkKKworaW5j
bHVkZShPcHVzRnVuY3Rpb25zKQorCitjb25maWd1cmVfZmlsZShjbWFrZS9jb25maWcuaC5jbWFr
ZS5pbiBjb25maWcuaCBAT05MWSkKK2FkZF9kZWZpbml0aW9ucygtREhBVkVfQ09ORklHX0gpCisK
K3NldF9wcm9wZXJ0eShHTE9CQUwgUFJPUEVSVFkgVVNFX0ZPTERFUlMgT04pCitzZXRfcHJvcGVy
dHkoR0xPQkFMIFBST1BFUlRZIENfU1RBTkRBUkQgOTkpCisKK2lmKE1TVkMpCisgIGFkZF9kZWZp
bml0aW9ucygtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTKQorZW5kaWYoKQorCitpbmNsdWRlKENo
ZWNrTGlicmFyeUV4aXN0cykKK2NoZWNrX2xpYnJhcnlfZXhpc3RzKG0gZmxvb3IgIiIgSEFWRV9M
SUJNKQoraWYoSEFWRV9MSUJNKQorICBsaXN0KEFQUEVORCBPUFVTX1JFUVVJUkVEX0xJQlJBUklF
UyBtKQorZW5kaWYoKQorCitpbmNsdWRlKENGZWF0dXJlQ2hlY2spCitjX2ZlYXR1cmVfY2hlY2so
VkxBKQorCitpbmNsdWRlKENoZWNrSW5jbHVkZUZpbGUpCitjaGVja19pbmNsdWRlX2ZpbGUoYWxs
b2NhLmggSEFWRV9BTExPQ0FfSCkKKworaW5jbHVkZShDaGVja1N5bWJvbEV4aXN0cykKK2lmKEhB
VkVfQUxMT0NBX0gpCisgIGFkZF9kZWZpbml0aW9ucygtREhBVkVfQUxMT0NBX0gpCisgIGNoZWNr
X3N5bWJvbF9leGlzdHMoYWxsb2NhICJhbGxvY2EuaCIgVVNFX0FMTE9DQV9TVVBQT1JURUQpCitl
bHNlKCkKKyAgY2hlY2tfc3ltYm9sX2V4aXN0cyhhbGxvY2EgInN0ZGxpYi5oO21hbGxvYy5oIiBV
U0VfQUxMT0NBX1NVUFBPUlRFRCkKK2VuZGlmKCkKKworaW5jbHVkZShDaGVja0Z1bmN0aW9uRXhp
c3RzKQorY2hlY2tfZnVuY3Rpb25fZXhpc3RzKGxyaW50ZiBIQVZFX0xSSU5URikKK2NoZWNrX2Z1
bmN0aW9uX2V4aXN0cyhscmludCBIQVZFX0xSSU5UKQorCitpZihDTUFLRV9TWVNURU1fUFJPQ0VT
U09SIE1BVENIRVMgIihpWzAtOV04Nnx4ODZ8WDg2fGFtZDY0fEFNRDY0fHg4Nl82NCkiKQorICBp
ZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDgpCisgICAgc2V0KE9QVVNfQ1BVX1g2NCAxKQor
ICBlbHNlKCkKKyAgICBzZXQoT1BVU19DUFVfWDg2IDEpCisgIGVuZGlmKCkKK2Vsc2VpZihDTUFL
RV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMgIihhcm18YWFyY2g2NCkiKQorICBzZXQoT1BVU19D
UFVfQVJNIDEpCitlbmRpZigpCisKK2lmKE5PVCBPUFVTX0RJU0FCTEVfSU5UUklOU0lDUykKKyAg
b3B1c19zdXBwb3J0c19jcHVfZGV0ZWN0aW9uKFJVTlRJTUVfQ1BVX0NBUEFCSUxJVFlfREVURUNU
SU9OKQorZW5kaWYoKQorCitpZihPUFVTX0NQVV9YODYgT1IgT1BVU19DUFVfWDY0IEFORCBOT1Qg
T1BVU19ESVNBQkxFX0lOVFJJTlNJQ1MpCisgIG9wdXNfZGV0ZWN0X3NzZShDT01QSUxFUl9TVVBQ
T1JUX1NJTUQpCitlbHNlaWYoT1BVU19DUFVfQVJNIEFORCBOT1QgT1BVU19ESVNBQkxFX0lOVFJJ
TlNJQ1MpCisgIG9wdXNfZGV0ZWN0X25lb24oQ09NUElMRVJfU1VQUE9SVF9ORU9OKQorICBpZihD
T01QSUxFUl9TVVBQT1JUX05FT04pCisgICAgb3B0aW9uKE9QVVNfVVNFX05FT04gIk9wdGlvbiB0
byBlbmFibGUgTkVPTiIgT04pCisgICAgb3B0aW9uKE9QVVNfTUFZX0hBVkVfTkVPTiAiRG9lcyBy
dW50aW1lIGNoZWNrIGZvciBuZW9uIHN1cHBvcnQiIE9OKQorICAgIG9wdGlvbihPUFVTX1BSRVNV
TUVfTkVPTiAiQXNzdW1lIHRhcmdldCBDUFUgaGFzIE5FT04gc3VwcG9ydCIgT0ZGKQorICAgIGlm
KENNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFUQ0hFUyAiYWFyY2g2NCIpCisgICAgICBzZXQoT1BV
U19QUkVTVU1FX05FT04gT04pCisgICAgZWxzZWlmKENNQUtFX1NZU1RFTV9OQU1FIE1BVENIRVMg
ImlPUyIpCisgICAgICBzZXQoT1BVU19QUkVTVU1FX05FT04gT04pCisgICAgZW5kaWYoKQorICBl
bmRpZigpCitlbmRpZigpCisKK2lmKE1TVkMpCisgIGNoZWNrX2ZsYWcoRkFTVF9NQVRIIC9mcDpm
YXN0KQorICBjaGVja19mbGFnKFNUQUNLX1BST1RFQ1RPUiAvR1MpCisgIGNoZWNrX2ZsYWcoU1RB
Q0tfUFJPVEVDVE9SX0RJU0FCTEVEIC9HUy0pCitlbHNlKCkKKyAgY2hlY2tfZmxhZyhGQVNUX01B
VEggLWZmYXN0LW1hdGgpCisgIGNoZWNrX2ZsYWcoU1RBQ0tfUFJPVEVDVE9SIC1mc3RhY2stcHJv
dGVjdG9yLXN0cm9uZykKKyAgY2hlY2tfZmxhZyhISURERU5fVklTSUJJTElUWSAtZnZpc2liaWxp
dHk9aGlkZGVuKQorICBzZXQoRk9SVElGWV9TT1VSQ0VfU1VQUE9SVEVEIDEpCitlbmRpZigpCisK
K2lmKE1JTkdXKQorICAjIEZvciBNSU5HVyB3ZSBuZWVkIHRvIGxpbmsgc3NwIGxpYiBmb3Igc2Vj
dXJpdHkgZmVhdHVyZXMgc3VjaCBhcworICAjIHN0YWNrIHByb3RlY3RvciBhbmQgZm9ydGlmeV9z
b3VyY2VzCisgIGNoZWNrX2xpYnJhcnlfZXhpc3RzKHNzcCBfX3N0YWNrX2Noa19mYWlsICIiIEhB
VkVfTElCU1NQKQorICBpZihOT1QgSEFWRV9MSUJTU1ApCisgICAgbWVzc2FnZShXQVJOSU5HICJD
b3VsZCBub3QgZmluZCBsaWJzc3AgaW4gTWluR1csIGRpc2FibGluZyBTVEFDS19QUk9URUNUT1Ig
YW5kIEZPUlRJRllfU09VUkNFIikKKyAgICBzZXQoU1RBQ0tfUFJPVEVDVE9SX1NVUFBPUlRFRCAw
KQorICAgIHNldChGT1JUSUZZX1NPVVJDRV9TVVBQT1JURUQgMCkKKyAgZW5kaWYoKQorZW5kaWYo
KQorCitpZihOT1QgTVNWQykKKyAgc2V0KFdBUk5JTkdfTElTVCAtV2FsbCAtVyAtV3N0cmljdC1w
cm90b3R5cGVzIC1XZXh0cmEgLVdjYXN0LWFsaWduIC1XbmVzdGVkLWV4dGVybnMgLVdzaGFkb3cp
CisgIGluY2x1ZGUoQ2hlY2tDQ29tcGlsZXJGbGFnKQorICBmb3JlYWNoKFdBUk5JTkdfRkxBRyAk
e1dBUk5JTkdfTElTVH0pCisgICAgc3RyaW5nKFJFUExBQ0UgLSAiIiBXQVJOSU5HX1ZBUiAke1dB
Uk5JTkdfRkxBR30pCisgICAgY2hlY2tfY19jb21waWxlcl9mbGFnKCR7V0FSTklOR19GTEFHfSAk
e1dBUk5JTkdfVkFSfV9TVVBQT1JURUQpCisgICAgaWYoJHtXQVJOSU5HX1ZBUn1fU1VQUE9SVEVE
KQorICAgICAgYWRkX2NvbXBpbGVfb3B0aW9ucygke1dBUk5JTkdfRkxBR30pCisgICAgZW5kaWYo
KQorICBlbmRmb3JlYWNoKCkKK2VuZGlmKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY21ha2UvT3B1c0NvbmZpZy5j
bWFrZS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
b3B1cy9zcmMvY21ha2UvT3B1c0NvbmZpZy5jbWFrZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjIxMjMxZDRm
MTJhN2I5N2U4MWMzYmU0Zjg4M2ZlYTY4MjIxMTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9P
cHVzQ29uZmlnLmNtYWtlLmluCkBAIC0wLDAgKzEsMjAgQEAKK3NldChPUFVTX1ZFUlNJT04gQFBS
T0pFQ1RfVkVSU0lPTkApCitzZXQoT1BVU19WRVJTSU9OX1NUUklORyBAUFJPSkVDVF9WRVJTSU9O
QCkKK3NldChPUFVTX1ZFUlNJT05fTUFKT1IgQFBST0pFQ1RfVkVSU0lPTl9NQUpPUkApCitzZXQo
T1BVU19WRVJTSU9OX01JTk9SIEBQUk9KRUNUX1ZFUlNJT05fTUlOT1JAKQorc2V0KE9QVVNfVkVS
U0lPTl9QQVRDSCBAUFJPSkVDVF9WRVJTSU9OX1BBVENIQCkKKworQFBBQ0tBR0VfSU5JVEAKKwor
c2V0X2FuZF9jaGVjayhPUFVTX0lOQ0xVREVfRElSICJAUEFDS0FHRV9JTkNMVURFX0lOU1RBTExf
RElSQCIpCitzZXQoT1BVU19JTkNMVURFX0RJUiAke09QVVNfSU5DTFVERV9ESVJ9OyR7T1BVU19J
TkNMVURFX0RJUn0vb3B1cykKK3NldChPUFVTX0lOQ0xVREVfRElSUyAiQFBBQ0tBR0VfSU5DTFVE
RV9JTlNUQUxMX0RJUkA7QFBBQ0tBR0VfSU5DTFVERV9JTlNUQUxMX0RJUkAvb3B1cyIpCisKK2lu
Y2x1ZGUoJHtDTUFLRV9DVVJSRU5UX0xJU1RfRElSfS9PcHVzVGFyZ2V0cy5jbWFrZSkKKworc2V0
KE9QVVNfTElCUkFSWSBPcHVzOjpvcHVzKQorc2V0KE9QVVNfTElCUkFSSUVTIE9wdXM6Om9wdXMp
CisKK2NoZWNrX3JlcXVpcmVkX2NvbXBvbmVudHMoT3B1cykKKworc2V0KE9QVVNfRk9VTkQgMSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvb3B1cy9zcmMvY21ha2UvT3B1c0Z1bmN0aW9ucy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY21ha2UvT3B1c0Z1bmN0aW9u
cy5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mY2YzMzUxZmIzNjEyMzdhN2U4N2YyMTRmZWQ5MGZkOTQ2ZjU3
NTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9PcHVzRnVuY3Rpb25zLmNtYWtlCkBAIC0wLDAg
KzEsMjE1IEBACitpZihfX29wdXNfZnVuY3Rpb25zKQorICByZXR1cm4oKQorZW5kaWYoKQorc2V0
KF9fb3B1c19mdW5jdGlvbnMgSU5DTFVERUQpCisKK2Z1bmN0aW9uKGdldF9saWJyYXJ5X3ZlcnNp
b24gT1BVU19MSUJSQVJZX1ZFUlNJT04gT1BVU19MSUJSQVJZX1ZFUlNJT05fTUFKT1IpCisgIGZp
bGUoU1RSSU5HUyBjb25maWd1cmUuYWMgb3B1c19sdF9jdXJyZW50X3N0cmluZworICAgICAgIExJ
TUlUX0NPVU5UIDEKKyAgICAgICBSRUdFWCAiT1BVU19MVF9DVVJSRU5UPSIpCisgIHN0cmluZyhS
RUdFWCBNQVRDSAorICAgICAgICAgICAgICAgIk9QVVNfTFRfQ1VSUkVOVD0oWzAtOV0qKSIKKyAg
ICAgICAgICAgICAgIF8KKyAgICAgICAgICAgICAgICR7b3B1c19sdF9jdXJyZW50X3N0cmluZ30p
CisgIHNldChPUFVTX0xUX0NVUlJFTlQgJHtDTUFLRV9NQVRDSF8xfSkKKworICBmaWxlKFNUUklO
R1MgY29uZmlndXJlLmFjIG9wdXNfbHRfcmV2aXNpb25fc3RyaW5nCisgICAgICAgTElNSVRfQ09V
TlQgMQorICAgICAgIFJFR0VYICJPUFVTX0xUX1JFVklTSU9OPSIpCisgIHN0cmluZyhSRUdFWCBN
QVRDSAorICAgICAgICAgICAgICAgIk9QVVNfTFRfUkVWSVNJT049KFswLTldKikiCisgICAgICAg
ICAgICAgICBfCisgICAgICAgICAgICAgICAke29wdXNfbHRfcmV2aXNpb25fc3RyaW5nfSkKKyAg
c2V0KE9QVVNfTFRfUkVWSVNJT04gJHtDTUFLRV9NQVRDSF8xfSkKKworICBmaWxlKFNUUklOR1Mg
Y29uZmlndXJlLmFjIG9wdXNfbHRfYWdlX3N0cmluZworICAgICAgIExJTUlUX0NPVU5UIDEKKyAg
ICAgICBSRUdFWCAiT1BVU19MVF9BR0U9IikKKyAgc3RyaW5nKFJFR0VYIE1BVENICisgICAgICAg
ICAgICAgICAiT1BVU19MVF9BR0U9KFswLTldKikiCisgICAgICAgICAgICAgICBfCisgICAgICAg
ICAgICAgICAke29wdXNfbHRfYWdlX3N0cmluZ30pCisgIHNldChPUFVTX0xUX0FHRSAke0NNQUtF
X01BVENIXzF9KQorCisgIG1hdGgoRVhQUiBPUFVTX0xJQlJBUllfVkVSU0lPTl9NQUpPUiAiJHtP
UFVTX0xUX0NVUlJFTlR9IC0gJHtPUFVTX0xUX0FHRX0iKQorICBzZXQoT1BVU19MSUJSQVJZX1ZF
UlNJT05fTUlOT1IgJHtPUFVTX0xUX0FHRX0pCisgIHNldChPUFVTX0xJQlJBUllfVkVSU0lPTl9Q
QVRDSCAke09QVVNfTFRfUkVWSVNJT059KQorICBzZXQoCisgICAgT1BVU19MSUJSQVJZX1ZFUlNJ
T04KKyAgICAiJHtPUFVTX0xJQlJBUllfVkVSU0lPTl9NQUpPUn0uJHtPUFVTX0xJQlJBUllfVkVS
U0lPTl9NSU5PUn0uJHtPUFVTX0xJQlJBUllfVkVSU0lPTl9QQVRDSH0iCisgICAgUEFSRU5UX1ND
T1BFKQorICBzZXQoT1BVU19MSUJSQVJZX1ZFUlNJT05fTUFKT1IgJHtPUFVTX0xJQlJBUllfVkVS
U0lPTl9NQUpPUn0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQorCitmdW5jdGlvbihjaGVj
a19mbGFnIE5BTUUgRkxBRykKKyAgaW5jbHVkZShDaGVja0NDb21waWxlckZsYWcpCisgIGNoZWNr
X2NfY29tcGlsZXJfZmxhZygke0ZMQUd9ICR7TkFNRX1fU1VQUE9SVEVEKQorZW5kZnVuY3Rpb24o
KQorCitpbmNsdWRlKENoZWNrSW5jbHVkZUZpbGUpCisjIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGNv
bXBpbGVyIHN1cHBvcnRzIFNTRSwgU1NFMiwgU1NFNC4xIGFuZCBBVlggaWYgdGFyZ2V0CisjIHN5
c3RlbXMgbWF5IG5vdCBoYXZlIFNTRSBzdXBwb3J0IHRoZW4gdXNlIE9QVVNfTUFZX0hBVkVfU1NF
IG9wdGlvbiBpZiB0YXJnZXQKKyMgc3lzdGVtIGlzIGd1YXJhbnRlZWQgdG8gaGF2ZSBTU0Ugc3Vw
cG9ydCB0aGVuIE9QVVNfUFJFU1VNRV9TU0UgY2FuIGJlIHVzZWQgdG8KKyMgc2tpcCBTU0UgcnVu
dGltZSBjaGVjaworZnVuY3Rpb24ob3B1c19kZXRlY3Rfc3NlIENPTVBJTEVSX1NVUFBPUlRfU0lN
RCkKKyAgbWVzc2FnZShTVEFUVVMgIkNoZWNrIFNJTUQgc3VwcG9ydCBieSBjb21waWxlciIpCisg
IGNoZWNrX2luY2x1ZGVfZmlsZSh4bW1pbnRyaW4uaCBIQVZFX1hNTUlOVFJJTl9IKSAjIFNTRTEK
KyAgaWYoSEFWRV9YTU1JTlRSSU5fSCkKKyAgICBpZihNU1ZDKQorICAgICAgIyBkaWZmZXJlbnQg
YXJjaCBvcHRpb25zIGZvciAzMiBhbmQgNjQgYml0IHRhcmdldCBmb3IgTVNWQworICAgICAgaWYo
Q01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA0KQorICAgICAgICBjaGVja19mbGFnKFNTRTEgL2Fy
Y2g6U1NFKQorICAgICAgZWxzZSgpCisgICAgICAgIHNldChTU0UxX1NVUFBPUlRFRAorICAgICAg
ICAgICAgMQorICAgICAgICAgICAgUEFSRU5UX1NDT1BFKQorICAgICAgZW5kaWYoKQorICAgIGVs
c2UoKQorICAgICAgY2hlY2tfZmxhZyhTU0UxIC1tc3NlKQorICAgIGVuZGlmKCkKKyAgZWxzZSgp
CisgICAgc2V0KFNTRTFfU1VQUE9SVEVECisgICAgICAgIDAKKyAgICAgICAgUEFSRU5UX1NDT1BF
KQorICBlbmRpZigpCisKKyAgY2hlY2tfaW5jbHVkZV9maWxlKGVtbWludHJpbi5oIEhBVkVfRU1N
SU5UUklOX0gpICMgU1NFMgorICBpZihIQVZFX0VNTUlOVFJJTl9IKQorICAgIGlmKE1TVkMpCisg
ICAgICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDQpCisgICAgICAgIGNoZWNrX2ZsYWco
U1NFMiAvYXJjaDpTU0UyKQorICAgICAgZWxzZSgpCisgICAgICAgIHNldChTU0UyX1NVUFBPUlRF
RAorICAgICAgICAgICAgMQorICAgICAgICAgICAgUEFSRU5UX1NDT1BFKQorICAgICAgZW5kaWYo
KQorICAgIGVsc2UoKQorICAgICAgY2hlY2tfZmxhZyhTU0UyIC1tc3NlMikKKyAgICBlbmRpZigp
CisgIGVsc2UoKQorICAgIHNldChTU0UyX1NVUFBPUlRFRAorICAgICAgICAwCisgICAgICAgIFBB
UkVOVF9TQ09QRSkKKyAgZW5kaWYoKQorCisgIGNoZWNrX2luY2x1ZGVfZmlsZShzbW1pbnRyaW4u
aCBIQVZFX1NNTUlOVFJJTl9IKSAjIFNTRTQuMQorICBpZihIQVZFX1NNTUlOVFJJTl9IKQorICAg
IGlmKE1TVkMpCisgICAgICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDQpCisgICAgICAg
IGNoZWNrX2ZsYWcoU1NFNF8xIC9hcmNoOlNTRTIpICMgU1NFMiBhbmQgYWJvdmUKKyAgICAgIGVs
c2UoKQorICAgICAgICBzZXQoU1NFNF8xX1NVUFBPUlRFRAorICAgICAgICAgICAgMQorICAgICAg
ICAgICAgUEFSRU5UX1NDT1BFKQorICAgICAgZW5kaWYoKQorICAgIGVsc2UoKQorICAgICAgY2hl
Y2tfZmxhZyhTU0U0XzEgLW1zc2U0LjEpCisgICAgZW5kaWYoKQorICBlbHNlKCkKKyAgICBzZXQo
U1NFNF8xX1NVUFBPUlRFRAorICAgICAgICAwCisgICAgICAgIFBBUkVOVF9TQ09QRSkKKyAgZW5k
aWYoKQorCisgIGNoZWNrX2luY2x1ZGVfZmlsZShpbW1pbnRyaW4uaCBIQVZFX0lNTUlOVFJJTl9I
KSAjIEFWWAorICBpZihIQVZFX0lNTUlOVFJJTl9IKQorICAgIGlmKE1TVkMpCisgICAgICBjaGVj
a19mbGFnKEFWWCAvYXJjaDpBVlgpCisgICAgZWxzZSgpCisgICAgICBjaGVja19mbGFnKEFWWCAt
bWF2eCkKKyAgICBlbmRpZigpCisgIGVsc2UoKQorICAgIHNldChBVlhfU1VQUE9SVEVECisgICAg
ICAgIDAKKyAgICAgICAgUEFSRU5UX1NDT1BFKQorICBlbmRpZigpCisKKyAgaWYoU1NFMV9TVVBQ
T1JURUQgT1IgU1NFMl9TVVBQT1JURUQgT1IgU1NFNF8xX1NVUFBPUlRFRCBPUiBBVlhfU1VQUE9S
VEVEKQorICAgIHNldChDT01QSUxFUl9TVVBQT1JUX1NJTUQgMSBQQVJFTlRfU0NPUEUpCisgIGVs
c2UoKQorICAgIG1lc3NhZ2UoU1RBVFVTICJObyBTSU1EIHN1cHBvcnQgaW4gY29tcGlsZXIiKQor
ICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uKG9wdXNfZGV0ZWN0X25lb24gQ09N
UElMRVJfU1VQUE9SVF9ORU9OKQorICBpZihDTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMg
Iihhcm18YWFyY2g2NCkiKQorICAgIG1lc3NhZ2UoU1RBVFVTICJDaGVjayBORU9OIHN1cHBvcnQg
YnkgY29tcGlsZXIiKQorICAgIGNoZWNrX2luY2x1ZGVfZmlsZShhcm1fbmVvbi5oIEhBVkVfQVJN
X05FT05fSCkKKyAgICBpZihIQVZFX0FSTV9ORU9OX0gpCisgICAgICBzZXQoQ09NUElMRVJfU1VQ
UE9SVF9ORU9OICR7SEFWRV9BUk1fTkVPTl9IfSBQQVJFTlRfU0NPUEUpCisgICAgZW5kaWYoKQor
ICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uKG9wdXNfc3VwcG9ydHNfY3B1X2Rl
dGVjdGlvbiBSVU5USU1FX0NQVV9DQVBBQklMSVRZX0RFVEVDVElPTikKKyAgaWYoTVNWQykKKyAg
ICBjaGVja19pbmNsdWRlX2ZpbGUoaW50cmluLmggSEFWRV9JTlRSSU5fSCkKKyAgZWxzZSgpCisg
ICAgY2hlY2tfaW5jbHVkZV9maWxlKGNwdWlkLmggSEFWRV9DUFVJRF9IKQorICBlbmRpZigpCisg
IGlmKEhBVkVfSU5UUklOX0ggT1IgSEFWRV9DUFVJRF9IKQorICAgIHNldChSVU5USU1FX0NQVV9D
QVBBQklMSVRZX0RFVEVDVElPTiAxIFBBUkVOVF9TQ09QRSkKKyAgZWxzZWlmKENNQUtFX1NZU1RF
TV9QUk9DRVNTT1IgTUFUQ0hFUyAiKGFybXxhYXJjaDY0KSIpCisgICAgIyBBUk0gY3B1IGRldGVj
dGlvbiBpcyBpbXBsZW1lbnRlZCBmb3IgV2luZG93cyBhbmQgYW55dGhpbmcKKyAgICAjIHVzaW5n
IGEgTGludXgga2VybmVsIChzdWNoIGFzIEFuZHJvaWQpLgorICAgIGlmIChDTUFLRV9TWVNURU1f
TkFNRSBNQVRDSEVTICIoV2luZG93c3xMaW51eHxBbmRyb2lkKSIpCisgICAgICBzZXQoUlVOVElN
RV9DUFVfQ0FQQUJJTElUWV9ERVRFQ1RJT04gMSBQQVJFTlRfU0NPUEUpCisgICAgZW5kaWYgKCkK
KyAgZWxzZSgpCisgICAgc2V0KFJVTlRJTUVfQ1BVX0NBUEFCSUxJVFlfREVURUNUSU9OIDAgUEFS
RU5UX1NDT1BFKQorICBlbmRpZigpCitlbmRmdW5jdGlvbigpCisKK2Z1bmN0aW9uKGFkZF9zb3Vy
Y2VzX2dyb3VwIHRhcmdldCBncm91cCkKKyAgdGFyZ2V0X3NvdXJjZXMoJHt0YXJnZXR9IFBSSVZB
VEUgJHtBUkdOfSkKKyAgc291cmNlX2dyb3VwKCR7Z3JvdXB9IEZJTEVTICR7QVJHTn0pCitlbmRm
dW5jdGlvbigpCisKK2Z1bmN0aW9uKGdldF9vcHVzX3NvdXJjZXMgU09VUkNFX0dST1VQIE1BS0Vf
RklMRSBTT1VSQ0VTKQorICAjIHJlYWQgZmlsZSwgZWFjaCBpdGVtIGluIGxpc3QgaXMgb25lIGdy
b3VwCisgIGZpbGUoU1RSSU5HUyAke01BS0VfRklMRX0gb3B1c19zb3VyY2VzKQorCisgICMgYWRk
IHdpbGRjYXJkIGZvciByZWdleCBtYXRjaAorICBzdHJpbmcoQ09OQ0FUIFNPVVJDRV9HUk9VUCAk
e1NPVVJDRV9HUk9VUH0gIi4qJCIpCisKKyAgIyBmaW5kIGdyb3VwCisgIGZvcmVhY2godmFsIElO
IExJU1RTIG9wdXNfc291cmNlcykKKyAgICBpZih2YWwgTUFUQ0hFUyAke1NPVVJDRV9HUk9VUH0p
CisgICAgICBsaXN0KExFTkdUSCB2YWwgbGlzdF9sZW5ndGgpCisgICAgICBpZigke2xpc3RfbGVu
Z3RofSBFUVVBTCAxKQorICAgICAgICAjIGZvciB0ZXN0cyBzcGxpdCBieSAnPScgYW5kIGNsZWFu
IHVwIHRoZSByZXN0IGludG8gYSBsaXN0CisgICAgICAgIHN0cmluZyhGSU5EICR7dmFsfSAiPSIg
aW5kZXgpCisgICAgICAgIG1hdGgoRVhQUiBpbmRleCAiJHtpbmRleH0gKyAxIikKKyAgICAgICAg
c3RyaW5nKFNVQlNUUklORyAke3ZhbH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAke2luZGV4
fQorICAgICAgICAgICAgICAgICAgICAgICAgIC0xCisgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlcykKKyAgICAgICAgc3RyaW5nKFJFUExBQ0UgIiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICI7IgorICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VzCisgICAgICAgICAgICAgICAg
ICAgICAgICR7c291cmNlc30pCisgICAgICBlbHNlKCkKKyAgICAgICAgIyBkaXNjYXJkIHRoZSBn
cm91cAorICAgICAgICBsaXN0KFJFTU9WRV9BVCB2YWwgMCkKKyAgICAgICAgc2V0KHNvdXJjZXMg
JHt2YWx9KQorICAgICAgZW5kaWYoKQorICAgICAgYnJlYWsoKQorICAgIGVuZGlmKCkKKyAgZW5k
Zm9yZWFjaCgpCisKKyAgbGlzdChMRU5HVEggc291cmNlcyBsaXN0X2xlbmd0aCkKKyAgaWYoJHts
aXN0X2xlbmd0aH0gTEVTUyAxKQorICAgIG1lc3NhZ2UoCisgICAgICBGQVRBTF9FUlJPUgorICAg
ICAgICAiTm8gZmlsZXMgcGFyc2VkIHN1Y2Nlc2Z1bGx5IGZyb20gJHtTT1VSQ0VfR1JPVVB9IGlu
ICR7TUFLRV9GSUxFfSIpCisgIGVuZGlmKCkKKworICAjIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNw
YWNlcworICBzZXQobGlzdF92YXIgIiIpCisgIGZvcmVhY2goc291cmNlICR7c291cmNlc30pCisg
ICAgc3RyaW5nKFNUUklQICIke3NvdXJjZX0iIHNvdXJjZSkKKyAgICBsaXN0KEFQUEVORCBsaXN0
X3ZhciAiJHtzb3VyY2V9IikKKyAgZW5kZm9yZWFjaCgpCisKKyAgc2V0KCR7U09VUkNFU30gJHts
aXN0X3Zhcn0gUEFSRU5UX1NDT1BFKQorZW5kZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9P
cHVzUGFja2FnZVZlcnNpb24uY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL09wdXNQYWNrYWdlVmVyc2lvbi5jbWFrZQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NDdjZTNiMTc0MzQ3YTQ2MmZjYjFkYmJmYzAzNWQwZjY2YzY5YTkzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9vcHVzL3NyYy9jbWFrZS9PcHVzUGFja2FnZVZlcnNpb24uY21ha2UKQEAgLTAsMCArMSw3
MCBAQAoraWYoX19vcHVzX3ZlcnNpb24pCisgIHJldHVybigpCitlbmRpZigpCitzZXQoX19vcHVz
X3ZlcnNpb24gSU5DTFVERUQpCisKK2Z1bmN0aW9uKGdldF9wYWNrYWdlX3ZlcnNpb24gUEFDS0FH
RV9WRVJTSU9OIFBST0pFQ1RfVkVSU0lPTikKKworICBmaW5kX3BhY2thZ2UoR2l0KQorICBpZihH
SVRfRk9VTkQgQU5EIEVYSVNUUyAiJHtDTUFLRV9DVVJSRU5UX0xJU1RfRElSfS8uZ2l0IikKKyAg
ICBleGVjdXRlX3Byb2Nlc3MoQ09NTUFORCAke0dJVF9FWEVDVVRBQkxFfQorICAgICAgICAgICAg
ICAgICAgICAtLWdpdC1kaXI9JHtDTUFLRV9DVVJSRU5UX0xJU1RfRElSfS8uZ2l0IGRlc2NyaWJl
CisgICAgICAgICAgICAgICAgICAgIC0tdGFncyAtLW1hdGNoICJ2KiIgT1VUUFVUX1ZBUklBQkxF
IE9QVVNfUEFDS0FHRV9WRVJTSU9OKQorICAgIGlmKE9QVVNfUEFDS0FHRV9WRVJTSU9OKQorICAg
ICAgc3RyaW5nKFNUUklQICR7T1BVU19QQUNLQUdFX1ZFUlNJT059LCBPUFVTX1BBQ0tBR0VfVkVS
U0lPTikKKyAgICAgIHN0cmluZyhSRVBMQUNFIFxuCisgICAgICAgICAgICAgICAgICAgICAiIgor
ICAgICAgICAgICAgICAgICAgICAgT1BVU19QQUNLQUdFX1ZFUlNJT04KKyAgICAgICAgICAgICAg
ICAgICAgICR7T1BVU19QQUNLQUdFX1ZFUlNJT059KQorICAgICAgc3RyaW5nKFJFUExBQ0UgLAor
ICAgICAgICAgICAgICAgICAgICAgIiIKKyAgICAgICAgICAgICAgICAgICAgIE9QVVNfUEFDS0FH
RV9WRVJTSU9OCisgICAgICAgICAgICAgICAgICAgICAke09QVVNfUEFDS0FHRV9WRVJTSU9OfSkK
KworICAgICAgc3RyaW5nKFNVQlNUUklORyAke09QVVNfUEFDS0FHRV9WRVJTSU9OfQorICAgICAg
ICAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgICAgICAgIC0xCisgICAgICAgICAg
ICAgICAgICAgICAgIE9QVVNfUEFDS0FHRV9WRVJTSU9OKQorICAgICAgbWVzc2FnZShTVEFUVVMg
Ik9wdXMgcGFja2FnZSB2ZXJzaW9uIGZyb20gZ2l0IHJlcG86ICR7T1BVU19QQUNLQUdFX1ZFUlNJ
T059IikKKyAgICBlbmRpZigpCisKKyAgZWxzZWlmKEVYSVNUUyAiJHtDTUFLRV9DVVJSRU5UX0xJ
U1RfRElSfS9wYWNrYWdlX3ZlcnNpb24iCisgICAgICAgICBBTkQgTk9UIE9QVVNfUEFDS0FHRV9W
RVJTSU9OKQorICAgICMgTm90IGEgZ2l0IHJlcG8sIGxldHMnIHRyeSB0byBwYXJzZSBpdCBmcm9t
IHBhY2thZ2VfdmVyc2lvbiBmaWxlIGlmIGV4aXN0cworICAgIGZpbGUoU1RSSU5HUyBwYWNrYWdl
X3ZlcnNpb24gT1BVU19QQUNLQUdFX1ZFUlNJT04KKyAgICAgICAgIExJTUlUX0NPVU5UIDEKKyAg
ICAgICAgIFJFR0VYICJQQUNLQUdFX1ZFUlNJT049IikKKyAgICBzdHJpbmcoUkVQTEFDRSAiUEFD
S0FHRV9WRVJTSU9OPSIKKyAgICAgICAgICAgICAgICAgICAiIgorICAgICAgICAgICAgICAgICAg
IE9QVVNfUEFDS0FHRV9WRVJTSU9OCisgICAgICAgICAgICAgICAgICAgJHtPUFVTX1BBQ0tBR0Vf
VkVSU0lPTn0pCisgICAgc3RyaW5nKFJFUExBQ0UgIlwiIgorICAgICAgICAgICAgICAgICAgICIi
CisgICAgICAgICAgICAgICAgICAgT1BVU19QQUNLQUdFX1ZFUlNJT04KKyAgICAgICAgICAgICAg
ICAgICAke09QVVNfUEFDS0FHRV9WRVJTSU9OfSkKKyAgICAjIEluIGNhc2Ugd2UgaGF2ZSBhIHVu
a25vd24gZGlzdCBoZXJlIHdlIGp1c3QgcmVwbGFjZSBpdCB3aXRoIDAKKyAgICBzdHJpbmcoUkVQ
TEFDRSAidW5rbm93biIKKyAgICAgICAgICAgICAgICAgICAiMCIKKyAgICAgICAgICAgICAgICAg
ICBPUFVTX1BBQ0tBR0VfVkVSU0lPTgorICAgICAgICAgICAgICAgICAgICR7T1BVU19QQUNLQUdF
X1ZFUlNJT059KQorICAgICAgbWVzc2FnZShTVEFUVVMgIk9wdXMgcGFja2FnZSB2ZXJzaW9uIGZy
b20gcGFja2FnZV92ZXJzaW9uIGZpbGU6ICR7T1BVU19QQUNLQUdFX1ZFUlNJT059IikKKyAgZW5k
aWYoKQorCisgIGlmKE9QVVNfUEFDS0FHRV9WRVJTSU9OKQorICAgIHN0cmluZyhSRUdFWAorICAg
ICAgUkVQTEFDRSAiXihbMC05XSsuWzAtOV0rXFwuPyhbMC05XSspPykuKiIKKyAgICAgICAgICAg
ICAgICJcXDEiCisgICAgICAgICAgICAgICBPUFVTX1BST0pFQ1RfVkVSU0lPTgorICAgICAgICAg
ICAgICAgJHtPUFVTX1BBQ0tBR0VfVkVSU0lPTn0pCisgIGVsc2UoKQorICAgICMgZmFpbCB0byBw
YXJzZSB2ZXJzaW9uIGZyb20gZ2l0IGFuZCBwYWNrYWdlIHZlcnNpb24KKyAgICBtZXNzYWdlKFdB
Uk5JTkcgIkNvdWxkIG5vdCBnZXQgcGFja2FnZSB2ZXJzaW9uLiIpCisgICAgc2V0KE9QVVNfUEFD
S0FHRV9WRVJTSU9OIDApCisgICAgc2V0KE9QVVNfUFJPSkVDVF9WRVJTSU9OIDApCisgIGVuZGlm
KCkKKworICBtZXNzYWdlKFNUQVRVUyAiT3B1cyBwcm9qZWN0IHZlcnNpb246ICR7T1BVU19QUk9K
RUNUX1ZFUlNJT059IikKKworICBzZXQoUEFDS0FHRV9WRVJTSU9OICR7T1BVU19QQUNLQUdFX1ZF
UlNJT059IFBBUkVOVF9TQ09QRSkKKyAgc2V0KFBST0pFQ1RfVkVSU0lPTiAke09QVVNfUFJPSkVD
VF9WRVJTSU9OfSBQQVJFTlRfU0NPUEUpCitlbmRmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtl
L09wdXNTb3VyY2VzLmNtYWtlIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9jbWFrZS9PcHVzU291cmNlcy5jbWFrZQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MWU3NWQxYTNiM2U4NzZkYzEzM2Y5MTAxNmIyOGMxNjBhNDZiNzQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9jbWFrZS9PcHVzU291cmNlcy5jbWFrZQpAQCAtMCwwICsxLDQ2IEBACitpZihfX29wdXNfc291
cmNlcykKKyAgcmV0dXJuKCkKK2VuZGlmKCkKK3NldChfX29wdXNfc291cmNlcyBJTkNMVURFRCkK
KworaW5jbHVkZShPcHVzRnVuY3Rpb25zKQorCitnZXRfb3B1c19zb3VyY2VzKFNJTEtfSEVBRCBz
aWxrX2hlYWRlcnMubWsgc2lsa19oZWFkZXJzKQorZ2V0X29wdXNfc291cmNlcyhTSUxLX1NPVVJD
RVMgc2lsa19zb3VyY2VzLm1rIHNpbGtfc291cmNlcykKK2dldF9vcHVzX3NvdXJjZXMoU0lMS19T
T1VSQ0VTX0ZMT0FUIHNpbGtfc291cmNlcy5tayBzaWxrX3NvdXJjZXNfZmxvYXQpCitnZXRfb3B1
c19zb3VyY2VzKFNJTEtfU09VUkNFU19GSVhFRCBzaWxrX3NvdXJjZXMubWsgc2lsa19zb3VyY2Vz
X2ZpeGVkKQorZ2V0X29wdXNfc291cmNlcyhTSUxLX1NPVVJDRVNfU1NFNF8xIHNpbGtfc291cmNl
cy5tayBzaWxrX3NvdXJjZXNfc3NlNF8xKQorZ2V0X29wdXNfc291cmNlcyhTSUxLX1NPVVJDRVNf
RklYRURfU1NFNF8xIHNpbGtfc291cmNlcy5taworICAgICAgICAgICAgICAgICBzaWxrX3NvdXJj
ZXNfZml4ZWRfc3NlNF8xKQorZ2V0X29wdXNfc291cmNlcyhTSUxLX1NPVVJDRVNfQVJNX05FT05f
SU5UUiBzaWxrX3NvdXJjZXMubWsKKyAgICAgICAgICAgICAgICAgc2lsa19zb3VyY2VzX2FybV9u
ZW9uX2ludHIpCitnZXRfb3B1c19zb3VyY2VzKFNJTEtfU09VUkNFU19GSVhFRF9BUk1fTkVPTl9J
TlRSIHNpbGtfc291cmNlcy5taworICAgICAgICAgICAgICAgICBzaWxrX3NvdXJjZXNfZml4ZWRf
YXJtX25lb25faW50cikKKworZ2V0X29wdXNfc291cmNlcyhPUFVTX0hFQUQgb3B1c19oZWFkZXJz
Lm1rIG9wdXNfaGVhZGVycykKK2dldF9vcHVzX3NvdXJjZXMoT1BVU19TT1VSQ0VTIG9wdXNfc291
cmNlcy5tayBvcHVzX3NvdXJjZXMpCitnZXRfb3B1c19zb3VyY2VzKE9QVVNfU09VUkNFU19GTE9B
VCBvcHVzX3NvdXJjZXMubWsgb3B1c19zb3VyY2VzX2Zsb2F0KQorCitnZXRfb3B1c19zb3VyY2Vz
KENFTFRfSEVBRCBjZWx0X2hlYWRlcnMubWsgY2VsdF9oZWFkZXJzKQorZ2V0X29wdXNfc291cmNl
cyhDRUxUX1NPVVJDRVMgY2VsdF9zb3VyY2VzLm1rIGNlbHRfc291cmNlcykKK2dldF9vcHVzX3Nv
dXJjZXMoQ0VMVF9TT1VSQ0VTX1NTRSBjZWx0X3NvdXJjZXMubWsgY2VsdF9zb3VyY2VzX3NzZSkK
K2dldF9vcHVzX3NvdXJjZXMoQ0VMVF9TT1VSQ0VTX1NTRTIgY2VsdF9zb3VyY2VzLm1rIGNlbHRf
c291cmNlc19zc2UyKQorZ2V0X29wdXNfc291cmNlcyhDRUxUX1NPVVJDRVNfU1NFNF8xIGNlbHRf
c291cmNlcy5tayBjZWx0X3NvdXJjZXNfc3NlNF8xKQorZ2V0X29wdXNfc291cmNlcyhDRUxUX1NP
VVJDRVNfQVJNIGNlbHRfc291cmNlcy5tayBjZWx0X3NvdXJjZXNfYXJtKQorZ2V0X29wdXNfc291
cmNlcyhDRUxUX1NPVVJDRVNfQVJNX0FTTSBjZWx0X3NvdXJjZXMubWsgY2VsdF9zb3VyY2VzX2Fy
bV9hc20pCitnZXRfb3B1c19zb3VyY2VzKENFTFRfQU1fU09VUkNFU19BUk1fQVNNIGNlbHRfc291
cmNlcy5taworICAgICAgICAgICAgICAgICBjZWx0X2FtX3NvdXJjZXNfYXJtX2FzbSkKK2dldF9v
cHVzX3NvdXJjZXMoQ0VMVF9TT1VSQ0VTX0FSTV9ORU9OX0lOVFIgY2VsdF9zb3VyY2VzLm1rCisg
ICAgICAgICAgICAgICAgIGNlbHRfc291cmNlc19hcm1fbmVvbl9pbnRyKQorZ2V0X29wdXNfc291
cmNlcyhDRUxUX1NPVVJDRVNfQVJNX05FMTAgY2VsdF9zb3VyY2VzLm1rIGNlbHRfc291cmNlc19h
cm1fbmUxMCkKKworZ2V0X29wdXNfc291cmNlcyhvcHVzX2RlbW9fU09VUkNFUyBNYWtlZmlsZS5h
bSBvcHVzX2RlbW9fc291cmNlcykKK2dldF9vcHVzX3NvdXJjZXMob3B1c19jdXN0b21fZGVtb19T
T1VSQ0VTIE1ha2VmaWxlLmFtIG9wdXNfY3VzdG9tX2RlbW9fc291cmNlcykKK2dldF9vcHVzX3Nv
dXJjZXMob3B1c19jb21wYXJlX1NPVVJDRVMgTWFrZWZpbGUuYW0gb3B1c19jb21wYXJlX3NvdXJj
ZXMpCitnZXRfb3B1c19zb3VyY2VzKHRlc3RzX3Rlc3Rfb3B1c19hcGlfU09VUkNFUyBNYWtlZmls
ZS5hbSB0ZXN0X29wdXNfYXBpX3NvdXJjZXMpCitnZXRfb3B1c19zb3VyY2VzKHRlc3RzX3Rlc3Rf
b3B1c19lbmNvZGVfU09VUkNFUyBNYWtlZmlsZS5hbQorICAgICAgICAgICAgICAgICB0ZXN0X29w
dXNfZW5jb2RlX3NvdXJjZXMpCitnZXRfb3B1c19zb3VyY2VzKHRlc3RzX3Rlc3Rfb3B1c19kZWNv
ZGVfU09VUkNFUyBNYWtlZmlsZS5hbQorICAgICAgICAgICAgICAgICB0ZXN0X29wdXNfZGVjb2Rl
X3NvdXJjZXMpCitnZXRfb3B1c19zb3VyY2VzKHRlc3RzX3Rlc3Rfb3B1c19wYWRkaW5nX1NPVVJD
RVMgTWFrZWZpbGUuYW0KKyAgICAgICAgICAgICAgICAgdGVzdF9vcHVzX3BhZGRpbmdfc291cmNl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvb3B1cy9zcmMvY21ha2UvY29uZmlnLmguY21ha2UuaW4gYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL2NvbmZpZy5oLmNt
YWtlLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1NTA4NDJjNWUxYzE0MTc5NDdiOWNmNjQwNDg1MGI2Zjk5M2Iw
YTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL2NvbmZpZy5oLmNtYWtlLmluCkBAIC0wLDAgKzEg
QEAKKyNjbWFrZWRlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkBQQUNLQUdFX1ZFUlNJT05AIgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY21ha2UvdmxhLmMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL3Zs
YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA1YjIxMTk3OWVkNDc5OWE3ZTI4YTZiNDMwZTgxNWE0OGE5N2EwNGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L29wdXMvc3JjL2NtYWtlL3ZsYS5jCkBAIC0wLDAgKzEsNyBAQAoraW50IG1haW4o
KSB7CisgICAgc3RhdGljIGludCB4OworICAgIGNoYXIgYVsrK3hdOworICAgIGFbc2l6ZW9mIGEg
LSAxXSA9IDA7CisgICAgaW50IE47CisgICAgcmV0dXJuIGFbMF07Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jb25maWcuaC5jbWFrZS5pbiBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY29uZmlnLmguY21h
a2UuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU1NTA4NDJjNWUxYzE0MTc5NDdi
OWNmNjQwNDg1MGI2Zjk5M2IwYTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9jb25maWcuaC5jbWFrZS5pbgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LSNjbWFrZWRlZmluZSBQQUNLQUdFX1ZFUlNJT04gIkBQQUNLQUdFX1ZFUlNJT05AIgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvY29uZmlndXJlLmFjIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jb25maWd1cmUu
YWMKaW5kZXggMThlY2UyOTEzMjU1OWIxZjAyM2ViN2ZiMmU1MzE1OThiNGFjZTdiZi4uZjEyZjBh
YTlhNjM4NDMwYmM1NThjY2UwOTJlOGUwNDY2NmM1OGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9jb25maWd1cmUu
YWMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9jb25maWd1cmUuYWMKQEAgLTY5MSw2ICs2OTEsMTggQEAgQVNfSUYoW3Rlc3QgeCIk
ZW5hYmxlX2ludHJpbnNpY3MiID0geCJ5ZXMiXSxbCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBDUFVJbmZvMjsKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IENQVUluZm8zOwog
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgSW5mb1R5cGU7CisgICAgICAgICAgICAgICAg
I2lmIGRlZmluZWQoX19pMzg2X18pICYmIGRlZmluZWQoX19QSUNfXykKKyAgICAgICAgICAgICAg
ICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAorICAgICAgICAgICAgICAgICAieGNoZyAlJWVieCwg
JTFcbiIKKyAgICAgICAgICAgICAgICAgImNwdWlkXG4iCisgICAgICAgICAgICAgICAgICJ4Y2hn
ICUlZWJ4LCAlMVxuIjoKKyAgICAgICAgICAgICAgICAgIj1hIiAoQ1BVSW5mbzApLAorICAgICAg
ICAgICAgICAgICAiPXIiIChDUFVJbmZvMSksCisgICAgICAgICAgICAgICAgICI9YyIgKENQVUlu
Zm8yKSwKKyAgICAgICAgICAgICAgICAgIj1kIiAoQ1BVSW5mbzMpIDoKKyAgICAgICAgICAgICAg
ICAgImEiIChJbmZvVHlwZSksICJjIiAoMCkKKyAgICAgICAgICAgICAgICApOworICAgICAgICAg
ICAgICAgI2Vsc2UKICAgICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAogICAg
ICAgICAgICAgICAgICAiY3B1aWQiOgogICAgICAgICAgICAgICAgICAiPWEiIChDUFVJbmZvMCks
CkBAIC02OTksNiArNzExLDcgQEAgQVNfSUYoW3Rlc3QgeCIkZW5hYmxlX2ludHJpbnNpY3MiID0g
eCJ5ZXMiXSxbCiAgICAgICAgICAgICAgICAgICI9ZCIgKENQVUluZm8zKSA6CiAgICAgICAgICAg
ICAgICAgICJhIiAoSW5mb1R5cGUpLCAiYyIgKDApCiAgICAgICAgICAgICAgICAgKTsKKyAgICAg
ICAgICAgICAgICNlbmRpZgogICAgICAgICAgICAgXV0pXSwKICAgICAgICAgICAgIFtnZXRfY3B1
aWRfYnlfYXNtPSJ5ZXMiCiAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbSW5saW5lIEFzc2Vt
Ymx5XSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvb3B1cy9zcmMvZG9jL0RveHlmaWxlLmluIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvRG94eWZpbGUuaW4KaW5kZXgg
MzZlZWUwYjUzODBiODA0MzI3OTYzMTAyNjc4NTJjYjE2MmE0NmJkMS4uNmVlZjY1MGIyZTE0NzYw
OThhZTk5MzQyOTY0YjhlODI4ODhkMTBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvRG94eWZpbGUuaW4KKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9kb2MvRG94eWZpbGUuaW4KQEAgLTEsNCArMSw0IEBACi0jIERveHlmaWxlIDEuOC4xMAorIyBE
b3h5ZmlsZSAxLjguMTgKIAogIyBUaGlzIGZpbGUgZGVzY3JpYmVzIHRoZSBzZXR0aW5ncyB0byBi
ZSB1c2VkIGJ5IHRoZSBkb2N1bWVudGF0aW9uIHN5c3RlbQogIyBkb3h5Z2VuICh3d3cuZG94eWdl
bi5vcmcpIGZvciBhIHByb2plY3QuCkBAIC0xMDEsNyArMTAxLDcgQEAgRVhUUkFDVF9QUklWQVRF
ICAgICAgICA9IE5PCiAjIG5hbWVzIGluIGxvd2VyLWNhc2UgbGV0dGVycy4gSWYgc2V0IHRvIFlF
UywgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvCiAjIGFsbG93ZWQuIFRoaXMgaXMgdXNlZnVs
IGlmIHlvdSBoYXZlIGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFtZXMgb25seSBkaWZmZXIKICMg
aW4gY2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNlbnNpdGl2ZSBm
aWxlIG5hbWVzLiBXaW5kb3dzCi0jIGFuZCBNYWMgdXNlcnMgYXJlIGFkdmlzZWQgdG8gc2V0IHRo
aXMgb3B0aW9uIHRvIE5PLgorIyAoaW5jbHVkaW5nIEN5Z3dpbikgYW5kcyBNYWMgdXNlcnMgYXJl
IGFkdmlzZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBp
czogc3lzdGVtIGRlcGVuZGVudC4KIAogQ0FTRV9TRU5TRV9OQU1FUyAgICAgICA9IFlFUwpAQCAt
MjQ4LDggKzI0OCw4IEBAIEhUTUxfVElNRVNUQU1QICAgICAgICAgPSBZRVMKICMgTUFUSEpBWF9S
RUxQQVRIIHNob3VsZCBiZSAuLi9tYXRoamF4LiBUaGUgZGVmYXVsdCB2YWx1ZSBwb2ludHMgdG8g
dGhlIE1hdGhKYXgKICMgQ29udGVudCBEZWxpdmVyeSBOZXR3b3JrIHNvIHlvdSBjYW4gcXVpY2ts
eSBzZWUgdGhlIHJlc3VsdCB3aXRob3V0IGluc3RhbGxpbmcKICMgTWF0aEpheC4gSG93ZXZlciwg
aXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gaW5zdGFsbCBhIGxvY2FsIGNvcHkgb2YKLSMg
TWF0aEpheCBmcm9tIGh0dHA6Ly93d3cubWF0aGpheC5vcmcgYmVmb3JlIGRlcGxveW1lbnQuCi0j
IFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBodHRwOi8vY2RuLm1hdGhqYXgub3JnL21hdGhqYXgvbGF0
ZXN0LgorIyBNYXRoSmF4IGZyb20gaHR0cHM6Ly93d3cubWF0aGpheC5vcmcgYmVmb3JlIGRlcGxv
eW1lbnQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQv
bnBtL21hdGhqYXhAMi4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRI
SkFYIGlzIHNldCB0byBZRVMuCiAKIE1BVEhKQVhfUkVMUEFUSCAgICAgICAgPSBodHRwczovL3d3
dy5tYXRoamF4Lm9yZy9tYXRoamF4CkBAIC0zMjYsMTAgKzMyNiwxNSBAQCBQUkVERUZJTkVEICAg
ICAgICAgICAgID0gT1BVU19FWFBPUlQ9IFwKICMgSWYgeW91IHNldCB0aGUgSEFWRV9ET1QgdGFn
IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBhc3N1bWUgdGhlIGRvdCB0b29sIGlzCiAjIGF2YWls
YWJsZSBmcm9tIHRoZSBwYXRoLiBUaGlzIHRvb2wgaXMgcGFydCBvZiBHcmFwaHZpeiAoc2VlOgog
IyBodHRwOi8vd3d3LmdyYXBodml6Lm9yZy8pLCBhIGdyYXBoIHZpc3VhbGl6YXRpb24gdG9vbGtp
dCBmcm9tIEFUJlQgYW5kIEx1Y2VudAotIyBCZWxsIExhYnMuCisjIEJlbGwgTGFicy4gVGhlIG90
aGVyIG9wdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGhhdmUgbm8gZWZmZWN0IGlmIHRoaXMgb3B0aW9u
IGlzCisjIHNldCB0byBOTworIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKICMgRGViaWFu
IGRlZmF1bHRzIHRvIFlFUyBoZXJlLCB3aGlsZSBGZWRvcmEgYW5kIEhvbWVicmV3IGRlZmF1bHQg
dG8gTk8uCiAjIFNvIHdlIHNldCB0aGlzIGJhc2VkIG9uIHdoZXRoZXIgdGhlIGdyYXBodml6IHBh
Y2thZ2UgaXMgYXZhaWxhYmxlIGF0CiAjIGNvbmZpZ3VyZSB0aW1lLgogIwotSEFWRV9ET1QgPSBA
SEFWRV9ET1RACitIQVZFX0RPVCAgICAgICAgICAgICAgID0gQEhBVkVfRE9UQAorCisjIG1vdmUg
ZG9jcyB0byB0aGUgY29ycmVjdCBwbGFjZQorT1VUUFVUX0RJUkVDVE9SWSAgICAgICA9IEB0b3Bf
YnVpbGRkaXJAL2RvYwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvYnVpbGRfZHJhZnQuc2ggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2RvYy9idWlsZF9k
cmFmdC5zaAppbmRleCBkMTViMjJhNzliMzQ2YzBlYWZkMDQ0ZWUxZTBiNGEyNjI3NTg0ZDkyLi4x
NGFlNTFkZDVlZDQ1MTc1NWRkZDJjYThmODc0NjNjZTMyZTNhYzJmIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2RvYy9i
dWlsZF9kcmFmdC5zaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L29wdXMvc3JjL2RvYy9idWlsZF9kcmFmdC5zaApAQCAtNDgsNyArNDgsMTYgQEAg
bWtkaXIgIiR7ZGVzdGRpcn0vc3JjIgogbWtkaXIgIiR7ZGVzdGRpcn0vc2lsayIKIG1rZGlyICIk
e2Rlc3RkaXJ9L3NpbGsvZmxvYXQiCiBta2RpciAiJHtkZXN0ZGlyfS9zaWxrL2ZpeGVkIgorbWtk
aXIgIiR7ZGVzdGRpcn0vc2lsay9maXhlZC94ODYiCitta2RpciAiJHtkZXN0ZGlyfS9zaWxrL2Zp
eGVkL2FybSIKK21rZGlyICIke2Rlc3RkaXJ9L3NpbGsvZml4ZWQvbWlwcyIKK21rZGlyICIke2Rl
c3RkaXJ9L3NpbGsveDg2IgorbWtkaXIgIiR7ZGVzdGRpcn0vc2lsay9hcm0iCitta2RpciAiJHtk
ZXN0ZGlyfS9zaWxrL21pcHMiCiBta2RpciAiJHtkZXN0ZGlyfS9jZWx0IgorbWtkaXIgIiR7ZGVz
dGRpcn0vY2VsdC94ODYiCitta2RpciAiJHtkZXN0ZGlyfS9jZWx0L2FybSIKK21rZGlyICIke2Rl
c3RkaXJ9L2NlbHQvbWlwcyIKIG1rZGlyICIke2Rlc3RkaXJ9L2luY2x1ZGUiCiBmb3IgZiBpbiBg
Y2F0ICIke3RvcGxldmVsfSIvb3B1c19zb3VyY2VzLm1rICIke3RvcGxldmVsfSIvY2VsdF9zb3Vy
Y2VzLm1rIFwKICAiJHt0b3BsZXZlbH0iL3NpbGtfc291cmNlcy5tayAiJHt0b3BsZXZlbH0iL29w
dXNfaGVhZGVycy5tayBcCkBAIC04Miw3ICs5MSw3IEBAIGNhdCBvcHVzX3NvdXJjZS50YXIuZ3p8
IGJhc2U2NCB8IHRyIC1kICdcbicgfCBmb2xkIC13IDY0IHwgXAogI2VjaG8gJzwvYXJ0d29yaz4n
ID4+IG9wdXNfY29tcGFyZV9lc2NhcGVkLmMKICNlY2hvICc8L2ZpZ3VyZT4nID4+IG9wdXNfY29t
cGFyZV9lc2NhcGVkLmMKIAotaWYgW1sgISAtZCAuLi9vcHVzX3Rlc3R2ZWN0b3JzIF1dIDsgdGhl
bgoraWYgWyAhIC1kIC4uL29wdXNfdGVzdHZlY3RvcnMgXSA7IHRoZW4KICAgZWNobyAiRG93bmxv
YWRpbmcgdGVzdCB2ZWN0b3JzLi4uIgogICB3Z2V0ICdodHRwOi8vb3B1cy1jb2RlYy5vcmcvdGVz
dHZlY3RvcnMvb3B1c190ZXN0dmVjdG9ycy50YXIuZ3onCiAgIHRhciAtQyAuLiAteHZ6ZiBvcHVz
X3Rlc3R2ZWN0b3JzLnRhci5negpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvZm9vdGVyLmh0bWwgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2RvYy9mb290
ZXIuaHRtbAppbmRleCBhZDRhOTI1OTM4ZjJmNmMxYzM4ODY1M2FkY2FiMzRlMjM0Nzg0YWE2Li4z
NDZjNDBhYmFhYmE4ODRiMjcwNGNjMTdlZDNjMTAxM2Y2MTRiNTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2RvYy9m
b290ZXIuaHRtbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL2RvYy9mb290ZXIuaHRtbApAQCAtMSw2ICsxLDEwIEBACis8IS0tIEhU
TUwgZm9vdGVyIGZvciBkb3h5Z2VuIDEuOC4xOC0tPgorPCEtLSBzdGFydCBmb290ZXIgcGFydCAt
LT4KIDwhLS1CRUdJTiBHRU5FUkFURV9UUkVFVklFVy0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNs
YXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0t
PgorICA8dWw+CiAgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieQotICAgIDxhIGhy
ZWY9Imh0dHBzOi8vd3d3LnN0YWNrLm5sL35kaW1pdHJpL2RveHlnZW4vIj4KKyAgICA8YSBocmVm
PSJodHRwOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPgogICAgIDxpbWcgY2xhc3M9ImZv
b3RlciIgc3JjPSJkb3h5Z2VuLnBuZyIgYWx0PSJkb3h5Z2VuIi8+PC9hPiAkZG94eWdlbnZlcnNp
b24gPC9saT4KICAgIDwvdWw+CiAgPC9kaXY+CkBAIC0xNiw3ICsyMCw3IEBAIEZvciBtb3JlIGlu
Zm9ybWF0aW9uIHZpc2l0IHRoZSA8YSBocmVmPSJodHRwczovL29wdXMtY29kZWMub3JnIj5PcHVz
IFdlYnNpdGU8L2E+CiAgICAgICA8dGQ+CiAgICAgICAgIDxhZGRyZXNzIGNsYXNzPSJmb290ZXIi
PjxzbWFsbD4KICAgICAgICAgICBHZW5lcmF0ZWQgYnkKLSAgICAgICAgICA8YSBocmVmPSJodHRw
czovL3d3dy5zdGFjay5ubC9+ZGltaXRyaS9kb3h5Z2VuLyI+ZG94eWdlbjwvYT4KKyAgICAgICAg
ICA8YSBocmVmPSJodHRwOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPmRveHlnZW48L2E+
CiAgICAgICAgICAgJGRveHlnZW52ZXJzaW9uCiAgICAgICAgIDwvc21hbGw+PC9hZGRyZXNzPgog
ICAgICAgPC90ZD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvZG9jL2hlYWRlci5odG1sIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvaGVhZGVyLmh0bWwK
aW5kZXggYjJjOTA2YmUyZDkxY2VmNjk2ZTY3MzZhMjA5MmQ1ZmM4NDRjMzI2Mi4uYmFiZGNmNmQ3
YmJjMGRlY2YyZWQ1MWJmODEwZWNiY2EyNTMyZGFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvaGVhZGVyLmh0
bWwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9kb2MvaGVhZGVyLmh0bWwKQEAgLTEsMTggKzEsMjQgQEAKLTwhRE9DVFlQRSBodG1s
IFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8v
d3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzwhLS0g
SFRNTCBoZWFkZXIgZm9yIGRveHlnZW4gMS44LjE4LS0+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cHM6Ly93d3cudzMu
b3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgogPGh0bWwgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogPGhlYWQ+CiA8bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgogPG1l
dGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT05Ii8+Cis8bWV0YSBu
YW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gJGRveHlnZW52ZXJzaW9uIi8+Cis8bWV0
YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj
YWxlPTEiLz4KIDwhLS1CRUdJTiBQUk9KRUNUX05BTUUtLT48dGl0bGU+JHByb2plY3RuYW1lOiAk
dGl0bGU8L3RpdGxlPjwhLS1FTkQgUFJPSkVDVF9OQU1FLS0+CiA8IS0tQkVHSU4gIVBST0pFQ1Rf
TkFNRS0tPjx0aXRsZT4kdGl0bGU8L3RpdGxlPjwhLS1FTkQgIVBST0pFQ1RfTkFNRS0tPgotPGxp
bmsgaHJlZj0iJHJlbHBhdGgkdGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiLz4KLTxsaW5rIGhyZWY9IiRyZWxwYXRoJGN1c3RvbWRveHlnZW4uY3NzIiByZWw9InN0eWxl
c2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgorPGxpbmsgaHJlZj0iJHJlbHBhdGhedGFicy5jc3Mi
IHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IiRyZWxwYXRoXmpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIkcmVscGF0aF5keW5zZWN0aW9ucy5qcyI+PC9zY3Jp
cHQ+CiAkdHJlZXZpZXcKICRzZWFyY2gKICRtYXRoamF4Cis8bGluayBocmVmPSIkcmVscGF0aF4k
c3R5bGVzaGVldCIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKyRleHRyYXN0
eWxlc2hlZXQKIDwvaGVhZD4KIDxib2R5PgotPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1v
dmUgdGhpcyBkaXYhIC0tPgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBk
aXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KIAogPCEtLUJFR0lOIFRJVExFQVJFQS0t
PgogPGRpdiBpZD0idGl0bGVhcmVhIj4KQEAgLTIwLDcgKzI2LDcgQEAgJG1hdGhqYXgKICA8dGJv
ZHk+CiAgPHRyIHN0eWxlPSJoZWlnaHQ6IDY0cHg7Ij4KICAgPCEtLUJFR0lOIFBST0pFQ1RfTE9H
Ty0tPgotICA8dGQgaWQ9InByb2plY3Rsb2dvIj48aW1nIGFsdD0iTG9nbyIgc3JjPSIkcmVscGF0
aCQkcHJvamVjdGxvZ28iLz48L3RkPgorICA8dGQgaWQ9InByb2plY3Rsb2dvIj48aW1nIGFsdD0i
TG9nbyIgc3JjPSIkcmVscGF0aF4kcHJvamVjdGxvZ28iLz48L3RkPgogICA8IS0tRU5EIFBST0pF
Q1RfTE9HTy0tPgogICA8IS0tQkVHSU4gUFJPSkVDVF9OQU1FLS0+CiAgIDx0ZCBzdHlsZT0icGFk
ZGluZy1sZWZ0OiAwLjVlbTsiPgpAQCAtNTIsMyArNTgsNCBAQCAkbWF0aGpheAogPC90YWJsZT4K
IDwvZGl2PgogPCEtLUVORCBUSVRMRUFSRUEtLT4KKzwhLS0gZW5kIGhlYWRlciBwYXJ0IC0tPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9kb2MvbWVzb24uYnVpbGQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2RvYy9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZTQyYTJiMDI5NGQ2ZGE0MWZjZjVjYzQzNmIwNDYxYWU5N2ZjMmM1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9kb2MvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzMyBAQAoraGF2ZV9kb3QgPSBmaW5kX3Byb2dy
YW0oJ2RvdCcsIHJlcXVpcmVkOiBmYWxzZSkuZm91bmQoKQorCitkb3h5ZmlsZV9jb25mID0gY29u
ZmlndXJhdGlvbl9kYXRhKCkKK2RveHlmaWxlX2NvbmYuc2V0KCdWRVJTSU9OJywgb3B1c192ZXJz
aW9uKQorZG94eWZpbGVfY29uZi5zZXQoJ0hBVkVfRE9UJywgaGF2ZV9kb3QpCitkb3h5ZmlsZV9j
b25mLnNldCgndG9wX3NyY2RpcicsIHRvcF9zcmNkaXIpCitkb3h5ZmlsZV9jb25mLnNldCgndG9w
X2J1aWxkZGlyJywgdG9wX2J1aWxkZGlyKQorCitkb3h5ZmlsZSA9IGNvbmZpZ3VyZV9maWxlKGlu
cHV0OiAnRG94eWZpbGUuaW4nLAorICBvdXRwdXQ6ICdEb3h5ZmlsZScsCisgIGNvbmZpZ3VyYXRp
b246IGRveHlmaWxlX2NvbmYsCisgIGluc3RhbGw6IGZhbHNlKQorCitkb2NkaXIgPSBqb2luX3Bh
dGhzKGdldF9vcHRpb24oJ2RhdGFkaXInKSwgZ2V0X29wdGlvbignZG9jZGlyJykpCisKK2RvY19p
bnB1dHMgPSBbCisgICdjdXN0b21kb3h5Z2VuLmNzcycsCisgICdmb290ZXIuaHRtbCcsCisgICdo
ZWFkZXIuaHRtbCcsCisgICdvcHVzX2xvZ28uc3ZnJywKKyAgdG9wX3NyY2RpciArICcvaW5jbHVk
ZS9vcHVzLmgnLAorICB0b3Bfc3JjZGlyICsgJy9pbmNsdWRlL29wdXNfbXVsdGlzdHJlYW0uaCcs
CisgIHRvcF9zcmNkaXIgKyAnL2luY2x1ZGUvb3B1c19kZWZpbmVzLmgnLAorICB0b3Bfc3JjZGly
ICsgJy9pbmNsdWRlL29wdXNfdHlwZXMuaCcsCisgIHRvcF9zcmNkaXIgKyAnL2luY2x1ZGUvb3B1
c19jdXN0b20uaCcsCitdCisKK2N1c3RvbV90YXJnZXQoJ2RvYycsCisgIGlucHV0OiBbIGRveHlm
aWxlIF0gKyBkb2NfaW5wdXRzLAorICBvdXRwdXQ6IFsgJ2h0bWwnIF0sCisgIGNvbW1hbmQ6IFsg
ZG94eWdlbiwgZG94eWZpbGUgXSwKKyAgaW5zdGFsbF9kaXI6IGRvY2RpciwKKyAgaW5zdGFsbDog
dHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvb3B1cy9zcmMvZG9jL3JlbGVhc2UudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvcmVsZWFzZS50eHQKaW5kZXgg
NmQzZmZhMjM5MDFjMDRkMmZiOTg4NmY1MmQ0Y2I3NGNhNDI3YjZkMS4uNDExYWI3ZjRiNjMyOGNj
MzdiOTc3NDMzMDQzZDczNWM2Y2EwMmJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvcmVsZWFzZS50eHQKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9kb2MvcmVsZWFzZS50eHQKQEAgLTE1LDcgKzE1LDcgQEAKICAtIHN2biBjb21taXQKICAtIENv
cHkgdG8gYXJjaGl2ZS5tb3ppbGxhLm9yZy9wdWIvb3B1cy8KICAtIFVwZGF0ZSBjaGVja3N1bSBm
aWxlcyB0aGVyZSBhcyB3ZWxsLgotLSBBZGQgcmVsZWFzZSBub3RlcyB0byBodHRwczovL2dpdC54
aXBoLm9yZy9vcHVzLXdlYnNpdGUuZ2l0CistIEFkZCByZWxlYXNlIG5vdGVzIHRvIGh0dHBzOi8v
Z2l0bGFiLnhpcGgub3JnL3hpcGgvb3B1cy13ZWJzaXRlLmdpdAogLSBVcGRhdGUgbGlua3MgYW5k
IGNoZWNrc3VtcyBvbiB0aGUgZG93bmxvYWRzIHBhZ2UuCiAtIEFkZCBhIGNvcHkgb2YgdGhlIGRv
Y3VtZW50YXRpb24gdG8gPGh0dHBzOi8vd3d3Lm9wdXMtY29kZWMub3JnL2RvY3MvPgogICBhbmQg
dXBkYXRlIHRoZSBsaW5rcy4KQEAgLTI1LDcgKzI1LDcgQEAgUmVsZWFzZXMgYXJlIGNvbW1pdGVk
IHRvIGh0dHBzOi8vc3ZuLnhpcGgub3JnL3JlbGVhc2VzL29wdXMvCiB3aGljaCBwcm9wYWdhdGVz
IHRvIGRvd25sb2Fkcy54aXBoLm9yZywgYW5kIGNvcGllZCBtYW51YWxseQogdG8gaHR0cHM6Ly9h
cmNoaXZlLm1vemlsbGEub3JnL3B1Yi9vcHVzLwogCi1XZWJzaXRlIHVwZGF0ZXMgYXJlIGNvbW1p
dHRlZCB0byBodHRwczovL2dpdC54aXBoLm9yZy9vcHVzLXdlYnNpdGUuZ2l0CitXZWJzaXRlIHVw
ZGF0ZXMgYXJlIGNvbW1pdHRlZCB0byBodHRwczovL2dpdGxhYi54aXBoLm9yZy94aXBoL29wdXMt
d2Vic2l0ZS5naXQKIHdoaWNoIHByb3BhZ2F0ZXMgdG8gaHR0cHM6Ly9vcHVzLWNvZGVjLm9yZy8K
IAogPT0gQmluYXJ5IHJlbGVhc2UgPT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvZG9jL3RyaXZpYWxfZXhhbXBsZS5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9kb2MvdHJpdmlhbF9leGFtcGxlLmMKaW5kZXggMDQ3Y2EwYTI5MDZhOTExODhlYTNiNDk3NmU3
NTFjZGMyNjVkMDRkNS4uOWNmNDM1YjRhOWEwMDAwMjA5MDI5OWI5NmVmNGMwNzc0NTIwNTMxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9kb2MvdHJpdmlhbF9leGFtcGxlLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9kb2MvdHJpdmlhbF9leGFtcGxl
LmMKQEAgLTg1LDcgKzg1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKICAgIH0KICAgIGluRmlsZSA9IGFyZ3ZbMV07Ci0gICBm
aW4gPSBmb3BlbihpbkZpbGUsICJyIik7CisgICBmaW4gPSBmb3BlbihpbkZpbGUsICJyYiIpOwog
ICAgaWYgKGZpbj09TlVMTCkKICAgIHsKICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRv
IG9wZW4gaW5wdXQgZmlsZTogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7CkBAIC0xMDEsNyArMTAx
LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgcmV0dXJuIEVYSVRf
RkFJTFVSRTsKICAgIH0KICAgIG91dEZpbGUgPSBhcmd2WzJdOwotICAgZm91dCA9IGZvcGVuKG91
dEZpbGUsICJ3Iik7CisgICBmb3V0ID0gZm9wZW4ob3V0RmlsZSwgIndiIik7CiAgICBpZiAoZm91
dD09TlVMTCkKICAgIHsKICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gb3V0
cHV0IGZpbGU6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOwpAQCAtMTEzLDE0ICsxMTMsMjUgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgaW50IGk7CiAgICAgICB1bnNp
Z25lZCBjaGFyIHBjbV9ieXRlc1tNQVhfRlJBTUVfU0laRSpDSEFOTkVMUyoyXTsKICAgICAgIGlu
dCBmcmFtZV9zaXplOworICAgICAgc2l6ZV90IHNhbXBsZXM7CiAKICAgICAgIC8qIFJlYWQgYSAx
NiBiaXRzL3NhbXBsZSBhdWRpbyBmcmFtZS4gKi8KLSAgICAgIGZyZWFkKHBjbV9ieXRlcywgc2l6
ZW9mKHNob3J0KSpDSEFOTkVMUywgRlJBTUVfU0laRSwgZmluKTsKLSAgICAgIGlmIChmZW9mKGZp
bikpCisgICAgICBzYW1wbGVzID0gZnJlYWQocGNtX2J5dGVzLCBzaXplb2Yoc2hvcnQpKkNIQU5O
RUxTLCBGUkFNRV9TSVpFLCBmaW4pOworCisgICAgICAvKiBGb3Igc2ltcGxpY2l0eSwgb25seSBy
ZWFkIHdob2xlIGZyYW1lcy4gSW4gYSByZWFsIGFwcGxpY2F0aW9uLAorICAgICAgICogd2UnZCBw
YWQgdGhlIGZpbmFsIHBhcnRpYWwgZnJhbWUgd2l0aCB6ZXJvZXMsIHJlY29yZCB0aGUgZXhhY3QK
KyAgICAgICAqIGR1cmF0aW9uLCBhbmQgdHJpbSB0aGUgZGVjb2RlZCBhdWRpbyB0byBtYXRjaC4K
KyAgICAgICAqLworICAgICAgaWYgKHNhbXBsZXMgIT0gRlJBTUVfU0laRSkKKyAgICAgIHsKICAg
ICAgICAgIGJyZWFrOworICAgICAgfQorCiAgICAgICAvKiBDb252ZXJ0IGZyb20gbGl0dGxlLWVu
ZGlhbiBvcmRlcmluZy4gKi8KICAgICAgIGZvciAoaT0wO2k8Q0hBTk5FTFMqRlJBTUVfU0laRTtp
KyspCisgICAgICB7CiAgICAgICAgICBpbltpXT1wY21fYnl0ZXNbMippKzFdPDw4fHBjbV9ieXRl
c1syKmldOworICAgICAgfQogCiAgICAgICAvKiBFbmNvZGUgdGhlIGZyYW1lLiAqLwogICAgICAg
bmJCeXRlcyA9IG9wdXNfZW5jb2RlKGVuY29kZXIsIGluLCBGUkFNRV9TSVpFLCBjYml0cywgTUFY
X1BBQ0tFVF9TSVpFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvaW5jbHVkZS9tZXNvbi5idWlsZCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvaW5jbHVkZS9t
ZXNvbi5idWlsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWZiMGI3NmY5ZmQ4ODg0ZTVjZGYzYzlmNWFlMTM3MjYy
YTdlY2I5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9pbmNsdWRlL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEs
MTMgQEAKK29wdXNfaGVhZGVycyA9IFsKKyAgJ29wdXMuaCcsCisgICdvcHVzX211bHRpc3RyZWFt
LmgnLAorICAnb3B1c19wcm9qZWN0aW9uLmgnLAorICAnb3B1c190eXBlcy5oJywKKyAgJ29wdXNf
ZGVmaW5lcy5oJywKK10KKworaWYgb3B0X2N1c3RvbV9tb2RlcworICBvcHVzX2hlYWRlcnMgKz0g
WydvcHVzX2N1c3RvbS5oJ10KK2VuZGlmCisKK2luc3RhbGxfaGVhZGVycyhvcHVzX2hlYWRlcnMs
IHN1YmRpcjogJ29wdXMnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9pbmNsdWRlL29wdXNfY3VzdG9tLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2luY2x1
ZGUvb3B1c19jdXN0b20uaAppbmRleCA0MWYzNmJmMmZiYzkwOTY2OTM1NzcxYzExMDkzYjc1ODBj
YzRmOTEyLi4yMjI3YmUwMTFiZDJmMWEwOWIzNGY5Y2RiNThmNWNjOTA0ZTBiMmRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMv
c3JjL2luY2x1ZGUvb3B1c19jdXN0b20uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL2luY2x1ZGUvb3B1c19jdXN0b20uaApAQCAt
MTc4LDcgKzE3OCw3IEBAIE9QVVNfQ1VTVE9NX0VYUE9SVCBPUFVTX1dBUk5fVU5VU0VEX1JFU1VM
VCBPcHVzQ3VzdG9tRW5jb2RlciAqb3B1c19jdXN0b21fZW5jb2RlCiApIE9QVVNfQVJHX05PTk5V
TEwoMSk7CiAKIAotLyoqIERlc3Ryb3lzIGEgYW4gZW5jb2RlciBzdGF0ZS4KKy8qKiBEZXN0cm95
cyBhbiBlbmNvZGVyIHN0YXRlLgogICAqIEBwYXJhbVtpbl0gc3QgPHR0Pk9wdXNDdXN0b21FbmNv
ZGVyKjwvdHQ+OiBTdGF0ZSB0byBiZSBmcmVlZC4KICAgKi8KIE9QVVNfQ1VTVE9NX0VYUE9SVCB2
b2lkIG9wdXNfY3VzdG9tX2VuY29kZXJfZGVzdHJveShPcHVzQ3VzdG9tRW5jb2RlciAqc3QpOwpA
QCAtMjg2LDcgKzI4Niw3IEBAIE9QVVNfQ1VTVE9NX0VYUE9SVCBPUFVTX1dBUk5fVU5VU0VEX1JF
U1VMVCBPcHVzQ3VzdG9tRGVjb2RlciAqb3B1c19jdXN0b21fZGVjb2RlCiAgICAgaW50ICplcnJv
cgogKSBPUFVTX0FSR19OT05OVUxMKDEpOwogCi0vKiogRGVzdHJveXMgYSBhbiBkZWNvZGVyIHN0
YXRlLgorLyoqIERlc3Ryb3lzIGEgZGVjb2RlciBzdGF0ZS4KICAgKiBAcGFyYW1baW5dIHN0IDx0
dD5PcHVzQ3VzdG9tRGVjb2Rlcio8L3R0PjogU3RhdGUgdG8gYmUgZnJlZWQuCiAgICovCiBPUFVT
X0NVU1RPTV9FWFBPUlQgdm9pZCBvcHVzX2N1c3RvbV9kZWNvZGVyX2Rlc3Ryb3koT3B1c0N1c3Rv
bURlY29kZXIgKnN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvaW5jbHVkZS9vcHVzX2RlZmluZXMuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvaW5jbHVk
ZS9vcHVzX2RlZmluZXMuaAppbmRleCBkMTQxNDE4YjIxNDZjYzliY2RjM2Q0MjMwZGJhMDkyY2Qz
YjBhYjFlLi5jZWVlNWI4NDBjZjViNTRiZjczYzdiYTE5OGY0MDc5ZjU4NTVlNmJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMv
c3JjL2luY2x1ZGUvb3B1c19kZWZpbmVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9pbmNsdWRlL29wdXNfZGVmaW5lcy5oCkBA
IC02NCw3ICs2NCw3IEBAIGV4dGVybiAiQyIgewogLyoqRXhwb3J0IGNvbnRyb2wgZm9yIG9wdXMg
ZnVuY3Rpb25zICovCiAKICNpZm5kZWYgT1BVU19FWFBPUlQKLSMgaWYgZGVmaW5lZChXSU4zMikK
KyMgaWYgZGVmaW5lZChfV0lOMzIpCiAjICBpZiBkZWZpbmVkKE9QVVNfQlVJTEQpICYmIGRlZmlu
ZWQoRExMX0VYUE9SVCkKICMgICBkZWZpbmUgT1BVU19FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBv
cnQpCiAjICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL21lc29uLmJ1aWxkIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9tZXNvbi5idWlsZApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40MWY2OTM1M2YwNDdiYzkyMWFiM2QxZmRlMWJlMGY5NWI2Mzg5NjFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9tZXNvbi5idWlsZApAQCAtMCwwICsxLDY3NSBAQAorcHJvamVjdCgnb3B1cycsICdj
JywKKyAgdmVyc2lvbjogcnVuX2NvbW1hbmQoJ21lc29uL2dldC12ZXJzaW9uLnB5JywgJy0tcGFj
a2FnZS12ZXJzaW9uJywgY2hlY2s6IHRydWUpLnN0ZG91dCgpLnN0cmlwKCksCisgIG1lc29uX3Zl
cnNpb246ICc+PTAuNTQuMCcsCisgIGRlZmF1bHRfb3B0aW9uczogWyd3YXJuaW5nX2xldmVsPTIn
LAorICAgICAgICAgICAgICAgICAgICAnY19zdGQ9Z251OTknLAorICAgICAgICAgICAgICAgICAg
ICAnYnVpbGR0eXBlPWRlYnVnb3B0aW1pemVkJ10pCisKK2xpYnZlcnNpb24gPSBydW5fY29tbWFu
ZCgnbWVzb24vZ2V0LXZlcnNpb24ucHknLCAnLS1saWJ0b29sLXZlcnNpb24nLCBjaGVjazogdHJ1
ZSkuc3Rkb3V0KCkuc3RyaXAoKQorbWFjb3N2ZXJzaW9uID0gcnVuX2NvbW1hbmQoJ21lc29uL2dl
dC12ZXJzaW9uLnB5JywgJy0tZGFyd2luLXZlcnNpb24nLCBjaGVjazogdHJ1ZSkuc3Rkb3V0KCku
c3RyaXAoKQorCitjYyA9IG1lc29uLmdldF9jb21waWxlcignYycpCitob3N0X3N5c3RlbSA9IGhv
c3RfbWFjaGluZS5zeXN0ZW0oKQoraG9zdF9jcHVfZmFtaWx5ID0gaG9zdF9tYWNoaW5lLmNwdV9m
YW1pbHkoKQordG9wX3NyY2RpciA9IG1lc29uLmN1cnJlbnRfc291cmNlX2RpcigpCit0b3BfYnVp
bGRkaXIgPSBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpCisKK29wdXNfaW5jbHVkZXMgPSBpbmNs
dWRlX2RpcmVjdG9yaWVzKCcuJywgJ2luY2x1ZGUnLCAnY2VsdCcsICdzaWxrJykKK29wdXNfcHVi
bGljX2luY2x1ZGVzID0gaW5jbHVkZV9kaXJlY3RvcmllcygnaW5jbHVkZScpCisKK2FkZF9wcm9q
ZWN0X2FyZ3VtZW50cygnLURPUFVTX0JVSUxEJywgbGFuZ3VhZ2U6ICdjJykKK2FkZF9wcm9qZWN0
X2FyZ3VtZW50cygnLURIQVZFX0NPTkZJR19IJywgbGFuZ3VhZ2U6ICdjJykKKworaWYgaG9zdF9z
eXN0ZW0gPT0gJ3dpbmRvd3MnCisgIGlmIGNjLmdldF9hcmd1bWVudF9zeW50YXgoKSA9PSAnbXN2
YycKKyAgICBhZGRfcHJvamVjdF9hcmd1bWVudHMoJy1EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1Mn
LCBsYW5ndWFnZTogJ2MnKQorICBlbmRpZgorZW5kaWYKKworaWYgY2MuZ2V0X2FyZ3VtZW50X3N5
bnRheCgpID09ICdnbnUnCisgIGFkZF9wcm9qZWN0X2FyZ3VtZW50cygnLURfRk9SVElGWV9TT1VS
Q0U9MicsIGxhbmd1YWdlOiAnYycpCitlbmRpZgorCisjIENoZWNrIGZvciBleHRyYSBjb21waWxl
ciBhcmdzCithZGRpdGlvbmFsX2NfYXJncyA9IFtdCitpZiBjYy5nZXRfYXJndW1lbnRfc3ludGF4
KCkgIT0gJ21zdmMnCisgIGFkZGl0aW9uYWxfY19hcmdzICs9IFsKKyAgICAnLWZ2aXNpYmlsaXR5
PWhpZGRlbicsCisgICAgJy1XY2FzdC1hbGlnbicsCisgICAgJy1XbmVzdGVkLWV4dGVybnMnLAor
ICAgICctV3NoYWRvdycsCisgICAgJy1Xc3RyaWN0LXByb3RvdHlwZXMnLAorICBdCisKKyAgIyBP
biBXaW5kb3dzLCAtZnN0YWNrLXByb3RlY3Rvci1zdHJvbmcgYWRkcyBhIGxpYnNzcC0wLmRsbCBk
ZXBlbmRlbmN5IGFuZAorICAjIHByZXZlbnRzIHN0YXRpYyBsaW5raW5nCisgIGlmIGhvc3Rfc3lz
dGVtICE9ICd3aW5kb3dzJworICAgIGFkZGl0aW9uYWxfY19hcmdzICs9IFsnLWZzdGFjay1wcm90
ZWN0b3Itc3Ryb25nJ10KKyAgZW5kaWYKK2VuZGlmCisKK2ZvcmVhY2ggYXJnIDogYWRkaXRpb25h
bF9jX2FyZ3MKKyAgaWYgY2MuaGFzX2FyZ3VtZW50KGFyZykKKyAgICBhZGRfcHJvamVjdF9hcmd1
bWVudHMoYXJnLCBsYW5ndWFnZTogJ2MnKQorICBlbmRpZgorZW5kZm9yZWFjaAorCisjIFdpbmRv
d3MgTVNWQyB3YXJuaW5ncworaWYgY2MuZ2V0X2lkKCkgPT0gJ21zdmMnCisgICMgSWdub3JlIHNl
dmVyYWwgc3B1cmlvdXMgd2FybmluZ3MuCisgICMgSWYgYSB3YXJuaW5nIGlzIGNvbXBsZXRlbHkg
dXNlbGVzcyBhbmQgc3BhbW15LCB1c2UgJy93ZFhYWFgnIHRvIHN1cHByZXNzIGl0CisgICMgSWYg
YSB3YXJuaW5nIGlzIGhhcm1sZXNzIGJ1dCBoYXJkIHRvIGZpeCwgdXNlICcvd29YWFhYJyBzbyBp
dCdzIHNob3duIG9uY2UKKyAgIyBOT1RFOiBPbmx5IGFkZCB3YXJuaW5ncyBoZXJlIGlmIHlvdSBh
cmUgc3VyZSB0aGV5J3JlIHNwdXJpb3VzCisgIGFkZF9wcm9qZWN0X2FyZ3VtZW50cygnL3dkNDAz
NScsICcvd2Q0NzE1JywgJy93ZDQxMTYnLCAnL3dkNDA0NicsICcvd2Q0MDY4JywKKyAgICAnL3dk
NDgyMCcsICcvd2Q0MjQ0JywgJy93ZDQyNTUnLCAnL3dkNDY2OCcsCisgICAgbGFuZ3VhZ2UgOiAn
YycpCitlbmRpZgorCitvcHVzX3ZlcnNpb24gPSBtZXNvbi5wcm9qZWN0X3ZlcnNpb24oKQorCitv
cHVzX2NvbmYgPSBjb25maWd1cmF0aW9uX2RhdGEoKQorb3B1c19jb25mLnNldCgnUEFDS0FHRV9C
VUdSRVBPUlQnLCAnIm9wdXNAeGlwaC5vcmciJykKK29wdXNfY29uZi5zZXQoJ1BBQ0tBR0VfTkFN
RScsICcib3B1cyInKQorb3B1c19jb25mLnNldCgnUEFDS0FHRV9TVFJJTkcnLCAnIm9wdXMgQDBA
IicuZm9ybWF0KG9wdXNfdmVyc2lvbikpCitvcHVzX2NvbmYuc2V0KCdQQUNLQUdFX1RBUk5BTUUn
LCAnIm9wdXMiJykKK29wdXNfY29uZi5zZXQoJ1BBQ0tBR0VfVVJMJywgJyIiJykKK29wdXNfY29u
Zi5zZXQoJ1BBQ0tBR0VfVkVSU0lPTicsICciQDBAIicuZm9ybWF0KG9wdXNfdmVyc2lvbikpCisK
KyMgRklYTUU6IG9wdGlvbmFsIE5lMTAgZGVwZW5kZW5jeQoraGF2ZV9hcm1fbmUxMCA9IGZhbHNl
CisKK2xpYm0gPSBjYy5maW5kX2xpYnJhcnkoJ20nLCByZXF1aXJlZCA6IGZhbHNlKQorCitvcHVz
X2NvbmYuc2V0KCdIQVZFX0xSSU5URicsIGNjLmhhc19mdW5jdGlvbignbHJpbnRmJywgcHJlZml4
OiAnI2luY2x1ZGUgPG1hdGguaD4nLCBkZXBlbmRlbmNpZXM6IGxpYm0pKQorb3B1c19jb25mLnNl
dCgnSEFWRV9MUklOVCcsIGNjLmhhc19mdW5jdGlvbignbHJpbnQnLCBwcmVmaXg6ICcjaW5jbHVk
ZSA8bWF0aC5oPicsIGRlcGVuZGVuY2llczogbGlibSkpCitvcHVzX2NvbmYuc2V0KCdIQVZFX19f
TUFMTE9DX0hPT0snLCBjYy5oYXNfZnVuY3Rpb24oJ19fbWFsbG9jX2hvb2snLCBwcmVmaXg6ICcj
aW5jbHVkZSA8bWFsbG9jLmg+JykpCitvcHVzX2NvbmYuc2V0KCdIQVZFX1NURElOVF9IJywgY2Mu
Y2hlY2tfaGVhZGVyKCdzdGRpbnQuaCcpKQorCisjIENoZWNrIGZvciByZXN0cmljdCBrZXl3b3Jk
CityZXN0cmljdF90bXBsID0gJycnCit0eXBlZGVmIGludCAqIGludF9wdHI7CitpbnQgZm9vIChp
bnRfcHRyIEAwQCBpcCwgaW50ICogQDBAIGJheltdKSB7CisgIHJldHVybiBpcFswXTsKK30KK2lu
dCBtYWluIChpbnQgYXJnYywgY2hhciAqKiBhcmd2KSB7CisgIGludCBzWzFdOworICBpbnQgKiBA
MEAgdCA9IHM7CisgIHRbMF0gPSAwOworICByZXR1cm4gZm9vKHQsICh2b2lkICopMCk7Cit9Jycn
CisjIERlZmluZSByZXN0cmljdCB0byB0aGUgZXF1aXZhbGVudCBvZiB0aGUgQzk5IHJlc3RyaWN0
IGtleXdvcmQsIG9yIHRvCisjIG5vdGhpbmcgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLiAgRG8g
bm90IGRlZmluZSBpZiByZXN0cmljdCBpcworIyBzdXBwb3J0ZWQgZGlyZWN0bHkuCitpZiBub3Qg
Y2MuY29tcGlsZXMocmVzdHJpY3RfdG1wbC5mb3JtYXQoJ3Jlc3RyaWN0JyksIG5hbWUgOiAncmVz
dHJpY3Qga2V5d29yZCcpCisgIGlmIGNjLmNvbXBpbGVzKHJlc3RyaWN0X3RtcGwuZm9ybWF0KCdf
X3Jlc3RyaWN0JyksIG5hbWUgOiAnX19yZXN0cmljdCcpCisgICAgb3B1c19jb25mLnNldCgncmVz
dHJpY3QnLCAnX19yZXN0cmljdCcpCisgIGVsaWYgY2MuY29tcGlsZXMocmVzdHJpY3RfdG1wbC5m
b3JtYXQoJ19fcmVzdHJpY3RfXycpLCBuYW1lIDogJ19fcmVzdHJpY3RfXycpCisgICAgb3B1c19j
b25mLnNldCgncmVzdHJpY3QnLCAnX19yZXN0cmljdCcpCisgIGVsaWYgY2MuY29tcGlsZXMocmVz
dHJpY3RfdG1wbC5mb3JtYXQoJ19SZXN0cmljdCcpLCBuYW1lIDogJ19SZXN0cmljdCcpCisgICAg
b3B1c19jb25mLnNldCgncmVzdHJpY3QnLCAnX1Jlc3RyaWN0JykKKyAgZWxzZQorICAgIG9wdXNf
Y29uZi5zZXQoJ3Jlc3RyaWN0JywgJy8qKi8nKQorICBlbmRpZgorZW5kaWYKKworIyBDaGVjayBm
b3IgQzk5IHZhcmlhYmxlLXNpemUgYXJyYXlzLCBvciBhbGxvY2EoKSBhcyBmYWxsYmFjaworbXNn
X3VzZV9hbGxvY2EgPSBmYWxzZQoraWYgY2MuY29tcGlsZXMoJycnc3RhdGljIGludCB4OworICAg
ICAgICAgICAgICAgICAgY2hhciBzb21lX2Z1bmMgKHZvaWQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgY2hhciBhWysreF07CisgICAgICAgICAgICAgICAgICAgIGFbc2l6ZW9mIGEgLSAxXSA9IDA7
CisgICAgICAgICAgICAgICAgICAgIGludCBOOworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
YVswXTsKKyAgICAgICAgICAgICAgICAgIH0nJycsIG5hbWUgOiAnQzk5IHZhcmlhYmxlLXNpemUg
YXJyYXlzJykKKyAgb3B1c19jb25mLnNldCgnVkFSX0FSUkFZUycsIDEpCisgIG1zZ191c2VfYWxs
b2NhID0gJ05PICh1c2luZyBDOTkgdmFyaWFibGUtc2l6ZSBhcnJheXMgaW5zdGVhZCknCitlbGlm
IGNjLmNvbXBpbGVzKCcnJyNpbmNsdWRlIDxhbGxvY2EuaD4KKyAgICAgICAgICAgICAgICAgICAg
dm9pZCBzb21lX2Z1bmMgKHZvaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9vPTEw
OworICAgICAgICAgICAgICAgICAgICAgIGludCAqIGFycmF5ID0gYWxsb2NhKGZvbyk7CisgICAg
ICAgICAgICAgICAgICAgIH0nJycsIG5hbWUgOiAnYWxsb2NhIChhbGxvY2EuaCknKQorICBvcHVz
X2NvbmYuc2V0KCdVU0VfQUxMT0NBJywgdHJ1ZSkKKyAgb3B1c19jb25mLnNldCgnSEFWRV9BTExP
Q0FfSCcsIHRydWUpCisgIG1zZ191c2VfYWxsb2NhID0gdHJ1ZQorZWxpZiBjYy5jb21waWxlcygn
JycjaW5jbHVkZSA8bWFsbG9jLmg+CisgICAgICAgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRs
aWIuaD4KKyAgICAgICAgICAgICAgICAgICAgdm9pZCBzb21lX2Z1bmMgKHZvaWQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZm9vPTEwOworICAgICAgICAgICAgICAgICAgICAgIGludCAq
IGFycmF5ID0gYWxsb2NhKGZvbyk7CisgICAgICAgICAgICAgICAgICAgIH0nJycsIG5hbWUgOiAn
YWxsb2NhIChzdGQpJykKKyAgb3B1c19jb25mLnNldCgnVVNFX0FMTE9DQScsIHRydWUpCisgIG1z
Z191c2VfYWxsb2NhID0gdHJ1ZQorZW5kaWYKKworb3B0cyA9IFsKKyAgWyAnZml4ZWQtcG9pbnQn
LCAnRklYRURfUE9JTlQnIF0sCisgIFsgJ2ZpeGVkLXBvaW50LWRlYnVnJywgJ0ZJWEVEX0RFQlVH
JyBdLAorICBbICdjdXN0b20tbW9kZXMnLCAnQ1VTVE9NX01PREVTJyBdLAorICBbICdmbG9hdC1h
cHByb3gnLCAnRkxPQVRfQVBQUk9YJyBdLAorICBbICdhc3NlcnRpb25zJywgJ0VOQUJMRV9BU1NF
UlRJT05TJyBdLAorICBbICdoYXJkZW5pbmcnLCAnRU5BQkxFX0hBUkRFTklORycgXSwKKyAgWyAn
ZnV6emluZycsICdGVVpaSU5HJyBdLAorICBbICdjaGVjay1hc20nLCAnT1BVU19DSEVDS19BU00n
IF0sCitdCisKK2ZvcmVhY2ggb3B0IDogb3B0cworICAjIHdlIGFzc3VtZSB0aGVzZSBhcmUgYWxs
IGJvb2xlYW4gb3B0aW9ucworICBvcHRfZm9vID0gZ2V0X29wdGlvbihvcHRbMF0pCisgIGlmIG9w
dF9mb28KKyAgICBvcHVzX2NvbmYuc2V0KG9wdFsxXSwgMSkKKyAgZW5kaWYKKyAgc2V0X3Zhcmlh
YmxlKCdvcHRfJyArIG9wdFswXS51bmRlcnNjb3JpZnkoKSwgb3B0X2ZvbykKK2VuZGZvcmVhY2gK
Kworb3B0X2FzbSA9IGdldF9vcHRpb24oJ2FzbScpCitvcHRfcnRjZCA9IGdldF9vcHRpb24oJ3J0
Y2QnKQorb3B0X2ludHJpbnNpY3MgPSBnZXRfb3B0aW9uKCdpbnRyaW5zaWNzJykKK2V4dHJhX3By
b2dyYW1zID0gZ2V0X29wdGlvbignZXh0cmEtcHJvZ3JhbXMnKQorb3B0X3Rlc3RzID0gZ2V0X29w
dGlvbigndGVzdHMnKQorCitkaXNhYmxlX2Zsb2F0X2FwaSA9IG5vdCBnZXRfb3B0aW9uKCdmbG9h
dC1hcGknKQoraWYgZGlzYWJsZV9mbG9hdF9hcGkKKyAgb3B1c19jb25mLnNldCgnRElTQUJMRV9G
TE9BVF9BUEknLCAxKQorZW5kaWYKKworIyBUaGlzIGlzIGZvciB0aGUgZGVzY3JpcHRpb24gaW4g
dGhlIHBrZy1jb25maWcgLnBjIGZpbGUKK2lmIG9wdF9maXhlZF9wb2ludAorICBwY19idWlsZCA9
ICdmaXhlZC1wb2ludCcKK2Vsc2UKKyAgcGNfYnVpbGQgPSAnZmxvYXRpbmctcG9pbnQnCitlbmRp
ZgoraWYgb3B0X2N1c3RvbV9tb2RlcworICBwY19idWlsZCA9IHBjX2J1aWxkICsgJywgY3VzdG9t
IG1vZGVzJworZW5kaWYKKworcnRjZF9zdXBwb3J0ID0gW10KKyMgV2l0aCBHQ0MsIENsYW5nLCBJ
Q0MsIGV0Yywgd2UgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuICdtYXkgc3VwcG9ydCB0aGlzIFNJTUQn
CisjIGFuZCAncHJlc3VtZSB3ZSBoYXZlIHRoaXMgU0lNRCcgYnkgY2hlY2tpbmcgd2hldGhlciB0
aGUgU0lNRCAvIGludHJpbnNpY3MgY2FuCisjIGJlIGNvbXBpbGVkIGJ5IHRoZSBjb21waWxlciBh
cy1pcyAocHJlc3VtZSkgb3Igd2l0aCBTSU1EIGNmbGFncyAobWF5IGhhdmUpLgorIyBXaXRoIE1T
VkMsIHRoZSBjb21waWxlciB3aWxsIGFsd2F5cyBidWlsZCBTSU1EL2ludHJpbnNpY3MgdGFyZ2V0
aW5nIGFsbAorIyBzcGVjaWZpYyBpbnN0cnVjdGlvbiBzZXRzIHN1cHBvcnRlZCBieSB0aGF0IHZl
cnNpb24gb2YgdGhlIGNvbXBpbGVyLiBObworIyBzcGVjaWFsIGFyZ3VtZW50cyBhcmUgZXZlciBu
ZWVkZWQuIElmIHJ1bnRpbWUgQ1BVIGRldGVjdGlvbiBpcyBub3QgZGlzYWJsZWQsCisjIHdlIG11
c3QgYWx3YXlzIGFzc3VtZSB0aGF0IHdlIG9ubHkgJ21heSBoYXZlJyBpdC4KK29wdXNfY2FuX3By
ZXN1bWVfc2ltZCA9IHRydWUKK2lmIGNjLmdldF9hcmd1bWVudF9zeW50YXgoKSA9PSAnbXN2YycK
KyAgaWYgb3B0X3J0Y2QuZGlzYWJsZWQoKQorICAgIHdhcm5pbmcoJ0J1aWxkaW5nIHdpdGggYW4g
TVNWQy1saWtlIGNvbXBpbGVyIGFuZCBydW50aW1lIENQVSBkZXRlY3Rpb24gaXMgZGlzYWJsZWQu
IE91dHB1dHMgbWF5IG5vdCBydW4gb24gYWxsIEAwQCBDUFVzLicuZm9ybWF0KGhvc3RfY3B1X2Zh
bWlseSkpCisgIGVsc2UKKyAgICBvcHVzX2Nhbl9wcmVzdW1lX3NpbWQgPSBmYWxzZQorICBlbmRp
ZgorZW5kaWYKKworb3B1c19hcm1fZXh0ZXJuYWxfYXNtID0gZmFsc2UKKworYXNtX3RtcGwgPSAn
JycKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqKiBhcmd2KSB7CisgIF9fYXNtX18oIkAwQCIp
OworICByZXR1cm4gMDsKK30nJycKKworYXNtX29wdGltaXphdGlvbiA9IFtdCitpbmxpbmVfb3B0
aW1pemF0aW9uID0gW10KK2lmIG5vdCBvcHRfYXNtLmRpc2FibGVkKCkKKyAgIyBDdXJyZW50bHkg
d2Ugb25seSBoYXZlIGlubGluZSBhc20gZm9yIGZpeGVkLXBvaW50CisgIGlmIGhvc3RfY3B1X2Zh
bWlseSA9PSAnYXJtJyBhbmQgb3B0X2ZpeGVkX3BvaW50CisgICAgb3B1c19jb25mLnNldCgnT1BV
U19BUk1fQVNNJywgdHJ1ZSkKKworICAgICMgQ2hlY2sgaWYgY29tcGlsZXIgc3VwcG9ydHMgZ2Nj
LXN0eWxlIGlubGluZSBhc3NlbWJseQorICAgIGlmIGNjLmNvbXBpbGVzKCcnJyNpZmRlZiBfX0dO
VUNfTUlOT1JfXworICAgICAgICAgICAgICAgICAgICAgICNpZiAoX19HTlVDX18gKiAxMDAwICsg
X19HTlVDX01JTk9SX18pIDwgMzAwNAorICAgICAgICAgICAgICAgICAgICAgICNlcnJvciBHQ0Mg
YmVmb3JlIDMuNCBoYXMgY3JpdGljYWwgYnVncyBjb21waWxpbmcgaW5saW5lIGFzc2VtYmx5Cisg
ICAgICAgICAgICAgICAgICAgICAgI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgI2VuZGlm
CisgICAgICAgICAgICAgICAgICAgICAgX19hc21fXyAoIiI6OiknJycsCisgICAgICAgICAgICAg
ICAgICAgbmFtZSA6ICdjb21waWxlciBzdXBwb3J0cyBnY2Mtc3R5bGUgaW5saW5lIGFzc2VtYmx5
JykKKworICAgICAgb3B1c19jb25mLnNldCgnT1BVU19BUk1fSU5MSU5FX0FTTScsIDEpCisKKyAg
ICAgICMgQVNfQVNNX0FSTV9FRFNQCisgICAgICBpZiBjYy5jb21waWxlcyhhc21fdG1wbC5mb3Jt
YXQoJ3FhZGQgcjMscjMscjMnKSwKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUgOiAnYXNzZW1i
bGVyIHN1cHBvcnRzIEVEU1AgaW5zdHJ1Y3Rpb25zIG9uIEFSTScpCisgICAgICAgIG9wdXNfY29u
Zi5zZXQoJ09QVVNfQVJNX0lOTElORV9FRFNQJywgMSkKKyAgICAgICAgaW5saW5lX29wdGltaXph
dGlvbiArPSBbJ0VTRFAnXQorICAgICAgZW5kaWYKKworICAgICAgIyBBU19BU01fQVJNX01FRElB
CisgICAgICBpZiBjYy5jb21waWxlcyhhc21fdG1wbC5mb3JtYXQoJ3NoYWRkOCByMyxyMyxyMycp
LAorICAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICdhc3NlbWJsZXIgc3VwcG9ydHMgQVJNdjYg
bWVkaWEgaW5zdHJ1Y3Rpb25zIG9uIEFSTScpCisgICAgICAgIG9wdXNfY29uZi5zZXQoJ09QVVNf
QVJNX0lOTElORV9NRURJQScsIDEpCisgICAgICAgIGlubGluZV9vcHRpbWl6YXRpb24gKz0gWydN
ZWRpYSddCisgICAgICBlbmRpZgorCisgICAgICAjIEFTX0FTTV9BUk1fTkVPTgorICAgICAgaWYg
Y2MuY29tcGlsZXMoYXNtX3RtcGwuZm9ybWF0KCd2b3JyIGQwLGQwLGQwJyksCisgICAgICAgICAg
ICAgICAgICAgICBuYW1lIDogJ2Fzc2VtYmxlciBzdXBwb3J0cyBORU9OIGluc3RydWN0aW9ucyBv
biBBUk0nKQorICAgICAgICBvcHVzX2NvbmYuc2V0KCdPUFVTX0FSTV9JTkxJTkVfTkVPTicsIDEp
CisgICAgICAgIGlubGluZV9vcHRpbWl6YXRpb24gKz0gWydORU9OJ10KKyAgICAgIGVuZGlmCisg
ICAgZW5kaWYKKworICAgICMgV2UgbmVlZCBQZXJsIHRvIHRyYW5zbGF0ZSBSVkNULXN5bnRheCBh
c20gdG8gZ2FzIHN5bnRheAorICAgIHBlcmwgPSBmaW5kX3Byb2dyYW0oJ3BlcmwnLCByZXF1aXJl
ZDogZ2V0X29wdGlvbignYXNtJykpCisgICAgaWYgcGVybC5mb3VuZCgpCisgICAgICBvcHVzX2Fy
bV9leHRlcm5hbF9hc20gPSB0cnVlCisgICAgICAjIG9wdXNfYXJtX3ByZXN1bWVfKiBtZWFuIHdl
IGNhbiBhbmQgd2lsbCB1c2UgdGhvc2UgaW5zdHJ1Y3Rpb25zCisgICAgICAjIGRpcmVjdGx5IHdp
dGhvdXQgZG9pbmcgcnVudGltZSBDUFUgZGV0ZWN0aW9uLgorICAgICAgIyBvcHVzX2FybV9tYXlf
aGF2ZV8qIG1lYW4gd2UgY2FuIGVtaXQgdGhvc2UgaW5zdHJ1Y3Rpb25zLCBidXQgd2UgY2FuCisg
ICAgICAjIG9ubHkgdXNlIHRoZW0gYWZ0ZXIgcnVudGltZSBkZXRlY3Rpb24uCisgICAgICAjIFRo
ZSBzYW1lIHJ1bGVzIGFwcGx5IGZvciB4ODYgYXNzZW1ibHkgYW5kIGludHJpbnNpY3MuCisKKyAg
ICAgIG9wdXNfYXJtX21heV9oYXZlX2Vkc3AgPSBvcHVzX2NvbmYuaGFzKCdPUFVTX0FSTV9JTkxJ
TkVfRURTUCcpCisgICAgICBvcHVzX2FybV9wcmVzdW1lX2Vkc3AgPSBvcHVzX2FybV9tYXlfaGF2
ZV9lZHNwIGFuZCBvcHVzX2Nhbl9wcmVzdW1lX3NpbWQKKworICAgICAgb3B1c19hcm1fbWF5X2hh
dmVfbWVkaWEgPSBvcHVzX2NvbmYuaGFzKCdPUFVTX0FSTV9JTkxJTkVfTUVESUEnKQorICAgICAg
b3B1c19hcm1fcHJlc3VtZV9tZWRpYSA9IG9wdXNfYXJtX21heV9oYXZlX21lZGlhIGFuZCBvcHVz
X2Nhbl9wcmVzdW1lX3NpbWQKKworICAgICAgb3B1c19hcm1fbWF5X2hhdmVfbmVvbiA9IG9wdXNf
Y29uZi5oYXMoJ09QVVNfQVJNX0lOTElORV9ORU9OJykKKyAgICAgIG9wdXNfYXJtX3ByZXN1bWVf
bmVvbiA9IG9wdXNfYXJtX21heV9oYXZlX25lb24gYW5kIG9wdXNfY2FuX3ByZXN1bWVfc2ltZAor
CisgICAgICBpZiBub3Qgb3B0X3J0Y2QuZGlzYWJsZWQoKQorICAgICAgICBpZiBub3Qgb3B1c19h
cm1fbWF5X2hhdmVfZWRzcAorICAgICAgICAgIG1lc3NhZ2UoJ1RyeWluZyB0byBmb3JjZS1lbmFi
bGUgYXJtdjVlIEVEU1AgaW5zdHJ1Y3Rpb25zLi4uJykKKyAgICAgICAgICAjIEFTX0FTTV9BUk1f
RURTUF9GT1JDRQorICAgICAgICAgIG9wdXNfYXJtX21heV9oYXZlX2Vkc3AgPSBjYy5jb21waWxl
cyhhc21fdG1wbC5mb3JtYXQoJy5hcmNoIGFybXY1dGVcbi5vYmplY3RfYXJjaCBhcm12NHRcbnFh
ZGQgcjMscjMscjMnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZSA6ICdBc3NlbWJsZXIgc3VwcG9ydHMgRURTUCBpbnN0cnVjdGlvbnMgb24gQVJN
IChmb3JjZWQpJykKKyAgICAgICAgZW5kaWYKKyAgICAgICAgaWYgbm90IG9wdXNfYXJtX21heV9o
YXZlX21lZGlhCisgICAgICAgICAgbWVzc2FnZSgnVHJ5aW5nIHRvIGZvcmNlLWVuYWJsZSBBUk12
NiBtZWRpYSBpbnN0cnVjdGlvbnMuLi4nKQorICAgICAgICAgIG9wdXNfYXJtX21heV9oYXZlX21l
ZGlhID0gY2MuY29tcGlsZXMoYXNtX3RtcGwuZm9ybWF0KCcuYXJjaCBhcm12NlxuLm9iamVjdF9h
cmNoIGFybXY0dFxuc2hhZGQ4IHIzLHIzLHIzJyksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBuYW1lIDogJ0Fzc2VtYmxlciBzdXBwb3J0cyBBUk12NiBt
ZWRpYSBpbnN0cnVjdGlvbnMgb24gQVJNIChmb3JjZWQpJykKKyAgICAgICAgZW5kaWYKKyAgICAg
ICAgaWYgbm90IG9wdXNfYXJtX21heV9oYXZlX25lb24KKyAgICAgICAgICBtZXNzYWdlKCdUcnlp
bmcgdG8gZm9yY2UtZW5hYmxlIE5FT04gaW5zdHJ1Y3Rpb25zLi4uJykKKyAgICAgICAgICBvcHVz
X2FybV9tYXlfaGF2ZV9uZW9uID0gY2MuY29tcGlsZXMoYXNtX3RtcGwuZm9ybWF0KCcuYXJjaCBh
cm12Ny1hXG4uZnB1IG5lb25cbi5vYmplY3RfYXJjaCBhcm12NHRcbnZvcnIgZDAsZDAsZDAnKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICdB
c3NlbWJsZXIgc3VwcG9ydHMgTkVPTiBpbnN0cnVjdGlvbnMgb24gQVJNIChmb3JjZWQpJykKKyAg
ICAgICAgZW5kaWYKKyAgICAgIGVuZGlmCisKKyAgICAgIGlmIG9wdXNfYXJtX21heV9oYXZlX2Vk
c3AKKyAgICAgICAgb3B1c19jb25mLnNldCgnT1BVU19BUk1fTUFZX0hBVkVfRURTUCcsIDEpCisg
ICAgICAgIGlmIG9wdXNfYXJtX3ByZXN1bWVfZWRzcAorICAgICAgICAgIG9wdXNfY29uZi5zZXQo
J09QVVNfQVJNX1BSRVNVTUVfRURTUCcsIDEpCisgICAgICAgICAgYXNtX29wdGltaXphdGlvbiAr
PSBbJ0VEU1AnXQorICAgICAgICBlbHNlCisgICAgICAgICAgcnRjZF9zdXBwb3J0ICs9IFsnRURT
UCddCisgICAgICAgIGVuZGlmCisgICAgICBlbmRpZgorICAgICAgaWYgb3B1c19hcm1fbWF5X2hh
dmVfbWVkaWEKKyAgICAgICAgb3B1c19jb25mLnNldCgnT1BVU19BUk1fTUFZX0hBVkVfTUVESUEn
LCAxKQorICAgICAgICBpZiBvcHVzX2FybV9wcmVzdW1lX21lZGlhCisgICAgICAgICAgb3B1c19j
b25mLnNldCgnT1BVU19BUk1fUFJFU1VNRV9NRURJQScsIDEpCisgICAgICAgICAgYXNtX29wdGlt
aXphdGlvbiArPSBbJ01lZGlhJ10KKyAgICAgICAgZWxzZQorICAgICAgICAgIHJ0Y2Rfc3VwcG9y
dCArPSBbJ01lZGlhJ10KKyAgICAgICAgZW5kaWYKKyAgICAgIGVuZGlmCisgICAgICBpZiBvcHVz
X2FybV9tYXlfaGF2ZV9uZW9uCisgICAgICAgIG9wdXNfY29uZi5zZXQoJ09QVVNfQVJNX01BWV9I
QVZFX05FT04nLCAxKQorICAgICAgICBpZiBvcHVzX2FybV9wcmVzdW1lX25lb24KKyAgICAgICAg
ICBvcHVzX2NvbmYuc2V0KCdPUFVTX0FSTV9QUkVTVU1FX05FT04nLCAxKQorICAgICAgICAgIGFz
bV9vcHRpbWl6YXRpb24gKz0gWydORU9OJ10KKyAgICAgICAgZWxzZQorICAgICAgICAgIHJ0Y2Rf
c3VwcG9ydCArPSBbJ05FT04nXQorICAgICAgICBlbmRpZgorICAgICAgZW5kaWYKKworICAgICAg
aWYgY2MuZ2V0X2RlZmluZSgnX19BUFBMRV9fJykKKyAgICAgICAgYXJtMmdudV9hcmdzID0gWyct
LWFwcGxlJ10KKyAgICAgIGVsc2UKKyAgICAgICAgYXJtMmdudV9hcmdzID0gW10KKyAgICAgIGVu
ZGlmCisgICAgZW5kaWYgIyBmb3VuZCBwZXJsCisgIGVsc2UgIyBhcm0gKyBlbmFibGUgZml4ZWQg
cG9pbnQKKyAgICBpZiBvcHRfYXNtLmVuYWJsZWQoKQorICAgICAgZXJyb3IoJ2FzbSBvcHRpb24g
aXMgZW5hYmxlZCwgYnV0IG5vIGFzc2VtYmx5IHN1cHBvcnQgZm9yICcgKyBob3N0X2NwdV9mYW1p
bHkpCisgICAgZW5kaWYKKyAgZW5kaWYKK2VuZGlmICMgZW5hYmxlIGFzbQorCisjIENoZWNrIHdo
ZXRoZXIgd2UgcmVxdWlyZSBhc3NlbWJseSBhbmQgd2Ugc3VwcG9ydCBhc3NlbWJseSBvbiB0aGlz
IGFyY2gsCisjIGJ1dCBub25lIHdlcmUgZGV0ZWN0ZWQuIENhbiBoYXBwZW4gYmVjYXVzZSBvZiBp
bmNvcnJlY3QgY29tcGlsZXIgZmxhZ3MsIHN1Y2gKKyMgYXMgbWlzc2luZyAtbWZsb2F0LWFiaT1z
b2Z0ZnAgb24gQVJNMzIgc29mdGZwIGFyY2hpdGVjdHVyZXMuCitpZiBvcHRfYXNtLmVuYWJsZWQo
KSBhbmQgKGFzbV9vcHRpbWl6YXRpb24ubGVuZ3RoKCkgKyBpbmxpbmVfb3B0aW1pemF0aW9uLmxl
bmd0aCgpKSA9PSAwCisgIGVycm9yKCdhc20gb3B0aW9uIHdhcyBlbmFibGVkLCBidXQgbm8gYXNz
ZW1ibHkgc3VwcG9ydCB3YXMgZGV0ZWN0ZWQnKQorZW5kaWYKKworIyBYWFg6IE5FT04gaGFzIGhh
cmRmcCB2cyBzb2Z0ZnAgY29tcGlsZXIgY29uZmlndXJhdGlvbiBpc3N1ZXMKKyMgV2hlbiB0YXJn
ZXRpbmcgQVJNMzIgc29mdGZwLCB3ZSBzb21ldGltZXMgbmVlZCB0byBleHBsaWNpdGx5IHBhc3MK
KyMgLW1mbG9hdC1hYmk9c29mdGZwIHRvIGVuYWJsZSBORU9OLiBGLmV4Liwgb24gQW5kcm9pZC4g
SXQgc2hvdWxkCisjIGJlIHNldCBpbiB0aGUgY3Jvc3MgZmlsZS4KK2FybV9uZW9uX2ludHJfbGlu
a19hcmdzID0gWyctbWZwdT1uZW9uJ10KKworaGF2ZV9zc2UgPSBmYWxzZQoraGF2ZV9zc2UyID0g
ZmFsc2UKK2hhdmVfc3NlNF8xID0gZmFsc2UKK2hhdmVfYXZ4ID0gZmFsc2UgIyBubyBhdnggb3B1
cyBjb2RlIHlldAoraGF2ZV9uZW9uX2ludHIgPSBmYWxzZQorCitpbnRyaW5zaWNzX3N1cHBvcnQg
PSBbXQoraWYgbm90IG9wdF9pbnRyaW5zaWNzLmRpc2FibGVkKCkKKyAgaWYgaG9zdF9jcHVfZmFt
aWx5IGluIFsnYXJtJywgJ2FhcmNoNjQnXQorICAgICMgQ2hlY2sgZm9yIEFSTXY3L0FBcmNoNjQg
bmVvbiBpbnRyaW5zaWNzCisgICAgaW50cmluX2NoZWNrID0gJycnCisgICAgI2luY2x1ZGUgPGFy
bV9uZW9uLmg+CisgICAgICBpbnQgbWFpbiAodm9pZCkgeworICAgICAgICBzdGF0aWMgZmxvYXQz
Mng0X3QgQTAsIEExLCBTVU1NOworICAgICAgICBTVU1NID0gdm1sYXFfZjMyKFNVTU0sIEEwLCBB
MSk7CisgICAgICAgIHJldHVybiAoaW50KXZnZXRxX2xhbmVfZjMyKFNVTU0sIDApOworICAgICAg
fScnJworICAgIGludHJpbl9uYW1lID0gJ0FSTXY3L0FBcmNoNjQgTkVPTicKKyAgICBpZiBjYy5s
aW5rcyhpbnRyaW5fY2hlY2ssCisgICAgICAgICAgICAgICAgbmFtZTogJ2NvbXBpbGVyIHN1cHBv
cnRzIEAwQCBpbnRyaW5zaWNzJy5mb3JtYXQoaW50cmluX25hbWUpKQorICAgICAgb3B1c19hcm1f
cHJlc3VtZV9uZW9uX2ludHIgPSBvcHVzX2Nhbl9wcmVzdW1lX3NpbWQKKyAgICAgIG9wdXNfYXJt
X21heV9oYXZlX25lb25faW50ciA9IHRydWUKKyAgICBlbHNlCisgICAgICBvcHVzX2FybV9wcmVz
dW1lX25lb25faW50ciA9IGZhbHNlCisgICAgICBpZiBjYy5saW5rcyhpbnRyaW5fY2hlY2ssCisg
ICAgICAgICAgICAgICAgICBhcmdzOiBhcm1fbmVvbl9pbnRyX2xpbmtfYXJncywKKyAgICAgICAg
ICAgICAgICAgIG5hbWU6ICdjb21waWxlciBzdXBwb3J0cyBAMEAgaW50cmluc2ljcyB3aXRoIEAx
QCcuZm9ybWF0KGludHJpbl9uYW1lLCAnICcuam9pbihhcm1fbmVvbl9pbnRyX2xpbmtfYXJncykp
KQorICAgICAgICBvcHVzX2FybV9tYXlfaGF2ZV9uZW9uX2ludHIgPSB0cnVlCisgICAgICBlbHNl
CisgICAgICAgIG9wdXNfYXJtX21heV9oYXZlX25lb25faW50ciA9IGZhbHNlCisgICAgICBlbmRp
ZgorICAgIGVuZGlmCisKKyAgICBpZiBvcHVzX2FybV9tYXlfaGF2ZV9uZW9uX2ludHIKKyAgICAg
IGhhdmVfbmVvbl9pbnRyID0gdHJ1ZQorICAgICAgaW50cmluc2ljc19zdXBwb3J0ICs9IFtpbnRy
aW5fbmFtZV0KKyAgICAgIG9wdXNfY29uZi5zZXQoJ09QVVNfQVJNX01BWV9IQVZFX05FT05fSU5U
UicsIDEpCisgICAgICBpZiBvcHVzX2FybV9wcmVzdW1lX25lb25faW50cgorICAgICAgICBvcHVz
X2NvbmYuc2V0KCdPUFVTX0FSTV9QUkVTVU1FX05FT05fSU5UUicsIDEpCisgICAgICBlbHNlCisg
ICAgICAgIHJ0Y2Rfc3VwcG9ydCArPSBbaW50cmluX25hbWVdCisgICAgICAgIG9wdXNfbmVvbl9p
bnRyX2FyZ3MgPSBhcm1fbmVvbl9pbnRyX2xpbmtfYXJncworICAgICAgZW5kaWYKKyAgICBlbHNl
CisgICAgICBtZXNzYWdlKCdDb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IEAwQCBpbnRyaW5zaWNz
Jy5mb3JtYXQoaW50cmluX25hbWUpKQorICAgIGVuZGlmCisKKyAgICAjIENoZWNrIGZvciBhYXJj
aDY0IG5lb24gaW50cmluc2ljcworICAgIGludHJpbl9jaGVjayA9ICcnJworICAgICNpbmNsdWRl
IDxhcm1fbmVvbi5oPgorICAgICAgaW50IG1haW4gKHZvaWQpIHsKKyAgICAgICAgc3RhdGljIGlu
dDMyX3QgSU47CisgICAgICAgIHN0YXRpYyBpbnQxNl90IE9VVDsKKyAgICAgICAgT1VUID0gdnFt
b3Zuc19zMzIoSU4pOworICAgICAgfScnJworICAgIGludHJpbl9uYW1lID0gJ0FBcmNoNjQgTkVP
TicKKyAgICBpZiBjYy5saW5rcyhpbnRyaW5fY2hlY2ssCisgICAgICAgICAgICAgICAgbmFtZTog
J2NvbXBpbGVyIHN1cHBvcnRzIEAwQCBpbnRyaW5zaWNzJy5mb3JtYXQoaW50cmluX25hbWUpKQor
ICAgICAgb3B1c19hcm1fcHJlc3VtZV9hYXJjaDY0X25lb25faW50ciA9IG9wdXNfY2FuX3ByZXN1
bWVfc2ltZAorICAgICAgb3B1c19hcm1fbWF5X2hhdmVfYWFyY2g2NF9uZW9uX2ludHIgPSB0cnVl
CisgICAgZWxzZQorICAgICAgb3B1c19hcm1fcHJlc3VtZV9hYXJjaDY0X25lb25faW50ciA9IGZh
bHNlCisgICAgICBpZiBjYy5saW5rcyhpbnRyaW5fY2hlY2ssCisgICAgICAgICAgICAgICAgICBh
cmdzOiBhcm1fbmVvbl9pbnRyX2xpbmtfYXJncywKKyAgICAgICAgICAgICAgICAgIG5hbWU6ICdj
b21waWxlciBzdXBwb3J0cyBAMEAgaW50cmluc2ljcyB3aXRoIEAxQCcuZm9ybWF0KGludHJpbl9u
YW1lLCAnICcuam9pbihhcm1fbmVvbl9pbnRyX2xpbmtfYXJncykpKQorICAgICAgICBvcHVzX2Fy
bV9tYXlfaGF2ZV9hYXJjaDY0X25lb25faW50ciA9IHRydWUKKyAgICAgIGVsc2UKKyAgICAgICAg
b3B1c19hcm1fbWF5X2hhdmVfYWFyY2g2NF9uZW9uX2ludHIgPSBmYWxzZQorICAgICAgZW5kaWYK
KyAgICBlbmRpZgorCisgICAgaWYgb3B1c19hcm1fbWF5X2hhdmVfYWFyY2g2NF9uZW9uX2ludHIK
KyAgICAgIGludHJpbnNpY3Nfc3VwcG9ydCArPSBbaW50cmluX25hbWVdCisgICAgICBvcHVzX2Nv
bmYuc2V0KCdPUFVTX1g4Nl9NQVlfSEFWRV9BQVJDSDY0X05FT05fSU5UUicsIDEpCisgICAgICBp
ZiBvcHVzX2FybV9wcmVzdW1lX2FhcmNoNjRfbmVvbl9pbnRyCisgICAgICAgIG9wdXNfY29uZi5z
ZXQoJ09QVVNfWDg2X1BSRVNVTUVfQUFSQ0g2NF9ORU9OX0lOVFInLCAxKQorICAgICAgZW5kaWYK
KyAgICBlbHNlCisgICAgICBtZXNzYWdlKCdDb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IEAwQCBp
bnRyaW5zaWNzJy5mb3JtYXQoaW50cmluX25hbWUpKQorICAgIGVuZGlmCisgIGVsaWYgaG9zdF9j
cHVfZmFtaWx5IGluIFsneDg2JywgJ3g4Nl82NCddCisgICAgIyBYWFg6IGFsbG93IGV4dGVybmFs
IG92ZXJyaWRlL3NwZWNpZmljYXRpb24gb2YgdGhlIGZsYWdzCisgICAgeDg2X2ludHJpbnNpY3Mg
PSBbCisgICAgICBbICdTU0UnLCAneG1taW50cmluLmgnLCAnX19tMTI4JywgJ19tbV9zZXR6ZXJv
X3BzKCknLCBbJy1tc3NlJ10gXSwKKyAgICAgIFsgJ1NTRTInLCAnZW1taW50cmluLmgnLCAnX19t
MTI4aScsICdfbW1fc2V0emVyb19zaTEyOCgpJywgWyctbXNzZTInXSBdLAorICAgICAgWyAnU1NF
NC4xJywgJ3NtbWludHJpbi5oJywgJ19fbTEyOGknLCAnX21tX3NldHplcm9fc2kxMjgoKTsgbXRl
c3QgPSBfbW1fY21wZXFfZXBpNjQobXRlc3QsIG10ZXN0KScsIFsnLW1zc2U0LjEnXSBdLAorICAg
ICAgWyAnQVZYJywgJ2ltbWludHJpbi5oJywgJ19fbTI1NicsICdfbW0yNTZfc2V0emVyb19wcygp
JywgWyctbWF2eCddIF0sCisgICAgXQorCisgICAgZm9yZWFjaCBpbnRyaW4gOiB4ODZfaW50cmlu
c2ljcworICAgICAgaW50cmluX2NoZWNrID0gJycnI2luY2x1ZGUgPEAwQD4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBtYWluIChpbnQgYXJnYywgY2hhciAqKiBhcmd2KSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpYyBAMUAgbXRlc3Q7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG10ZXN0ID0gQDJAOworICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKigo
dW5zaWduZWQgY2hhciAqKSAmbXRlc3QpICE9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICB9
JycnLmZvcm1hdChpbnRyaW5bMV0saW50cmluWzJdLGludHJpblszXSkKKyAgICAgIGludHJpbl9u
YW1lID0gaW50cmluWzBdCisgICAgICAjIEludHJpbnNpY3MgYXJndW1lbnRzIGFyZSBub3QgYXZh
aWxhYmxlIHdpdGggTVNWQy1saWtlIGNvbXBpbGVycworICAgICAgaW50cmluX2FyZ3MgPSBjYy5n
ZXRfYXJndW1lbnRfc3ludGF4KCkgPT0gJ21zdmMnID8gW10gOiBpbnRyaW5bNF0KKyAgICAgIGlm
IGNjLmxpbmtzKGludHJpbl9jaGVjaywgbmFtZSA6ICdjb21waWxlciBzdXBwb3J0cyBAMEAgaW50
cmluc2ljcycuZm9ybWF0KGludHJpbl9uYW1lKSkKKyAgICAgICAgbWF5X2hhdmVfaW50cmluID0g
dHJ1ZQorICAgICAgICBwcmVzdW1lX2ludHJpbiA9IG9wdXNfY2FuX3ByZXN1bWVfc2ltZAorICAg
ICAgZWxpZiBpbnRyaW5fYXJncy5sZW5ndGgoKSA+IDAKKyAgICAgICAgcHJlc3VtZV9pbnRyaW4g
PSBmYWxzZQorICAgICAgICBpZiBjYy5saW5rcyhpbnRyaW5fY2hlY2ssCisgICAgICAgICAgICAg
ICAgICAgIGFyZ3MgOiBpbnRyaW5fYXJncywKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICdj
b21waWxlciBzdXBwb3J0cyBAMEAgaW50cmluc2ljcyB3aXRoIEAxQCcuZm9ybWF0KGludHJpbl9u
YW1lLCAnICcuam9pbihpbnRyaW5fYXJncykpKQorICAgICAgICAgIG1heV9oYXZlX2ludHJpbiA9
IHRydWUKKyAgICAgICAgZWxzZQorICAgICAgICAgIG1heV9oYXZlX2ludHJpbiA9IGZhbHNlCisg
ICAgICAgIGVuZGlmCisgICAgICBlbmRpZgorICAgICAgaWYgbWF5X2hhdmVfaW50cmluCisgICAg
ICAgIGludHJpbnNpY3Nfc3VwcG9ydCArPSBbaW50cmluX25hbWVdCisgICAgICAgIGludHJpbl9s
b3dlcl9uYW1lID0gaW50cmluX25hbWUudG9fbG93ZXIoKS51bmRlcnNjb3JpZnkoKQorICAgICAg
ICBzZXRfdmFyaWFibGUoJ2hhdmVfJyArIGludHJpbl9sb3dlcl9uYW1lLCB0cnVlKQorICAgICAg
ICBvcHVzX2NvbmYuc2V0KCdPUFVTX1g4Nl9NQVlfSEFWRV8nICsgaW50cmluX25hbWUudW5kZXJz
Y29yaWZ5KCksIDEpCisgICAgICAgIGlmIHByZXN1bWVfaW50cmluCisgICAgICAgICAgb3B1c19j
b25mLnNldCgnT1BVU19YODZfUFJFU1VNRV8nICsgaW50cmluX25hbWUudW5kZXJzY29yaWZ5KCks
IDEpCisgICAgICAgIGVsc2UKKyAgICAgICAgICBydGNkX3N1cHBvcnQgKz0gW2ludHJpbl9uYW1l
XQorICAgICAgICAgIHNldF92YXJpYWJsZSgnb3B1c19AMEBfYXJncycuZm9ybWF0KGludHJpbl9s
b3dlcl9uYW1lKSwgaW50cmluX2FyZ3MpCisgICAgICAgIGVuZGlmCisgICAgICBlbHNlCisgICAg
ICAgIG1lc3NhZ2UoJ0NvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgQDBAIGludHJpbnNpY3MnLmZv
cm1hdChpbnRyaW5fbmFtZSkpCisgICAgICBlbmRpZgorICAgIGVuZGZvcmVhY2gKKworICAgIGlm
IG5vdCBvcHRfcnRjZC5kaXNhYmxlZCgpCisgICAgICBnZXRfY3B1aWRfYnlfYXNtID0gZmFsc2UK
KyAgICAgIGNwdWlkX2FzbV9jb2RlID0gJycnCisgICAgICAgICNpbmNsdWRlIDxzdGRpby5oPgor
ICAgICAgICBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiogYXJndikgeworICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBpbnQgQ1BVSW5mbzA7CisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBDUFVJbmZvMTsKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IENQVUluZm8yOworICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgQ1BVSW5mbzM7CisgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGludCBJbmZvVHlwZTsKKyAgICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfX2kzODZf
XykgJiYgZGVmaW5lZChfX1BJQ19fKQorICAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRp
bGVfXyAoCisgICAgICAgICAgICAgICAgICJ4Y2hnICUlZWJ4LCAlMVxuIgorICAgICAgICAgICAg
ICAgICAiY3B1aWRcbiIKKyAgICAgICAgICAgICAgICAgInhjaGcgJSVlYngsICUxXG4iOgorICAg
ICAgICAgICAgICAgICAiPWEiIChDUFVJbmZvMCksCisgICAgICAgICAgICAgICAgICI9ciIgKENQ
VUluZm8xKSwKKyAgICAgICAgICAgICAgICAgIj1jIiAoQ1BVSW5mbzIpLAorICAgICAgICAgICAg
ICAgICAiPWQiIChDUFVJbmZvMykgOgorICAgICAgICAgICAgICAgICAiYSIgKEluZm9UeXBlKSwg
ImMiICgwKQorICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAjZWxzZQorICAgICAg
ICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoCisgICAgICAgICAgICAgICAgICJjcHVp
ZCI6CisgICAgICAgICAgICAgICAgICI9YSIgKENQVUluZm8wKSwKKyAgICAgICAgICAgICAgICAg
Ij1iIiAoQ1BVSW5mbzEpLAorICAgICAgICAgICAgICAgICAiPWMiIChDUFVJbmZvMiksCisgICAg
ICAgICAgICAgICAgICI9ZCIgKENQVUluZm8zKSA6CisgICAgICAgICAgICAgICAgICJhIiAoSW5m
b1R5cGUpLCAiYyIgKDApCisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICNlbmRp
ZgorICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9JycnCisgICAgICBjcHVpZF9jX2NvZGUg
PSAnJycKKyAgICAgICAgI2luY2x1ZGUgPGNwdWlkLmg+CisgICAgICAgIGludCBtYWluIChpbnQg
YXJnYywgY2hhciAqKiBhcmd2KSB7CisgICAgICAgICAgdW5zaWduZWQgaW50IENQVUluZm8wOwor
ICAgICAgICAgIHVuc2lnbmVkIGludCBDUFVJbmZvMTsKKyAgICAgICAgICB1bnNpZ25lZCBpbnQg
Q1BVSW5mbzI7CisgICAgICAgICAgdW5zaWduZWQgaW50IENQVUluZm8zOworICAgICAgICAgIHVu
c2lnbmVkIGludCBJbmZvVHlwZTsKKyAgICAgICAgICBfX2dldF9jcHVpZChJbmZvVHlwZSwgJkNQ
VUluZm8wLCAmQ1BVSW5mbzEsICZDUFVJbmZvMiwgJkNQVUluZm8zKTsKKyAgICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgfScnJworICAgICAgY3B1aWRfbXN2Y19jb2RlID0gJycnCisgICAgICAg
ICNpbmNsdWRlIDxpbnRyaW4uaD4KKyAgICAgICAgaW50IG1haW4gKHZvaWQpIHsKKyAgICAgICAg
ICBpbnQgQ1BVSW5mbywgSW5mb1R5cGU7CisgICAgICAgICAgX19jcHVpZCgmQ1BVSW5mbywgSW5m
b1R5cGUpOworICAgICAgICB9JycnCisgICAgICBpZiBjYy5saW5rcyhjcHVpZF9hc21fY29kZSwg
bmFtZSA6ICdHZXQgWDg2IENQVSBpbmZvIHZpYSBpbmxpbmUgYXNzZW1ibHknKQorICAgICAgICBv
cHVzX2NvbmYuc2V0KCdDUFVfSU5GT19CWV9BU00nLCAxKQorICAgICAgZWxpZiBjYy5saW5rcyhj
cHVpZF9jX2NvZGUsIG5hbWUgOiAnR2V0IFg4NiBDUFUgaW5mbyB2aWEgQyBtZXRob2QnKQorICAg
ICAgICBvcHVzX2NvbmYuc2V0KCdDUFVfSU5GT19CWV9DJywgMSkKKyAgICAgIGVsaWYgY2MuZ2V0
X2RlZmluZSgnX01TQ19WRVInKSAhPSAnJyBhbmQgY2MubGlua3MoY3B1aWRfbXN2Y19jb2RlKQor
ICAgICAgICBtZXNzYWdlKCdHZXR0aW5nIFg4NiBDUFUgaW5mbyB2aWEgX19jcHVpZCcpCisgICAg
ICBlbHNlCisgICAgICAgIGlmIG9wdF9pbnRyaW5zaWNzLmVuYWJsZWQoKSBhbmQgb3B0X3J0Y2Qu
ZW5hYmxlZCgpCisgICAgICAgICAgZXJyb3IoJ2ludHJpbnNpY3MgYW5kIHJ0Y2Qgb3B0aW9ucyBh
cmUgZW5hYmxlZCwgYnV0IG5vIEdldCBDUFUgSW5mbyBtZXRob2QgZGV0ZWN0ZWQnKQorICAgICAg
ICBlbmRpZgorICAgICAgICB3YXJuaW5nKCdHZXQgQ1BVIEluZm8gbWV0aG9kIG5vdCBkZXRlY3Rl
ZCwgbm8gcnRjZCBmb3IgaW50cmluc2ljcycpCisgICAgICBlbmRpZgorICAgIGVuZGlmICMgb3B0
X3J0Y2QKKyAgZWxzZQorICAgIGlmIG9wdF9pbnRyaW5zaWNzLmVuYWJsZWQoKQorICAgICAgZXJy
b3IoJ2ludHJpbnNpY3Mgb3B0aW9uIGVuYWJsZWQsIGJ1dCBubyBpbnRyaW5zaWNzIHN1cHBvcnQg
Zm9yICcgKyBob3N0X21hY2hpbmUuZ2V0X2NwdSgpKQorICAgIGVuZGlmCisgICAgd2FybmluZygn
Tm8gaW50cmluc2ljcyBzdXBwb3J0IGZvciAnICsgaG9zdF9tYWNoaW5lLmdldF9jcHUoKSkKKyAg
ZW5kaWYKK2VuZGlmCisKKyMgQ2hlY2sgd2hldGhlciB3ZSByZXF1aXJlIGludHJpbnNpY3MgYW5k
IHdlIHN1cHBvcnQgaW50cmluc2ljcyBvbiB0aGlzIGFyY2gsCisjIGJ1dCBub25lIHdlcmUgZGV0
ZWN0ZWQuIENhbiBoYXBwZW4gYmVjYXVzZSBvZiBpbmNvcnJlY3QgY29tcGlsZXIgZmxhZ3MsIHN1
Y2gKKyMgYXMgbWlzc2luZyAtbWZsb2F0LWFiaT1zb2Z0ZnAgb24gQVJNMzIgc29mdGZwIGFyY2hp
dGVjdHVyZXMuCitpZiBvcHRfaW50cmluc2ljcy5lbmFibGVkKCkgYW5kIGludHJpbnNpY3Nfc3Vw
cG9ydC5sZW5ndGgoKSA9PSAwCisgIGVycm9yKCdpbnRyaW5zaWNzIG9wdGlvbiB3YXMgZW5hYmxl
ZCwgYnV0IG5vbmUgd2VyZSBkZXRlY3RlZCcpCitlbmRpZgorCitpZiBvcHRfcnRjZC5kaXNhYmxl
ZCgpCisgIHJ0Y2Rfc3VwcG9ydCA9ICdkaXNhYmxlZCcKK2Vsc2UKKyAgaWYgcnRjZF9zdXBwb3J0
Lmxlbmd0aCgpID4gMAorICAgIG9wdXNfY29uZi5zZXQoJ09QVVNfSEFWRV9SVENEJywgMSkKKyAg
ZWxzZQorICAgIGlmIGludHJpbnNpY3Nfc3VwcG9ydC5sZW5ndGgoKSA9PSAwCisgICAgICBydGNk
X3N1cHBvcnQgPSAnbm9uZScKKyAgICAgIGlmIG9wdF9ydGNkLmVuYWJsZWQoKQorICAgICAgICBl
cnJvcigncnRjZCBvcHRpb24gaXMgZW5hYmxlZCwgYnV0IG5vIHN1cHBvcnQgZm9yIGludHJpbnNp
Y3Mgb3IgYXNzZW1ibHkgaXMgYXZhaWxhYmxlJykKKyAgICAgIGVuZGlmCisgICAgZWxzZQorICAg
ICAgcnRjZF9zdXBwb3J0ID0gJ25vdCBuZWVkZWQnCisgICAgZW5kaWYKKyAgZW5kaWYKK2VuZGlm
CisKKyMgZXh0cmFjdCBzb3VyY2UgZmlsZSBsaXN0cyBmcm9tIC5tayBmaWxlcworbWtfZmlsZXMg
PSBbJ3NpbGtfc291cmNlcy5taycsICdvcHVzX2hlYWRlcnMubWsnLCAnb3B1c19zb3VyY2VzLm1r
JywgJ3NpbGtfaGVhZGVycy5taycsICdjZWx0X3NvdXJjZXMubWsnLCAnY2VsdF9oZWFkZXJzLm1r
J10KK2xpbmVzID0gcnVuX2NvbW1hbmQoJ21lc29uL3JlYWQtc291cmNlcy1saXN0LnB5JywgbWtf
ZmlsZXMsIGNoZWNrOiB0cnVlKS5zdGRvdXQoKS5zdHJpcCgpLnNwbGl0KCdcbicpCitzb3VyY2Vz
ID0ge30KK2ZvcmVhY2ggbCA6IGxpbmVzCisgIGEgPSBsLnNwbGl0KCcgPSAnKQorICB2YXJfbmFt
ZSA9IGFbMF0KKyAgZmlsZV9saXN0ID0gYVsxXS5zcGxpdCgpCisgIHNvdXJjZXMgKz0ge3Zhcl9u
YW1lOiBmaWxlcyhmaWxlX2xpc3QpfQorZW5kZm9yZWFjaAorCitzdWJkaXIoJ2luY2x1ZGUnKQor
c3ViZGlyKCdzaWxrJykKK3N1YmRpcignY2VsdCcpCitzdWJkaXIoJ3NyYycpCisKK2NvbmZpZ3Vy
ZV9maWxlKG91dHB1dDogJ2NvbmZpZy5oJywgY29uZmlndXJhdGlvbjogb3B1c19jb25mKQorCitp
ZiBub3Qgb3B0X3Rlc3RzLmRpc2FibGVkKCkKKyAgc3ViZGlyKCdjZWx0L3Rlc3RzJykKKyAgc3Vi
ZGlyKCdzaWxrL3Rlc3RzJykKKyAgc3ViZGlyKCd0ZXN0cycpCitlbmRpZgorCisjIHBrZy1jb25m
aWcgZmlsZXMgKG5vdCB1c2luZyBwa2cgbW9kdWxlIHNvIHdlIGNhbiB1c2UgdGhlIGV4aXN0aW5n
IC5wYy5pbiBmaWxlKQorcGtnY29uZiA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCisKK3BrZ2NvbmYu
c2V0KCdwcmVmaXgnLCBqb2luX3BhdGhzKGdldF9vcHRpb24oJ3ByZWZpeCcpKSkKK3BrZ2NvbmYu
c2V0KCdleGVjX3ByZWZpeCcsICcke3ByZWZpeH0nKQorcGtnY29uZi5zZXQoJ2xpYmRpcicsICck
e3ByZWZpeH0vQDBAJy5mb3JtYXQoZ2V0X29wdGlvbignbGliZGlyJykpKQorcGtnY29uZi5zZXQo
J2luY2x1ZGVkaXInLCAnJHtwcmVmaXh9L0AwQCcuZm9ybWF0KGdldF9vcHRpb24oJ2luY2x1ZGVk
aXInKSkpCitwa2djb25mLnNldCgnVkVSU0lPTicsIG9wdXNfdmVyc2lvbikKK3BrZ2NvbmYuc2V0
KCdQQ19CVUlMRCcsIHBjX2J1aWxkKQorcGtnY29uZi5zZXQoJ0xJQk0nLCBsaWJtLmZvdW5kKCkg
PyAnLWxtJyA6ICcnKQorCitwa2dfaW5zdGFsbF9kaXIgPSAnQDBAL3BrZ2NvbmZpZycuZm9ybWF0
KGdldF9vcHRpb24oJ2xpYmRpcicpKQorCitjb25maWd1cmVfZmlsZShpbnB1dCA6ICdvcHVzLnBj
LmluJywKKyAgb3V0cHV0IDogJ29wdXMucGMnLAorICBjb25maWd1cmF0aW9uIDogcGtnY29uZiwK
KyAgaW5zdGFsbF9kaXIgOiBwa2dfaW5zdGFsbF9kaXIpCisKKyMgVGhlIHVuaW5zdGFsbGVkIG9u
ZSBoYXMgaGFyZGNvZGVkIGxpYnRvb2wgKyBzdGF0aWMgbGliIHN0dWZmLCBza2lwIGl0IGZvciBu
b3cKKyNjb25maWd1cmVfZmlsZShpbnB1dCA6ICdvcHVzLXVuaW5zdGFsbGVkLnBjLmluJywKKyMg
IG91dHB1dCA6ICdvcHVzLXVuaW5zdGFsbGVkLnBjJywKKyMgIGNvbmZpZ3VyYXRpb24gOiBwa2dj
b25mLAorIyAgaW5zdGFsbCA6IGZhbHNlKQorCitkb3h5Z2VuID0gZmluZF9wcm9ncmFtKCdkb3h5
Z2VuJywgcmVxdWlyZWQ6IGdldF9vcHRpb24oJ2RvY3MnKSkKK2lmIGRveHlnZW4uZm91bmQoKQor
ICBzdWJkaXIoJ2RvYycpCitlbmRpZgorCitzdW1tYXJ5KAorICB7CisgICAgJ0M5OSB2YXIgYXJy
YXlzJzogb3B1c19jb25mLmhhcygnVkFSX0FSUkFZUycpLAorICAgICdDOTkgbHJpbnRmJzogb3B1
c19jb25mLmhhcygnSEFWRV9MUklOVEYnKSwKKyAgICAnVXNlIGFsbG9jYSc6IG1zZ191c2VfYWxs
b2NhLAorICB9LAorICBzZWN0aW9uOiAnQ29tcGlsZXIgc3VwcG9ydCcsCisgIGJvb2xfeW46IHRy
dWUsCisgIGxpc3Rfc2VwOiAnLCAnLAorKQorCisjIFBhcnNlIG9wdGltaXphdGlvbiBzdGF0dXMK
K2ZvcmVhY2ggc3RhdHVzIDogW1snaW5saW5lX29wdGltaXphdGlvbicsIG9wdF9hc21dLAorICAg
ICAgICAgICAgICAgICAgWydhc21fb3B0aW1pemF0aW9uJywgb3B0X2FzbV0sCisgICAgICAgICAg
ICAgICAgICBbJ2ludHJpbnNpY3Nfc3VwcG9ydCcsIG9wdF9pbnRyaW5zaWNzXV0KKyAgcmVzID0g
c3RhdHVzWzBdCisgIG9wdCA9IHN0YXR1c1sxXQorICByZXN2YWwgPSBnZXRfdmFyaWFibGUocmVz
KQorICBpZiBvcHQuZGlzYWJsZWQoKQorICAgIHNldF92YXJpYWJsZShyZXMsICdkaXNhYmxlZCcp
CisgIGVsaWYgcmVzdmFsLmxlbmd0aCgpID09IDAKKyAgICBpZiBob3N0X2NwdV9mYW1pbHkgbm90
IGluIFsnYXJtJywgJ2FhcmNoNjQnLCAneDg2JywgJ3g4Nl82NCddCisgICAgICBzZXRfdmFyaWFi
bGUocmVzLCAnTm8gb3B0aW1pemF0aW9ucyBmb3IgeW91ciBwbGF0Zm9ybSwgcGxlYXNlIHNlbmQg
cGF0Y2hlcycpCisgICAgZWxzZQorICAgICAgc2V0X3ZhcmlhYmxlKHJlcywgJ25vbmUnKQorICAg
IGVuZGlmCisgIGVuZGlmCitlbmRmb3JlYWNoCisKK3N1bW1hcnkoCisgIHsKKyAgICAnRmxvYXRp
bmcgcG9pbnQgc3VwcG9ydCc6IG5vdCBvcHRfZml4ZWRfcG9pbnQsCisgICAgJ0Zhc3QgZmxvYXQg
YXBwcm94aW1hdGlvbnMnOiBvcHRfZmxvYXRfYXBwcm94LAorICAgICdGaXhlZCBwb2ludCBkZWJ1
Z2dpbmcnOiBvcHRfZml4ZWRfcG9pbnRfZGVidWcsCisgICAgJ0lubGluZSBhc3NlbWJseSBvcHRp
bWl6YXRpb25zJzogaW5saW5lX29wdGltaXphdGlvbiwKKyAgICAnRXh0ZXJuYWwgYXNzZW1ibHkg
b3B0aW1pemF0aW9ucyc6IGFzbV9vcHRpbWl6YXRpb24sCisgICAgJ0ludHJpbnNpY3Mgb3B0aW1p
emF0aW9ucyc6IGludHJpbnNpY3Nfc3VwcG9ydCwKKyAgICAnUnVuLXRpbWUgQ1BVIGRldGVjdGlv
bic6IHJ0Y2Rfc3VwcG9ydCwKKyAgfSwKKyAgc2VjdGlvbjogJ09wdGltaXphdGlvbnMnLAorICBi
b29sX3luOiB0cnVlLAorICBsaXN0X3NlcDogJywgJywKKykKK3N1bW1hcnkoCisgIHsKKyAgICAn
Q3VzdG9tIG1vZGVzJzogb3B0X2N1c3RvbV9tb2RlcywKKyAgICAnQXNzZXJ0aW9ucyc6IG9wdF9h
c3NlcnRpb25zLAorICAgICdIYXJkZW5pbmcnOiBvcHRfaGFyZGVuaW5nLAorICAgICdGdXp6aW5n
Jzogb3B0X2Z1enppbmcsCisgICAgJ0NoZWNrIEFTTSc6IG9wdF9jaGVja19hc20sCisgICAgJ0FQ
SSBkb2N1bWVudGF0aW9uJzogZG94eWdlbi5mb3VuZCgpLAorICAgICdFeHRyYSBwcm9ncmFtcyc6
IG5vdCBleHRyYV9wcm9ncmFtcy5kaXNhYmxlZCgpLAorICAgICdUZXN0cyc6IG5vdCBvcHRfdGVz
dHMuZGlzYWJsZWQoKSwKKyAgfSwKKyAgc2VjdGlvbjogJ0dlbmVyYWwgY29uZmlndXJhdGlvbics
CisgIGJvb2xfeW46IHRydWUsCisgIGxpc3Rfc2VwOiAnLCAnLAorKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9tZXNv
bi9nZXQtdmVyc2lvbi5weSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvb3B1cy9zcmMvbWVzb24vZ2V0LXZlcnNpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGU4Yjg2
MjNhMmM3YjkyMDZjZjNlNGExYWM3NjMyMmRlNDQwNjdkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvbWVz
b24vZ2V0LXZlcnNpb24ucHkKQEAgLTAsMCArMSw4NiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
MworIworIyBPcHVzIGdldC12ZXJzaW9uLnB5CisjCisjIEV4dHJhY3RzIHZlcnNpb25zIGZvciBi
dWlsZDoKKyMgIC0gT3B1cyBwYWNrYWdlIHZlcnNpb24gYmFzZWQgb24gJ2dpdCBkZXNjcmliZScg
b3IgJHNyY3Jvb3QvcGFja2FnZV92ZXJzaW9uCisjICAtIGxpYnRvb2wgdmVyc2lvbiBiYXNlZCBv
biBjb25maWd1cmUuYWMKKyMgIC0gbWFjb3MgbGliIHZlcnNpb24gYmFzZWQgb24gY29uZmlndXJl
LmFjCisjCisjIFVzYWdlOgorIyBnZXQtdmVyc2lvbi5weSBbLS1wYWNrYWdlLXZlcnNpb24gfCAt
LWxpYnRvb2wtdmVyc2lvbiB8IC0tZGFyd2luLXZlcnNpb25dCitpbXBvcnQgYXJncGFyc2UKK2lt
cG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBzaHV0aWwKKwor
aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBhcmdfcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0V4dHJhY3QgT3B1cyBwYWNrYWdlIHZlcnNpb24gb3Ig
bGlidG9vbCB2ZXJzaW9uJykKKyAgICBncm91cCA9IGFyZ19wYXJzZXIuYWRkX211dHVhbGx5X2V4
Y2x1c2l2ZV9ncm91cChyZXF1aXJlZD1UcnVlKQorICAgIGdyb3VwLmFkZF9hcmd1bWVudCgnLS1s
aWJ0b29sLXZlcnNpb24nLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgIGdyb3VwLmFkZF9hcmd1
bWVudCgnLS1wYWNrYWdlLXZlcnNpb24nLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgIGdyb3Vw
LmFkZF9hcmd1bWVudCgnLS1kYXJ3aW4tdmVyc2lvbicsIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCisg
ICAgYXJncyA9IGFyZ19wYXJzZXIucGFyc2VfYXJncygpCisKKyAgICBzcmNyb290ID0gb3MucGF0
aC5ub3JtcGF0aChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJykp
CisKKyAgICAjIHBhY2thZ2UgdmVyc2lvbgorICAgIGlmIGFyZ3MucGFja2FnZV92ZXJzaW9uOgor
ICAgICAgICBwYWNrYWdlX3ZlcnNpb24gPSBOb25lCisKKyAgICAgICAgIyBjaGVjayBpZiBnaXQg
Y2hlY2tvdXQKKyAgICAgICAgZ2l0X2RpciA9IG9zLnBhdGguam9pbihzcmNyb290LCAnLmdpdCcp
CisgICAgICAgIGlzX2dpdCA9IG9zLnBhdGguaXNkaXIoZ2l0X2RpcikKKyAgICAgICAgaGF2ZV9n
aXQgPSBzaHV0aWwud2hpY2goJ2dpdCcpIGlzIG5vdCBOb25lCisKKyAgICAgICAgaWYgaXNfZ2l0
IGFuZCBoYXZlX2dpdDoKKyAgICAgICAgICAgIGdpdF9jbWQgPSBzdWJwcm9jZXNzLnJ1bihbJ2dp
dCcsICctLWdpdC1kaXI9JyArIGdpdF9kaXIsICdkZXNjcmliZScsICdIRUFEJ10sIHN0ZG91dD1z
dWJwcm9jZXNzLlBJUEUpCisgICAgICAgICAgICBpZiBnaXRfY21kLnJldHVybmNvZGU6CisgICAg
ICAgICAgICAgICAgcHJpbnQoJ0VSUk9SOiBDb3VsZCBub3QgZXh0cmFjdCBwYWNrYWdlIHZlcnNp
b24gdmlhIGBnaXQgZGVzY3JpYmVgIGluJywgc3Jjcm9vdCwgZmlsZT1zeXMuc3RkZXJyKQorICAg
ICAgICAgICAgICAgIHN5cy5leGl0KC0xKQorICAgICAgICAgICAgcGFja2FnZV92ZXJzaW9uID0g
Z2l0X2NtZC5zdGRvdXQuZGVjb2RlKCdhc2NpaScpLnN0cmlwKCkubHN0cmlwKCd2JykKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc3Jjcm9vdCwgJ3Bh
Y2thZ2VfdmVyc2lvbicpLCAncicpIGFzIGY6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4g
ZjoKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdQQUNLQUdFX1ZFUlNJ
T049IicpOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZV92ZXJzaW9uID0gbGluZVsx
NzpdLnN0cmlwKCkubHN0cmlwKCd2JykucnN0cmlwKCciJykKKyAgICAgICAgICAgICAgICAgICAg
aWYgcGFja2FnZV92ZXJzaW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
ICAgICBpZiBub3QgcGFja2FnZV92ZXJzaW9uOgorICAgICAgICAgICAgcHJpbnQoJ0VSUk9SOiBD
b3VsZCBub3QgZXh0cmFjdCBwYWNrYWdlIHZlcnNpb24gZnJvbSBwYWNrYWdlX3ZlcnNpb24gZmls
ZSBpbicsIHNyY3Jvb3QsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgIHN5cy5leGl0KC0x
KQorCisgICAgICAgIHByaW50KHBhY2thZ2VfdmVyc2lvbikKKyAgICAgICAgc3lzLmV4aXQoMCkK
KworICAgICMgbGlidG9vbCB2ZXJzaW9uICsgZGFyd2luIHZlcnNpb24KKyAgICBlbGlmIGFyZ3Mu
bGlidG9vbF92ZXJzaW9uIG9yIGFyZ3MuZGFyd2luX3ZlcnNpb246CisgICAgICAgIG9wdXNfbHRf
Y3VyID0gTm9uZQorICAgICAgICBvcHVzX2x0X3JldiA9IE5vbmUKKyAgICAgICAgb3B1c19sdF9h
Z2UgPSBOb25lCisKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihzcmNyb290LCAnY29u
ZmlndXJlLmFjJyksICdyJykgYXMgZjoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIGY6CisgICAg
ICAgICAgICAgICAgaWYgbGluZS5zdHJpcCgpLnN0YXJ0c3dpdGgoJ09QVVNfTFRfQ1VSUkVOVD0n
KToKKyAgICAgICAgICAgICAgICAgICAgb3B1c19sdF9jdXIgPSBsaW5lWzE2Ol0uc3RyaXAoKQor
ICAgICAgICAgICAgICAgIGVsaWYgbGluZS5zdHJpcCgpLnN0YXJ0c3dpdGgoJ09QVVNfTFRfUkVW
SVNJT049Jyk6CisgICAgICAgICAgICAgICAgICAgIG9wdXNfbHRfcmV2ID0gbGluZVsxNzpdLnN0
cmlwKCkKKyAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RyaXAoKS5zdGFydHN3aXRoKCdPUFVT
X0xUX0FHRT0nKToKKyAgICAgICAgICAgICAgICAgICAgb3B1c19sdF9hZ2UgPSBsaW5lWzEyOl0u
c3RyaXAoKQorCisgICAgICAgIGlmIG9wdXNfbHRfY3VyIGFuZCBvcHVzX2x0X3JldiBhbmQgb3B1
c19sdF9hZ2U6CisgICAgICAgICAgICBvcHVzX2x0X2N1ciA9IGludChvcHVzX2x0X2N1cikKKyAg
ICAgICAgICAgIG9wdXNfbHRfcmV2ID0gaW50KG9wdXNfbHRfcmV2KQorICAgICAgICAgICAgb3B1
c19sdF9hZ2UgPSBpbnQob3B1c19sdF9hZ2UpCisgICAgICAgICAgICBpZiBhcmdzLmxpYnRvb2xf
dmVyc2lvbjoKKyAgICAgICAgICAgICAgcHJpbnQoJ3t9Lnt9Lnt9Jy5mb3JtYXQob3B1c19sdF9j
dXIgLSBvcHVzX2x0X2FnZSwgb3B1c19sdF9hZ2UsIG9wdXNfbHRfcmV2KSkKKyAgICAgICAgICAg
IGVsaWYgYXJncy5kYXJ3aW5fdmVyc2lvbjoKKyAgICAgICAgICAgICAgcHJpbnQoJ3t9Lnt9Lnt9
Jy5mb3JtYXQob3B1c19sdF9jdXIgKyAxLCAwLCAwKSkKKyAgICAgICAgICAgIHN5cy5leGl0KDAp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgnRVJST1I6IENvdWxkIG5vdCBleHRy
YWN0IGxpYnRvb2wgdmVyc2lvbiBmcm9tIGNvbmZpZ3VyZS5hYyBmaWxlIGluJywgc3Jjcm9vdCwg
ZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgc3lzLmV4aXQoLTEpCisgICAgZWxzZToKKyAg
ICAgICAgc3lzLmV4aXQoLTEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL21lc29uL3JlYWQtc291cmNlcy1saXN0LnB5
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9tZXNvbi9yZWFkLXNvdXJjZXMtbGlzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mY2JlYzUwMTk2NmNkOGU5
NmY3N2I5ZDljNGE5NmQzNGQ0ZjIxY2NhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9tZXNvbi9yZWFkLXNv
dXJjZXMtbGlzdC5weQpAQCAtMCwwICsxLDI4IEBACisjIS91c3IvYmluL2VudiBweXRob24zCisj
CisjIG9wdXMvcmVhZC1zb3VyY2VzLWxpc3QucHkKKyMKKyMgUGFyc2VzIC5tayBmaWxlcyBhbmQg
ZXh0cmFjdHMgbGlzdCBvZiBzb3VyY2UgZmlsZXMuCisjIFByaW50cyBvbmUgbGluZSBwZXIgc291
cmNlIGZpbGUgbGlzdCwgd2l0aCBmaWxlbmFtZXMgc3BhY2Utc2VwYXJhdGVkLgorCitpbXBvcnQg
c3lzCisKK2lmIGxlbihzeXMuYXJndikgPCAyOgorICBzeXMuZXhpdCgnVXNhZ2U6IHt9IHNvdXJj
ZXNfZm9vLm1rIFtzb3VyY2VzX2Jhci5tay4uLl0nLmZvcm1hdChzeXMuYXJndlswXSkpCisKK2Zv
ciBpbnB1dF9mbiBpbiBzeXMuYXJndlsxOl06CisgIHdpdGggb3BlbihpbnB1dF9mbiwgJ3InLCBl
bmNvZGluZz0ndXRmOCcpIGFzIGY6CisgICAgdGV4dCA9IGYucmVhZCgpCisgICAgdGV4dCA9IHRl
eHQucmVwbGFjZSgnXFxcbicsICcnKQorCisgICAgIyBSZW1vdmUgZW1wdHkgbGluZXMKKyAgICBs
aW5lcyA9IFtsaW5lIGZvciBsaW5lIGluIHRleHQuc3BsaXQoJ1xuJykgaWYgbGluZS5zdHJpcCgp
XQorCisgICAgIyBQcmludCBTT1VSQ0VTX1hZWiA9IGZpbGUxLmMgZmlsZTIuYworICAgIGZvciBs
aW5lIGluIGxpbmVzOgorICAgICAgdmFsdWVzID0gbGluZS5zdHJpcCgpLnNwbGl0KCc9JywgbWF4
c3BsaXQ9MikKKyAgICAgIGlmIGxlbih2YWx1ZXMpICE9IDI6CisgICAgICAgIHJhaXNlIFJ1bnRp
bWVFcnJvcignVW5hYmxlIHRvIHBhcnNlIGxpbmUgInt9IiBmcm9tIGZpbGUgInt9IicuZm9ybWF0
KGxpbmUsIGlucHV0X2ZuKSkKKyAgICAgIHZhciwgZmlsZXMgPSB2YWx1ZXMKKyAgICAgIHNvdXJj
ZXNfbGlzdCA9IFtmIGZvciBmIGluIGZpbGVzLnNwbGl0KCcgJykgaWYgZl0KKyAgICAgIHByaW50
KHZhci5zdHJpcCgpLCAnPScsICcgJy5qb2luKHNvdXJjZXNfbGlzdCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL21l
c29uX29wdGlvbnMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9tZXNvbl9vcHRpb25zLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjBmZjI2MzVk
ZjAxOTVhYzA4NTAxZjkwNzE4NzE2OTAzNGE3ZWUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9tZXNvbl9v
cHRpb25zLnR4dApAQCAtMCwwICsxLDIyIEBACisjIE9wdGltaXphdGlvbnMKK29wdGlvbignZml4
ZWQtcG9pbnQnLCB0eXBlIDogJ2Jvb2xlYW4nLCB2YWx1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbiA6
ICdDb21waWxlIHdpdGhvdXQgZmxvYXRpbmcgcG9pbnQgKGZvciBtYWNoaW5lcyB3aXRob3V0IGEg
ZmFzdCBlbm91Z2ggRlBVJykKK29wdGlvbignZml4ZWQtcG9pbnQtZGVidWcnLCB0eXBlIDogJ2Jv
b2xlYW4nLCB2YWx1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbiA6ICdEZWJ1ZyBmaXhlZC1wb2ludCBp
bXBsZW1lbnRhdGlvbicpCitvcHRpb24oJ2Zsb2F0LWFwaScsIHR5cGUgOiAnYm9vbGVhbicsIHZh
bHVlIDogdHJ1ZSwgZGVzY3JpcHRpb24gOiAnQ29tcGlsZSB3aXRoIG9yIHdpdGhvdXQgdGhlIGZs
b2F0aW5nIHBvaW50IEFQSSAoZm9yIG1hY2hpbmVzIHdpdGggbm8gZmxvYXQgbGlicmFyeScpCitv
cHRpb24oJ2Zsb2F0LWFwcHJveCcsIHR5cGUgOiAnYm9vbGVhbicsIHZhbHVlIDogZmFsc2UsIGRl
c2NyaXB0aW9uIDogJ0VuYWJsZSBmYXN0IGFwcHJveGltYXRpb25zIGZvciBmbG9hdGluZyBwb2lu
dCAobm90IHN1cHBvcnRlZCBvbiBhbGwgcGxhdGZvcm1zKScpCitvcHRpb24oJ3J0Y2QnLCB0eXBl
IDogJ2ZlYXR1cmUnLCB2YWx1ZSA6ICdhdXRvJywgZGVzY3JpcHRpb24gOiAnUnVuLXRpbWUgQ1BV
IGNhcGFiaWxpdGllcyBkZXRlY3Rpb24nKQorb3B0aW9uKCdhc20nLCB0eXBlIDogJ2ZlYXR1cmUn
LCB2YWx1ZSA6ICdhdXRvJywgZGVzY3JpcHRpb24gOiAnQXNzZW1ibHkgb3B0aW1pemF0aW9ucyBm
b3IgQVJNIChmaXhlZC1wb2ludCknKQorb3B0aW9uKCdpbnRyaW5zaWNzJywgdHlwZSA6ICdmZWF0
dXJlJywgdmFsdWUgOiAnYXV0bycsIGRlc2NyaXB0aW9uIDogJ0ludHJpbnNpY3Mgb3B0aW1pemF0
aW9ucyBmb3IgQVJNIE5FT04gb3IgeDg2JykKKworb3B0aW9uKCdjdXN0b20tbW9kZXMnLCB0eXBl
IDogJ2Jvb2xlYW4nLCB2YWx1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbiA6ICdFbmFibGUgbm9uLU9w
dXMgbW9kZXMsIGUuZy4gNDQuMSBrSHogJiAyXm4gZnJhbWVzJykKK29wdGlvbignZXh0cmEtcHJv
Z3JhbXMnLCB0eXBlIDogJ2ZlYXR1cmUnLCB2YWx1ZSA6ICdhdXRvJywgZGVzY3JpcHRpb24gOiAn
RXh0cmEgcHJvZ3JhbXMgKGRlbW8gYW5kIHRlc3RzKScpCitvcHRpb24oJ2Fzc2VydGlvbnMnLCB0
eXBlIDogJ2Jvb2xlYW4nLCB2YWx1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbiA6ICdBZGRpdGlvbmFs
IHNvZnR3YXJlIGVycm9yIGNoZWNraW5nJykKK29wdGlvbignaGFyZGVuaW5nJywgdHlwZSA6ICdi
b29sZWFuJywgdmFsdWUgOiB0cnVlLCBkZXNjcmlwdGlvbiA6ICdSdW4tdGltZSBjaGVja3MgdGhh
dCBhcmUgY2hlYXAgYW5kIHNhZmUgZm9yIHVzZSBpbiBwcm9kdWN0aW9uJykKK29wdGlvbignZnV6
emluZycsIHR5cGUgOiAnYm9vbGVhbicsIHZhbHVlIDogZmFsc2UsIGRlc2NyaXB0aW9uIDogJ0Nh
dXNlcyB0aGUgZW5jb2RlciB0byBtYWtlIHJhbmRvbSBkZWNpc2lvbnMnKQorb3B0aW9uKCdjaGVj
ay1hc20nLCB0eXBlIDogJ2Jvb2xlYW4nLCB2YWx1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbiA6ICdS
dW4gYml0LWV4YWN0bmVzcyBjaGVja3MgYmV0d2VlbiBvcHRpbWl6ZWQgYW5kIGMgaW1wbGVtZW50
YXRpb25zJykKKworIyBjb21tb24gZmVhdHVyZSBvcHRpb25zCitvcHRpb24oJ3Rlc3RzJywgdHlw
ZSA6ICdmZWF0dXJlJywgdmFsdWUgOiAnYXV0bycsIGRlc2NyaXB0aW9uIDogJ0J1aWxkIHRlc3Rz
JykKK29wdGlvbignZG9jcycsIHR5cGU6ICdmZWF0dXJlJywgdmFsdWU6ICdhdXRvJywgZGVzY3Jp
cHRpb246ICdCdWlsZCBBUEkgZG9jdW1lbnRhdGlvbicpCisKKyMgb3RoZXIgb3B0aW9ucworb3B0
aW9uKCdkb2NkaXInLCB0eXBlOiAnc3RyaW5nJywgdmFsdWU6ICdkb2Mvb3B1cycsIGRlc2NyaXB0
aW9uOiAnRGlyZWN0b3J5IHRvIGluc3RhbGwgZG9jdW1lbnRhdGlvbiBpbnRvIChkZWZhdWx0OiBE
QVRBRElSL2RvYy9vcHVzJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvb3B1c19idWlsZHR5cGUuY21ha2UgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL29wdXNf
YnVpbGR0eXBlLmNtYWtlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWVlOWVmZmFh
ZWJhYWRiZDY4MTA2MzI4OTlmM2U5Y2E5YzU4NjhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvb3B1cy9zcmMvb3B1c19idWlsZHR5cGUuY21ha2UKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi0jIFNldCBhIGRlZmF1bHQgYnVpbGQgdHlwZSBpZiBub25lIHdhcyBz
cGVjaWZpZWQKLQotaWYoTk9UIENNQUtFX0JVSUxEX1RZUEUgQU5EIE5PVCBDTUFLRV9DT05GSUdV
UkFUSU9OX1RZUEVTKQotICBpZihDTUFLRV9DX0ZMQUdTKQotICAgIG1lc3NhZ2UoU1RBVFVTICJD
TUFLRV9DX0ZMQUdTOiAiICR7Q01BS0VfQ19GTEFHU30pCi0gIGVsc2UoKQotICAgIHNldChkZWZh
dWx0X2J1aWxkX3R5cGUgIlJlbGVhc2UiKQotICAgIG1lc3NhZ2UoCi0gICAgICBTVEFUVVMKLSAg
ICAgICAgIlNldHRpbmcgYnVpbGQgdHlwZSB0byAnJHtkZWZhdWx0X2J1aWxkX3R5cGV9JyBhcyBu
b25lIHdhcyBzcGVjaWZpZWQgYW5kIG5vIENGTEFHUyB3YXMgZXhwb3J0ZWQuIgotICAgICAgKQot
ICAgIHNldChDTUFLRV9CVUlMRF9UWVBFICIke2RlZmF1bHRfYnVpbGRfdHlwZX0iCi0gICAgICAg
IENBQ0hFIFNUUklORyAiQ2hvb3NlIHRoZSB0eXBlIG9mIGJ1aWxkLiIKLSAgICAgICAgRk9SQ0Up
Ci0gICAgIyBTZXQgdGhlIHBvc3NpYmxlIHZhbHVlcyBvZiBidWlsZCB0eXBlIGZvciBjbWFrZS1n
dWkKLSAgICBzZXRfcHJvcGVydHkoQ0FDSEUgQ01BS0VfQlVJTERfVFlQRQotICAgICAgICAgICAg
ICAgICBQUk9QRVJUWSBTVFJJTkdTCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJEZWJ1ZyIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlbGVhc2UiCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICJNaW5TaXplUmVsIgotICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVsV2l0aERl
YkluZm8iKQotICBlbmRpZigpCi1lbmRpZigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL29wdXNfY29uZmlnLmNtYWtl
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9vcHVzX2NvbmZpZy5jbWFrZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBiZmQ1
ODM5YzhiYmExYmQ0NDdlYjM0ZTNhMjMwNDkxMjllYjRiZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL29wdXNfY29uZmlnLmNtYWtlCisrKyAvZGV2L251bGwK
QEAgLTEsNDMgKzAsMCBAQAotaW5jbHVkZShvcHVzX2Z1bmN0aW9ucy5jbWFrZSkKLQotY29uZmln
dXJlX2ZpbGUoY29uZmlnLmguY21ha2UuaW4gY29uZmlnLmggQE9OTFkpCi1hZGRfZGVmaW5pdGlv
bnMoLURIQVZFX0NPTkZJR19IKQotCi1zZXRfcHJvcGVydHkoR0xPQkFMIFBST1BFUlRZIFVTRV9G
T0xERVJTIE9OKQotc2V0X3Byb3BlcnR5KEdMT0JBTCBQUk9QRVJUWSBDX1NUQU5EQVJEIDk5KQot
Ci1pZihNU1ZDKQotICBhZGRfZGVmaW5pdGlvbnMoLURfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUykK
LWVuZGlmKCkKLQotaW5jbHVkZShDaGVja0xpYnJhcnlFeGlzdHMpCi1jaGVja19saWJyYXJ5X2V4
aXN0cyhtIGZsb29yICIiIEhBVkVfTElCTSkKLWlmKEhBVkVfTElCTSkKLSAgbGlzdChBUFBFTkQg
T1BVU19SRVFVSVJFRF9MSUJSQVJJRVMgbSkKLWVuZGlmKCkKLQotaWYoQ01BS0VfU1lTVEVNX1BS
T0NFU1NPUiBNQVRDSEVTICIoaVswLTldODZ8eDg2fFg4NnxhbWQ2NHxBTUQ2NHx4ODZfNjQpIikK
LSAgaWYoQ01BS0VfU0laRU9GX1ZPSURfUCBFUVVBTCA4KQotICAgIHNldChPUFVTX0NQVV9YNjQg
MSkKLSAgZWxzZSgpCi0gICAgc2V0KE9QVVNfQ1BVX1g4NiAxKQotICBlbmRpZigpCi1lbHNlaWYo
Q01BS0VfU1lTVEVNX1BST0NFU1NPUiBNQVRDSEVTICJhcm0iKQotICBzZXQoT1BVU19DUFVfQVJN
IDEpCi1lbmRpZigpCi0KLW9wdXNfc3VwcG9ydHNfY3B1X2RldGVjdGlvbihSVU5USU1FX0NQVV9D
QVBBQklMSVRZX0RFVEVDVElPTikKLQotaWYoT1BVU19DUFVfWDg2IE9SIE9QVVNfQ1BVX1g2NCkK
LSAgb3B1c19kZXRlY3Rfc3NlKENPTVBJTEVSX1NVUFBPUlRfU0lNRCkKLWVsc2VpZihPUFVTX0NQ
VV9BUk0pCi0gIG9wdXNfZGV0ZWN0X25lb24oQ09NUElMRVJfU1VQUE9SVF9ORU9OKQotICBpZihD
T01QSUxFUl9TVVBQT1JUX05FT04pCi0gICAgb3B0aW9uKE9QVVNfVVNFX05FT04gIk9wdGlvbiB0
byB0dXJuIG9mZiBTU0UiIE9OKQotICAgIG9wdGlvbihPUFVTX01BWV9TVVBQT1JUX05FT04gIkRv
ZXMgcnVudGltZSBjaGVjayBmb3IgbmVvbiBzdXBwb3J0IiBPTikKLSAgICBvcHRpb24oT1BVU19Q
UkVTVU1FX05FT04gIkFzc3VtZSB0YXJnZXQgQ1BVIGhhcyBORU9OIHN1cHBvcnQiIE9GRikKLSAg
ICBpZihDTUFLRV9TWVNURU1fUFJPQ0VTU09SIE1BVENIRVMgImFhcmNoNjQiKQotICAgICAgc2V0
KE9QVVNfUFJFU1VNRV9ORU9OIE9OKQotICAgIGVuZGlmKCkKLSAgZW5kaWYoKQotZW5kaWYoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9vcHVzX2Z1bmN0aW9ucy5jbWFrZSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvb3B1c19mdW5jdGlvbnMuY21ha2UKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMzA5YzJjNDkwZDlhNmM5YjVmOThhODEzMzBk
YmRmNjg0NWYzMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9vcHVzX2Z1bmN0aW9ucy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDI2MiArMCwwIEBACi0j
W1tDbWFrZSBoZWxwZXIgZnVuY3Rpb24gdG8gcGFyc2Ugc291cmNlIGZpbGVzIGZyb20gbWFrZSBm
aWxlcwotdGhpcyBpcyB0byBhdm9pZCBicmVha2luZyBleGlzdGluZyBtYWtlIGFuZCBhdXRvIG1h
a2Ugc3VwcG9ydAotYnV0IHN0aWxsIGhhdmUgdGhlIG9wdGlvbiB0byB1c2UgQ01ha2Ugd2l0aCBv
bmx5IGxpc3RzIGF0IG9uZSBwbGFjZV1dCi0KLWNtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lP
TiAzLjEpCi0KLWZ1bmN0aW9uKGdldF9saWJyYXJ5X3ZlcnNpb24gT1BVU19MSUJSQVJZX1ZFUlNJ
T04gT1BVU19MSUJSQVJZX1ZFUlNJT05fTUFKT1IpCi0gIGZpbGUoU1RSSU5HUyBjb25maWd1cmUu
YWMgb3B1c19sdF9jdXJyZW50X3N0cmluZwotICAgICAgIExJTUlUX0NPVU5UIDEKLSAgICAgICBS
RUdFWCAiT1BVU19MVF9DVVJSRU5UPSIpCi0gIHN0cmluZyhSRUdFWCBNQVRDSAotICAgICAgICAg
ICAgICAgIk9QVVNfTFRfQ1VSUkVOVD0oWzAtOV0qKSIKLSAgICAgICAgICAgICAgIF8KLSAgICAg
ICAgICAgICAgICR7b3B1c19sdF9jdXJyZW50X3N0cmluZ30pCi0gIHNldChPUFVTX0xUX0NVUlJF
TlQgJHtDTUFLRV9NQVRDSF8xfSkKLQotICBmaWxlKFNUUklOR1MgY29uZmlndXJlLmFjIG9wdXNf
bHRfcmV2aXNpb25fc3RyaW5nCi0gICAgICAgTElNSVRfQ09VTlQgMQotICAgICAgIFJFR0VYICJP
UFVTX0xUX1JFVklTSU9OPSIpCi0gIHN0cmluZyhSRUdFWCBNQVRDSAotICAgICAgICAgICAgICAg
Ik9QVVNfTFRfUkVWSVNJT049KFswLTldKikiCi0gICAgICAgICAgICAgICBfCi0gICAgICAgICAg
ICAgICAke29wdXNfbHRfcmV2aXNpb25fc3RyaW5nfSkKLSAgc2V0KE9QVVNfTFRfUkVWSVNJT04g
JHtDTUFLRV9NQVRDSF8xfSkKLQotICBmaWxlKFNUUklOR1MgY29uZmlndXJlLmFjIG9wdXNfbHRf
YWdlX3N0cmluZwotICAgICAgIExJTUlUX0NPVU5UIDEKLSAgICAgICBSRUdFWCAiT1BVU19MVF9B
R0U9IikKLSAgc3RyaW5nKFJFR0VYIE1BVENICi0gICAgICAgICAgICAgICAiT1BVU19MVF9BR0U9
KFswLTldKikiCi0gICAgICAgICAgICAgICBfCi0gICAgICAgICAgICAgICAke29wdXNfbHRfYWdl
X3N0cmluZ30pCi0gIHNldChPUFVTX0xUX0FHRSAke0NNQUtFX01BVENIXzF9KQotCi0gIG1hdGgo
RVhQUiBPUFVTX0xJQlJBUllfVkVSU0lPTl9NQUpPUiAiJHtPUFVTX0xUX0NVUlJFTlR9IC0gJHtP
UFVTX0xUX0FHRX0iKQotICBzZXQoT1BVU19MSUJSQVJZX1ZFUlNJT05fTUlOT1IgJHtPUFVTX0xU
X0FHRX0pCi0gIHNldChPUFVTX0xJQlJBUllfVkVSU0lPTl9QQVRDSCAke09QVVNfTFRfUkVWSVNJ
T059KQotICBzZXQoCi0gICAgT1BVU19MSUJSQVJZX1ZFUlNJT04KLSAgICAiJHtPUFVTX0xJQlJB
UllfVkVSU0lPTl9NQUpPUn0uJHtPUFVTX0xJQlJBUllfVkVSU0lPTl9NSU5PUn0uJHtPUFVTX0xJ
QlJBUllfVkVSU0lPTl9QQVRDSH0iCi0gICAgUEFSRU5UX1NDT1BFKQotICBzZXQoT1BVU19MSUJS
QVJZX1ZFUlNJT05fTUFKT1IgJHtPUFVTX0xJQlJBUllfVkVSU0lPTl9NQUpPUn0gUEFSRU5UX1ND
T1BFKQotZW5kZnVuY3Rpb24oKQotCi1mdW5jdGlvbihnZXRfcGFja2FnZV92ZXJzaW9uIFBBQ0tB
R0VfVkVSU0lPTikKLSAgZmluZF9wYWNrYWdlKEdpdCkKLSAgaWYoR0lUX0ZPVU5EKQotICAgIGV4
ZWN1dGVfcHJvY2VzcyhDT01NQU5EICR7R0lUX0VYRUNVVEFCTEV9IGRlc2NyaWJlIC0tdGFncyAt
LW1hdGNoICJ2KiIKLSAgICAgICAgICAgICAgICAgICAgT1VUUFVUX1ZBUklBQkxFIE9QVVNfUEFD
S0FHRV9WRVJTSU9OKQotICAgIGlmKE9QVVNfUEFDS0FHRV9WRVJTSU9OKQotICAgICAgc3RyaW5n
KFNUUklQICR7T1BVU19QQUNLQUdFX1ZFUlNJT059LCBPUFVTX1BBQ0tBR0VfVkVSU0lPTikKLSAg
ICAgIHN0cmluZyhSRVBMQUNFIFxuCi0gICAgICAgICAgICAgICAgICAgICAiIgotICAgICAgICAg
ICAgICAgICAgICAgT1BVU19QQUNLQUdFX1ZFUlNJT04KLSAgICAgICAgICAgICAgICAgICAgICR7
T1BVU19QQUNLQUdFX1ZFUlNJT059KQotICAgICAgc3RyaW5nKFJFUExBQ0UgLAotICAgICAgICAg
ICAgICAgICAgICAgIiIKLSAgICAgICAgICAgICAgICAgICAgIE9QVVNfUEFDS0FHRV9WRVJTSU9O
Ci0gICAgICAgICAgICAgICAgICAgICAke09QVVNfUEFDS0FHRV9WRVJTSU9OfSkKLQotICAgICAg
c3RyaW5nKFNVQlNUUklORyAke09QVVNfUEFDS0FHRV9WRVJTSU9OfQotICAgICAgICAgICAgICAg
ICAgICAgICAxCi0gICAgICAgICAgICAgICAgICAgICAgIC0xCi0gICAgICAgICAgICAgICAgICAg
ICAgIE9QVVNfUEFDS0FHRV9WRVJTSU9OKQotICAgICAgc2V0KFBBQ0tBR0VfVkVSU0lPTiAke09Q
VVNfUEFDS0FHRV9WRVJTSU9OfSBQQVJFTlRfU0NPUEUpCi0gICAgICByZXR1cm4oKQotICAgIGVu
ZGlmKCkKLSAgZW5kaWYoKQotCi0gIGlmKEVYSVNUUyAiJHtDTUFLRV9TT1VSQ0VfRElSfS9wYWNr
YWdlX3ZlcnNpb24iKQotICAgICMgTm90IGEgZ2l0IHJlcG8sIGxldHMnIHRyeSB0byBwYXJzZSBp
dCBmcm9tIHBhY2thZ2VfdmVyc2lvbiBmaWxlIGlmIGV4aXN0cwotICAgIGZpbGUoU1RSSU5HUyBw
YWNrYWdlX3ZlcnNpb24gb3B1c19wYWNrYWdlX3ZlcnNpb25fc3RyaW5nCi0gICAgICAgICBMSU1J
VF9DT1VOVCAxCi0gICAgICAgICBSRUdFWCAiUEFDS0FHRV9WRVJTSU9OPSIpCi0gICAgc3RyaW5n
KFJFUExBQ0UgIlBBQ0tBR0VfVkVSU0lPTj0iCi0gICAgICAgICAgICAgICAgICAgIiIKLSAgICAg
ICAgICAgICAgICAgICBvcHVzX3BhY2thZ2VfdmVyc2lvbl9zdHJpbmcKLSAgICAgICAgICAgICAg
ICAgICAke29wdXNfcGFja2FnZV92ZXJzaW9uX3N0cmluZ30pCi0gICAgc3RyaW5nKFJFUExBQ0Ug
IlwiIgotICAgICAgICAgICAgICAgICAgICIiCi0gICAgICAgICAgICAgICAgICAgb3B1c19wYWNr
YWdlX3ZlcnNpb25fc3RyaW5nCi0gICAgICAgICAgICAgICAgICAgJHtvcHVzX3BhY2thZ2VfdmVy
c2lvbl9zdHJpbmd9KQotICAgIHNldChQQUNLQUdFX1ZFUlNJT04gJHtvcHVzX3BhY2thZ2VfdmVy
c2lvbl9zdHJpbmd9IFBBUkVOVF9TQ09QRSkKLSAgICByZXR1cm4oKQotICBlbmRpZigpCi0KLSAg
IyBpZiBhbGwgZWxzZSBmYWlscyBzZXQgdG8gMAotICBzZXQoUEFDS0FHRV9WRVJTSU9OIDAgUEFS
RU5UX1NDT1BFKQotZW5kZnVuY3Rpb24oKQotCi1mdW5jdGlvbihjaGVja19hbmRfc2V0X2ZsYWcg
TkFNRSBGTEFHKQotICBpbmNsdWRlKENoZWNrQ0NvbXBpbGVyRmxhZykKLSAgY2hlY2tfY19jb21w
aWxlcl9mbGFnKCR7RkxBR30gJHtOQU1FfV9TVVBQT1JURUQpCi0gIGlmKCR7TkFNRX1fU1VQUE9S
VEVEKQotICAgIGFkZF9kZWZpbml0aW9ucygke0ZMQUd9KQotICBlbmRpZigpCi1lbmRmdW5jdGlv
bigpCi0KLWZ1bmN0aW9uKGNoZWNrX2ZsYWcgTkFNRSBGTEFHKQotICBpbmNsdWRlKENoZWNrQ0Nv
bXBpbGVyRmxhZykKLSAgY2hlY2tfY19jb21waWxlcl9mbGFnKCR7RkxBR30gJHtOQU1FfV9TVVBQ
T1JURUQpCi1lbmRmdW5jdGlvbigpCi0KLWluY2x1ZGUoQ2hlY2tJbmNsdWRlRmlsZSkKLSMgZnVu
Y3Rpb24gdG8gY2hlY2sgaWYgY29tcGlsZXIgc3VwcG9ydHMgU1NFLCBTU0UyLCBTU0U0LjEgYW5k
IEFWWCBpZiB0YXJnZXQKLSMgc3lzdGVtcyBtYXkgbm90IGhhdmUgU1NFIHN1cHBvcnQgdGhlbiB1
c2UgT1BVU19NQVlfSEFWRV9TU0Ugb3B0aW9uIGlmIHRhcmdldAotIyBzeXN0ZW0gaXMgZ3VhcmFu
dGVlZCB0byBoYXZlIFNTRSBzdXBwb3J0IHRoZW4gT1BVU19QUkVTVU1FX1NTRSBjYW4gYmUgdXNl
ZCB0bwotIyBza2lwIFNTRSBydW50aW1lIGNoZWNrCi1mdW5jdGlvbihvcHVzX2RldGVjdF9zc2Ug
Q09NUElMRVJfU1VQUE9SVF9TSU1EKQotICBtZXNzYWdlKFNUQVRVUyAiQ2hlY2sgU0lNRCBzdXBw
b3J0IGJ5IGNvbXBpbGVyIikKLSAgY2hlY2tfaW5jbHVkZV9maWxlKHhtbWludHJpbi5oIEhBVkVf
WE1NSU5UUklOX0gpICMgU1NFMQotICBpZihIQVZFX1hNTUlOVFJJTl9IKQotICAgIGlmKE1TVkMp
Ci0gICAgICAjIGRpZmZlcmVudCBhcmNoIG9wdGlvbnMgZm9yIDMyIGFuZCA2NCBiaXQgdGFyZ2V0
IGZvciBNU1ZDCi0gICAgICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDQpCi0gICAgICAg
IGNoZWNrX2ZsYWcoU1NFMSAvYXJjaDpTU0UpCi0gICAgICBlbHNlKCkKLSAgICAgICAgc2V0KFNT
RTFfU1VQUE9SVEVEIDEgUEFSRU5UX1NDT1BFKQotICAgICAgZW5kaWYoKQotICAgIGVsc2UoKQot
ICAgICAgY2hlY2tfYW5kX3NldF9mbGFnKFNTRTEgLW1zc2UpCi0gICAgZW5kaWYoKQotICBlbHNl
KCkKLSAgICBzZXQoU1NFMV9TVVBQT1JURUQgMCBQQVJFTlRfU0NPUEUpCi0gIGVuZGlmKCkKLQot
ICBjaGVja19pbmNsdWRlX2ZpbGUoZW1taW50cmluLmggSEFWRV9FTU1JTlRSSU5fSCkgIyBTU0Uy
Ci0gIGlmKEhBVkVfRU1NSU5UUklOX0gpCi0gICAgaWYoTVNWQykKLSAgICAgIGlmKENNQUtFX1NJ
WkVPRl9WT0lEX1AgRVFVQUwgNCkKLSAgICAgICAgY2hlY2tfZmxhZyhTU0UyIC9hcmNoOlNTRTIp
Ci0gICAgICBlbHNlKCkKLSAgICAgICAgc2V0KFNTRTJfU1VQUE9SVEVEIDEgUEFSRU5UX1NDT1BF
KQotICAgICAgZW5kaWYoKQotICAgIGVsc2UoKQotICAgICAgY2hlY2tfYW5kX3NldF9mbGFnKFNT
RTIgLW1zc2UyKQotICAgIGVuZGlmKCkKLSAgZWxzZSgpCi0gICAgc2V0KFNTRTJfU1VQUE9SVEVE
IDAgUEFSRU5UX1NDT1BFKQotICBlbmRpZigpCi0KLSAgY2hlY2tfaW5jbHVkZV9maWxlKHNtbWlu
dHJpbi5oIEhBVkVfU01NSU5UUklOX0gpICMgU1NFNC4xCi0gIGlmKEhBVkVfU01NSU5UUklOX0gp
Ci0gICAgaWYoTVNWQykKLSAgICAgIGlmKENNQUtFX1NJWkVPRl9WT0lEX1AgRVFVQUwgNCkKLSAg
ICAgICAgY2hlY2tfZmxhZyhTU0U0XzEgL2FyY2g6U1NFMikgIyBTU0UyIGFuZCBhYm92ZQotICAg
ICAgZWxzZSgpCi0gICAgICAgIHNldChTU0U0XzFfU1VQUE9SVEVEIDEgUEFSRU5UX1NDT1BFKQot
ICAgICAgZW5kaWYoKQotICAgIGVsc2UoKQotICAgICAgY2hlY2tfYW5kX3NldF9mbGFnKFNTRTRf
MSAtbXNzZTQuMSkKLSAgICBlbmRpZigpCi0gIGVsc2UoKQotICAgIHNldChTU0U0XzFfU1VQUE9S
VEVEIDAgUEFSRU5UX1NDT1BFKQotICBlbmRpZigpCi0KLSAgY2hlY2tfaW5jbHVkZV9maWxlKGlt
bWludHJpbi5oIEhBVkVfSU1NSU5UUklOX0gpICMgQVZYCi0gIGlmKEhBVkVfSU1NSU5UUklOX0gp
Ci0gICAgaWYoTVNWQykKLSAgICAgIGNoZWNrX2ZsYWcoQVZYIC9hcmNoOkFWWCkKLSAgICBlbHNl
KCkKLSAgICAgIGNoZWNrX2FuZF9zZXRfZmxhZyhBVlggLW1hdngpCi0gICAgZW5kaWYoKQotICBl
bHNlKCkKLSAgICBzZXQoQVZYX1NVUFBPUlRFRCAwIFBBUkVOVF9TQ09QRSkKLSAgZW5kaWYoKQot
Ci0gIGlmKE1TVkMpICMgVG8gYXZvaWQgd2FybmluZyBEOTAyNSBvZiBvdmVycmlkaW5nIGNvbXBp
bGVyIG9wdGlvbnMKLSAgICBpZihBVlhfU1VQUE9SVEVEKSAjIG9uIDY0IGJpdCBhbmQgMzIgYml0
cwotICAgICAgYWRkX2RlZmluaXRpb25zKC9hcmNoOkFWWCkKLSAgICBlbHNlaWYoQ01BS0VfU0la
RU9GX1ZPSURfUCBFUVVBTCA0KSAjIGlmIEFWWCBub3Qgc3VwcG9ydGVkIHRoZW4gc2V0IFNTRSBm
bGFnCi0gICAgICBpZihTU0U0XzFfU1VQUE9SVEVEIE9SIFNTRTJfU1VQUE9SVEVEKQotICAgICAg
ICBhZGRfZGVmaW5pdGlvbnMoL2FyY2g6U1NFMikKLSAgICAgIGVsc2VpZihTU0UxX1NVUFBPUlRF
RCkKLSAgICAgICAgYWRkX2RlZmluaXRpb25zKC9hcmNoOlNTRSkKLSAgICAgIGVuZGlmKCkKLSAg
ICBlbmRpZigpCi0gIGVuZGlmKCkKLQotICBpZihTU0UxX1NVUFBPUlRFRCBPUiBTU0UyX1NVUFBP
UlRFRCBPUiBTU0U0XzFfU1VQUE9SVEVEIE9SIEFWWF9TVVBQT1JURUQpCi0gICAgc2V0KENPTVBJ
TEVSX1NVUFBPUlRfU0lNRCAxIFBBUkVOVF9TQ09QRSkKLSAgZWxzZSgpCi0gICAgbWVzc2FnZShT
VEFUVVMgIk5vIFNJTUQgc3VwcG9ydCBpbiBjb21waWxlciIpCi0gIGVuZGlmKCkKLWVuZGZ1bmN0
aW9uKCkKLQotZnVuY3Rpb24ob3B1c19kZXRlY3RfbmVvbiBDT01QSUxFUl9TVVBQT1JUX05FT04p
Ci0gIGlmKENNQUtFX1NZU1RFTV9QUk9DRVNTT1IgTUFUQ0hFUyAiKGFybXY3LWF8YWFyY2g2NCki
KQotICAgIG1lc3NhZ2UoU1RBVFVTICJDaGVjayBORU9OIHN1cHBvcnQgYnkgY29tcGlsZXIiKQot
ICAgIGNoZWNrX2luY2x1ZGVfZmlsZShhcm1fbmVvbi5oIEhBVkVfQVJNX05FT05fSCkKLSAgICBp
ZihIQVZFX0FSTV9ORU9OX0gpCi0gICAgICBzZXQoQ09NUElMRVJfU1VQUE9SVF9ORU9OICR7SEFW
RV9BUk1fTkVPTl9IfSBQQVJFTlRfU0NPUEUpCi0gICAgZW5kaWYoKQotICBlbmRpZigpCi1lbmRm
dW5jdGlvbigpCi0KLWZ1bmN0aW9uKG9wdXNfc3VwcG9ydHNfY3B1X2RldGVjdGlvbiBSVU5USU1F
X0NQVV9DQVBBQklMSVRZX0RFVEVDVElPTikKLSAgaWYoTVNWQykKLSAgICBjaGVja19pbmNsdWRl
X2ZpbGUoaW50cmluLmggSEFWRV9JTlRSSU5fSCkKLSAgZWxzZSgpCi0gICAgY2hlY2tfaW5jbHVk
ZV9maWxlKGNwdWlkLmggSEFWRV9DUFVJRF9IKQotICBlbmRpZigpCi0gIGlmKEhBVkVfSU5UUklO
X0ggT1IgSEFWRV9DUFVJRF9IKQotICAgIHNldChSVU5USU1FX0NQVV9DQVBBQklMSVRZX0RFVEVD
VElPTiAxIFBBUkVOVF9TQ09QRSkKLSAgZWxzZSgpCi0gICAgc2V0KFJVTlRJTUVfQ1BVX0NBUEFC
SUxJVFlfREVURUNUSU9OIDAgUEFSRU5UX1NDT1BFKQotICBlbmRpZigpCi1lbmRmdW5jdGlvbigp
Ci0KLWZ1bmN0aW9uKGFkZF9zb3VyY2VzX2dyb3VwIHRhcmdldCBncm91cCkKLSAgdGFyZ2V0X3Nv
dXJjZXMoJHt0YXJnZXR9IFBSSVZBVEUgJHtBUkdOfSkKLSAgc291cmNlX2dyb3VwKCR7Z3JvdXB9
IEZJTEVTICR7QVJHTn0pCi1lbmRmdW5jdGlvbigpCi0KLWZ1bmN0aW9uKGdldF9vcHVzX3NvdXJj
ZXMgU09VUkNFX0dST1VQIE1BS0VfRklMRSBTT1VSQ0VTKQotICAjIHJlYWQgZmlsZSwgZWFjaCBp
dGVtIGluIGxpc3QgaXMgb25lIGdyb3VwCi0gIGZpbGUoU1RSSU5HUyAke01BS0VfRklMRX0gb3B1
c19zb3VyY2VzKQotCi0gICMgYWRkIHdpbGRjYXJkIGZvciByZWdleCBtYXRjaAotICBzdHJpbmco
Q09OQ0FUIFNPVVJDRV9HUk9VUCAke1NPVVJDRV9HUk9VUH0gIi4qJCIpCi0KLSAgIyBmaW5kIGdy
b3VwCi0gIGZvcmVhY2godmFsIElOIExJU1RTIG9wdXNfc291cmNlcykKLSAgICBpZih2YWwgTUFU
Q0hFUyAke1NPVVJDRV9HUk9VUH0pCi0gICAgICBsaXN0KExFTkdUSCB2YWwgbGlzdF9sZW5ndGgp
Ci0gICAgICBpZigke2xpc3RfbGVuZ3RofSBFUVVBTCAxKQotICAgICAgICAjIGZvciB0ZXN0cyBz
cGxpdCBieSAnPScgYW5kIGNsZWFuIHVwIHRoZSByZXN0IGludG8gYSBsaXN0Ci0gICAgICAgIHN0
cmluZyhGSU5EICR7dmFsfSAiPSIgaW5kZXgpCi0gICAgICAgIG1hdGgoRVhQUiBpbmRleCAiJHtp
bmRleH0gKyAxIikKLSAgICAgICAgc3RyaW5nKFNVQlNUUklORyAke3ZhbH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAke2luZGV4fQotICAgICAgICAgICAgICAgICAgICAgICAgIC0xCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlcykKLSAgICAgICAgc3RyaW5nKFJFUExBQ0UgIiAi
Ci0gICAgICAgICAgICAgICAgICAgICAgICI7IgotICAgICAgICAgICAgICAgICAgICAgICBzb3Vy
Y2VzCi0gICAgICAgICAgICAgICAgICAgICAgICR7c291cmNlc30pCi0gICAgICBlbHNlKCkKLSAg
ICAgICAgIyBkaXNjYXJkIHRoZSBncm91cAotICAgICAgICBsaXN0KFJFTU9WRV9BVCB2YWwgMCkK
LSAgICAgICAgc2V0KHNvdXJjZXMgJHt2YWx9KQotICAgICAgZW5kaWYoKQotICAgICAgYnJlYWso
KQotICAgIGVuZGlmKCkKLSAgZW5kZm9yZWFjaCgpCi0KLSAgbGlzdChMRU5HVEggc291cmNlcyBs
aXN0X2xlbmd0aCkKLSAgaWYoJHtsaXN0X2xlbmd0aH0gTEVTUyAxKQotICAgIG1lc3NhZ2UoCi0g
ICAgICBGQVRBTF9FUlJPUgotICAgICAgICAiTm8gZmlsZXMgcGFyc2VkIHN1Y2Nlc2Z1bGx5IGZy
b20gJHtTT1VSQ0VfR1JPVVB9IGluICR7TUFLRV9GSUxFfSIpCi0gIGVuZGlmKCkKLQotICAjIHJl
bW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlcwotICBzZXQobGlzdF92YXIgIiIpCi0gIGZvcmVhY2go
c291cmNlICR7c291cmNlc30pCi0gICAgc3RyaW5nKFNUUklQICIke3NvdXJjZX0iIHNvdXJjZSkK
LSAgICBsaXN0KEFQUEVORCBsaXN0X3ZhciAiJHtzb3VyY2V9IikKLSAgZW5kZm9yZWFjaCgpCi0K
LSAgc2V0KCR7U09VUkNFU30gJHtsaXN0X3Zhcn0gUEFSRU5UX1NDT1BFKQotZW5kZnVuY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9vcHVzL3NyYy9vcHVzX3NvdXJjZXMuY21ha2UgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL29wdXNfc291cmNlcy5jbWFrZQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjI1NTQzYWYzNjQxZGIwMGYwMTA0MzlkNTUzMjRh
N2FiMzc4MjQ2Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3Jj
L29wdXNfc291cmNlcy5jbWFrZQorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLWluY2x1
ZGUob3B1c19mdW5jdGlvbnMuY21ha2UpCi0KLWdldF9vcHVzX3NvdXJjZXMoU0lMS19TT1VSQ0VT
IHNpbGtfc291cmNlcy5tayBzaWxrX3NvdXJjZXMpCi1nZXRfb3B1c19zb3VyY2VzKFNJTEtfU09V
UkNFU19GTE9BVCBzaWxrX3NvdXJjZXMubWsgc2lsa19zb3VyY2VzX2Zsb2F0KQotZ2V0X29wdXNf
c291cmNlcyhTSUxLX1NPVVJDRVNfRklYRUQgc2lsa19zb3VyY2VzLm1rIHNpbGtfc291cmNlc19m
aXhlZCkKLWdldF9vcHVzX3NvdXJjZXMoU0lMS19TT1VSQ0VTX1NTRTRfMSBzaWxrX3NvdXJjZXMu
bWsgc2lsa19zb3VyY2VzX3NzZTRfMSkKLWdldF9vcHVzX3NvdXJjZXMoU0lMS19TT1VSQ0VTX0ZJ
WEVEX1NTRTRfMSBzaWxrX3NvdXJjZXMubWsKLSAgICAgICAgICAgICAgICAgc2lsa19zb3VyY2Vz
X2ZpeGVkX3NzZTRfMSkKLWdldF9vcHVzX3NvdXJjZXMoU0lMS19TT1VSQ0VTX0FSTV9ORU9OX0lO
VFIgc2lsa19zb3VyY2VzLm1rCi0gICAgICAgICAgICAgICAgIHNpbGtfc291cmNlc19hcm1fbmVv
bl9pbnRyKQotZ2V0X29wdXNfc291cmNlcyhTSUxLX1NPVVJDRVNfRklYRURfQVJNX05FT05fSU5U
UiBzaWxrX3NvdXJjZXMubWsKLSAgICAgICAgICAgICAgICAgc2lsa19zb3VyY2VzX2ZpeGVkX2Fy
bV9uZW9uX2ludHIpCi0KLWdldF9vcHVzX3NvdXJjZXMoT1BVU19TT1VSQ0VTIG9wdXNfc291cmNl
cy5tayBvcHVzX3NvdXJjZXMpCi1nZXRfb3B1c19zb3VyY2VzKE9QVVNfU09VUkNFU19GTE9BVCBv
cHVzX3NvdXJjZXMubWsgb3B1c19zb3VyY2VzX2Zsb2F0KQotCi1nZXRfb3B1c19zb3VyY2VzKENF
TFRfU09VUkNFUyBjZWx0X3NvdXJjZXMubWsgY2VsdF9zb3VyY2VzKQotZ2V0X29wdXNfc291cmNl
cyhDRUxUX1NPVVJDRVNfU1NFIGNlbHRfc291cmNlcy5tayBjZWx0X3NvdXJjZXNfc3NlKQotZ2V0
X29wdXNfc291cmNlcyhDRUxUX1NPVVJDRVNfU1NFMiBjZWx0X3NvdXJjZXMubWsgY2VsdF9zb3Vy
Y2VzX3NzZTIpCi1nZXRfb3B1c19zb3VyY2VzKENFTFRfU09VUkNFU19TU0U0XzEgY2VsdF9zb3Vy
Y2VzLm1rIGNlbHRfc291cmNlc19zc2U0XzEpCi1nZXRfb3B1c19zb3VyY2VzKENFTFRfU09VUkNF
U19BUk0gY2VsdF9zb3VyY2VzLm1rIGNlbHRfc291cmNlc19hcm0pCi1nZXRfb3B1c19zb3VyY2Vz
KENFTFRfU09VUkNFU19BUk1fQVNNIGNlbHRfc291cmNlcy5tayBjZWx0X3NvdXJjZXNfYXJtX2Fz
bSkKLWdldF9vcHVzX3NvdXJjZXMoQ0VMVF9BTV9TT1VSQ0VTX0FSTV9BU00gY2VsdF9zb3VyY2Vz
Lm1rCi0gICAgICAgICAgICAgICAgIGNlbHRfYW1fc291cmNlc19hcm1fYXNtKQotZ2V0X29wdXNf
c291cmNlcyhDRUxUX1NPVVJDRVNfQVJNX05FT05fSU5UUiBjZWx0X3NvdXJjZXMubWsKLSAgICAg
ICAgICAgICAgICAgY2VsdF9zb3VyY2VzX2FybV9uZW9uX2ludHIpCi1nZXRfb3B1c19zb3VyY2Vz
KENFTFRfU09VUkNFU19BUk1fTkUxMCBjZWx0X3NvdXJjZXMubWsgY2VsdF9zb3VyY2VzX2FybV9u
ZTEwKQotCi1nZXRfb3B1c19zb3VyY2VzKG9wdXNfZGVtb19TT1VSQ0VTIE1ha2VmaWxlLmFtIG9w
dXNfZGVtb19zb3VyY2VzKQotZ2V0X29wdXNfc291cmNlcyhvcHVzX2N1c3RvbV9kZW1vX1NPVVJD
RVMgTWFrZWZpbGUuYW0gb3B1c19jdXN0b21fZGVtb19zb3VyY2VzKQotZ2V0X29wdXNfc291cmNl
cyhvcHVzX2NvbXBhcmVfU09VUkNFUyBNYWtlZmlsZS5hbSBvcHVzX2NvbXBhcmVfc291cmNlcykK
LWdldF9vcHVzX3NvdXJjZXModGVzdHNfdGVzdF9vcHVzX2FwaV9TT1VSQ0VTIE1ha2VmaWxlLmFt
IHRlc3Rfb3B1c19hcGlfc291cmNlcykKLWdldF9vcHVzX3NvdXJjZXModGVzdHNfdGVzdF9vcHVz
X2VuY29kZV9TT1VSQ0VTIE1ha2VmaWxlLmFtCi0gICAgICAgICAgICAgICAgIHRlc3Rfb3B1c19l
bmNvZGVfc291cmNlcykKLWdldF9vcHVzX3NvdXJjZXModGVzdHNfdGVzdF9vcHVzX2RlY29kZV9T
T1VSQ0VTIE1ha2VmaWxlLmFtCi0gICAgICAgICAgICAgICAgIHRlc3Rfb3B1c19kZWNvZGVfc291
cmNlcykKLWdldF9vcHVzX3NvdXJjZXModGVzdHNfdGVzdF9vcHVzX3BhZGRpbmdfU09VUkNFUyBN
YWtlZmlsZS5hbQotICAgICAgICAgICAgICAgICB0ZXN0X29wdXNfcGFkZGluZ19zb3VyY2VzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9zaWxrL0xQQ19maXQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay9MUENfZml0LmMKaW5kZXggY2RlYTRmM2Fi
Y2FmN2ZjZDE0MWE0Yjg2ZTJmOTI0YjY3OWVmZmQ5NC4uYzA2OTBhMWZjOWE4NDM3NjAyZTg2YTFk
YTc3YmQ5MDVhZTBlMTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL0xQQ19maXQuYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NpbGsvTFBD
X2ZpdC5jCkBAIC0zMSw3ICszMSw4IEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAj
aW5jbHVkZSAiU2lnUHJvY19GSVguaCIKIAotLyogQ29udmVydCBpbnQzMiBjb2VmZmljaWVudHMg
dG8gaW50MTYgY29lZnMgYW5kIG1ha2Ugc3VyZSB0aGVyZSdzIG5vIHdyYXAtYXJvdW5kICovCisv
KiBDb252ZXJ0IGludDMyIGNvZWZmaWNpZW50cyB0byBpbnQxNiBjb2VmcyBhbmQgbWFrZSBzdXJl
IHRoZXJlJ3Mgbm8gd3JhcC1hcm91bmQuCisgICBUaGlzIGxvZ2ljIGlzIHJldXNlZCBpbiBfY2Vs
dF9scGMoKS4gQW55IGJ1ZyBmaXhlcyBzaG91bGQgYWxzbyBiZSBhcHBsaWVkIHRoZXJlLiAqLwog
dm9pZCBzaWxrX0xQQ19maXQoCiAgICAgb3B1c19pbnQxNiAgICAgICAgICAgICAgICAgICphX1FP
VVQsICAgICAgICAgICAgLyogTyAgICBPdXRwdXQgc2lnbmFsICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgIG9wdXNfaW50MzIgICAgICAgICAgICAg
ICAgICAgICphX1FJTiwgICAgICAgICAgICAgLyogSS9PICBJbnB1dCBzaWduYWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxr
L01hY3JvQ291bnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvb3B1cy9zcmMvc2lsay9NYWNyb0NvdW50LmgKaW5kZXggNzgxMDBmZmVkZWIyOTA2MTgw
OTMyNzMwOTU5OTg2M2E0ZGM0YWY0OC4uZGFiMmY1N2E2OGEyNTg4ZjcxOTZiNzZkOTE3Y2IyMTZl
ODliYmEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL01hY3JvQ291bnQuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NpbGsvTWFjcm9Db3Vu
dC5oCkBAIC0yNyw5ICsyNyw5IEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAjaWZu
ZGVmIFNJR1BST0NGSVhfQVBJX01BQ1JPQ09VTlRfSAogI2RlZmluZSBTSUdQUk9DRklYX0FQSV9N
QUNST0NPVU5UX0gKLSNpbmNsdWRlIDxzdGRpby5oPgogCiAjaWZkZWYgICAgc2lsa19NQUNST19D
T1VOVAorI2luY2x1ZGUgPHN0ZGlvLmg+CiAjZGVmaW5lIHZhckRlZmluZSBvcHVzX2ludDY0IG9w
c19jb3VudCA9IDA7CiAKIGV4dGVybiBvcHVzX2ludDY0IG9wc19jb3VudDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMv
c2lsay9OU1FfZGVsX2RlYy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL05TUV9kZWxfZGVjLmMKaW5kZXggMDBlNzQ5YzNiY2U5
OWJiMGZiODNhMWIyODM2Nzk1NmZhMDFkMjliNS4uZmM2NTAwYzlhZmI0MDAzNTEzYjQ5OTIyNzZl
ODQxZmU0NGQyMjgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL05TUV9kZWxfZGVjLmMKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL05T
UV9kZWxfZGVjLmMKQEAgLTQyMywxOCArNDIzLDMwIEBAIHN0YXRpYyBPUFVTX0lOTElORSB2b2lk
IHNpbGtfbm9pc2Vfc2hhcGVfcXVhbnRpemVyX2RlbF9kZWMoCiAgICAgICAgICAgICAvKiBPdXRw
dXQgb2YgbG93cGFzcyBzZWN0aW9uICovCiAgICAgICAgICAgICB0bXAyID0gc2lsa19TTUxBV0Io
IHBzREQtPkRpZmZfUTE0LCBwc0RELT5zQVIyX1ExNFsgMCBdLCB3YXJwaW5nX1ExNiApOwogICAg
ICAgICAgICAgLyogT3V0cHV0IG9mIGFsbHBhc3Mgc2VjdGlvbiAqLworI2lmIGRlZmluZWQoRlVa
WklOR19CVUlMRF9NT0RFX1VOU0FGRV9GT1JfUFJPRFVDVElPTikKKyAgICAgICAgICAgIHRtcDEg
PSBzaWxrX1NNTEFXQiggcHNERC0+c0FSMl9RMTRbIDAgXSwgc2lsa19TVUIzMl9vdmZsdyhwc0RE
LT5zQVIyX1ExNFsgMSBdLCB0bXAyKSwgd2FycGluZ19RMTYgKTsKKyNlbHNlCiAgICAgICAgICAg
ICB0bXAxID0gc2lsa19TTUxBV0IoIHBzREQtPnNBUjJfUTE0WyAwIF0sIHBzREQtPnNBUjJfUTE0
WyAxIF0gLSB0bXAyLCB3YXJwaW5nX1ExNiApOworI2VuZGlmCiAgICAgICAgICAgICBwc0RELT5z
QVIyX1ExNFsgMCBdID0gdG1wMjsKICAgICAgICAgICAgIG5fQVJfUTE0ID0gc2lsa19SU0hJRlQo
IHNoYXBpbmdMUENPcmRlciwgMSApOwogICAgICAgICAgICAgbl9BUl9RMTQgPSBzaWxrX1NNTEFX
Qiggbl9BUl9RMTQsIHRtcDIsIEFSX3NocF9RMTNbIDAgXSApOwogICAgICAgICAgICAgLyogTG9v
cCBvdmVyIGFsbHBhc3Mgc2VjdGlvbnMgKi8KICAgICAgICAgICAgIGZvciggaiA9IDI7IGogPCBz
aGFwaW5nTFBDT3JkZXI7IGogKz0gMiApIHsKICAgICAgICAgICAgICAgICAvKiBPdXRwdXQgb2Yg
YWxscGFzcyBzZWN0aW9uICovCisjaWYgZGVmaW5lZChGVVpaSU5HX0JVSUxEX01PREVfVU5TQUZF
X0ZPUl9QUk9EVUNUSU9OKQorICAgICAgICAgICAgICAgIHRtcDIgPSBzaWxrX1NNTEFXQiggcHNE
RC0+c0FSMl9RMTRbIGogLSAxIF0sIHNpbGtfU1VCMzJfb3ZmbHcocHNERC0+c0FSMl9RMTRbIGog
KyAwIF0sIHRtcDEpLCB3YXJwaW5nX1ExNiApOworI2Vsc2UKICAgICAgICAgICAgICAgICB0bXAy
ID0gc2lsa19TTUxBV0IoIHBzREQtPnNBUjJfUTE0WyBqIC0gMSBdLCBwc0RELT5zQVIyX1ExNFsg
aiArIDAgXSAtIHRtcDEsIHdhcnBpbmdfUTE2ICk7CisjZW5kaWYKICAgICAgICAgICAgICAgICBw
c0RELT5zQVIyX1ExNFsgaiAtIDEgXSA9IHRtcDE7CiAgICAgICAgICAgICAgICAgbl9BUl9RMTQg
PSBzaWxrX1NNTEFXQiggbl9BUl9RMTQsIHRtcDEsIEFSX3NocF9RMTNbIGogLSAxIF0gKTsKICAg
ICAgICAgICAgICAgICAvKiBPdXRwdXQgb2YgYWxscGFzcyBzZWN0aW9uICovCisjaWYgZGVmaW5l
ZChGVVpaSU5HX0JVSUxEX01PREVfVU5TQUZFX0ZPUl9QUk9EVUNUSU9OKQorICAgICAgICAgICAg
ICAgIHRtcDEgPSBzaWxrX1NNTEFXQiggcHNERC0+c0FSMl9RMTRbIGogKyAwIF0sIHNpbGtfU1VC
MzJfb3ZmbHcocHNERC0+c0FSMl9RMTRbIGogKyAxIF0sIHRtcDIpLCB3YXJwaW5nX1ExNiApOwor
I2Vsc2UKICAgICAgICAgICAgICAgICB0bXAxID0gc2lsa19TTUxBV0IoIHBzREQtPnNBUjJfUTE0
WyBqICsgMCBdLCBwc0RELT5zQVIyX1ExNFsgaiArIDEgXSAtIHRtcDIsIHdhcnBpbmdfUTE2ICk7
CisjZW5kaWYKICAgICAgICAgICAgICAgICBwc0RELT5zQVIyX1ExNFsgaiArIDAgXSA9IHRtcDI7
CiAgICAgICAgICAgICAgICAgbl9BUl9RMTQgPSBzaWxrX1NNTEFXQiggbl9BUl9RMTQsIHRtcDIs
IEFSX3NocF9RMTNbIGogXSApOwogICAgICAgICAgICAgfQpAQCAtNTM0LDcgKzU0NiwxMSBAQCBz
dGF0aWMgT1BVU19JTkxJTkUgdm9pZCBzaWxrX25vaXNlX3NoYXBlX3F1YW50aXplcl9kZWxfZGVj
KAogCiAgICAgICAgICAgICAvKiBVcGRhdGUgc3RhdGVzICovCiAgICAgICAgICAgICBwc1NTWyAw
IF0uRGlmZl9RMTQgICAgID0gc2lsa19TVUJfTFNISUZUMzIoIHhxX1ExNCwgeF9RMTBbIGkgXSwg
NCApOworI2lmIGRlZmluZWQoRlVaWklOR19CVUlMRF9NT0RFX1VOU0FGRV9GT1JfUFJPRFVDVElP
TikKKyAgICAgICAgICAgIHNMRl9BUl9zaHBfUTE0ICAgICAgICAgPSBzaWxrX1NVQjMyX292Zmx3
KCBwc1NTWyAwIF0uRGlmZl9RMTQsIG5fQVJfUTE0ICk7CisjZWxzZQogICAgICAgICAgICAgc0xG
X0FSX3NocF9RMTQgICAgICAgICA9IHNpbGtfU1VCMzIoIHBzU1NbIDAgXS5EaWZmX1ExNCwgbl9B
Ul9RMTQgKTsKKyNlbmRpZgogICAgICAgICAgICAgcHNTU1sgMCBdLnNMVFBfc2hwX1ExNCA9IHNp
bGtfU1VCX1NBVDMyKCBzTEZfQVJfc2hwX1ExNCwgbl9MRl9RMTQgKTsKICAgICAgICAgICAgIHBz
U1NbIDAgXS5MRl9BUl9RMTQgICAgPSBzTEZfQVJfc2hwX1ExNDsKICAgICAgICAgICAgIHBzU1Nb
IDAgXS5MUENfZXhjX1ExNCAgPSBMUENfZXhjX1ExNDsKQEAgLTU1NCw3ICs1NzAsMTEgQEAgc3Rh
dGljIE9QVVNfSU5MSU5FIHZvaWQgc2lsa19ub2lzZV9zaGFwZV9xdWFudGl6ZXJfZGVsX2RlYygK
IAogICAgICAgICAgICAgLyogVXBkYXRlIHN0YXRlcyAqLwogICAgICAgICAgICAgcHNTU1sgMSBd
LkRpZmZfUTE0ICAgICA9IHNpbGtfU1VCX0xTSElGVDMyKCB4cV9RMTQsIHhfUTEwWyBpIF0sIDQg
KTsKKyNpZiBkZWZpbmVkKEZVWlpJTkdfQlVJTERfTU9ERV9VTlNBRkVfRk9SX1BST0RVQ1RJT04p
CisgICAgICAgICAgICBzTEZfQVJfc2hwX1ExNCAgICAgICAgID0gc2lsa19TVUIzMl9vdmZsdygg
cHNTU1sgMSBdLkRpZmZfUTE0LCBuX0FSX1ExNCApOworI2Vsc2UKICAgICAgICAgICAgIHNMRl9B
Ul9zaHBfUTE0ICAgICAgICAgPSBzaWxrX1NVQjMyKCBwc1NTWyAxIF0uRGlmZl9RMTQsIG5fQVJf
UTE0ICk7CisjZW5kaWYKICAgICAgICAgICAgIHBzU1NbIDEgXS5zTFRQX3NocF9RMTQgPSBzaWxr
X1NVQl9TQVQzMiggc0xGX0FSX3NocF9RMTQsIG5fTEZfUTE0ICk7CiAgICAgICAgICAgICBwc1NT
WyAxIF0uTEZfQVJfUTE0ICAgID0gc0xGX0FSX3NocF9RMTQ7CiAgICAgICAgICAgICBwc1NTWyAx
IF0uTFBDX2V4Y19RMTQgID0gTFBDX2V4Y19RMTQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NpbGsvUExDLmMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3Np
bGsvUExDLmMKaW5kZXggZjg5MzkxNjUxY2RmOTc1OGM4ZDVlOGZlZmMwZGNjNGRhY2EwMjFjZC4u
NDY2NzQ0MGRiMmI3ZmFlZDdjZmM1MDA0OTY2ODJhMGMxNDdiZWYyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxr
L1BMQy5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvb3B1cy9zcmMvc2lsay9QTEMuYwpAQCAtMzI4LDEwICszMjgsOCBAQCBzdGF0aWMgT1BVU19J
TkxJTkUgdm9pZCBzaWxrX1BMQ19jb25jZWFsKAogICAgICAgICBmb3IoIGogPSAwOyBqIDwgTFRQ
X09SREVSOyBqKysgKSB7CiAgICAgICAgICAgICBCX1ExNFsgaiBdID0gc2lsa19SU0hJRlQoIHNp
bGtfU01VTEJCKCBoYXJtX0dhaW5fUTE1LCBCX1ExNFsgaiBdICksIDE1ICk7CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKCBwc0RlYy0+aW5kaWNlcy5zaWduYWxUeXBlICE9IFRZUEVfTk9fVk9JQ0Vf
QUNUSVZJVFkgKSB7Ci0gICAgICAgICAgICAvKiBHcmFkdWFsbHkgcmVkdWNlIGV4Y2l0YXRpb24g
Z2FpbiAqLwotICAgICAgICAgICAgcmFuZF9zY2FsZV9RMTQgPSBzaWxrX1JTSElGVCggc2lsa19T
TVVMQkIoIHJhbmRfc2NhbGVfUTE0LCByYW5kX0dhaW5fUTE1ICksIDE1ICk7Ci0gICAgICAgIH0K
KyAgICAgICAgLyogR3JhZHVhbGx5IHJlZHVjZSBleGNpdGF0aW9uIGdhaW4gKi8KKyAgICAgICAg
cmFuZF9zY2FsZV9RMTQgPSBzaWxrX1JTSElGVCggc2lsa19TTVVMQkIoIHJhbmRfc2NhbGVfUTE0
LCByYW5kX0dhaW5fUTE1ICksIDE1ICk7CiAKICAgICAgICAgLyogU2xvd2x5IGluY3JlYXNlIHBp
dGNoIGxhZyAqLwogICAgICAgICBwc1BMQy0+cGl0Y2hMX1E4ID0gc2lsa19TTUxBV0IoIHBzUExD
LT5waXRjaExfUTgsIHBzUExDLT5waXRjaExfUTgsIFBJVENIX0RSSUZUX0ZBQ19RMTYgKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
b3B1cy9zcmMvc2lsay9id2V4cGFuZGVyXzMyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NpbGsvYndleHBhbmRlcl8zMi5jCmluZGV4
IGQwMDEwZjczZGZkNTA4MGUyZDQwNDMyYjJiM2FhNWU0ZDU1NDQ3OWUuLjBmMzJiOWRmMWExZDcz
NDU2YzE5NjllZjdkM2NkZTljZWZjNWIxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay9id2V4cGFuZGVyXzMy
LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9v
cHVzL3NyYy9zaWxrL2J3ZXhwYW5kZXJfMzIuYwpAQCAtMzEsNyArMzEsOCBAQCBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAogI2luY2x1ZGUgIlNpZ1Byb2NfRklYLmgiCiAKLS8qIENoaXJw
IChiYW5kd2lkdGggZXhwYW5kKSBMUCBBUiBmaWx0ZXIgKi8KKy8qIENoaXJwIChiYW5kd2lkdGgg
ZXhwYW5kKSBMUCBBUiBmaWx0ZXIuCisgICBUaGlzIGxvZ2ljIGlzIHJldXNlZCBpbiBfY2VsdF9s
cGMoKS4gQW55IGJ1ZyBmaXhlcyBzaG91bGQgYWxzbyBiZSBhcHBsaWVkIHRoZXJlLiAqLwogdm9p
ZCBzaWxrX2J3ZXhwYW5kZXJfMzIoCiAgICAgb3B1c19pbnQzMiAgICAgICAgICAgICAgICAgICph
ciwgICAgICAgICAgICAgICAgLyogSS9PICBBUiBmaWx0ZXIgdG8gYmUgZXhwYW5kZWQgKHdpdGhv
dXQgbGVhZGluZyAxKSAgICAgICAgICAgICAgICAqLwogICAgIGNvbnN0IG9wdXNfaW50ICAgICAg
ICAgICAgICBkLCAgICAgICAgICAgICAgICAgIC8qIEkgICAgTGVuZ3RoIG9mIGFyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2ls
ay9kZWJ1Zy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9zaWxrL2RlYnVnLmMKaW5kZXggOTI1M2ZhZjcxYmZlMzczMjY4ZDI1ZDg5YmEx
NDU0NGExNDkyMGI2Yi4uZWIwYzM2ZWYxZjlhMDI5OTJkMzNjYTlkYzZmMzk5YzJmMjljZjlkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9zaWxrL2RlYnVnLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL2RlYnVnLmMKQEAgLTMwLDE4ICszMCwy
MCBAQCBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICNlbmRpZgogCiAjaW5jbHVkZSAiZGVi
dWcuaCIKKworI2lmIFNJTEtfREVCVUcgfHwgU0lMS19USUNfVE9DCiAjaW5jbHVkZSAiU2lnUHJv
Y19GSVguaCIKKyNlbmRpZgogCiAjaWYgU0lMS19USUNfVE9DCiAKLSNpZmRlZiBfV0lOMzIKLQog
I2lmIChkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfV0lOQ0UpKQogI2luY2x1ZGUgPHdpbmRv
d3MuaD4gICAgLyogdGltZXIgKi8KICNlbHNlICAgLyogTGludXggb3IgTWFjKi8KICNpbmNsdWRl
IDxzeXMvdGltZS5oPgogI2VuZGlmCiAKKyNpZmRlZiBfV0lOMzIKIHVuc2lnbmVkIGxvbmcgc2ls
a19HZXRIaWdoUmVzb2x1dGlvblRpbWUodm9pZCkgLyogTyAgdGltZSBpbiB1c2VjKi8KIHsKICAg
ICAvKiBSZXR1cm5zIGEgdGltZSBjb3VudGVyIGluIG1pY3Jvc2VjICAgKi8KQEAgLTY1LDcgKzY3
LDcgQEAgdW5zaWduZWQgbG9uZyBHZXRIaWdoUmVzb2x1dGlvblRpbWUodm9pZCkgLyogTyAgdGlt
ZSBpbiB1c2VjKi8KIGludCAgICAgICAgICAgc2lsa19UaW1lcl9uVGltZXJzID0gMDsKIGludCAg
ICAgICAgICAgc2lsa19UaW1lcl9kZXB0aF9jdHIgPSAwOwogY2hhciAgICAgICAgICBzaWxrX1Rp
bWVyX3RhZ3Nbc2lsa19OVU1fVElNRVJTX01BWF1bc2lsa19OVU1fVElNRVJTX01BWF9UQUdfTEVO
XTsKLSNpZmRlZiBXSU4zMgorI2lmZGVmIF9XSU4zMgogTEFSR0VfSU5URUdFUiBzaWxrX1RpbWVy
X3N0YXJ0W3NpbGtfTlVNX1RJTUVSU19NQVhdOwogI2Vsc2UKIHVuc2lnbmVkIGxvbmcgc2lsa19U
aW1lcl9zdGFydFtzaWxrX05VTV9USU1FUlNfTUFYXTsKQEAgLTc2LDcgKzc4LDcgQEAgb3B1c19p
bnQ2NCAgICAgc2lsa19UaW1lcl9zdW1bc2lsa19OVU1fVElNRVJTX01BWF07CiBvcHVzX2ludDY0
ICAgICBzaWxrX1RpbWVyX21heFtzaWxrX05VTV9USU1FUlNfTUFYXTsKIG9wdXNfaW50NjQgICAg
IHNpbGtfVGltZXJfZGVwdGhbc2lsa19OVU1fVElNRVJTX01BWF07CiAKLSNpZmRlZiBXSU4zMgor
I2lmZGVmIF9XSU4zMgogdm9pZCBzaWxrX1RpbWVyU2F2ZShjaGFyICpmaWxlX25hbWUpCiB7CiAg
ICAgaWYoIHNpbGtfVGltZXJfblRpbWVycyA+IDAgKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL2RlYnVnLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3Jj
L3NpbGsvZGVidWcuaAppbmRleCA2ZjY4YzFjYTBmMDIyNTc3MzMwMzhlMGY5MWM0MThjMzE5YTk4
NmIyLi4zNjE2M2U0NzhkMzA1MWFhZmYyYmY2MjZmMzRkNzgyNTM0YTRiYmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3Jj
L3NpbGsvZGVidWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L29wdXMvc3JjL3NpbGsvZGVidWcuaApAQCAtMjgsMjggKzI4LDI5IEBAIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogI2lmbmRlZiBTSUxLX0RFQlVHX0gKICNkZWZpbmUgU0lM
S19ERUJVR19ICiAKLSNpbmNsdWRlICJ0eXBlZGVmLmgiCi0jaW5jbHVkZSA8c3RkaW8uaD4gICAg
ICAvKiBmaWxlIHdyaXRpbmcgKi8KLSNpbmNsdWRlIDxzdHJpbmcuaD4gICAgIC8qIHN0cmNweSwg
c3RyY21wICovCi0KLSNpZmRlZiAgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIKLXsKLSNlbmRpZgot
Ci11bnNpZ25lZCBsb25nIEdldEhpZ2hSZXNvbHV0aW9uVGltZSh2b2lkKTsgLyogTyAgdGltZSBp
biB1c2VjKi8KLQogLyogU2V0IHRvIDEgdG8gZW5hYmxlIERFQlVHX1NUT1JFX0RBVEEoKSBtYWNy
b3MgZm9yIGR1bXBpbmcKICAqIGludGVybWVkaWF0ZSBzaWduYWxzIGZyb20gdGhlIGNvZGVjLgog
ICovCiAjZGVmaW5lIFNJTEtfREVCVUcgMAogCiAvKiBGbGFnIGZvciB1c2luZyB0aW1lcnMgKi8K
LSNkZWZpbmUgU0lMS19USUNfVE9DICAgIDAKKyNkZWZpbmUgU0lMS19USUNfVE9DIDAKIAorI2lm
IFNJTEtfREVCVUcgfHwgU0lMS19USUNfVE9DCisjaW5jbHVkZSAidHlwZWRlZi5oIgorI2luY2x1
ZGUgPHN0cmluZy5oPiAgICAgLyogc3RyY3B5LCBzdHJjbXAgKi8KKyNpbmNsdWRlIDxzdGRpby5o
PiAgICAgIC8qIGZpbGUgd3JpdGluZyAqLworI2VuZGlmCisKKyNpZmRlZiAgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIKK3sKKyNlbmRpZgogCiAjaWYgU0lMS19USUNfVE9DCiAKK3Vuc2lnbmVkIGxv
bmcgR2V0SGlnaFJlc29sdXRpb25UaW1lKHZvaWQpOyAvKiBPICB0aW1lIGluIHVzZWMqLworCiAj
aWYgKGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9XSU5DRSkpCiAjaW5jbHVkZSA8d2luZG93
cy5oPiAgICAvKiB0aW1lciAqLwogI2Vsc2UgICAvKiBMaW51eCBvciBNYWMqLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9zaWxrL2RlY29kZV9mcmFtZS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL2RlY29kZV9mcmFtZS5jCmluZGV4IGU3MzgyNWIy
Njc2Zjk2MDZiNTFhYTZkOWU5ZmMwNzFmY2Q1Mjk0OGUuLjRmMzZmODU0YzJiNTk5MjQ2YzMyYjVm
OGFhMzIzZmMwYWIzZWYyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay9kZWNvZGVfZnJhbWUuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3Np
bGsvZGVjb2RlX2ZyYW1lLmMKQEAgLTk3LDcgKzk3LDYgQEAgb3B1c19pbnQgc2lsa19kZWNvZGVf
ZnJhbWUoCiAgICAgICAgIHBzRGVjLT5maXJzdF9mcmFtZV9hZnRlcl9yZXNldCA9IDA7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgLyogSGFuZGxlIHBhY2tldCBsb3NzIGJ5IGV4dHJhcG9sYXRpb24g
Ki8KLSAgICAgICAgcHNEZWMtPmluZGljZXMuc2lnbmFsVHlwZSA9IHBzRGVjLT5wcmV2U2lnbmFs
VHlwZTsKICAgICAgICAgc2lsa19QTEMoIHBzRGVjLCBwc0RlY0N0cmwsIHBPdXQsIDEsIGFyY2gg
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay9tZXNvbi5idWlsZCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay9tZXNvbi5idWls
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MDY5MjM3MjdhYTdmOWUwZmYxNjMzZDhhOGJlNTA5NGJhOWFjMmEzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL21lc29uLmJ1aWxkCkBAIC0wLDAgKzEsNTMgQEAKK3NpbGtf
c291cmNlcyA9IHNvdXJjZXNbJ1NJTEtfU09VUkNFUyddCisKK3NpbGtfc291cmNlc19zc2U0XzEg
PSBzb3VyY2VzWydTSUxLX1NPVVJDRVNfU1NFNF8xJ10KKworc2lsa19zb3VyY2VzX25lb25faW50
ciA9IHNvdXJjZXNbJ1NJTEtfU09VUkNFU19BUk1fTkVPTl9JTlRSJ10KKworc2lsa19zb3VyY2Vz
X2ZpeGVkX25lb25faW50ciA9IHNvdXJjZXNbJ1NJTEtfU09VUkNFU19GSVhFRF9BUk1fTkVPTl9J
TlRSJ10KKworc2lsa19zb3VyY2VzX2ZpeGVkID0gc291cmNlc1snU0lMS19TT1VSQ0VTX0ZJWEVE
J10KKworc2lsa19zb3VyY2VzX2ZpeGVkX3NzZTRfMSA9IHNvdXJjZXNbJ1NJTEtfU09VUkNFU19G
SVhFRF9TU0U0XzEnXQorCitzaWxrX3NvdXJjZXNfZmxvYXQgPSBzb3VyY2VzWydTSUxLX1NPVVJD
RVNfRkxPQVQnXQorCitpZiBvcHRfZml4ZWRfcG9pbnQKKyAgc2lsa19zb3VyY2VzICs9IHNpbGtf
c291cmNlc19maXhlZAorZWxzZQorICBzaWxrX3NvdXJjZXMgKz0gc2lsa19zb3VyY2VzX2Zsb2F0
CitlbmRpZgorCitzaWxrX2luY2x1ZGVzID0gW29wdXNfaW5jbHVkZXMsIGluY2x1ZGVfZGlyZWN0
b3JpZXMoJ2Zsb2F0JywgJ2ZpeGVkJyldCitzaWxrX3N0YXRpY19saWJzID0gW10KKworZm9yZWFj
aCBpbnRyX25hbWUgOiBbJ3NzZTRfMScsICduZW9uX2ludHInXQorICBoYXZlX2ludHIgPSBnZXRf
dmFyaWFibGUoJ2hhdmVfJyArIGludHJfbmFtZSkKKyAgaWYgbm90IGhhdmVfaW50cgorICAgIGNv
bnRpbnVlCisgIGVuZGlmCisKKyAgaW50cl9zb3VyY2VzID0gZ2V0X3ZhcmlhYmxlKCdzaWxrX3Nv
dXJjZXNfJyArIGludHJfbmFtZSkKKyAgaWYgb3B0X2ZpeGVkX3BvaW50CisgICAgaW50cl9zb3Vy
Y2VzICs9IGdldF92YXJpYWJsZSgnc2lsa19zb3VyY2VzX2ZpeGVkXycgKyBpbnRyX25hbWUpCisg
IGVuZGlmCisKKyAgaW50cl9hcmdzID0gZ2V0X3ZhcmlhYmxlKCdvcHVzX0AwQF9hcmdzJy5mb3Jt
YXQoaW50cl9uYW1lKSwgW10pCisgIHNpbGtfc3RhdGljX2xpYnMgKz0gc3RhdGljX2xpYnJhcnko
J3NpbGtfJyArIGludHJfbmFtZSwgaW50cl9zb3VyY2VzLAorICAgICAgY19hcmdzOiBpbnRyX2Fy
Z3MsCisgICAgICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBzaWxrX2luY2x1ZGVzLAorICAgICAgaW5z
dGFsbDogZmFsc2UpCitlbmRmb3JlYWNoCisKK3NpbGtfY19hcmdzID0gW10KK2lmIGhvc3RfbWFj
aGluZS5zeXN0ZW0oKSA9PSAnd2luZG93cycKKyAgc2lsa19jX2FyZ3MgKz0gWyctRERMTF9FWFBP
UlQnXQorZW5kaWYKKworc2lsa19saWIgPSBzdGF0aWNfbGlicmFyeSgnb3B1cy1zaWxrJywKKyAg
c2lsa19zb3VyY2VzLAorICBjX2FyZ3M6IHNpbGtfY19hcmdzLAorICBpbmNsdWRlX2RpcmVjdG9y
aWVzOiBzaWxrX2luY2x1ZGVzLAorICBsaW5rX3dob2xlOiBzaWxrX3N0YXRpY19saWJzLAorICBk
ZXBlbmRlbmNpZXM6IGxpYm0sCisgIGluc3RhbGw6IGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL3Rl
c3RzL21lc29uLmJ1aWxkIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9zaWxrL3Rlc3RzL21lc29uLmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3Yzcw
Zjc1ZjY5MWZlZjY1YWVlYmVlYjhjMmE3MzFlMjVhMTBjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3Np
bGsvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTAsMCArMSw4IEBACitleGUgPSBleGVjdXRhYmxlKCd0
ZXN0X3VuaXRfTFBDX2ludl9wcmVkX2dhaW4nLAorICAndGVzdF91bml0X0xQQ19pbnZfcHJlZF9n
YWluLmMnLCAnLi4vTFBDX2ludl9wcmVkX2dhaW4uYycsCisgIGluY2x1ZGVfZGlyZWN0b3JpZXM6
IG9wdXNfaW5jbHVkZXMsCisgIGxpbmtfd2l0aDogW2NlbHRfbGliLCBjZWx0X3N0YXRpY19saWJz
LCBzaWxrX2xpYiwgc2lsa19zdGF0aWNfbGlic10sCisgIGRlcGVuZGVuY2llczogbGlibSwKKyAg
aW5zdGFsbDogZmFsc2UpCisKK3Rlc3QodGVzdF9uYW1lLCBleGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NpbGsv
dHlwZWRlZi5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9vcHVzL3NyYy9zaWxrL3R5cGVkZWYuaAppbmRleCA5N2I3ZTcwOWJlNWJjZjFmOWYzYTYzYzY5
MDY0NGZlNTYwYzBkOWY4Li43OTNkMmMwYzFkMzgxYjgzOGU3MWU5NDA3ZTI3MGNkYTUyZmFhMGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L29wdXMvc3JjL3NpbGsvdHlwZWRlZi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc2lsay90eXBlZGVmLmgKQEAgLTY3LDYg
KzY3LDkgQEAgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQogc3RhdGljIE9QVVNfSU5MSU5FIHZv
aWQgX3NpbGtfZmF0YWwoY29uc3QgY2hhciAqc3RyLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGlu
ZSkKIHsKICAgIGZwcmludGYgKHN0ZGVyciwgIkZhdGFsIChpbnRlcm5hbCkgZXJyb3IgaW4gJXMs
IGxpbmUgJWQ6ICVzXG4iLCBmaWxlLCBsaW5lLCBzdHIpOworI2lmIGRlZmluZWQoX01TQ19WRVIp
CisgICBfc2V0X2Fib3J0X2JlaGF2aW9yKCAwLCBfV1JJVEVfQUJPUlRfTVNHKTsKKyNlbmRpZgog
ICAgYWJvcnQoKTsKIH0KICMgIGRlZmluZSBzaWxrX2Fzc2VydChDT05EKSB7aWYgKCEoQ09ORCkp
IHtzaWxrX2ZhdGFsKCJhc3NlcnRpb24gZmFpbGVkOiAiICNDT05EKTt9fQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9z
cmMvYW5hbHlzaXMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvb3B1cy9zcmMvc3JjL2FuYWx5c2lzLmMKaW5kZXggY2I0NmRlYzU4MmQyZWNjYWQ4Mzkx
NGI3MDcxYTg0Zjg4NzZhZjk4NS4uMDU4MzI4ZjBmZDUxMzEwNWI1ZTVkNDBmYmZjMDZmNDRiZGI1
OWYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy9zcmMvYW5hbHlzaXMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9hbmFseXNpcy5jCkBAIC0z
MSw3ICszMSw5IEBACiAKICNkZWZpbmUgQU5BTFlTSVNfQwogCisjaWZkZWYgTUxQX1RSQUlOSU5H
CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgogCiAjaW5jbHVkZSAibWF0aG9wcy5oIgogI2lu
Y2x1ZGUgImtpc3NfZmZ0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9tZXNvbi5idWlsZCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL21lc29u
LmJ1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNjMDdmZjA2ZWJhOWM5OTM0YTU5NTE1ZjVhZWEzNjgzMGE0ZWNl
ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9tZXNvbi5idWlsZApAQCAtMCwwICsxLDQ1IEBACitv
cHVzX3NvdXJjZXMgPSBzb3VyY2VzWydPUFVTX1NPVVJDRVMnXQorCitvcHVzX3NvdXJjZXNfZmxv
YXQgPSBzb3VyY2VzWydPUFVTX1NPVVJDRVNfRkxPQVQnXQorCitpZiBub3QgZGlzYWJsZV9mbG9h
dF9hcGkKKyAgb3B1c19zb3VyY2VzICs9IG9wdXNfc291cmNlc19mbG9hdAorZW5kaWYKKworb3B1
c19saWJfY19hcmdzID0gW10KK2lmIGhvc3RfbWFjaGluZS5zeXN0ZW0oKSA9PSAnd2luZG93cycK
KyAgb3B1c19saWJfY19hcmdzICs9IFsnLURETExfRVhQT1JUJ10KK2VuZGlmCisKK29wdXNfbGli
ID0gbGlicmFyeSgnb3B1cycsCisgIG9wdXNfc291cmNlcywKKyAgdmVyc2lvbjogbGlidmVyc2lv
biwKKyAgZGFyd2luX3ZlcnNpb25zOiBtYWNvc3ZlcnNpb24sCisgIGNfYXJnczogb3B1c19saWJf
Y19hcmdzLAorICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBvcHVzX2luY2x1ZGVzLAorICBsaW5rX3dp
dGg6IFtjZWx0X2xpYiwgc2lsa19saWJdLAorICBkZXBlbmRlbmNpZXM6IGxpYm0sCisgIGluc3Rh
bGw6IHRydWUpCisKK29wdXNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KGxpbmtfd2l0aDogb3B1
c19saWIsCisgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IG9wdXNfcHVibGljX2luY2x1ZGVzKQorCisj
IEV4dHJhIHVuaW5zdGFsbGVkIE9wdXMgcHJvZ3JhbXMKK2lmIG5vdCBleHRyYV9wcm9ncmFtcy5k
aXNhYmxlZCgpCisgIGZvcmVhY2ggcHJvZyA6IFsnb3B1c19jb21wYXJlJywgJ29wdXNfZGVtbycs
ICdyZXBhY2tldGl6ZXJfZGVtbyddCisgICAgZXhlY3V0YWJsZShwcm9nLCAnQDBALmMnLmZvcm1h
dChwcm9nKSwKKyAgICAgICAgICAgICAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IG9wdXNfaW5jbHVk
ZXMsCisgICAgICAgICAgICAgICBsaW5rX3dpdGg6IG9wdXNfbGliLAorICAgICAgICAgICAgICAg
ZGVwZW5kZW5jaWVzOiBsaWJtLAorICAgICAgICAgICAgICAgaW5zdGFsbDogZmFsc2UpCisgIGVu
ZGZvcmVhY2gKKworICBpZiBvcHRfY3VzdG9tX21vZGVzCisgICAgZXhlY3V0YWJsZSgnb3B1c19j
dXN0b21fZGVtbycsICcuLi9jZWx0L29wdXNfY3VzdG9tX2RlbW8uYycsCisgICAgICAgICAgICAg
ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBvcHVzX2luY2x1ZGVzLAorICAgICAgICAgICAgICAgbGlu
a193aXRoOiBvcHVzX2xpYiwKKyAgICAgICAgICAgICAgIGRlcGVuZGVuY2llczogbGlibSwKKyAg
ICAgICAgICAgICAgIGluc3RhbGw6IGZhbHNlKQorICBlbmRpZgorCitlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3Ny
Yy9zcmMvb3B1c19lbmNvZGVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2VuY29kZXIuYwppbmRleCA4NDRiMDhkZDll
NDlkODEwM2MzN2JmMmNiODJhMzcwZTQ0M2I2MzhiLi4zMjFiYjJiYjFlYjNlMzBiZjE2MDNiMDNj
N2ZmNzZhMDUxMzJlODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9vcHVzX2VuY29kZXIuYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3NyYy9v
cHVzX2VuY29kZXIuYwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0cnVjdCBPcHVzRW5jb2RlciB7CiAg
ICAgb3B1c192YWwxNiAgIGRlbGF5X2J1ZmZlcltNQVhfRU5DT0RFUl9CVUZGRVIqMl07CiAjaWZu
ZGVmIERJU0FCTEVfRkxPQVRfQVBJCiAgICAgaW50ICAgICAgICAgIGRldGVjdGVkX2JhbmR3aWR0
aDsKLSAgICBpbnQgICAgICAgICAgbmJfbm9fYWN0aXZpdHlfZnJhbWVzOworICAgIGludCAgICAg
ICAgICBuYl9ub19hY3Rpdml0eV9tc19RMTsKICAgICBvcHVzX3ZhbDMyICAgcGVha19zaWduYWxf
ZW5lcmd5OwogI2VuZGlmCiAgICAgaW50ICAgICAgICAgIG5vbmZpbmFsX2ZyYW1lOyAvKiBjdXJy
ZW50IGZyYW1lIGlzIG5vdCB0aGUgZmluYWwgaW4gYSBwYWNrZXQgKi8KQEAgLTg5Miw0NCArODky
LDI5IEBAIHN0YXRpYyBvcHVzX3ZhbDMyIGNvbXB1dGVfZnJhbWVfZW5lcmd5KGNvbnN0IG9wdXNf
dmFsMTYgKnBjbSwgaW50IGZyYW1lX3NpemUsIGluCiAjZW5kaWYKIAogLyogRGVjaWRlcyBpZiBE
VFggc2hvdWxkIGJlIHR1cm5lZCBvbiAoPTEpIG9yIG9mZiAoPTApICovCi1zdGF0aWMgaW50IGRl
Y2lkZV9kdHhfbW9kZShmbG9hdCBhY3Rpdml0eV9wcm9iYWJpbGl0eSwgICAgLyogcHJvYmFiaWxp
dHkgdGhhdCBjdXJyZW50IGZyYW1lIGNvbnRhaW5zIHNwZWVjaC9tdXNpYyAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50ICpuYl9ub19hY3Rpdml0eV9mcmFtZXMsICAgIC8qIG51bWJl
ciBvZiBjb25zZWN1dGl2ZSBmcmFtZXMgd2l0aCBubyBhY3Rpdml0eSAqLwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B1c192YWwzMiBwZWFrX3NpZ25hbF9lbmVyZ3ksIC8qIHBlYWsgZW5l
cmd5IG9mIGRlc2lyZWQgc2lnbmFsIGRldGVjdGVkIHNvIGZhciAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3Qgb3B1c192YWwxNiAqcGNtLCAgICAgICAgIC8qIGlucHV0IHBjbSBz
aWduYWwgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmcmFtZV9zaXplLCAgICAg
ICAgICAgICAgICAvKiBmcmFtZSBzaXplICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgY2hhbm5lbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXNfc2lsZW5jZSwg
ICAgICAgICAgICAgICAgIC8qIG9ubHkgZGlnaXRhbCBzaWxlbmNlIGRldGVjdGVkIGluIHRoaXMg
ZnJhbWUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhcmNoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICkKLXsKLSAgIG9wdXNfdmFsMzIgbm9pc2VfZW5lcmd5OwotCi0gICBp
ZiAoIWlzX3NpbGVuY2UpCi0gICB7Ci0gICAgICBpZiAoYWN0aXZpdHlfcHJvYmFiaWxpdHkgPCBE
VFhfQUNUSVZJVFlfVEhSRVNIT0xEKSAgLyogaXMgbm9pc2UgKi8KLSAgICAgIHsKLSAgICAgICAg
IG5vaXNlX2VuZXJneSA9IGNvbXB1dGVfZnJhbWVfZW5lcmd5KHBjbSwgZnJhbWVfc2l6ZSwgY2hh
bm5lbHMsIGFyY2gpOwotCi0gICAgICAgICAvKiBidXQgaXMgc3VmZmljaWVudGx5IHF1aWV0ICov
Ci0gICAgICAgICBpc19zaWxlbmNlID0gcGVha19zaWduYWxfZW5lcmd5ID49IChQU0VVRE9fU05S
X1RIUkVTSE9MRCAqIG5vaXNlX2VuZXJneSk7Ci0gICAgICB9Ci0gICB9CitzdGF0aWMgaW50IGRl
Y2lkZV9kdHhfbW9kZShvcHVzX2ludCBhY3Rpdml0eSwgICAgICAgICAgICAvKiBpbmRpY2F0ZXMg
aWYgdGhpcyBmcmFtZSBjb250YWlucyBzcGVlY2gvbXVzaWMgKi8KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCAqbmJfbm9fYWN0aXZpdHlfbXNfUTEsICAgIC8qIG51bWJlciBvZiBjb25z
ZWN1dGl2ZSBtaWxsaXNlY29uZHMgd2l0aCBubyBhY3Rpdml0eSwgaW4gUTEgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBmcmFtZV9zaXplX21zX1ExICAgICAgICAgIC8qIG51bWJl
ciBvZiBtaWxpc2Vjb25kcyBpbiB0aGlzIHVwZGF0ZSwgaW4gUTEgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICkKIAotICAgaWYgKGlzX3NpbGVuY2UpCit7CisgICBpZiAoIWFjdGl2aXR5
KQogICAgewotICAgICAgLyogVGhlIG51bWJlciBvZiBjb25zZWN1dGl2ZSBEVFggZnJhbWVzIHNo
b3VsZCBiZSB3aXRoaW4gdGhlIGFsbG93ZWQgYm91bmRzICovCi0gICAgICAoKm5iX25vX2FjdGl2
aXR5X2ZyYW1lcykrKzsKLQotICAgICAgaWYgKCpuYl9ub19hY3Rpdml0eV9mcmFtZXMgPiBOQl9T
UEVFQ0hfRlJBTUVTX0JFRk9SRV9EVFgpCisgICAgICAvKiBUaGUgbnVtYmVyIG9mIGNvbnNlY3V0
aXZlIERUWCBmcmFtZXMgc2hvdWxkIGJlIHdpdGhpbiB0aGUgYWxsb3dlZCBib3VuZHMuIAorICAg
ICAgTm90ZSB0aGF0IHRoZSBhbGxvd2VkIGJvdW5kIGlzIGRlZmluZWQgaW4gdGhlIFNpbGsgaGVh
ZGVycyBhbmQgYXNzdW1lcyAyMCBtcworICAgICAgZnJhbWVzLiBBcyB0aGlzIGZ1bmN0aW9uIGNh
biBiZSBjYWxsZWQgd2l0aCBhbnkgZnJhbWUgbGVuZ3RoLCBhIGNvbnZlcnNpb24gdG8KKyAgICAg
IG1pbGlzZWNvbmRzIGlzIGRvbmUgYmVmb3JlIHRoZSBjb21wYXJpc29ucy4gKi8KKyAgICAgICgq
bmJfbm9fYWN0aXZpdHlfbXNfUTEpICs9IGZyYW1lX3NpemVfbXNfUTE7CisgICAgICBpZiAoKm5i
X25vX2FjdGl2aXR5X21zX1ExID4gTkJfU1BFRUNIX0ZSQU1FU19CRUZPUkVfRFRYKjIwKjIpCiAg
ICAgICB7Ci0gICAgICAgICBpZiAoKm5iX25vX2FjdGl2aXR5X2ZyYW1lcyA8PSAoTkJfU1BFRUNI
X0ZSQU1FU19CRUZPUkVfRFRYICsgTUFYX0NPTlNFQ1VUSVZFX0RUWCkpCisgICAgICAgICBpZiAo
Km5iX25vX2FjdGl2aXR5X21zX1ExIDw9IChOQl9TUEVFQ0hfRlJBTUVTX0JFRk9SRV9EVFggKyBN
QVhfQ09OU0VDVVRJVkVfRFRYKSoyMCoyKQogICAgICAgICAgICAgLyogVmFsaWQgZnJhbWUgZm9y
IERUWCEgKi8KICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgKCpuYl9ub19hY3Rpdml0eV9mcmFtZXMpID0gTkJfU1BFRUNIX0ZSQU1FU19CRUZPUkVfRFRY
OworICAgICAgICAgICAgKCpuYl9ub19hY3Rpdml0eV9tc19RMSkgPSBOQl9TUEVFQ0hfRlJBTUVT
X0JFRk9SRV9EVFgqMjAqMjsKICAgICAgIH0KICAgIH0gZWxzZQotICAgICAgKCpuYl9ub19hY3Rp
dml0eV9mcmFtZXMpID0gMDsKKyAgICAgICgqbmJfbm9fYWN0aXZpdHlfbXNfUTEpID0gMDsKIAog
ICAgcmV0dXJuIDA7CiB9CkBAIC0xMTAyLDYgKzEwODcsOCBAQCBvcHVzX2ludDMyIG9wdXNfZW5j
b2RlX25hdGl2ZShPcHVzRW5jb2RlciAqc3QsIGNvbnN0IG9wdXNfdmFsMTYgKnBjbSwgaW50IGZy
YW1lXwogICAgIGludCBhbmFseXNpc19yZWFkX3N1YmZyYW1lX2Jhaz0tMTsKICAgICBpbnQgaXNf
c2lsZW5jZSA9IDA7CiAjZW5kaWYKKyAgICBvcHVzX2ludCBhY3Rpdml0eSA9IFZBRF9OT19ERUNJ
U0lPTjsKKwogICAgIFZBUkRFQ0wob3B1c192YWwxNiwgdG1wX3ByZWZpbGwpOwogCiAgICAgQUxM
T0NfU1RBQ0s7CkBAIC0xMTY5LDYgKzExNTYsMjAgQEAgb3B1c19pbnQzMiBvcHVzX2VuY29kZV9u
YXRpdmUoT3B1c0VuY29kZXIgKnN0LCBjb25zdCBvcHVzX3ZhbDE2ICpwY20sIGludCBmcmFtZV8K
ICAgICBpZiAoIWlzX3NpbGVuY2UpCiAgICAgICBzdC0+dm9pY2VfcmF0aW8gPSAtMTsKIAorICAg
IGlmIChpc19zaWxlbmNlKQorICAgIHsKKyAgICAgICBhY3Rpdml0eSA9ICFpc19zaWxlbmNlOwor
ICAgIH0gZWxzZSBpZiAoYW5hbHlzaXNfaW5mby52YWxpZCkKKyAgICB7CisgICAgICAgYWN0aXZp
dHkgPSBhbmFseXNpc19pbmZvLmFjdGl2aXR5X3Byb2JhYmlsaXR5ID49IERUWF9BQ1RJVklUWV9U
SFJFU0hPTEQ7CisgICAgICAgaWYgKCFhY3Rpdml0eSkKKyAgICAgICB7CisgICAgICAgICAgIC8q
IE1hcmsgYXMgYWN0aXZlIGlmIHRoaXMgbm9pc2UgZnJhbWUgaXMgc3VmZmljaWVudGx5IGxvdWQg
Ki8KKyAgICAgICAgICAgb3B1c192YWwzMiBub2lzZV9lbmVyZ3kgPSBjb21wdXRlX2ZyYW1lX2Vu
ZXJneShwY20sIGZyYW1lX3NpemUsIHN0LT5jaGFubmVscywgc3QtPmFyY2gpOworICAgICAgICAg
ICBhY3Rpdml0eSA9IHN0LT5wZWFrX3NpZ25hbF9lbmVyZ3kgPCAoUFNFVURPX1NOUl9USFJFU0hP
TEQgKiBub2lzZV9lbmVyZ3kpOworICAgICAgIH0KKyAgICB9CisKICAgICBzdC0+ZGV0ZWN0ZWRf
YmFuZHdpZHRoID0gMDsKICAgICBpZiAoYW5hbHlzaXNfaW5mby52YWxpZCkKICAgICB7CkBAIC0x
NjY4LDcgKzE2NjksNiBAQCBvcHVzX2ludDMyIG9wdXNfZW5jb2RlX25hdGl2ZShPcHVzRW5jb2Rl
ciAqc3QsIGNvbnN0IG9wdXNfdmFsMTYgKnBjbSwgaW50IGZyYW1lXwogICAgIGlmIChzdC0+bW9k
ZSAhPSBNT0RFX0NFTFRfT05MWSkKICAgICB7CiAgICAgICAgIG9wdXNfaW50MzIgdG90YWxfYml0
UmF0ZSwgY2VsdF9yYXRlOwotICAgICAgICBvcHVzX2ludCBhY3Rpdml0eTsKICNpZmRlZiBGSVhF
RF9QT0lOVAogICAgICAgIGNvbnN0IG9wdXNfaW50MTYgKnBjbV9zaWxrOwogI2Vsc2UKQEAgLTE2
NzYsMTQgKzE2NzYsNiBAQCBvcHVzX2ludDMyIG9wdXNfZW5jb2RlX25hdGl2ZShPcHVzRW5jb2Rl
ciAqc3QsIGNvbnN0IG9wdXNfdmFsMTYgKnBjbSwgaW50IGZyYW1lXwogICAgICAgIEFMTE9DKHBj
bV9zaWxrLCBzdC0+Y2hhbm5lbHMqZnJhbWVfc2l6ZSwgb3B1c19pbnQxNik7CiAjZW5kaWYKIAot
ICAgICAgICBhY3Rpdml0eSA9IFZBRF9OT19ERUNJU0lPTjsKLSNpZm5kZWYgRElTQUJMRV9GTE9B
VF9BUEkKLSAgICAgICAgaWYoIGFuYWx5c2lzX2luZm8udmFsaWQgKSB7Ci0gICAgICAgICAgICAv
KiBJbmZvcm0gU0lMSyBhYm91dCB0aGUgT3B1cyBWQUQgZGVjaXNpb24gKi8KLSAgICAgICAgICAg
IGFjdGl2aXR5ID0gKCBhbmFseXNpc19pbmZvLmFjdGl2aXR5X3Byb2JhYmlsaXR5ID49IERUWF9B
Q1RJVklUWV9USFJFU0hPTEQgKTsKLSAgICAgICAgfQotI2VuZGlmCi0KICAgICAgICAgLyogRGlz
dHJpYnV0ZSBiaXRzIGJldHdlZW4gU0lMSyBhbmQgQ0VMVCAqLwogICAgICAgICB0b3RhbF9iaXRS
YXRlID0gOCAqIGJ5dGVzX3RhcmdldCAqIGZyYW1lX3JhdGU7CiAgICAgICAgIGlmKCBzdC0+bW9k
ZSA9PSBNT0RFX0hZQlJJRCApIHsKQEAgLTIxNDQsOCArMjEzNiw3IEBAIG9wdXNfaW50MzIgb3B1
c19lbmNvZGVfbmF0aXZlKE9wdXNFbmNvZGVyICpzdCwgY29uc3Qgb3B1c192YWwxNiAqcGNtLCBp
bnQgZnJhbWVfCiAjaWZuZGVmIERJU0FCTEVfRkxPQVRfQVBJCiAgICAgaWYgKHN0LT51c2VfZHR4
ICYmIChhbmFseXNpc19pbmZvLnZhbGlkIHx8IGlzX3NpbGVuY2UpKQogICAgIHsKLSAgICAgICBp
ZiAoZGVjaWRlX2R0eF9tb2RlKGFuYWx5c2lzX2luZm8uYWN0aXZpdHlfcHJvYmFiaWxpdHksICZz
dC0+bmJfbm9fYWN0aXZpdHlfZnJhbWVzLAotICAgICAgICAgICAgIHN0LT5wZWFrX3NpZ25hbF9l
bmVyZ3ksIHBjbSwgZnJhbWVfc2l6ZSwgc3QtPmNoYW5uZWxzLCBpc19zaWxlbmNlLCBzdC0+YXJj
aCkpCisgICAgICAgaWYgKGRlY2lkZV9kdHhfbW9kZShhY3Rpdml0eSwgJnN0LT5uYl9ub19hY3Rp
dml0eV9tc19RMSwgMioxMDAwKmZyYW1lX3NpemUvc3QtPkZzKSkKICAgICAgICB7CiAgICAgICAg
ICAgc3QtPnJhbmdlRmluYWwgPSAwOwogICAgICAgICAgIGRhdGFbMF0gPSBnZW5fdG9jKHN0LT5t
b2RlLCBzdC0+RnMvZnJhbWVfc2l6ZSwgY3Vycl9iYW5kd2lkdGgsIHN0LT5zdHJlYW1fY2hhbm5l
bHMpOwpAQCAtMjE1Myw3ICsyMTQ0LDcgQEAgb3B1c19pbnQzMiBvcHVzX2VuY29kZV9uYXRpdmUo
T3B1c0VuY29kZXIgKnN0LCBjb25zdCBvcHVzX3ZhbDE2ICpwY20sIGludCBmcmFtZV8KICAgICAg
ICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICBzdC0+bmJfbm9f
YWN0aXZpdHlfZnJhbWVzID0gMDsKKyAgICAgICBzdC0+bmJfbm9fYWN0aXZpdHlfbXNfUTEgPSAw
OwogICAgIH0KICNlbmRpZgogCkBAIC0yNzM2LDcgKzI3MjcsNyBAQCBpbnQgb3B1c19lbmNvZGVy
X2N0bChPcHVzRW5jb2RlciAqc3QsIGludCByZXF1ZXN0LCAuLi4pCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBpZiAoc3QtPnNpbGtfbW9kZS51c2VEVFggJiYgKHN0LT5wcmV2X21vZGUgPT0g
TU9ERV9TSUxLX09OTFkgfHwgc3QtPnByZXZfbW9kZSA9PSBNT0RFX0hZQlJJRCkpIHsKICAgICAg
ICAgICAgICAgICAvKiBEVFggZGV0ZXJtaW5lZCBieSBTaWxrLiAqLwotICAgICAgICAgICAgICAg
IHNpbGtfZW5jb2RlciAqc2lsa19lbmMgPSAoc2lsa19lbmNvZGVyKikoKGNoYXIqKXN0K3N0LT5z
aWxrX2VuY19vZmZzZXQpOworICAgICAgICAgICAgICAgIHNpbGtfZW5jb2RlciAqc2lsa19lbmMg
PSAoc2lsa19lbmNvZGVyKikodm9pZCAqKSgoY2hhciopc3Qrc3QtPnNpbGtfZW5jX29mZnNldCk7
CiAgICAgICAgICAgICAgICAgKnZhbHVlID0gc2lsa19lbmMtPnN0YXRlX0Z4eFswXS5zQ21uLm5v
U3BlZWNoQ291bnRlciA+PSBOQl9TUEVFQ0hfRlJBTUVTX0JFRk9SRV9EVFg7CiAgICAgICAgICAg
ICAgICAgLyogU3RlcmVvOiBjaGVjayBzZWNvbmQgY2hhbm5lbCB1bmxlc3Mgb25seSB0aGUgbWlk
ZGxlIGNoYW5uZWwgd2FzIGVuY29kZWQuICovCiAgICAgICAgICAgICAgICAgaWYoKnZhbHVlID09
IDEgJiYgc3QtPnNpbGtfbW9kZS5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAyICYmIHNpbGtfZW5jLT5w
cmV2X2RlY29kZV9vbmx5X21pZGRsZSA9PSAwKSB7CkBAIC0yNzQ2LDcgKzI3MzcsNyBAQCBpbnQg
b3B1c19lbmNvZGVyX2N0bChPcHVzRW5jb2RlciAqc3QsIGludCByZXF1ZXN0LCAuLi4pCiAjaWZu
ZGVmIERJU0FCTEVfRkxPQVRfQVBJCiAgICAgICAgICAgICBlbHNlIGlmIChzdC0+dXNlX2R0eCkg
ewogICAgICAgICAgICAgICAgIC8qIERUWCBkZXRlcm1pbmVkIGJ5IE9wdXMuICovCi0gICAgICAg
ICAgICAgICAgKnZhbHVlID0gc3QtPm5iX25vX2FjdGl2aXR5X2ZyYW1lcyA+PSBOQl9TUEVFQ0hf
RlJBTUVTX0JFRk9SRV9EVFg7CisgICAgICAgICAgICAgICAgKnZhbHVlID0gc3QtPm5iX25vX2Fj
dGl2aXR5X21zX1ExID49IE5CX1NQRUVDSF9GUkFNRVNfQkVGT1JFX0RUWCoyMCoyOwogICAgICAg
ICAgICAgfQogI2VuZGlmCiAgICAgICAgICAgICBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL3JlcGFj
a2V0aXplcl9kZW1vLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L29wdXMvc3JjL3NyYy9yZXBhY2tldGl6ZXJfZGVtby5jCmluZGV4IGRjMDVjMWIzNTky
N2RiYmI2ODYxOTU5NWY5YzEzYjhhOGJmYjdjYzMuLjQzZGU3MDE5MmVkNDZjNzM3NGQ0ODE0ZTY0
YjMyYzA3MGE5NTZlMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvc3JjL3JlcGFja2V0aXplcl9kZW1vLmMKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy9z
cmMvcmVwYWNrZXRpemVyX2RlbW8uYwpAQCAtMTE5LDcgKzExOSwxOSBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqYXJndltdKQogICAgICAgZm9yIChpPTA7aTxuYl9wYWNrZXRzO2krKykKICAg
ICAgIHsKICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY2hbNF07Ci0gICAgICAgICBlcnIgPSBmcmVh
ZChjaCwgMSwgNCwgZmluKTsKKyAgICAgICAgIGlmIChmcmVhZChjaCwgMSwgNCwgZmluKSE9NCkK
KyAgICAgICAgIHsKKyAgICAgICAgICAgICBpZiAoZmVvZihmaW4pKQorICAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBlb2YgPSAxOworICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFcnJvciByZWFkaW5nIHBheWxvYWQgbGVuZ3RoLlxu
Iik7CisgICAgICAgICAgICAgICAgZmNsb3NlKGZpbik7CisgICAgICAgICAgICAgICAgZmNsb3Nl
KGZvdXQpOworICAgICAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQogICAgICAgICAgbGVuW2ldID0g
Y2hhcl90b19pbnQoY2gpOwogICAgICAgICAgLypmcHJpbnRmKHN0ZGVyciwgImluIGxlbiA9ICVk
XG4iLCBsZW5baV0pOyovCiAgICAgICAgICBpZiAobGVuW2ldPjE1MDAgfHwgbGVuW2ldPDApCkBA
IC0xMzUsMTMgKzE0NywzMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KLSAgICAgICAgIGVy
ciA9IGZyZWFkKGNoLCAxLCA0LCBmaW4pOwotICAgICAgICAgcm5nW2ldID0gY2hhcl90b19pbnQo
Y2gpOwotICAgICAgICAgZXJyID0gZnJlYWQocGFja2V0c1tpXSwgMSwgbGVuW2ldLCBmaW4pOwot
ICAgICAgICAgaWYgKGZlb2YoZmluKSkKKyAgICAgICAgIGlmIChmcmVhZChjaCwgMSwgNCwgZmlu
KSE9NCkKICAgICAgICAgIHsKLSAgICAgICAgICAgIGVvZiA9IDE7Ci0gICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICBpZiAoZmVvZihmaW4pKQorICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICBlb2YgPSAxOworICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJFcnJvciByZWFkaW5nLlxuIik7CisgICAgICAgICAgICAgICAgZmNs
b3NlKGZpbik7CisgICAgICAgICAgICAgICAgZmNsb3NlKGZvdXQpOworICAgICAgICAgICAgICAg
IHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgfQorICAgICAgICAgcm5nW2ldID0gY2hhcl90b19pbnQoY2gpOworICAgICAg
ICAgaWYgKGZyZWFkKHBhY2tldHNbaV0sIGxlbltpXSwgMSwgZmluKSE9MSkgeworICAgICAgICAg
ICAgIGlmIChmZW9mKGZpbikpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGVvZiA9
IDE7CisgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIkVycm9yIHJlYWRpbmcgcGFja2V0IG9mICV1IGJ5dGVzLlxuIiwgbGVuW2ldKTsKKyAgICAg
ICAgICAgICAgICBmY2xvc2UoZmluKTsKKyAgICAgICAgICAgICAgICBmY2xvc2UoZm91dCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBlcnIgPSBvcHVzX3JlcGFja2V0
aXplcl9jYXQocnAsIHBhY2tldHNbaV0sIGxlbltpXSk7CiAgICAgICAgICBpZiAoZXJyIT1PUFVT
X09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9vcHVzL3NyYy90ZXN0cy9tZXNvbi5idWlsZCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvdGVzdHMvbWVzb24uYnVpbGQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWYzYWM5ZGYzZjZiYWIxYTI4ODhkYzBkNDEzOWJjMTg3ZmUzNmVkNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvb3B1cy9zcmMvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTAsMCArMSwzNCBAQAorIyBUZXN0cyB0
aGF0IGxpbmsgdG8gbGlib3B1cworb3B1c190ZXN0cyA9IFsKKyAgWyd0ZXN0X29wdXNfYXBpJ10s
CisgIFsndGVzdF9vcHVzX2RlY29kZScsIFtdLCA2MF0sCisgIFsndGVzdF9vcHVzX2VuY29kZScs
ICdvcHVzX2VuY29kZV9yZWdyZXNzaW9ucy5jJywgMTIwXSwKKyAgWyd0ZXN0X29wdXNfcGFkZGlu
ZyddLAorICBbJ3Rlc3Rfb3B1c19wcm9qZWN0aW9uJ10sCitdCisKK2ZvcmVhY2ggdCA6IG9wdXNf
dGVzdHMKKyAgdGVzdF9uYW1lID0gdC5nZXQoMCkKKyAgZXh0cmFfc3JjcyA9IHQuZ2V0KDEsIFtd
KQorCisgIHRlc3Rfa3dhcmdzID0ge30KKyAgaWYgdC5sZW5ndGgoKSA+IDIKKyAgICB0ZXN0X2t3
YXJncyArPSB7J3RpbWVvdXQnOiB0WzJdfQorICBlbmRpZgorCisgIGV4ZV9rd2FyZ3MgPSB7fQor
ICAjIFRoaXMgdGVzdCB1c2VzIHByaXZhdGUgc3ltYm9scworICBpZiB0ZXN0X25hbWUgPT0gJ3Rl
c3Rfb3B1c19wcm9qZWN0aW9uJworICAgIGV4ZV9rd2FyZ3MgPSB7CisgICAgICAnbGlua193aXRo
JzogW2NlbHRfbGliLCBzaWxrX2xpYl0sCisgICAgICAnb2JqZWN0cyc6IG9wdXNfbGliLmV4dHJh
Y3RfYWxsX29iamVjdHMoKSwKKyAgICB9CisgIGVuZGlmCisKKyAgZXhlID0gZXhlY3V0YWJsZSh0
ZXN0X25hbWUsICdAMEAuYycuZm9ybWF0KHRlc3RfbmFtZSksIGV4dHJhX3NyY3MsCisgICAgaW5j
bHVkZV9kaXJlY3Rvcmllczogb3B1c19pbmNsdWRlcywKKyAgICBkZXBlbmRlbmNpZXM6IFtsaWJt
LCBvcHVzX2RlcF0sCisgICAgaW5zdGFsbDogZmFsc2UsCisgICAga3dhcmdzOiBleGVfa3dhcmdz
KQorICB0ZXN0KHRlc3RfbmFtZSwgZXhlLCBrd2FyZ3M6IHRlc3Rfa3dhcmdzKQorZW5kZm9yZWFj
aApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9vcHVzL3NyYy90ZXN0cy9vcHVzX2RlY29kZV9mdXp6ZXIuYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvdGVzdHMvb3B1c19kZWNv
ZGVfZnV6emVyLmMKaW5kZXggOTAwMjYyMjFjZWFmMjk5YjNmMDQxNDVmZDQ5NzE2ZmI1YjE0NmQy
Mi4uZWE2ZWM0ZmQxZjZiZjY4YWVjOTdiNWU0YmYyYTIxMmU5YjZmYTg3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy90
ZXN0cy9vcHVzX2RlY29kZV9mdXp6ZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3Rlc3RzL29wdXNfZGVjb2RlX2Z1enplci5j
CkBAIC00MCw2ICs0MCw4IEBACiAvKiA0IGJ5dGVzOiBwYWNrZXQgbGVuZ3RoLCA0IGJ5dGVzOiBl
bmNvZGVyIGZpbmFsIHJhbmdlICovCiAjZGVmaW5lIFNFVFVQX0JZVEVfQ09VTlQgOAogCisjZGVm
aW5lIE1BWF9ERUNPREVTIDEyCisKIHR5cGVkZWYgc3RydWN0IHsKICAgICBpbnQgZnM7CiAgICAg
aW50IGNoYW5uZWxzOwpAQCAtNjIsOSArNjQsMTEgQEAgc3RhdGljIHZvaWQgUGFyc2VUb2MoY29u
c3QgdWludDhfdCAqdG9jLCBUb2NJbmZvICpjb25zdCBpbmZvKSB7CiBpbnQgTExWTUZ1enplclRl
c3RPbmVJbnB1dChjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3Qgc2l6ZSkgewogICAgIE9wdXNE
ZWNvZGVyICpkZWM7CiAgICAgb3B1c19pbnQxNiAqcGNtOwotICAgIHVpbnQ4X3QgKnBhY2tldDsK
KyAgICB1aW50OF90ICp0ZW1wX2RhdGE7CiAgICAgVG9jSW5mbyB0b2M7Ci0gICAgaW50IGksIGVy
cjsKKyAgICBpbnQgaSA9IDA7CisgICAgaW50IGVyciA9IE9QVVNfT0s7CisgICAgaW50IG51bV9k
ZWNvZGVzID0gMDsKIAogICAgIC8qIE5vdCBlbm91Z2ggZGF0YSB0byBzZXR1cCB0aGUgZGVjb2Rl
ciAoKzEgZm9yIHRoZSBUb0MpICovCiAgICAgaWYgKHNpemUgPCBTRVRVUF9CWVRFX0NPVU5UICsg
MSkgewpAQCAtNzUsMjYgKzc5LDIwIEBAIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0
IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBzaXplKSB7CiAgICAgUGFyc2VUb2MoJmRhdGFbU0VUVVBf
QllURV9DT1VOVF0sICZ0b2MpOwogCiAgICAgZGVjID0gb3B1c19kZWNvZGVyX2NyZWF0ZSh0b2Mu
ZnMsIHRvYy5jaGFubmVscywgJmVycik7Ci0gICAgaWYgKGVyciAhPSBPUFVTX09LIHwgZGVjID09
IE5VTEwpIHsKKyAgICBpZiAoZXJyICE9IE9QVVNfT0sgfHwgZGVjID09IE5VTEwpIHsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgcGNtID0gKG9wdXNfaW50MTYqKSBtYWxsb2Moc2l6
ZW9mKCpwY20pICogTUFYX0ZSQU1FX1NBTVAgKiB0b2MuY2hhbm5lbHMpOwotICAgIHBhY2tldCA9
ICh1aW50OF90KikgY2FsbG9jKE1BWF9QQUNLRVQsIHNpemVvZigqcGFja2V0KSk7CiAKLSAgICBp
ID0gMDsKLSAgICB3aGlsZSAoMSkgeworICAgIHdoaWxlIChpICsgU0VUVVBfQllURV9DT1VOVCA8
IHNpemUgJiYgbnVtX2RlY29kZXMrKyA8IE1BWF9ERUNPREVTKSB7CiAgICAgICAgIGludCBsZW4s
IGZlYzsKIAotICAgICAgICBpZiAoaSArIFNFVFVQX0JZVEVfQ09VTlQgPj0gc2l6ZSkgewotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQogICAgICAgICBsZW4gPSAob3B1c191aW50MzIp
IGRhdGFbaSAgICBdIDw8IDI0IHwKICAgICAgICAgICAgICAgKG9wdXNfdWludDMyKSBkYXRhW2kg
KyAxXSA8PCAxNiB8CiAgICAgICAgICAgICAgIChvcHVzX3VpbnQzMikgZGF0YVtpICsgMl0gPDwg
IDggfAogICAgICAgICAgICAgICAob3B1c191aW50MzIpIGRhdGFbaSArIDNdOwotICAgICAgICBp
ZiAobGVuID4gTUFYX1BBQ0tFVCB8fCBsZW4gPCAwKSB7CisgICAgICAgIGlmIChsZW4gPiBNQVhf
UEFDS0VUIHx8IGxlbiA8IDAgfHwgaSArIFNFVFVQX0JZVEVfQ09VTlQgKyBsZW4gPiBzaXplKSB7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0xMDIsMTcgKzEwMCwxOCBAQCBp
bnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3Qgc2l6
ZSkgewogICAgICAgICAgKiBJbnN0ZWFkLCBieXRlIDQgaXMgcmVwdXJwb3NlZCB0byBkZXRlcm1p
bmUgaWYgRkVDIGlzIHVzZWQuICovCiAgICAgICAgIGZlYyA9IGRhdGFbaSArIDRdICYgMTsKIAot
ICAgICAgICAvKiBMb3N0IHBhY2tldCAqLwogICAgICAgICBpZiAobGVuID09IDApIHsKKyAgICAg
ICAgICAgIC8qIExvc3QgcGFja2V0ICovCiAgICAgICAgICAgICBpbnQgZnJhbWVfc2l6ZTsKICAg
ICAgICAgICAgIG9wdXNfZGVjb2Rlcl9jdGwoZGVjLCBPUFVTX0dFVF9MQVNUX1BBQ0tFVF9EVVJB
VElPTigmZnJhbWVfc2l6ZSkpOwotICAgICAgICAgICAgKHZvaWQpIG9wdXNfZGVjb2RlKGRlYywg
TlVMTCwgc2l6ZSwgcGNtLCBmcmFtZV9zaXplLCBmZWMpOworICAgICAgICAgICAgKHZvaWQpIG9w
dXNfZGVjb2RlKGRlYywgTlVMTCwgbGVuLCBwY20sIGZyYW1lX3NpemUsIGZlYyk7CiAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoaSArIFNFVFVQX0JZVEVfQ09VTlQgKyBsZW4gPiBz
aXplKSB7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBtZW1jcHkocGNtLCAmZGF0YVtpICsgU0VUVVBfQllURV9DT1VOVF0sIGxlbik7Ci0gICAgICAg
ICAgICAodm9pZCkgb3B1c19kZWNvZGUoZGVjLCBkYXRhLCBzaXplLCBwY20sIE1BWF9GUkFNRV9T
QU1QLCBmZWMpOworICAgICAgICAgICAgdGVtcF9kYXRhID0gKHVpbnQ4X3QqKSBtYWxsb2MobGVu
KTsKKyAgICAgICAgICAgIG1lbWNweSh0ZW1wX2RhdGEsICZkYXRhW2kgKyBTRVRVUF9CWVRFX0NP
VU5UXSwgbGVuKTsKKworICAgICAgICAgICAgKHZvaWQpIG9wdXNfZGVjb2RlKGRlYywgdGVtcF9k
YXRhLCBsZW4sIHBjbSwgTUFYX0ZSQU1FX1NBTVAsIGZlYyk7CisKKyAgICAgICAgICAgIGZyZWUo
dGVtcF9kYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIGkgKz0gU0VUVVBfQllURV9DT1VOVCAr
IGxlbjsKQEAgLTEyMCw3ICsxMTksNiBAQCBpbnQgTExWTUZ1enplclRlc3RPbmVJbnB1dChjb25z
dCB1aW50OF90ICpkYXRhLCBzaXplX3Qgc2l6ZSkgewogCiAgICAgb3B1c19kZWNvZGVyX2Rlc3Ry
b3koZGVjKTsKICAgICBmcmVlKHBjbSk7Ci0gICAgZnJlZShwYWNrZXQpOwogCiAgICAgcmV0dXJu
IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L29wdXMvc3JjL3Rlc3RzL3Rlc3Rfb3B1c19jb21tb24uaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvdGVzdHMvdGVzdF9v
cHVzX2NvbW1vbi5oCmluZGV4IDIzNWNmMWMxMDE2ODkxMTBhMDAxMzViYmNlMmMzYTJiNTFmZGEw
YjQuLmQ5NmM3ZDg0YTM4ZWQyOGM3ZDU4MTU1NTZmYTc2MDFkYjUwMzAwYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMv
dGVzdHMvdGVzdF9vcHVzX2NvbW1vbi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvdGVzdHMvdGVzdF9vcHVzX2NvbW1vbi5oCkBA
IC03NSw2ICs3NSw5IEBAIHN0YXRpYyBPUFVTX0lOTElORSB2b2lkIF90ZXN0X2ZhaWxlZChjb25z
dCBjaGFyICpmaWxlLCBpbnQgbGluZSkKICAgZnByaW50ZihzdGRlcnIsIlBsZWFzZSByZXBvcnQg
dGhpcyBmYWlsdXJlIGFuZCBpbmNsdWRlXG4iKTsKICAgZnByaW50ZihzdGRlcnIsIidtYWtlIGNo
ZWNrIFNFRUQ9JXUgZmFpbHMgJXMgYXQgbGluZSAlZCBmb3IgJXMnXG4iLGlzZWVkLGZpbGUsbGlu
ZSxvcHVzX2dldF92ZXJzaW9uX3N0cmluZygpKTsKICAgZnByaW50ZihzdGRlcnIsImFuZCBhbnkg
cmVsZXZhbnQgZGV0YWlscyBhYm91dCB5b3VyIHN5c3RlbS5cblxuIik7CisjaWYgZGVmaW5lZChf
TVNDX1ZFUikKKyAgIF9zZXRfYWJvcnRfYmVoYXZpb3IoIDAsIF9XUklURV9BQk9SVF9NU0cpOwor
I2VuZGlmCiAgIGFib3J0KCk7CiB9CiAjZGVmaW5lIHRlc3RfZmFpbGVkKCkgX3Rlc3RfZmFpbGVk
KF9fRklMRV9fLCBfX0xJTkVfXyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMvc3JjL3Rlc3RzL3Rlc3Rfb3B1c19kZWNvZGUu
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9z
cmMvdGVzdHMvdGVzdF9vcHVzX2RlY29kZS5jCmluZGV4IDUxOTdmYTFkZDJjZjEwYjVlNTAzN2Qy
YjIxNTNkNmVmNjY0NDc3YjcuLjJkMWUyZDQxNDk2NzM5MjE2MGJkZWQzNWZkYzJiOTc0NzM1MWY1
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvb3B1cy9zcmMvdGVzdHMvdGVzdF9vcHVzX2RlY29kZS5jCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvdGVzdHMvdGVzdF9v
cHVzX2RlY29kZS5jCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1
ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHRpbWUuaD4KLSNpZiAoIWRlZmluZWQgV0lOMzIgJiYg
IWRlZmluZWQgX1dJTjMyKSB8fCBkZWZpbmVkKF9fTUlOR1czMl9fKQorI2lmbmRlZiBfV0lOMzIK
ICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbHNlCiAjaW5jbHVkZSA8cHJvY2Vzcy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVz
L3NyYy93aW4zMi9nZW52ZXJzaW9uLmJhdCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvb3B1cy9zcmMvd2luMzIvZ2VudmVyc2lvbi5iYXQKaW5kZXggMWRl
Zjc0NjBiNWUwMmZhMTg5OThhNTdlMGUwZWZjNWFiMzEzNGVkNS4uYWVhNTU3MzkzNDJkYWY5NTNm
NzgyY2EyMTg1NTEzNGMwNDEwMTgzOSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9vcHVzL3NyYy93aW4zMi9nZW52ZXJzaW9uLmJhdAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L29wdXMv
c3JjL3dpbjMyL2dlbnZlcnNpb24uYmF0CkBAIC0xLDM3ICsxLDM3IEBACi1AZWNobyBvZmYKLQot
c2V0bG9jYWwgZW5hYmxlZXh0ZW5zaW9ucyBlbmFibGVkZWxheWVkZXhwYW5zaW9uCi0KLWZvciAv
ZiAlJXYgaW4gKCdjZCAiJX5kcDAuLiIgXiZeJiBnaXQgc3RhdHVzIF4+TlVMIDJePk5VTCBeJl4m
IGdpdCBkZXNjcmliZSAtLXRhZ3MgLS1tYXRjaCAidioiIC0tZGlydHkgMl4+TlVMJykgZG8gc2V0
IHZlcnNpb249JSV2Ci0KLWlmIG5vdCAiJXZlcnNpb24lIj09IiIgc2V0IHZlcnNpb249IXZlcnNp
b246fjEhICYmIGdvdG8gOmdvdHZlcnNpb24KLQotaWYgZXhpc3QgIiV+ZHAwLi5ccGFja2FnZV92
ZXJzaW9uIiBnb3RvIDpnZXR2ZXJzaW9uCi0KLWVjaG8gR2l0IGNhbm5vdCBiZSBmb3VuZCwgbm9y
IGNhbiBwYWNrYWdlX3ZlcnNpb24uIEdlbmVyYXRpbmcgdW5rbm93biB2ZXJzaW9uLgotCi1zZXQg
dmVyc2lvbj11bmtub3duCi0KLWdvdG8gOmdvdHZlcnNpb24KLQotOmdldHZlcnNpb24KLQotZm9y
IC9mICJkZWxpbXM9PSB0b2tlbnM9MiIgJSV2IGluICglfmRwczAuLlxwYWNrYWdlX3ZlcnNpb24p
IGRvIHNldCB2ZXJzaW9uPSUldgotc2V0IHZlcnNpb249IXZlcnNpb246Ij0hCi0KLTpnb3R2ZXJz
aW9uCi0KLXNldCB2ZXJzaW9uPSF2ZXJzaW9uOiA9IQotc2V0IHZlcnNpb25fb3V0PSNkZWZpbmUg
JX4yICIldmVyc2lvbiUiCi0KLWVjaG8gJXZlcnNpb25fb3V0JT4gIiV+MV90ZW1wIgotCi1lY2hv
IG4gfCBjb21wICIlfjFfdGVtcCIgIiV+MSIgPiBOVUwgMj4gTlVMCi0KLWlmIG5vdCBlcnJvcmxl
dmVsIDEgZ290byBleGl0Ci0KLWNvcHkgL3kgIiV+MV90ZW1wIiAiJX4xIgotCi06ZXhpdAotCi1k
ZWwgIiV+MV90ZW1wIgorQGVjaG8gb2ZmDQorDQorc2V0bG9jYWwgZW5hYmxlZXh0ZW5zaW9ucyBl
bmFibGVkZWxheWVkZXhwYW5zaW9uDQorDQorZm9yIC9mICUldiBpbiAoJ2NkICIlfmRwMC4uIiBe
Jl4mIGdpdCBzdGF0dXMgXj5OVUwgMl4+TlVMIF4mXiYgZ2l0IGRlc2NyaWJlIC0tdGFncyAtLW1h
dGNoICJ2KiIgLS1kaXJ0eSAyXj5OVUwnKSBkbyBzZXQgdmVyc2lvbj0lJXYNCisNCitpZiBub3Qg
IiV2ZXJzaW9uJSI9PSIiIHNldCB2ZXJzaW9uPSF2ZXJzaW9uOn4xISAmJiBnb3RvIDpnb3R2ZXJz
aW9uDQorDQoraWYgZXhpc3QgIiV+ZHAwLi5ccGFja2FnZV92ZXJzaW9uIiBnb3RvIDpnZXR2ZXJz
aW9uDQorDQorZWNobyBHaXQgY2Fubm90IGJlIGZvdW5kLCBub3IgY2FuIHBhY2thZ2VfdmVyc2lv
bi4gR2VuZXJhdGluZyB1bmtub3duIHZlcnNpb24uDQorDQorc2V0IHZlcnNpb249dW5rbm93bg0K
Kw0KK2dvdG8gOmdvdHZlcnNpb24NCisNCis6Z2V0dmVyc2lvbg0KKw0KK2ZvciAvZiAiZGVsaW1z
PT0gdG9rZW5zPTIiICUldiBpbiAoJX5kcHMwLi5ccGFja2FnZV92ZXJzaW9uKSBkbyBzZXQgdmVy
c2lvbj0lJXYNCitzZXQgdmVyc2lvbj0hdmVyc2lvbjoiPSENCisNCis6Z290dmVyc2lvbg0KKw0K
K3NldCB2ZXJzaW9uPSF2ZXJzaW9uOiA9IQ0KK3NldCB2ZXJzaW9uX291dD0jZGVmaW5lICV+MiAi
JXZlcnNpb24lIg0KKw0KK2VjaG8gJXZlcnNpb25fb3V0JT4gIiV+MV90ZW1wIg0KKw0KK2VjaG8g
biB8IGNvbXAgIiV+MV90ZW1wIiAiJX4xIiA+IE5VTCAyPiBOVUwNCisNCitpZiBub3QgZXJyb3Js
ZXZlbCAxIGdvdG8gZXhpdA0KKw0KK2NvcHkgL3kgIiV+MV90ZW1wIiAiJX4xIg0KKw0KKzpleGl0
DQorDQorZGVsICIlfjFfdGVtcCINCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>