<?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>233612</bug_id>
          
          <creation_ts>2021-11-29 17:51:24 -0800</creation_ts>
          <short_desc>Clean up UTF-8 conversion code</short_desc>
          <delta_ts>2022-10-10 10:03:09 -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>New Bugs</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>
          
          <blocked>179303</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>annevk</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1818568</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-29 17:51:24 -0800</bug_when>
    <thetext>Clean up UTF-8 conversion code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1818592</commentid>
    <comment_count>1</comment_count>
      <attachid>445377</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-29 20:52:55 -0800</bug_when>
    <thetext>Created attachment 445377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820841</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 17:52:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/86133188&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849018</commentid>
    <comment_count>3</comment_count>
      <attachid>454047</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-07 16:21:06 -0800</bug_when>
    <thetext>Created attachment 454047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901515</commentid>
    <comment_count>4</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2022-09-27 08:04:14 -0700</bug_when>
    <thetext>This might be worth rebasing and pushing to GitHub?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901556</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-09-27 10:20:16 -0700</bug_when>
    <thetext>Absolutely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1901573</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-09-27 10:57:08 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/4760</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1904517</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-10 09:56:16 -0700</bug_when>
    <thetext>Committed 255348@main (efec6c1b6e6d): &lt;https://commits.webkit.org/255348@main&gt;

Reviewed commits have been landed. Closing PR #4760 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445377</attachid>
            <date>2021-11-29 20:52:55 -0800</date>
            <delta_ts>2022-03-07 16:21:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233612-20211129205254.patch</filename>
            <type>text/plain</type>
            <size>24421</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjg2MjgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDIxLTExLTI5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQ2xlYW4gdXAgVVRGLTggY29udmVyc2lvbiBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2MTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6
CisgICAgICAgIChKU1N0cmluZ0dldFVURjhDU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNv
bGVNZXNzYWdlV2l0aEFyZ3VtZW50cyk6CisgICAgICAgIE1ha2UgdGhpcyBmdW5jdGlvbiBtb3Jl
IHJvYnVzdCBhZ2FpbnN0IGxhcmdlIHN0cmluZ3MgZnJvbSBKUywgd2hpY2ggaGFwcGVucyBpbiB0
aGUgdGVzdCBqcy90aHJvdy1sYXJnZS1zdHJpbmctb29tLmh0bWwKKwogMjAyMS0xMS0yOSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIGp1bXBGb3JU
eXBlZEFycmF5T3V0T2ZCb3VuZHMgc2hvdWxkIHVzZSBhc0FueUludCBzaW5jZSBpdCB1c2VzIGlz
QW55SW50CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU3RyaW5nUmVmLmNwcAko
cmV2aXNpb24gMjg2MjU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1Jl
Zi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNyBAQCBzaXplX3QgSlNTdHJpbmdH
ZXRVVEY4Q1N0cmluZyhKU1N0cmluZ1JlCiAgICAgfSBlbHNlIHsKICAgICAgICAgY29uc3QgVUNo
YXIqIHNvdXJjZSA9IHN0cmluZy0+Y2hhcmFjdGVyczE2KCk7CiAgICAgICAgIGF1dG8gcmVzdWx0
ID0gY29udmVydFVURjE2VG9VVEY4KCZzb3VyY2UsIHNvdXJjZSArIHN0cmluZy0+bGVuZ3RoKCks
ICZkZXN0aW5hdGlvbiwgZGVzdGluYXRpb24gKyBidWZmZXJTaXplIC0gMSk7Ci0gICAgICAgIGZh
aWxlZCA9IHJlc3VsdCAhPSBDb252ZXJzaW9uT0sgJiYgcmVzdWx0ICE9IFRhcmdldEV4aGF1c3Rl
ZDsKKyAgICAgICAgZmFpbGVkID0gcmVzdWx0ICE9IENvbnZlcnNpb25SZXN1bHQ6OlN1Y2Nlc3Mg
JiYgcmVzdWx0ICE9IENvbnZlcnNpb25SZXN1bHQ6OlRhcmdldEV4aGF1c3RlZDsKICAgICB9CiAK
ICAgICAqZGVzdGluYXRpb24rKyA9ICdcMCc7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmNwcAkocmV2aXNpb24gMjg2MjU5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIENvbnNvbGVDbGllbnQ6OnByaW50Q29uc29sZU1l
c3NhZ2VXCiAgICAgUmVmPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrID0gY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrRm9yQ29uc29sZShnbG9iYWxPYmplY3QsIHN0YWNrU2l6ZSk7CiAgICAgY29uc3Qg
U2NyaXB0Q2FsbEZyYW1lJiBsYXN0Q2FsbGVyID0gY2FsbFN0YWNrLT5hdCgwKTsKIAotICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIoU3RyaW5nQnVp
bGRlcjo6T3ZlcmZsb3dIYW5kbGVyOjpSZWNvcmRPdmVyZmxvdyk7CiAKICAgICBpZiAoIWxhc3RD
YWxsZXIuc291cmNlVVJMKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGFwcGVuZFVSTEFuZFBvc2l0
aW9uKGJ1aWxkZXIsIGxhc3RDYWxsZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51bWJl
cigpLCBsYXN0Q2FsbGVyLmNvbHVtbk51bWJlcigpKTsKQEAgLTIyNiw3ICsyMjYsMTAgQEAgdm9p
ZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlVwogICAgICAgICBzY29wZS5jbGVh
ckV4Y2VwdGlvbigpOwogICAgIH0KIAotICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVyLnRv
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgaWYgKGJ1aWxkZXIuaGFzT3ZlcmZsb3dlZCgp
KQorICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnNvbGUgbWVzc2FnZSBleGNlZWRlZCBtYXhpbXVt
IGxlbmd0aC4iKTsKKyAgICBlbHNlCisgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMiLCBidWlsZGVy
LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAoaXNUcmFjZU1lc3NhZ2UpIHsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxsU3RhY2stPnNpemUoKTsgKytpKSB7
CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0No
YW5nZUxvZwkocmV2aXNpb24gMjg2MjU5KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw0MCBAQAorMjAyMS0xMS0yOSAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFuIHVwIFVURi04IGNvbnZl
cnNpb24gY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMzNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBkb2VzIHRoZXNlIDUgdGhpbmdzOgorCisgICAgICAgIDEuIFVzZSBhbiBl
bnVtIGNsYXNzIGZvciBDb252ZXJzaW9uUmVzdWx0IGluc3RhZCBvZiBhbiBlbnVtLgorICAgICAg
ICAyLiBSZW1vdmUgc29tZSBkdXBsaWNhdGUgY29kZSBhbmQgbW92ZSB0aGluZ3MgYXJvdW5kIHNv
IHRoZXJlIGlzIGp1c3QgYSB1dGY4Rm9yQ2hhcmFjdGVycworICAgICAgICBmb3IgTENoYXIgYW5k
IG9uZSBmb3IgVUNoYXIgaW5zdGVhZCBvZiBhIHV0ZjhJbXBsIHRoYXQgaXMgY2FsbGVkIGZyb20g
dHdvIGRpZmZlcmVudCBjb252ZXJzaW9uIGZ1bmN0aW9ucy4KKyAgICAgICAgMy4gT25seSBhbGxv
Y2F0ZSBhIG1heGltdW0gb2YgbGVuZ3RoICogMiBieXRlcyB3aGVuIGNvbnZlcnRpbmcgTENoYXIg
dG8gVVRGLTggYmVjYXVzZSB0aGF0IGlzIHRoZSBsb25nZXN0CisgICAgICAgIGxlbmd0aCBhbiBM
Q2hhciBjYW4gdGFrZSB3aGVuIGl0IGlzIGNvbnZlcnRlZCB0byBVVEYtOC4gIFRoaXMgaXMgdGhl
IG9ubHkgY2hhbmdlIGluIGJlaGF2aW9yLCBhbmQgaXQganVzdAorICAgICAgICBzYWZlbHkgcmVk
dWNlcyBtZW1vcnkgdXNlIGEgbGl0dGxlLgorICAgICAgICA0LiBVc2Ugc3dpdGNoIHN0YXRlbWVu
dHMgZm9yIHRoZSBjb252ZXJzaW9uIG1vZGUgYW5kIHJlc3VsdHMgaW5zdGVhZCBvZiBpZiBzdGF0
ZW1lbnRzLgorICAgICAgICA1LiBVc2UgVThfQVBQRU5EX1VOU0FGRSBpbnN0ZWFkIG9mIG91ciBv
d24gaW1wbGVtZW50YXRpb24gb2YgdGhlIHNhbWUgdGhpbmcgd2hlbiBsZW5pZW50bHkgY29udmVy
dGluZyBtaXNtYXRjaGVkCisgICAgICAgIHN1cnJvZ2F0ZSBwYWlycyBhdCB0aGUgZW5kIG9mIFVU
Ri0xNiBzdHJpbmdzLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAg
ICAgIChXVEY6OnB1dFVURjhUcmlwbGUpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp1dGY4
Rm9yQ2hhcmFjdGVycyk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnRyeUdldFV0ZjggY29u
c3QpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp1dGY4IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6U3RyaW5nSW1wbDo6dXRmOEltcGwpOiBEZWxldGVkLgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjp0cnlHZXRVdGY4Rm9yUmFuZ2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHd0Zi90
ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9VVEY4Q29udmVyc2lvbkVycm9y
Lmg6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6U3Ry
aW5nOjp1dGY4IGNvbnN0KToKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAg
ICAgKiB3dGYvdW5pY29kZS9VVEY4Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXVEY6OlVuaWNv
ZGU6OmNvbnZlcnRMYXRpbjFUb1VURjgpOgorICAgICAgICAoV1RGOjpVbmljb2RlOjpjb252ZXJ0
VVRGMTZUb1VURjgpOgorICAgICAgICAqIHd0Zi91bmljb2RlL1VURjhDb252ZXJzaW9uLmg6Cisg
ICAgICAgICgpOiBEZWxldGVkLgorCiAyMDIxLTExLTI5ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVp
emFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBw
bGF0Zm9ybSB1c2FnZSBmb3IgTWFjL2lPUwpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
Y3BwCShyZXZpc2lvbiAyODYyNTkpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjY0LDIzICsxNjY0LDM1IEBAIHNpemVfdCBTdHJpbmdJ
bXBsOjpzaXplSW5CeXRlcygpIGNvbnN0CiBzdGF0aWMgaW5saW5lIHZvaWQgcHV0VVRGOFRyaXBs
ZShjaGFyKiYgYnVmZmVyLCBVQ2hhciBjaGFyYWN0ZXIpCiB7CiAgICAgQVNTRVJUKGNoYXJhY3Rl
ciA+PSAweDA4MDApOwotICAgICpidWZmZXIrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCgoY2hhcmFj
dGVyID4+IDEyKSAmIDB4MEYpIHwgMHhFMCk7Ci0gICAgKmJ1ZmZlcisrID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oKChjaGFyYWN0ZXIgPj4gNikgJiAweDNGKSB8IDB4ODApOwotICAgICpidWZmZXIrKyA9
IHN0YXRpY19jYXN0PGNoYXI+KChjaGFyYWN0ZXIgJiAweDNGKSB8IDB4ODApOworICAgIGludCBp
ID0gMDsKKyAgICBVOF9BUFBFTkRfVU5TQUZFKGJ1ZmZlciwgaSwgY2hhcmFjdGVyKTsKKyAgICBB
U1NFUlQoaSA9PSAzKTsKKyAgICBidWZmZXIgKz0gaTsKIH0KIAotVVRGOENvbnZlcnNpb25FcnJv
ciBTdHJpbmdJbXBsOjp1dGY4SW1wbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQg
bGVuZ3RoLCBjaGFyKiYgYnVmZmVyLCBzaXplX3QgYnVmZmVyU2l6ZSwgQ29udmVyc2lvbk1vZGUg
bW9kZSkKK0V4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IFN0cmluZ0ltcGw6
OnV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgsIENvbnZlcnNpb25Nb2RlIG1vZGUpCiB7Ci0gICAgaWYgKG1vZGUgPT0gU3RyaWN0Q29udmVy
c2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEKSB7Ci0gICAgICAgIGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzRW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKLSAgICAgICAgY2hh
ciogYnVmZmVyRW5kID0gYnVmZmVyICsgYnVmZmVyU2l6ZTsKKyAgICBpZiAoIWxlbmd0aCkKKyAg
ICAgICAgcmV0dXJuIENTdHJpbmcoIiIsIDApOworCisgICAgaWYgKGxlbmd0aCA+IE1heExlbmd0
aCAvIDMpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChVVEY4Q29udmVyc2lvbkVycm9y
OjpPdXRPZk1lbW9yeSk7CisKKyAgICBzaXplX3QgYnVmZmVyU2l6ZSA9IGxlbmd0aCAqIDM7Cisg
ICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZmZlclZlY3RvcihidWZmZXJTaXplKTsKKyAgICBjaGFy
KiBidWZmZXIgPSBidWZmZXJWZWN0b3IuZGF0YSgpOworICAgIGNvbnN0IFVDaGFyKiBjb25zdCBj
aGFyYWN0ZXJzRW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKKyAgICBjaGFyKiBjb25zdCBidWZm
ZXJFbmQgPSBidWZmZXIgKyBidWZmZXJTaXplOworCisgICAgc3dpdGNoIChtb2RlKSB7CisgICAg
Y2FzZSBTdHJpY3RDb252ZXJzaW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQ6
IHsKICAgICAgICAgd2hpbGUgKGNoYXJhY3RlcnMgPCBjaGFyYWN0ZXJzRW5kKSB7CiAgICAgICAg
ICAgICAvLyBVc2Ugc3RyaWN0IGNvbnZlcnNpb24gdG8gZGV0ZWN0IHVucGFpcmVkIHN1cnJvZ2F0
ZXMuCiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFj
dGVycywgY2hhcmFjdGVyc0VuZCwgJmJ1ZmZlciwgYnVmZmVyRW5kKTsKLSAgICAgICAgICAgIEFT
U0VSVChyZXN1bHQgIT0gVGFyZ2V0RXhoYXVzdGVkKTsKKyAgICAgICAgICAgIEFTU0VSVChyZXN1
bHQgIT0gQ29udmVyc2lvblJlc3VsdDo6VGFyZ2V0RXhoYXVzdGVkKTsKICAgICAgICAgICAgIC8v
IENvbnZlcnNpb24gZmFpbHMgd2hlbiB0aGVyZSBpcyBhbiB1bnBhaXJlZCBzdXJyb2dhdGUuCiAg
ICAgICAgICAgICAvLyBQdXQgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIChVK0ZGRkQpIGluc3RlYWQg
b2YgdGhlIHVucGFpcmVkIHN1cnJvZ2F0ZS4KLSAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gQ29u
dmVyc2lvbk9LKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0ICE9IENvbnZlcnNpb25SZXN1bHQ6
OlN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoKDB4RDgwMCA8PSAqY2hhcmFjdGVy
cyAmJiAqY2hhcmFjdGVycyA8PSAweERGRkYpKTsKICAgICAgICAgICAgICAgICAvLyBUaGVyZSBz
aG91bGQgYmUgcm9vbSBsZWZ0LCBzaW5jZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVydGVk
LgogICAgICAgICAgICAgICAgIEFTU0VSVCgoYnVmZmVyICsgMykgPD0gYnVmZmVyRW5kKTsKQEAg
LTE2ODgsMTExICsxNzAwLDY1IEBAIFVURjhDb252ZXJzaW9uRXJyb3IgU3RyaW5nSW1wbDo6dXRm
OEltcGwKICAgICAgICAgICAgICAgICArK2NoYXJhY3RlcnM7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICB9IGVsc2UgeworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBTdHJp
Y3RDb252ZXJzaW9uOgorICAgIGNhc2UgTGVuaWVudENvbnZlcnNpb246IHsKICAgICAgICAgYm9v
bCBzdHJpY3QgPSBtb2RlID09IFN0cmljdENvbnZlcnNpb247Ci0gICAgICAgIGNvbnN0IFVDaGFy
KiBvcmlnaW5hbENoYXJhY3RlcnMgPSBjaGFyYWN0ZXJzOwotICAgICAgICBhdXRvIHJlc3VsdCA9
IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVycyArIGxlbmd0aCwgJmJ1
ZmZlciwgYnVmZmVyICsgYnVmZmVyU2l6ZSwgc3RyaWN0KTsKLSAgICAgICAgQVNTRVJUKHJlc3Vs
dCAhPSBUYXJnZXRFeGhhdXN0ZWQpOyAvLyAobGVuZ3RoICogMykgc2hvdWxkIGJlIHN1ZmZpY2ll
bnQgZm9yIGFueSBjb252ZXJzaW9uCisgICAgICAgIGF1dG8gY29udmVyc2lvblJlc3VsdCA9IGNv
bnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVyc0VuZCwgJmJ1ZmZlciwgYnVm
ZmVyRW5kLCBzdHJpY3QpOworICAgICAgICBzd2l0Y2ggKGNvbnZlcnNpb25SZXN1bHQpIHsKKyAg
ICAgICAgY2FzZSBDb252ZXJzaW9uUmVzdWx0OjpTdWNjZXNzOgorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgY2FzZSBDb252ZXJzaW9uUmVzdWx0OjpTb3VyY2VFeGhhdXN0ZWQ6CisgICAg
ICAgICAgICBBU1NFUlQoIXN0cmljdCk7CisgICAgICAgICAgICBBU1NFUlQoY2hhcmFjdGVycyAr
IDEgPT0gY2hhcmFjdGVyc0VuZCk7CisgICAgICAgICAgICBBU1NFUlQoKDB4RDgwMCA8PSAqY2hh
cmFjdGVycyAmJiAqY2hhcmFjdGVycyA8PSAweERGRkYpKTsKKyAgICAgICAgICAgIHB1dFVURjhU
cmlwbGUoYnVmZmVyLCAqY2hhcmFjdGVycyk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICBjYXNlIENvbnZlcnNpb25SZXN1bHQ6OlRhcmdldEV4aGF1c3RlZDoKKyAgICAgICAgICAgIC8v
IChsZW5ndGggKiAzKSBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgYW55IGNvbnZlcnNpb24uCisg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgIC8vIE9ubHkgcHJvZHVjZWQgZnJvbSBzdHJpY3QgY29udmVyc2lvbi4KLSAgICAgICAg
aWYgKHJlc3VsdCA9PSBTb3VyY2VJbGxlZ2FsKSB7CisgICAgICAgIGNhc2UgQ29udmVyc2lvblJl
c3VsdDo6U291cmNlSWxsZWdhbDoKKyAgICAgICAgICAgIC8vIE9ubHkgcHJvZHVjZWQgZnJvbSBz
dHJpY3QgY29udmVyc2lvbi4KICAgICAgICAgICAgIEFTU0VSVChzdHJpY3QpOwotICAgICAgICAg
ICAgcmV0dXJuIFVURjhDb252ZXJzaW9uRXJyb3I6OklsbGVnYWxTb3VyY2U7CisgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoVVRGOENvbnZlcnNpb25FcnJvcjo6SWxsZWdhbFNvdXJj
ZSk7CiAgICAgICAgIH0KLQotICAgICAgICAvLyBDaGVjayBmb3IgYW4gdW5jb252ZXJ0ZWQgaGln
aCBzdXJyb2dhdGUuCi0gICAgICAgIGlmIChyZXN1bHQgPT0gU291cmNlRXhoYXVzdGVkKSB7Ci0g
ICAgICAgICAgICBpZiAoc3RyaWN0KQotICAgICAgICAgICAgICAgIHJldHVybiBVVEY4Q29udmVy
c2lvbkVycm9yOjpTb3VyY2VFeGhhdXN0ZWQ7Ci0gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBi
ZSBvbmUgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUuIFRyZWF0IGl0IHRoZSBzYW1lCi0gICAgICAg
ICAgICAvLyB3YXMgYXMgYW4gdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgd291bGQgaGF2ZSBiZWVu
IGhhbmRsZWQgaW4KLSAgICAgICAgICAgIC8vIHRoZSBtaWRkbGUgb2YgYSBzdHJpbmcgd2l0aCBu
b24tc3RyaWN0IGNvbnZlcnNpb24gLSB3aGljaCBpcwotICAgICAgICAgICAgLy8gdG8gc2F5LCBz
aW1wbHkgZW5jb2RlIGl0IHRvIFVURi04LgotICAgICAgICAgICAgQVNTRVJUX1VOVVNFRCgKLSAg
ICAgICAgICAgICAgICBvcmlnaW5hbENoYXJhY3RlcnMsIChjaGFyYWN0ZXJzICsgMSkgPT0gKG9y
aWdpbmFsQ2hhcmFjdGVycyArIGxlbmd0aCkpOwotICAgICAgICAgICAgQVNTRVJUKCgqY2hhcmFj
dGVycyA+PSAweEQ4MDApICYmICgqY2hhcmFjdGVycyA8PSAweERCRkYpKTsKLSAgICAgICAgICAg
IC8vIFRoZXJlIHNob3VsZCBiZSByb29tIGxlZnQsIHNpbmNlIG9uZSBVQ2hhciBoYXNuJ3QgYmVl
biBjb252ZXJ0ZWQuCi0gICAgICAgICAgICBBU1NFUlQoKGJ1ZmZlciArIDMpIDw9IChidWZmZXIg
KyBidWZmZXJTaXplKSk7Ci0gICAgICAgICAgICBwdXRVVEY4VHJpcGxlKGJ1ZmZlciwgKmNoYXJh
Y3RlcnMpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIHJldHVybiBVVEY4Q29udmVyc2lv
bkVycm9yOjpOb25lOwotfQotCi1FeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9y
PiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKQotewotICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gQ1N0
cmluZygiIiwgMCk7Ci0gICAgaWYgKGxlbmd0aCA+IE1heExlbmd0aCAvIDMpCi0gICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChVVEY4Q29udmVyc2lvbkVycm9yOjpPdXRPZk1lbW9yeSk7Ci0g
ICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZmZlclZlY3RvcihsZW5ndGggKiAzKTsKLSAgICBjaGFy
KiBidWZmZXIgPSBidWZmZXJWZWN0b3IuZGF0YSgpOwotICAgIGNvbnN0IExDaGFyKiBzb3VyY2Ug
PSBjaGFyYWN0ZXJzOwotICAgIGJvb2wgc3VjY2VzcyA9IGNvbnZlcnRMYXRpbjFUb1VURjgoJnNv
dXJjZSwgc291cmNlICsgbGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6
ZSgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOyAvLyAobGVuZ3RoICog
Mykgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGFueSBjb252ZXJzaW9uCiAgICAgcmV0dXJuIENT
dHJpbmcoYnVmZmVyVmVjdG9yLmRhdGEoKSwgYnVmZmVyIC0gYnVmZmVyVmVjdG9yLmRhdGEoKSk7
CiB9CiAKLUV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IFN0cmluZ0ltcGw6
OnV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsZW5n
dGgsIENvbnZlcnNpb25Nb2RlIG1vZGUpCitFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lv
bkVycm9yPiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjb25zdCBMQ2hhciogc291cmNl
LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCiAgICAgICAgIHJldHVybiBD
U3RyaW5nKCIiLCAwKTsKLSAgICBpZiAobGVuZ3RoID4gTWF4TGVuZ3RoIC8gMykKLSAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKFVURjhDb252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KTsK
LSAgICBWZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9yKGxlbmd0aCAqIDMpOwotICAgIGNo
YXIqIGJ1ZmZlciA9IGJ1ZmZlclZlY3Rvci5kYXRhKCk7Ci0gICAgVVRGOENvbnZlcnNpb25FcnJv
ciBlcnJvciA9IHV0ZjhJbXBsKGNoYXJhY3RlcnMsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJWZWN0
b3Iuc2l6ZSgpLCBtb2RlKTsKLSAgICBpZiAoZXJyb3IgIT0gVVRGOENvbnZlcnNpb25FcnJvcjo6
Tm9uZSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKLSAgICByZXR1cm4g
Q1N0cmluZyhidWZmZXJWZWN0b3IuZGF0YSgpLCBidWZmZXIgLSBidWZmZXJWZWN0b3IuZGF0YSgp
KTsKLX0KLQotRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gU3RyaW5nSW1w
bDo6dHJ5R2V0VXRmOEZvclJhbmdlKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBD
b252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAotewotICAgIEFTU0VSVChvZmZzZXQgPD0gdGhpcy0+
bGVuZ3RoKCkpOwotICAgIEFTU0VSVChvZmZzZXQgKyBsZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkp
OwogICAgIAotICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7
Ci0KLSAgICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciBiaWcgZW5vdWdoIHRvIGhvbGQgYWxsIHRoZSBj
aGFyYWN0ZXJzCi0gICAgLy8gKGFuIGluZGl2aWR1YWwgVVRGLTE2IFVDaGFyIGNhbiBvbmx5IGV4
cGFuZCB0byAzIFVURi04IGJ5dGVzKS4KLSAgICAvLyBPcHRpbWl6YXRpb24gaWRlYXMsIGlmIHdl
IGZpbmQgdGhpcyBmdW5jdGlvbiBpcyBob3Q6Ci0gICAgLy8gICogV2UgY291bGQgc3BlY3VsYXRp
dmVseSBjcmVhdGUgYSBDU3RyaW5nQnVmZmVyIHRvIGNvbnRhaW4gJ2xlbmd0aCcgCi0gICAgLy8g
ICAgY2hhcmFjdGVycywgYW5kIHJlc2l6ZSBpZiBuZWNlc3NhcnkgKGkuZS4gaWYgdGhlIGJ1ZmZl
ciBjb250YWlucwotICAgIC8vICAgIG5vbi1hc2NpaSBjaGFyYWN0ZXJzKS4gKEFsdGVybmF0aXZl
bHksIHNjYW4gdGhlIGJ1ZmZlciBmaXJzdCBmb3IKLSAgICAvLyAgICBhc2NpaSBjaGFyYWN0ZXJz
LCBzbyB3ZSBrbm93IHRoaXMgd2lsbCBiZSBzdWZmaWNpZW50KS4KLSAgICAvLyAgKiBXZSBjb3Vs
ZCBhbGxvY2F0ZSBhIENTdHJpbmdCdWZmZXIgd2l0aCBhbiBhcHByb3ByaWF0ZSBzaXplIHRvCi0g
ICAgLy8gICAgaGF2ZSBhIGdvb2QgY2hhbmNlIG9mIGJlaW5nIGFibGUgdG8gd3JpdGUgdGhlIHN0
cmluZyBpbnRvIHRoZQotICAgIC8vICAgIGJ1ZmZlciB3aXRob3V0IHJlYWxsb2NpbmcgKHNheSwg
MS41IHggbGVuZ3RoKS4KLSAgICBpZiAobGVuZ3RoID4gTWF4TGVuZ3RoIC8gMykKKyAgICBpZiAo
bGVuZ3RoID4gTWF4TGVuZ3RoIC8gMikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFVU
RjhDb252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KTsKLSAgICBWZWN0b3I8Y2hhciwgMTAyND4g
YnVmZmVyVmVjdG9yKGxlbmd0aCAqIDMpOwogCisgICAgYXV0byBidWZmZXJTaXplID0gbGVuZ3Ro
ICogMjsKKyAgICBWZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9yKGJ1ZmZlclNpemUpOwog
ICAgIGNoYXIqIGJ1ZmZlciA9IGJ1ZmZlclZlY3Rvci5kYXRhKCk7Ci0KLSAgICBpZiAoaXM4Qml0
KCkpIHsKLSAgICAgICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSB0aGlzLT5jaGFyYWN0ZXJz
OCgpICsgb2Zmc2V0OwotICAgICAgICBhdXRvIHN1Y2Nlc3MgPSBjb252ZXJ0TGF0aW4xVG9VVEY4
KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzICsgbGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBidWZm
ZXJWZWN0b3Iuc2l6ZSgpKTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChzdWNjZXNzLCBzdWNjZXNz
KTsgLy8gKGxlbmd0aCAqIDMpIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lv
bgotICAgIH0gZWxzZSB7Ci0gICAgICAgIFVURjhDb252ZXJzaW9uRXJyb3IgZXJyb3IgPSB1dGY4
SW1wbCh0aGlzLT5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3RoLCBidWZmZXIsIGJ1ZmZl
clZlY3Rvci5zaXplKCksIG1vZGUpOwotICAgICAgICBpZiAoZXJyb3IgIT0gVVRGOENvbnZlcnNp
b25FcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChlcnJvcik7
Ci0gICAgfQotCisgICAgY2hhciogY29uc3QgYnVmZmVyRW5kID0gYnVmZmVyICsgYnVmZmVyU2l6
ZTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjb252ZXJ0TGF0aW4xVG9VVEY4KCZzb3VyY2UsIHNvdXJj
ZSArIGxlbmd0aCwgJmJ1ZmZlciwgYnVmZmVyRW5kKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nl
c3MsIHN1Y2Nlc3MpOyAvLyBsZW5ndGggKiAyIHNob3VsZCBhbHdheXMgYmUgbGFyZ2UgZW5vdWdo
IGZvciBjb252ZXJ0aW5nIGZyb20gTGF0aW4tMS4KICAgICByZXR1cm4gQ1N0cmluZyhidWZmZXJW
ZWN0b3IuZGF0YSgpLCBidWZmZXIgLSBidWZmZXJWZWN0b3IuZGF0YSgpKTsKIH0KIAogRXhwZWN0
ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gU3RyaW5nSW1wbDo6dHJ5R2V0VXRmOChD
b252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAogewotICAgIHJldHVybiB0cnlHZXRVdGY4Rm9yUmFu
Z2UoMCwgbGVuZ3RoKCksIG1vZGUpOworICAgIGlmIChpczhCaXQoKSkKKyAgICAgICAgcmV0dXJu
IHV0ZjhGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgpKTsKKyAgICByZXR1cm4g
dXRmOEZvckNoYXJhY3RlcnMoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgpLCBtb2RlKTsKIH0KIAog
Q1N0cmluZyBTdHJpbmdJbXBsOjp1dGY4KENvbnZlcnNpb25Nb2RlIG1vZGUpIGNvbnN0CiB7Ci0g
ICAgYXV0byBleHBlY3RlZFN0cmluZyA9IHRyeUdldFV0ZjhGb3JSYW5nZSgwLCBsZW5ndGgoKSwg
bW9kZSk7CisgICAgYXV0byBleHBlY3RlZFN0cmluZyA9IHRyeUdldFV0ZjgobW9kZSk7CiAgICAg
UkVMRUFTRV9BU1NFUlQoZXhwZWN0ZWRTdHJpbmcpOwogICAgIHJldHVybiBleHBlY3RlZFN0cmlu
Zy52YWx1ZSgpOwogfQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHJldmlzaW9uIDI4
NjI1OSkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTQsMTMgKzMxNCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFdURl9FWFBPUlRfUFJJ
VkFURSBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiB1dGY4Rm9yQ2hhcmFj
dGVycyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBzdGF0
aWMgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJy
b3I+IHV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBs
ZW5ndGgsIENvbnZlcnNpb25Nb2RlID0gTGVuaWVudENvbnZlcnNpb24pOwogCi0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRyeUdl
dFV0ZjhGb3JSYW5nZSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgQ29udmVyc2lv
bk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRyeUdldFV0ZjgoQ29udmVy
c2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklW
QVRFIENTdHJpbmcgdXRmOChDb252ZXJzaW9uTW9kZSA9IExlbmllbnRDb252ZXJzaW9uKSBjb25z
dDsKIAotcHJpdmF0ZToKLSAgICBzdGF0aWMgV1RGX0VYUE9SVF9QUklWQVRFIFVURjhDb252ZXJz
aW9uRXJyb3IgdXRmOEltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0
aCwgY2hhciomIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIENvbnZlcnNpb25Nb2RlKTsKLSAg
ICAKK3ByaXZhdGU6ICAgIAogICAgIC8vIFRoZSBoaWdoIGJpdHMgb2YgJ2hhc2gnIGFyZSBhbHdh
eXMgZW1wdHksIGJ1dCB3ZSBwcmVmZXIgdG8gc3RvcmUgb3VyIGZsYWdzCiAgICAgLy8gaW4gdGhl
IGxvdyBiaXRzIGJlY2F1c2UgaXQgbWFrZXMgdGhlbSBzbGlnaHRseSBtb3JlIGVmZmljaWVudCB0
byBhY2Nlc3MuCiAgICAgLy8gU28sIHdlIHNoaWZ0IGxlZnQgYW5kIHJpZ2h0IHdoZW4gc2V0dGlu
ZyBhbmQgZ2V0dGluZyBvdXIgaGFzaCBjb2RlLgpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9V
VEY4Q29udmVyc2lvbkVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9V
VEY4Q29udmVyc2lvbkVycm9yLmgJKHJldmlzaW9uIDI4NjI1OSkKKysrIFNvdXJjZS9XVEYvd3Rm
L3RleHQvVVRGOENvbnZlcnNpb25FcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw3
IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFVURjhDb252ZXJzaW9uRXJyb3Ig
ewotICAgIE5vbmUsCitlbnVtIGNsYXNzIFVURjhDb252ZXJzaW9uRXJyb3IgOiB1aW50OF90IHsK
ICAgICBPdXRPZk1lbW9yeSwKICAgICBJbGxlZ2FsU291cmNlLAogICAgIFNvdXJjZUV4aGF1c3Rl
ZApJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAkocmV2aXNpb24gMjg2MjU5KQorKysg
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTIs
MTEgKzY5Miw2IEBAIENTdHJpbmcgU3RyaW5nOjp1dGY4KENvbnZlcnNpb25Nb2RlIG1vZGUKICAg
ICByZXR1cm4gZXhwZWN0ZWRTdHJpbmcudmFsdWUoKTsKIH0KIAotQ1N0cmluZyBTdHJpbmc6OnV0
ZjgoKSBjb25zdAotewotICAgIHJldHVybiB1dGY4KExlbmllbnRDb252ZXJzaW9uKTsKLX0KLQog
U3RyaW5nIFN0cmluZzo6bWFrZThCaXRGcm9tMTZCaXRTb3VyY2UoY29uc3QgVUNoYXIqIHNvdXJj
ZSwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9X
VEZTdHJpbmcuaAkocmV2aXNpb24gMjg2MjU5KQorKysgU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDggKzEzOCw3IEBAIHB1YmxpYzoKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgQ1N0cmluZyBhc2NpaSgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBDU3RyaW5nIGxhdGluMSgpIGNvbnN0OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IENTdHJpbmcgdXRmOChDb252ZXJzaW9uTW9kZSkgY29uc3Q7Ci0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIENTdHJpbmcgdXRmOCgpIGNvbnN0OworICAgIFdURl9FWFBPUlRfUFJJVkFURSBDU3RyaW5n
IHV0ZjgoQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4g
dHJ5R2V0VXRmOChDb252ZXJzaW9uTW9kZSkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRyeUdldFV0ZjgoKSBjb25z
dDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRGOENvbnZlcnNpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRGOENvbnZlcnNpb24uY3BwCShyZXZp
c2lvbiAyODYyNTkpCisrKyBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjhDb252ZXJzaW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsMjAgKzMxLDIwIEBACiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4K
IAotbmFtZXNwYWNlIFdURiB7Ci1uYW1lc3BhY2UgVW5pY29kZSB7CituYW1lc3BhY2UgV1RGOjpV
bmljb2RlIHsKIAogYm9vbCBjb252ZXJ0TGF0aW4xVG9VVEY4KGNvbnN0IExDaGFyKiogc291cmNl
U3RhcnQsIGNvbnN0IExDaGFyKiBzb3VyY2VFbmQsIGNoYXIqKiB0YXJnZXRTdGFydCwgY2hhciog
dGFyZ2V0RW5kKQogewogICAgIGNvbnN0IExDaGFyKiBzb3VyY2U7CiAgICAgY2hhciogdGFyZ2V0
ID0gKnRhcmdldFN0YXJ0OwotICAgIGludCBpID0gMDsKKyAgICBpbnQzMl90IGkgPSAwOwogICAg
IGZvciAoc291cmNlID0gKnNvdXJjZVN0YXJ0OyBzb3VyY2UgPCBzb3VyY2VFbmQ7ICsrc291cmNl
KSB7CiAgICAgICAgIFVCb29sIHNhd0Vycm9yID0gZmFsc2U7CiAgICAgICAgIC8vIFdvcmsgYXJv
dW5kIGJ1ZyBpbiBlaXRoZXIgV2luZG93cyBjb21waWxlciBvciBvbGQgdmVyc2lvbiBvZiBJQ1Us
IHdoZXJlIHBhc3NpbmcgYSB1aW50OF90IHRvCiAgICAgICAgIC8vIFU4X0FQUEVORCB3YXJucywg
YnkgY29udmVydGluZyBmcm9tIHVpbnQ4X3QgdG8gYSB3aWRlciB0eXBlLgogICAgICAgICBVQ2hh
cjMyIGNoYXJhY3RlciA9ICpzb3VyY2U7CiAgICAgICAgIFU4X0FQUEVORChyZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPih0YXJnZXQpLCBpLCB0YXJnZXRFbmQgLSAqdGFyZ2V0U3RhcnQsIGNoYXJh
Y3Rlciwgc2F3RXJyb3IpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFzYXdFcnJvciwg
IlVURjggZGVzdGluYXRpb24gYnVmZmVyIHdhcyBub3QgYmlnIGVub3VnaCIpOwogICAgICAgICBp
ZiAoc2F3RXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNTUsMjkg
KzU1LDI5IEBAIGJvb2wgY29udmVydExhdGluMVRvVVRGOChjb25zdCBMQ2hhcioqIHMKIAogQ29u
dmVyc2lvblJlc3VsdCBjb252ZXJ0VVRGMTZUb1VURjgoY29uc3QgVUNoYXIqKiBzb3VyY2VTdGFy
dCwgY29uc3QgVUNoYXIqIHNvdXJjZUVuZCwgY2hhcioqIHRhcmdldFN0YXJ0LCBjaGFyKiB0YXJn
ZXRFbmQsIGJvb2wgc3RyaWN0KQogewotICAgIENvbnZlcnNpb25SZXN1bHQgcmVzdWx0ID0gQ29u
dmVyc2lvbk9LOworICAgIGF1dG8gcmVzdWx0ID0gQ29udmVyc2lvblJlc3VsdDo6U3VjY2VzczsK
ICAgICBjb25zdCBVQ2hhciogc291cmNlID0gKnNvdXJjZVN0YXJ0OwogICAgIGNoYXIqIHRhcmdl
dCA9ICp0YXJnZXRTdGFydDsKICAgICBVQm9vbCBzYXdFcnJvciA9IGZhbHNlOwotICAgIGludCBp
ID0gMDsKKyAgICBpbnQzMl90IGkgPSAwOwogICAgIHdoaWxlIChzb3VyY2UgPCBzb3VyY2VFbmQp
IHsKICAgICAgICAgVUNoYXIzMiBjaDsKICAgICAgICAgaW50IGogPSAwOwogICAgICAgICBVMTZf
TkVYVChzb3VyY2UsIGosIHNvdXJjZUVuZCAtIHNvdXJjZSwgY2gpOwogICAgICAgICBpZiAoVV9J
U19TVVJST0dBVEUoY2gpKSB7CiAgICAgICAgICAgICBpZiAoc291cmNlICsgaiA9PSBzb3VyY2VF
bmQgJiYgVV9JU19TVVJST0dBVEVfTEVBRChjaCkpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQg
PSBTb3VyY2VFeGhhdXN0ZWQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ29udmVyc2lvblJl
c3VsdDo6U291cmNlRXhoYXVzdGVkOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgaWYgKHN0cmljdCkgewotICAgICAgICAgICAgICAgIHJlc3VsdCA9
IFNvdXJjZUlsbGVnYWw7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ29udmVyc2lvblJlc3Vs
dDo6U291cmNlSWxsZWdhbDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGNoID0gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CiAgICAgICAgIH0KICAgICAg
ICAgVThfQVBQRU5EKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHRhcmdldCksIGksIHRhcmdl
dEVuZCAtIHRhcmdldCwgY2gsIHNhd0Vycm9yKTsKICAgICAgICAgaWYgKHNhd0Vycm9yKSB7Ci0g
ICAgICAgICAgICByZXN1bHQgPSBUYXJnZXRFeGhhdXN0ZWQ7CisgICAgICAgICAgICByZXN1bHQg
PSBDb252ZXJzaW9uUmVzdWx0OjpUYXJnZXRFeGhhdXN0ZWQ7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBzb3VyY2UgKz0gajsKQEAgLTIwNyw1ICsyMDcsNCBAQCBib29s
IGVxdWFsTGF0aW4xV2l0aFVURjgoY29uc3QgTENoYXIqIGEsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLX0gLy8gbmFtZXNwYWNlIFVuaWNvZGUKLX0gLy8gbmFtZXNwYWNlIFdURgorfSAvLyBuYW1l
c3BhY2UgV1RGOjpVbmljb2RlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjhDb252
ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdW5pY29kZS9VVEY4Q29udmVy
c2lvbi5oCShyZXZpc2lvbiAyODYyNTkpCisrKyBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjhD
b252ZXJzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKIG5hbWVzcGFjZSBX
VEYgewogbmFtZXNwYWNlIFVuaWNvZGUgewogCi1lbnVtIENvbnZlcnNpb25SZXN1bHQgewotICAg
IENvbnZlcnNpb25PSywgLy8gY29udmVyc2lvbiBzdWNjZXNzZnVsCitlbnVtIGNsYXNzIENvbnZl
cnNpb25SZXN1bHQgOiB1aW50OF90IHsKKyAgICBTdWNjZXNzLCAvLyBjb252ZXJzaW9uIHN1Y2Nl
c3NmdWwKICAgICBTb3VyY2VFeGhhdXN0ZWQsIC8vIHBhcnRpYWwgY2hhcmFjdGVyIGluIHNvdXJj
ZSwgYnV0IGhpdCBlbmQKICAgICBUYXJnZXRFeGhhdXN0ZWQsIC8vIGluc3VmZmljaWVudCByb29t
IGluIHRhcmdldCBmb3IgY29udmVyc2lvbgogICAgIFNvdXJjZUlsbGVnYWwgLy8gc291cmNlIHNl
cXVlbmNlIGlzIGlsbGVnYWwvbWFsZm9ybWVkCkBAIC00OCw3ICs0OCw2IEBAIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGNvbnZlcnRVVEY4VG9VVEYKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNv
bnZlcnRVVEY4VG9VVEYxNlJlcGxhY2luZ0ludmFsaWRTZXF1ZW5jZXMoY29uc3QgY2hhciogc291
cmNlU3RhcnQsIGNvbnN0IGNoYXIqIHNvdXJjZUVuZCwgVUNoYXIqKiB0YXJnZXRTdGFydCwgVUNo
YXIqIHRhcmdldEVuZCwgYm9vbCogaXNTb3VyY2VBbGxBU0NJSSA9IG51bGxwdHIpOwogV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgY29udmVydExhdGluMVRvVVRGOChjb25zdCBMQ2hhcioqIHNvdXJj
ZVN0YXJ0LCBjb25zdCBMQ2hhciogc291cmNlRW5kLCBjaGFyKiogdGFyZ2V0U3RhcnQsIGNoYXIq
IHRhcmdldEVuZCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgQ29udmVyc2lvblJlc3VsdCBjb252ZXJ0
VVRGMTZUb1VURjgoY29uc3QgVUNoYXIqKiBzb3VyY2VTdGFydCwgY29uc3QgVUNoYXIqIHNvdXJj
ZUVuZCwgY2hhcioqIHRhcmdldFN0YXJ0LCBjaGFyKiB0YXJnZXRFbmQsIGJvb2wgc3RyaWN0ID0g
dHJ1ZSk7Ci0KIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBjYWxjdWxhdGVTdHJpbmdIYXNo
QW5kTGVuZ3RoRnJvbVVURjhNYXNraW5nVG9wOEJpdHMoY29uc3QgY2hhciogZGF0YSwgY29uc3Qg
Y2hhciogZGF0YUVuZCwgdW5zaWduZWQmIGRhdGFMZW5ndGgsIHVuc2lnbmVkJiB1dGYxNkxlbmd0
aCk7CiAKIC8vIENhbGxlcnMgb2YgdGhlc2UgZnVuY3Rpb25zIG11c3QgY2hlY2sgdGhhdCB0aGUg
bGVuZ3RocyBhcmUgdGhlIHNhbWU7IGFjY29yZGluZ2x5IHdlIG9taXQgYW4gZW5kIGFyZ3VtZW50
IGZvciBVVEYtMTYgYW5kIExhdGluLTEuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODYyNTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0xMS0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIENsZWFuIHVwIFVURi04IGNvbnZlcnNpb24gY29kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRC
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXRmOEJ1ZmZlcik6CisgICAgICAgICogeG1s
L3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFVURjE2RW50aXR5VG9VVEY4KToKKwogMjAyMS0xMS0yOSAgQ2hyaXMgRmxlaXphY2gg
IDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBVbmlmeSBzcGVlY2ggc3ludGhl
c2l6ZXIgcGxhdGZvcm0gdXNhZ2UgZm9yIE1hYy9pT1MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2hhcmVkQnVmZmVyLmNwcAkocmV2aXNpb24gMjg2MjU5KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI4LDcgKzUy
OCw3IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHV0ZjhCdWZmZXIoY29uc3QgU3QKICAgICAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNv
bnN0IFVDaGFyKiBkID0gc3RyaW5nLmNoYXJhY3RlcnMxNigpOwotICAgICAgICAgICAgaWYgKFdU
Rjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9VVEY4KCZkLCBkICsgbGVuZ3RoLCAmcCwgcCArIGJ1
ZmZlci5zaXplKCkpICE9IFdURjo6VW5pY29kZTo6Q29udmVyc2lvbk9LKQorICAgICAgICAgICAg
aWYgKFdURjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9VVEY4KCZkLCBkICsgbGVuZ3RoLCAmcCwg
cCArIGJ1ZmZlci5zaXplKCkpICE9IFdURjo6VW5pY29kZTo6Q29udmVyc2lvblJlc3VsdDo6U3Vj
Y2VzcykKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAJKHJldmlzaW9uIDI4NjI1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTE1OCw3ICsxMTU4LDcgQEAgc3RhdGljIHNpemVfdCBjb252ZXJ0VVRGMTZFbnRpdHlUb1VURjgo
YwogewogICAgIGNvbnN0IGNoYXIqIG9yaWdpbmFsVGFyZ2V0ID0gdGFyZ2V0OwogICAgIGF1dG8g
Y29udmVyc2lvblJlc3VsdCA9IFdURjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9VVEY4KCZ1dGYx
NkVudGl0eSwgdXRmMTZFbnRpdHkgKyBudW1iZXJPZkNvZGVVbml0cywgJnRhcmdldCwgdGFyZ2V0
ICsgdGFyZ2V0U2l6ZSk7Ci0gICAgaWYgKGNvbnZlcnNpb25SZXN1bHQgIT0gV1RGOjpVbmljb2Rl
OjpDb252ZXJzaW9uT0spCisgICAgaWYgKGNvbnZlcnNpb25SZXN1bHQgIT0gV1RGOjpVbmljb2Rl
OjpDb252ZXJzaW9uUmVzdWx0OjpTdWNjZXNzKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8v
IEV2ZW4gdGhvdWdoIHdlIG11c3QgcGFzcyB0aGUgbGVuZ3RoLCBsaWJ4bWwgZXhwZWN0cyB0aGUg
ZW50aXR5IHN0cmluZyB0byBiZSBudWxsIHRlcm1pbmF0ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNp
b24gMjg2MjU5KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMyBAQAorMjAyMS0xMS0yOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFuIHVwIFVURi04IGNvbnZlcnNpb24gY29kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tTdHJpbmcuY3BwOgorICAgICAgICAoV0tTdHJpbmdHZXRVVEY4Q1N0cmluZ0ltcGwp
OgorCiAyMDIxLTExLTI5ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQVg6IFVuaWZ5IHNwZWVjaCBzeW50aGVzaXplciBwbGF0Zm9ybSB1c2FnZSBmb3Ig
TWFjL2lPUwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcAkocmV2
aXNpb24gMjg2MjU5KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHNpemVfdCBXS1N0cmluZ0dldFVURjhD
U3RyaW5nSW1wbChXS1N0cmkKICAgICB9IGVsc2UgewogICAgICAgICBjb25zdCBVQ2hhciogY2hh
cmFjdGVycyA9IHN0cmluZ1ZpZXcuY2hhcmFjdGVyczE2KCk7CiAgICAgICAgIGF1dG8gcmVzdWx0
ID0gV1RGOjpVbmljb2RlOjpjb252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMsIGNoYXJhY3Rl
cnMgKyBzdHJpbmdWaWV3Lmxlbmd0aCgpLCAmcCwgcCArIGJ1ZmZlclNpemUgLSAxLCBzdHJpY3Qp
OwotICAgICAgICBpZiAocmVzdWx0ICE9IFdURjo6VW5pY29kZTo6Q29udmVyc2lvbk9LICYmIHJl
c3VsdCAhPSBXVEY6OlVuaWNvZGU6OlRhcmdldEV4aGF1c3RlZCkKKyAgICAgICAgaWYgKHJlc3Vs
dCAhPSBXVEY6OlVuaWNvZGU6OkNvbnZlcnNpb25SZXN1bHQ6OlN1Y2Nlc3MgJiYgcmVzdWx0ICE9
IFdURjo6VW5pY29kZTo6Q29udmVyc2lvblJlc3VsdDo6VGFyZ2V0RXhoYXVzdGVkKQogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454047</attachid>
            <date>2022-03-07 16:21:06 -0800</date>
            <delta_ts>2022-10-10 10:03:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233612-20220307162105.patch</filename>
            <type>text/plain</type>
            <size>24513</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjkwOTY0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDIyLTAzLTA3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQ2xlYW4gdXAgVVRGLTggY29udmVyc2lvbiBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM2MTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU1N0cmluZ1JlZi5jcHA6
CisgICAgICAgIChKU1N0cmluZ0dldFVURjhDU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0Nv
bnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoSlNDOjpDb25zb2xlQ2xpZW50OjpwcmludENvbnNv
bGVNZXNzYWdlV2l0aEFyZ3VtZW50cyk6CisgICAgICAgIE1ha2UgdGhpcyBmdW5jdGlvbiBtb3Jl
IHJvYnVzdCBhZ2FpbnN0IGxhcmdlIHN0cmluZ3MgZnJvbSBKUywgd2hpY2ggaGFwcGVucyBpbiB0
aGUgdGVzdCBqcy90aHJvdy1sYXJnZS1zdHJpbmctb29tLmh0bWwKKwogMjAyMi0wMy0wNyAgQW5n
ZWxvcyBPaWtvbm9tb3BvdWxvcyAgPGFuZ2Vsb3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBBc3Nl
bWJseUhlbHBlcnNTcG9vbGVyczogdXNlIGxvYWQvc3RvcmUgcGFpciBvbiBBUk12NwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1N0cmluZ1JlZi5jcHAJKHJldmlzaW9uIDI5MDk2
NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTdHJpbmdSZWYuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDksNyArMTA5LDcgQEAgc2l6ZV90IEpTU3RyaW5nR2V0VVRGOENTdHJpbmco
SlNTdHJpbmdSZQogICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBzb3VyY2UgPSBz
dHJpbmctPmNoYXJhY3RlcnMxNigpOwogICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbnZlcnRVVEYx
NlRvVVRGOCgmc291cmNlLCBzb3VyY2UgKyBzdHJpbmctPmxlbmd0aCgpLCAmZGVzdGluYXRpb24s
IGRlc3RpbmF0aW9uICsgYnVmZmVyU2l6ZSAtIDEpOwotICAgICAgICBmYWlsZWQgPSByZXN1bHQg
IT0gQ29udmVyc2lvbk9LICYmIHJlc3VsdCAhPSBUYXJnZXRFeGhhdXN0ZWQ7CisgICAgICAgIGZh
aWxlZCA9IHJlc3VsdCAhPSBDb252ZXJzaW9uUmVzdWx0OjpTdWNjZXNzICYmIHJlc3VsdCAhPSBD
b252ZXJzaW9uUmVzdWx0OjpUYXJnZXRFeGhhdXN0ZWQ7CiAgICAgfQogCiAgICAgKmRlc3RpbmF0
aW9uKysgPSAnXDAnOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29uc29sZUNsaWVudC5jcHAJKHJldmlzaW9uIDI5MDk2NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNyAr
MjEwLDcgQEAgdm9pZCBDb25zb2xlQ2xpZW50OjpwcmludENvbnNvbGVNZXNzYWdlVwogICAgIFJl
ZjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjayA9IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNv
bnNvbGUoZ2xvYmFsT2JqZWN0LCBzdGFja1NpemUpOwogICAgIGNvbnN0IFNjcmlwdENhbGxGcmFt
ZSYgbGFzdENhbGxlciA9IGNhbGxTdGFjay0+YXQoMCk7CiAKLSAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyKFN0cmluZ0J1aWxkZXI6Ok92ZXJmbG93
SGFuZGxlcjo6UmVjb3JkT3ZlcmZsb3cpOwogCiAgICAgaWYgKCFsYXN0Q2FsbGVyLnNvdXJjZVVS
TCgpLmlzRW1wdHkoKSkgewogICAgICAgICBhcHBlbmRVUkxBbmRQb3NpdGlvbihidWlsZGVyLCBs
YXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxl
ci5jb2x1bW5OdW1iZXIoKSk7CkBAIC0yMjYsNyArMjI2LDEwIEBAIHZvaWQgQ29uc29sZUNsaWVu
dDo6cHJpbnRDb25zb2xlTWVzc2FnZVcKICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsK
ICAgICB9CiAKLSAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIGlmIChidWlsZGVyLmhhc092ZXJmbG93ZWQoKSkKKyAgICAgICAgV1RG
TG9nQWx3YXlzKCJDb25zb2xlIG1lc3NhZ2UgZXhjZWVkZWQgbWF4aW11bSBsZW5ndGguIik7Cisg
ICAgZWxzZQorICAgICAgICBXVEZMb2dBbHdheXMoIiVzIiwgYnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwogCiAgICAgaWYgKGlzVHJhY2VNZXNzYWdlKSB7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2FsbFN0YWNrLT5zaXplKCk7ICsraSkgewpJbmRleDogU291cmNl
L1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI5MDk2NCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjItMDMtMDcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBVVEYtOCBjb252ZXJzaW9uIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzYxMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
ZG9lcyB0aGVzZSA1IHRoaW5nczoKKworICAgICAgICAxLiBVc2UgYW4gZW51bSBjbGFzcyBmb3Ig
Q29udmVyc2lvblJlc3VsdCBpbnN0YWQgb2YgYW4gZW51bS4KKyAgICAgICAgMi4gUmVtb3ZlIHNv
bWUgZHVwbGljYXRlIGNvZGUgYW5kIG1vdmUgdGhpbmdzIGFyb3VuZCBzbyB0aGVyZSBpcyBqdXN0
IGEgdXRmOEZvckNoYXJhY3RlcnMKKyAgICAgICAgZm9yIExDaGFyIGFuZCBvbmUgZm9yIFVDaGFy
IGluc3RlYWQgb2YgYSB1dGY4SW1wbCB0aGF0IGlzIGNhbGxlZCBmcm9tIHR3byBkaWZmZXJlbnQg
Y29udmVyc2lvbiBmdW5jdGlvbnMuCisgICAgICAgIDMuIE9ubHkgYWxsb2NhdGUgYSBtYXhpbXVt
IG9mIGxlbmd0aCAqIDIgYnl0ZXMgd2hlbiBjb252ZXJ0aW5nIExDaGFyIHRvIFVURi04IGJlY2F1
c2UgdGhhdCBpcyB0aGUgbG9uZ2VzdAorICAgICAgICBsZW5ndGggYW4gTENoYXIgY2FuIHRha2Ug
d2hlbiBpdCBpcyBjb252ZXJ0ZWQgdG8gVVRGLTguICBUaGlzIGlzIHRoZSBvbmx5IGNoYW5nZSBp
biBiZWhhdmlvciwgYW5kIGl0IGp1c3QKKyAgICAgICAgc2FmZWx5IHJlZHVjZXMgbWVtb3J5IHVz
ZSBhIGxpdHRsZS4KKyAgICAgICAgNC4gVXNlIHN3aXRjaCBzdGF0ZW1lbnRzIGZvciB0aGUgY29u
dmVyc2lvbiBtb2RlIGFuZCByZXN1bHRzIGluc3RlYWQgb2YgaWYgc3RhdGVtZW50cy4KKyAgICAg
ICAgNS4gVXNlIFU4X0FQUEVORF9VTlNBRkUgaW5zdGVhZCBvZiBvdXIgb3duIGltcGxlbWVudGF0
aW9uIG9mIHRoZSBzYW1lIHRoaW5nIHdoZW4gbGVuaWVudGx5IGNvbnZlcnRpbmcgbWlzbWF0Y2hl
ZAorICAgICAgICBzdXJyb2dhdGUgcGFpcnMgYXQgdGhlIGVuZCBvZiBVVEYtMTYgc3RyaW5ncy4K
KworICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpwdXRV
VEY4VHJpcGxlKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dXRmOEZvckNoYXJhY3RlcnMp
OgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlHZXRVdGY4IGNvbnN0KToKKyAgICAgICAg
KFdURjo6U3RyaW5nSW1wbDo6dXRmOCBjb25zdCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6
OnV0ZjhJbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6dHJ5R2V0VXRm
OEZvclJhbmdlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBs
Lmg6CisgICAgICAgICogd3RmL3RleHQvVVRGOENvbnZlcnNpb25FcnJvci5oOgorICAgICAgICAq
IHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZzo6dXRmOCBjb25z
dCk6CisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgICogd3RmL3VuaWNv
ZGUvVVRGOENvbnZlcnNpb24uY3BwOgorICAgICAgICAoV1RGOjpVbmljb2RlOjpjb252ZXJ0TGF0
aW4xVG9VVEY4KToKKyAgICAgICAgKFdURjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9VVEY4KToK
KyAgICAgICAgKiB3dGYvdW5pY29kZS9VVEY4Q29udmVyc2lvbi5oOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKwogMjAyMi0wMy0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIE9wdGltaXplIHRoZSBwYXNzaW5nIG9mIGRhdGEgYWNyb3NzIHRocmVhZHMKSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAkocmV2aXNpb24gMjkwOTY0KQorKysgU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2NCwyMyAr
MTY2NCwzNSBAQCBzaXplX3QgU3RyaW5nSW1wbDo6c2l6ZUluQnl0ZXMoKSBjb25zdAogc3RhdGlj
IGlubGluZSB2b2lkIHB1dFVURjhUcmlwbGUoY2hhciomIGJ1ZmZlciwgVUNoYXIgY2hhcmFjdGVy
KQogewogICAgIEFTU0VSVChjaGFyYWN0ZXIgPj0gMHgwODAwKTsKLSAgICAqYnVmZmVyKysgPSBz
dGF0aWNfY2FzdDxjaGFyPigoKGNoYXJhY3RlciA+PiAxMikgJiAweDBGKSB8IDB4RTApOwotICAg
ICpidWZmZXIrKyA9IHN0YXRpY19jYXN0PGNoYXI+KCgoY2hhcmFjdGVyID4+IDYpICYgMHgzRikg
fCAweDgwKTsKLSAgICAqYnVmZmVyKysgPSBzdGF0aWNfY2FzdDxjaGFyPigoY2hhcmFjdGVyICYg
MHgzRikgfCAweDgwKTsKKyAgICBpbnQgaSA9IDA7CisgICAgVThfQVBQRU5EX1VOU0FGRShidWZm
ZXIsIGksIGNoYXJhY3Rlcik7CisgICAgQVNTRVJUKGkgPT0gMyk7CisgICAgYnVmZmVyICs9IGk7
CiB9CiAKLVVURjhDb252ZXJzaW9uRXJyb3IgU3RyaW5nSW1wbDo6dXRmOEltcGwoY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgY2hhciomIGJ1ZmZlciwgc2l6ZV90IGJ1
ZmZlclNpemUsIENvbnZlcnNpb25Nb2RlIG1vZGUpCitFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29u
dmVyc2lvbkVycm9yPiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBDb252ZXJzaW9uTW9kZSBtb2RlKQogewotICAg
IGlmIChtb2RlID09IFN0cmljdENvbnZlcnNpb25SZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNX
aXRoRkZGRCkgewotICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyc0VuZCA9IGNoYXJhY3Rl
cnMgKyBsZW5ndGg7Ci0gICAgICAgIGNoYXIqIGJ1ZmZlckVuZCA9IGJ1ZmZlciArIGJ1ZmZlclNp
emU7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybiBDU3RyaW5nKCIiLCAwKTsKKwor
ICAgIGlmIChsZW5ndGggPiBNYXhMZW5ndGggLyAzKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoVVRGOENvbnZlcnNpb25FcnJvcjo6T3V0T2ZNZW1vcnkpOworCisgICAgc2l6ZV90IGJ1
ZmZlclNpemUgPSBsZW5ndGggKiAzOworICAgIFZlY3RvcjxjaGFyLCAxMDI0PiBidWZmZXJWZWN0
b3IoYnVmZmVyU2l6ZSk7CisgICAgY2hhciogYnVmZmVyID0gYnVmZmVyVmVjdG9yLmRhdGEoKTsK
KyAgICBjb25zdCBVQ2hhciogY29uc3QgY2hhcmFjdGVyc0VuZCA9IGNoYXJhY3RlcnMgKyBsZW5n
dGg7CisgICAgY2hhciogY29uc3QgYnVmZmVyRW5kID0gYnVmZmVyICsgYnVmZmVyU2l6ZTsKKwor
ICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgU3RyaWN0Q29udmVyc2lvblJlcGxhY2luZ1Vu
cGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEOiB7CiAgICAgICAgIHdoaWxlIChjaGFyYWN0ZXJzIDwg
Y2hhcmFjdGVyc0VuZCkgewogICAgICAgICAgICAgLy8gVXNlIHN0cmljdCBjb252ZXJzaW9uIHRv
IGRldGVjdCB1bnBhaXJlZCBzdXJyb2dhdGVzLgogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBj
b252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMsIGNoYXJhY3RlcnNFbmQsICZidWZmZXIsIGJ1
ZmZlckVuZCk7Ci0gICAgICAgICAgICBBU1NFUlQocmVzdWx0ICE9IFRhcmdldEV4aGF1c3RlZCk7
CisgICAgICAgICAgICBBU1NFUlQocmVzdWx0ICE9IENvbnZlcnNpb25SZXN1bHQ6OlRhcmdldEV4
aGF1c3RlZCk7CiAgICAgICAgICAgICAvLyBDb252ZXJzaW9uIGZhaWxzIHdoZW4gdGhlcmUgaXMg
YW4gdW5wYWlyZWQgc3Vycm9nYXRlLgogICAgICAgICAgICAgLy8gUHV0IHJlcGxhY2VtZW50IGNo
YXJhY3RlciAoVStGRkZEKSBpbnN0ZWFkIG9mIHRoZSB1bnBhaXJlZCBzdXJyb2dhdGUuCi0gICAg
ICAgICAgICBpZiAocmVzdWx0ICE9IENvbnZlcnNpb25PSykgeworICAgICAgICAgICAgaWYgKHJl
c3VsdCAhPSBDb252ZXJzaW9uUmVzdWx0OjpTdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKCgweEQ4MDAgPD0gKmNoYXJhY3RlcnMgJiYgKmNoYXJhY3RlcnMgPD0gMHhERkZGKSk7CiAg
ICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ugb25lIFVD
aGFyIGhhc24ndCBiZWVuIGNvbnZlcnRlZC4KICAgICAgICAgICAgICAgICBBU1NFUlQoKGJ1ZmZl
ciArIDMpIDw9IGJ1ZmZlckVuZCk7CkBAIC0xNjg4LDExMSArMTcwMCw2NiBAQCBVVEY4Q29udmVy
c2lvbkVycm9yIFN0cmluZ0ltcGw6OnV0ZjhJbXBsCiAgICAgICAgICAgICAgICAgKytjaGFyYWN0
ZXJzOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorICAgIGNhc2UgU3RyaWN0Q29udmVyc2lvbjoKKyAgICBjYXNlIExlbmllbnRD
b252ZXJzaW9uOiB7CiAgICAgICAgIGJvb2wgc3RyaWN0ID0gbW9kZSA9PSBTdHJpY3RDb252ZXJz
aW9uOwotICAgICAgICBjb25zdCBVQ2hhciogb3JpZ2luYWxDaGFyYWN0ZXJzID0gY2hhcmFjdGVy
czsKLSAgICAgICAgYXV0byByZXN1bHQgPSBjb252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMs
IGNoYXJhY3RlcnMgKyBsZW5ndGgsICZidWZmZXIsIGJ1ZmZlciArIGJ1ZmZlclNpemUsIHN0cmlj
dCk7Ci0gICAgICAgIEFTU0VSVChyZXN1bHQgIT0gVGFyZ2V0RXhoYXVzdGVkKTsgLy8gKGxlbmd0
aCAqIDMpIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lvbgorICAgICAgICBh
dXRvIGNvbnZlcnNpb25SZXN1bHQgPSBjb252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMsIGNo
YXJhY3RlcnNFbmQsICZidWZmZXIsIGJ1ZmZlckVuZCwgc3RyaWN0KTsKKyAgICAgICAgc3dpdGNo
IChjb252ZXJzaW9uUmVzdWx0KSB7CisgICAgICAgIGNhc2UgQ29udmVyc2lvblJlc3VsdDo6U3Vj
Y2VzczoKKyAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIC8vIE9ubHkgcHJvZHVjZWQgZnJv
bSBzdHJpY3QgY29udmVyc2lvbi4KLSAgICAgICAgaWYgKHJlc3VsdCA9PSBTb3VyY2VJbGxlZ2Fs
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoc3RyaWN0KTsKLSAgICAgICAgICAgIHJldHVybiBVVEY4
Q29udmVyc2lvbkVycm9yOjpJbGxlZ2FsU291cmNlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
Q2hlY2sgZm9yIGFuIHVuY29udmVydGVkIGhpZ2ggc3Vycm9nYXRlLgotICAgICAgICBpZiAocmVz
dWx0ID09IFNvdXJjZUV4aGF1c3RlZCkgeworICAgICAgICBjYXNlIENvbnZlcnNpb25SZXN1bHQ6
OlNvdXJjZUV4aGF1c3RlZDoKICAgICAgICAgICAgIGlmIChzdHJpY3QpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIFVURjhDb252ZXJzaW9uRXJyb3I6OlNvdXJjZUV4aGF1c3RlZDsKLSAgICAgICAg
ICAgIC8vIFRoaXMgc2hvdWxkIGJlIG9uZSB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZS4gVHJlYXQg
aXQgdGhlIHNhbWUKLSAgICAgICAgICAgIC8vIHdhcyBhcyBhbiB1bnBhaXJlZCBoaWdoIHN1cnJv
Z2F0ZSB3b3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBpbgotICAgICAgICAgICAgLy8gdGhlIG1pZGRs
ZSBvZiBhIHN0cmluZyB3aXRoIG5vbi1zdHJpY3QgY29udmVyc2lvbiAtIHdoaWNoIGlzCi0gICAg
ICAgICAgICAvLyB0byBzYXksIHNpbXBseSBlbmNvZGUgaXQgdG8gVVRGLTguCi0gICAgICAgICAg
ICBBU1NFUlRfVU5VU0VEKAotICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2hhcmFjdGVycywgKGNo
YXJhY3RlcnMgKyAxKSA9PSAob3JpZ2luYWxDaGFyYWN0ZXJzICsgbGVuZ3RoKSk7Ci0gICAgICAg
ICAgICBBU1NFUlQoKCpjaGFyYWN0ZXJzID49IDB4RDgwMCkgJiYgKCpjaGFyYWN0ZXJzIDw9IDB4
REJGRikpOwotICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ug
b25lIFVDaGFyIGhhc24ndCBiZWVuIGNvbnZlcnRlZC4KLSAgICAgICAgICAgIEFTU0VSVCgoYnVm
ZmVyICsgMykgPD0gKGJ1ZmZlciArIGJ1ZmZlclNpemUpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoVVRGOENvbnZlcnNpb25FcnJvcjo6U291cmNlRXhoYXVzdGVkKTsK
KyAgICAgICAgICAgIEFTU0VSVChjaGFyYWN0ZXJzICsgMSA9PSBjaGFyYWN0ZXJzRW5kKTsKKyAg
ICAgICAgICAgIEFTU0VSVCgoMHhEODAwIDw9ICpjaGFyYWN0ZXJzICYmICpjaGFyYWN0ZXJzIDw9
IDB4REZGRikpOwogICAgICAgICAgICAgcHV0VVRGOFRyaXBsZShidWZmZXIsICpjaGFyYWN0ZXJz
KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgQ29udmVyc2lvblJlc3VsdDo6
VGFyZ2V0RXhoYXVzdGVkOgorICAgICAgICAgICAgLy8gKGxlbmd0aCAqIDMpIHNob3VsZCBiZSBz
dWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lvbi4KKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENvbnZl
cnNpb25SZXN1bHQ6OlNvdXJjZUlsbGVnYWw6CisgICAgICAgICAgICAvLyBPbmx5IHByb2R1Y2Vk
IGZyb20gc3RyaWN0IGNvbnZlcnNpb24uCisgICAgICAgICAgICBBU1NFUlQoc3RyaWN0KTsKKyAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChVVEY4Q29udmVyc2lvbkVycm9yOjpJbGxl
Z2FsU291cmNlKTsKKyAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIHJldHVy
biBVVEY4Q29udmVyc2lvbkVycm9yOjpOb25lOwotfQotCi1FeHBlY3RlZDxDU3RyaW5nLCBVVEY4
Q29udmVyc2lvbkVycm9yPiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjb25zdCBMQ2hh
ciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIGlmICghbGVuZ3RoKQotICAg
ICAgICByZXR1cm4gQ1N0cmluZygiIiwgMCk7Ci0gICAgaWYgKGxlbmd0aCA+IE1heExlbmd0aCAv
IDMpCi0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChVVEY4Q29udmVyc2lvbkVycm9yOjpP
dXRPZk1lbW9yeSk7Ci0gICAgVmVjdG9yPGNoYXIsIDEwMjQ+IGJ1ZmZlclZlY3RvcihsZW5ndGgg
KiAzKTsKLSAgICBjaGFyKiBidWZmZXIgPSBidWZmZXJWZWN0b3IuZGF0YSgpOwotICAgIGNvbnN0
IExDaGFyKiBzb3VyY2UgPSBjaGFyYWN0ZXJzOwotICAgIGJvb2wgc3VjY2VzcyA9IGNvbnZlcnRM
YXRpbjFUb1VURjgoJnNvdXJjZSwgc291cmNlICsgbGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBi
dWZmZXJWZWN0b3Iuc2l6ZSgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3Mp
OyAvLyAobGVuZ3RoICogMykgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGFueSBjb252ZXJzaW9u
CiAgICAgcmV0dXJuIENTdHJpbmcoYnVmZmVyVmVjdG9yLmRhdGEoKSwgYnVmZmVyIC0gYnVmZmVy
VmVjdG9yLmRhdGEoKSk7CiB9CiAKLUV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJy
b3I+IFN0cmluZ0ltcGw6OnV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgsIENvbnZlcnNpb25Nb2RlIG1vZGUpCitFeHBlY3RlZDxDU3RyaW5n
LCBVVEY4Q29udmVyc2lvbkVycm9yPiBTdHJpbmdJbXBsOjp1dGY4Rm9yQ2hhcmFjdGVycyhjb25z
dCBMQ2hhciogc291cmNlLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCiAg
ICAgICAgIHJldHVybiBDU3RyaW5nKCIiLCAwKTsKLSAgICBpZiAobGVuZ3RoID4gTWF4TGVuZ3Ro
IC8gMykKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFVURjhDb252ZXJzaW9uRXJyb3I6
Ok91dE9mTWVtb3J5KTsKLSAgICBWZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9yKGxlbmd0
aCAqIDMpOwotICAgIGNoYXIqIGJ1ZmZlciA9IGJ1ZmZlclZlY3Rvci5kYXRhKCk7Ci0gICAgVVRG
OENvbnZlcnNpb25FcnJvciBlcnJvciA9IHV0ZjhJbXBsKGNoYXJhY3RlcnMsIGxlbmd0aCwgYnVm
ZmVyLCBidWZmZXJWZWN0b3Iuc2l6ZSgpLCBtb2RlKTsKLSAgICBpZiAoZXJyb3IgIT0gVVRGOENv
bnZlcnNpb25FcnJvcjo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9y
KTsKLSAgICByZXR1cm4gQ1N0cmluZyhidWZmZXJWZWN0b3IuZGF0YSgpLCBidWZmZXIgLSBidWZm
ZXJWZWN0b3IuZGF0YSgpKTsKLX0KLQotRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25F
cnJvcj4gU3RyaW5nSW1wbDo6dHJ5R2V0VXRmOEZvclJhbmdlKHVuc2lnbmVkIG9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoLCBDb252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAotewotICAgIEFTU0VSVChv
ZmZzZXQgPD0gdGhpcy0+bGVuZ3RoKCkpOwotICAgIEFTU0VSVChvZmZzZXQgKyBsZW5ndGggPD0g
dGhpcy0+bGVuZ3RoKCkpOwogICAgIAotICAgIGlmICghbGVuZ3RoKQotICAgICAgICByZXR1cm4g
Q1N0cmluZygiIiwgMCk7Ci0KLSAgICAvLyBBbGxvY2F0ZSBhIGJ1ZmZlciBiaWcgZW5vdWdoIHRv
IGhvbGQgYWxsIHRoZSBjaGFyYWN0ZXJzCi0gICAgLy8gKGFuIGluZGl2aWR1YWwgVVRGLTE2IFVD
aGFyIGNhbiBvbmx5IGV4cGFuZCB0byAzIFVURi04IGJ5dGVzKS4KLSAgICAvLyBPcHRpbWl6YXRp
b24gaWRlYXMsIGlmIHdlIGZpbmQgdGhpcyBmdW5jdGlvbiBpcyBob3Q6Ci0gICAgLy8gICogV2Ug
Y291bGQgc3BlY3VsYXRpdmVseSBjcmVhdGUgYSBDU3RyaW5nQnVmZmVyIHRvIGNvbnRhaW4gJ2xl
bmd0aCcgCi0gICAgLy8gICAgY2hhcmFjdGVycywgYW5kIHJlc2l6ZSBpZiBuZWNlc3NhcnkgKGku
ZS4gaWYgdGhlIGJ1ZmZlciBjb250YWlucwotICAgIC8vICAgIG5vbi1hc2NpaSBjaGFyYWN0ZXJz
KS4gKEFsdGVybmF0aXZlbHksIHNjYW4gdGhlIGJ1ZmZlciBmaXJzdCBmb3IKLSAgICAvLyAgICBh
c2NpaSBjaGFyYWN0ZXJzLCBzbyB3ZSBrbm93IHRoaXMgd2lsbCBiZSBzdWZmaWNpZW50KS4KLSAg
ICAvLyAgKiBXZSBjb3VsZCBhbGxvY2F0ZSBhIENTdHJpbmdCdWZmZXIgd2l0aCBhbiBhcHByb3By
aWF0ZSBzaXplIHRvCi0gICAgLy8gICAgaGF2ZSBhIGdvb2QgY2hhbmNlIG9mIGJlaW5nIGFibGUg
dG8gd3JpdGUgdGhlIHN0cmluZyBpbnRvIHRoZQotICAgIC8vICAgIGJ1ZmZlciB3aXRob3V0IHJl
YWxsb2NpbmcgKHNheSwgMS41IHggbGVuZ3RoKS4KLSAgICBpZiAobGVuZ3RoID4gTWF4TGVuZ3Ro
IC8gMykKKyAgICBpZiAobGVuZ3RoID4gTWF4TGVuZ3RoIC8gMikKICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKFVURjhDb252ZXJzaW9uRXJyb3I6Ok91dE9mTWVtb3J5KTsKLSAgICBWZWN0
b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9yKGxlbmd0aCAqIDMpOwogCisgICAgYXV0byBidWZm
ZXJTaXplID0gbGVuZ3RoICogMjsKKyAgICBWZWN0b3I8Y2hhciwgMTAyND4gYnVmZmVyVmVjdG9y
KGJ1ZmZlclNpemUpOwogICAgIGNoYXIqIGJ1ZmZlciA9IGJ1ZmZlclZlY3Rvci5kYXRhKCk7Ci0K
LSAgICBpZiAoaXM4Qml0KCkpIHsKLSAgICAgICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSB0
aGlzLT5jaGFyYWN0ZXJzOCgpICsgb2Zmc2V0OwotICAgICAgICBhdXRvIHN1Y2Nlc3MgPSBjb252
ZXJ0TGF0aW4xVG9VVEY4KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzICsgbGVuZ3RoLCAmYnVmZmVy
LCBidWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpKTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChz
dWNjZXNzLCBzdWNjZXNzKTsgLy8gKGxlbmd0aCAqIDMpIHNob3VsZCBiZSBzdWZmaWNpZW50IGZv
ciBhbnkgY29udmVyc2lvbgotICAgIH0gZWxzZSB7Ci0gICAgICAgIFVURjhDb252ZXJzaW9uRXJy
b3IgZXJyb3IgPSB1dGY4SW1wbCh0aGlzLT5jaGFyYWN0ZXJzMTYoKSArIG9mZnNldCwgbGVuZ3Ro
LCBidWZmZXIsIGJ1ZmZlclZlY3Rvci5zaXplKCksIG1vZGUpOwotICAgICAgICBpZiAoZXJyb3Ig
IT0gVVRGOENvbnZlcnNpb25FcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChlcnJvcik7Ci0gICAgfQotCisgICAgY2hhciogY29uc3QgYnVmZmVyRW5kID0gYnVm
ZmVyICsgYnVmZmVyU2l6ZTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjb252ZXJ0TGF0aW4xVG9VVEY4
KCZzb3VyY2UsIHNvdXJjZSArIGxlbmd0aCwgJmJ1ZmZlciwgYnVmZmVyRW5kKTsKKyAgICBBU1NF
UlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOyAvLyBsZW5ndGggKiAyIHNob3VsZCBhbHdheXMg
YmUgbGFyZ2UgZW5vdWdoIGZvciBjb252ZXJ0aW5nIGZyb20gTGF0aW4tMS4KICAgICByZXR1cm4g
Q1N0cmluZyhidWZmZXJWZWN0b3IuZGF0YSgpLCBidWZmZXIgLSBidWZmZXJWZWN0b3IuZGF0YSgp
KTsKIH0KIAogRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gU3RyaW5nSW1w
bDo6dHJ5R2V0VXRmOChDb252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAogewotICAgIHJldHVybiB0
cnlHZXRVdGY4Rm9yUmFuZ2UoMCwgbGVuZ3RoKCksIG1vZGUpOworICAgIGlmIChpczhCaXQoKSkK
KyAgICAgICAgcmV0dXJuIHV0ZjhGb3JDaGFyYWN0ZXJzKGNoYXJhY3RlcnM4KCksIGxlbmd0aCgp
KTsKKyAgICByZXR1cm4gdXRmOEZvckNoYXJhY3RlcnMoY2hhcmFjdGVyczE2KCksIGxlbmd0aCgp
LCBtb2RlKTsKIH0KIAogQ1N0cmluZyBTdHJpbmdJbXBsOjp1dGY4KENvbnZlcnNpb25Nb2RlIG1v
ZGUpIGNvbnN0CiB7Ci0gICAgYXV0byBleHBlY3RlZFN0cmluZyA9IHRyeUdldFV0ZjhGb3JSYW5n
ZSgwLCBsZW5ndGgoKSwgbW9kZSk7CisgICAgYXV0byBleHBlY3RlZFN0cmluZyA9IHRyeUdldFV0
ZjgobW9kZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhwZWN0ZWRTdHJpbmcpOwogICAgIHJldHVy
biBleHBlY3RlZFN0cmluZy52YWx1ZSgpOwogfQpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBs
LmgJKHJldmlzaW9uIDI5MDk2NCkKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsMTMgKzMxNCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFdURl9FWFBPUlRfUFJJVkFURSBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9y
PiB1dGY4Rm9yQ2hhcmFjdGVycyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICBzdGF0aWMgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVU
RjhDb252ZXJzaW9uRXJyb3I+IHV0ZjhGb3JDaGFyYWN0ZXJzKGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBsZW5ndGgsIENvbnZlcnNpb25Nb2RlID0gTGVuaWVudENvbnZlcnNpb24p
OwogCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJz
aW9uRXJyb3I+IHRyeUdldFV0ZjhGb3JSYW5nZSh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxl
bmd0aCwgQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRy
eUdldFV0ZjgoQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOChDb252ZXJzaW9uTW9kZSA9IExlbmllbnRD
b252ZXJzaW9uKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICBzdGF0aWMgV1RGX0VYUE9SVF9QUklW
QVRFIFVURjhDb252ZXJzaW9uRXJyb3IgdXRmOEltcGwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCwgY2hhciomIGJ1ZmZlciwgc2l6ZV90IGJ1ZmZlclNpemUsIENvbnZl
cnNpb25Nb2RlKTsKLSAgICAKK3ByaXZhdGU6ICAgIAogICAgIC8vIFRoZSBoaWdoIGJpdHMgb2Yg
J2hhc2gnIGFyZSBhbHdheXMgZW1wdHksIGJ1dCB3ZSBwcmVmZXIgdG8gc3RvcmUgb3VyIGZsYWdz
CiAgICAgLy8gaW4gdGhlIGxvdyBiaXRzIGJlY2F1c2UgaXQgbWFrZXMgdGhlbSBzbGlnaHRseSBt
b3JlIGVmZmljaWVudCB0byBhY2Nlc3MuCiAgICAgLy8gU28sIHdlIHNoaWZ0IGxlZnQgYW5kIHJp
Z2h0IHdoZW4gc2V0dGluZyBhbmQgZ2V0dGluZyBvdXIgaGFzaCBjb2RlLgpJbmRleDogU291cmNl
L1dURi93dGYvdGV4dC9VVEY4Q29udmVyc2lvbkVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvdGV4dC9VVEY4Q29udmVyc2lvbkVycm9yLmgJKHJldmlzaW9uIDI5MDk2NCkKKysr
IFNvdXJjZS9XVEYvd3RmL3RleHQvVVRGOENvbnZlcnNpb25FcnJvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw4ICsyNyw3IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi1lbnVtIGNsYXNzIFVURjhD
b252ZXJzaW9uRXJyb3IgewotICAgIE5vbmUsCitlbnVtIGNsYXNzIFVURjhDb252ZXJzaW9uRXJy
b3IgOiB1aW50OF90IHsKICAgICBPdXRPZk1lbW9yeSwKICAgICBJbGxlZ2FsU291cmNlLAogICAg
IFNvdXJjZUV4aGF1c3RlZApJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAkocmV2aXNp
b24gMjkwOTY0KQorKysgU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OTIsMTEgKzY5Miw2IEBAIENTdHJpbmcgU3RyaW5nOjp1dGY4KENvbnZlcnNp
b25Nb2RlIG1vZGUKICAgICByZXR1cm4gZXhwZWN0ZWRTdHJpbmcudmFsdWUoKTsKIH0KIAotQ1N0
cmluZyBTdHJpbmc6OnV0ZjgoKSBjb25zdAotewotICAgIHJldHVybiB1dGY4KExlbmllbnRDb252
ZXJzaW9uKTsKLX0KLQogU3RyaW5nIFN0cmluZzo6bWFrZThCaXRGcm9tMTZCaXRTb3VyY2UoY29u
c3QgVUNoYXIqIHNvdXJjZSwgc2l6ZV90IGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAkocmV2aXNpb24gMjkwOTY0KQorKysgU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDggKzEzOCw3IEBA
IHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgQ1N0cmluZyBhc2NpaSgpIGNvbnN0Owog
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBDU3RyaW5nIGxhdGluMSgpIGNvbnN0OwogCi0gICAgV1RG
X0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOChDb252ZXJzaW9uTW9kZSkgY29uc3Q7Ci0gICAg
V1RGX0VYUE9SVF9QUklWQVRFIENTdHJpbmcgdXRmOCgpIGNvbnN0OworICAgIFdURl9FWFBPUlRf
UFJJVkFURSBDU3RyaW5nIHV0ZjgoQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikg
Y29uc3Q7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENv
bnZlcnNpb25FcnJvcj4gdHJ5R2V0VXRmOChDb252ZXJzaW9uTW9kZSkgY29uc3Q7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIEV4cGVjdGVkPENTdHJpbmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IHRy
eUdldFV0ZjgoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRGOENvbnZl
cnNpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRGOENvbnZl
cnNpb24uY3BwCShyZXZpc2lvbiAyOTA5NjQpCisrKyBTb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VU
RjhDb252ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMjAgKzMxLDIwIEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaGVyLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hh
cmFjdGVyTmFtZXMuaD4KIAotbmFtZXNwYWNlIFdURiB7Ci1uYW1lc3BhY2UgVW5pY29kZSB7Citu
YW1lc3BhY2UgV1RGOjpVbmljb2RlIHsKIAogYm9vbCBjb252ZXJ0TGF0aW4xVG9VVEY4KGNvbnN0
IExDaGFyKiogc291cmNlU3RhcnQsIGNvbnN0IExDaGFyKiBzb3VyY2VFbmQsIGNoYXIqKiB0YXJn
ZXRTdGFydCwgY2hhciogdGFyZ2V0RW5kKQogewogICAgIGNvbnN0IExDaGFyKiBzb3VyY2U7CiAg
ICAgY2hhciogdGFyZ2V0ID0gKnRhcmdldFN0YXJ0OwotICAgIGludCBpID0gMDsKKyAgICBpbnQz
Ml90IGkgPSAwOwogICAgIGZvciAoc291cmNlID0gKnNvdXJjZVN0YXJ0OyBzb3VyY2UgPCBzb3Vy
Y2VFbmQ7ICsrc291cmNlKSB7CiAgICAgICAgIFVCb29sIHNhd0Vycm9yID0gZmFsc2U7CiAgICAg
ICAgIC8vIFdvcmsgYXJvdW5kIGJ1ZyBpbiBlaXRoZXIgV2luZG93cyBjb21waWxlciBvciBvbGQg
dmVyc2lvbiBvZiBJQ1UsIHdoZXJlIHBhc3NpbmcgYSB1aW50OF90IHRvCiAgICAgICAgIC8vIFU4
X0FQUEVORCB3YXJucywgYnkgY29udmVydGluZyBmcm9tIHVpbnQ4X3QgdG8gYSB3aWRlciB0eXBl
LgogICAgICAgICBVQ2hhcjMyIGNoYXJhY3RlciA9ICpzb3VyY2U7CiAgICAgICAgIFU4X0FQUEVO
RChyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPih0YXJnZXQpLCBpLCB0YXJnZXRFbmQgLSAqdGFy
Z2V0U3RhcnQsIGNoYXJhY3Rlciwgc2F3RXJyb3IpOworICAgICAgICBBU1NFUlRfV0lUSF9NRVNT
QUdFKCFzYXdFcnJvciwgIlVURjggZGVzdGluYXRpb24gYnVmZmVyIHdhcyBub3QgYmlnIGVub3Vn
aCIpOwogICAgICAgICBpZiAoc2F3RXJyb3IpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtNTUsMjkgKzU1LDI5IEBAIGJvb2wgY29udmVydExhdGluMVRvVVRGOChjb25zdCBM
Q2hhcioqIHMKIAogQ29udmVyc2lvblJlc3VsdCBjb252ZXJ0VVRGMTZUb1VURjgoY29uc3QgVUNo
YXIqKiBzb3VyY2VTdGFydCwgY29uc3QgVUNoYXIqIHNvdXJjZUVuZCwgY2hhcioqIHRhcmdldFN0
YXJ0LCBjaGFyKiB0YXJnZXRFbmQsIGJvb2wgc3RyaWN0KQogewotICAgIENvbnZlcnNpb25SZXN1
bHQgcmVzdWx0ID0gQ29udmVyc2lvbk9LOworICAgIGF1dG8gcmVzdWx0ID0gQ29udmVyc2lvblJl
c3VsdDo6U3VjY2VzczsKICAgICBjb25zdCBVQ2hhciogc291cmNlID0gKnNvdXJjZVN0YXJ0Owog
ICAgIGNoYXIqIHRhcmdldCA9ICp0YXJnZXRTdGFydDsKICAgICBVQm9vbCBzYXdFcnJvciA9IGZh
bHNlOwotICAgIGludCBpID0gMDsKKyAgICBpbnQzMl90IGkgPSAwOwogICAgIHdoaWxlIChzb3Vy
Y2UgPCBzb3VyY2VFbmQpIHsKICAgICAgICAgVUNoYXIzMiBjaDsKICAgICAgICAgaW50IGogPSAw
OwogICAgICAgICBVMTZfTkVYVChzb3VyY2UsIGosIHNvdXJjZUVuZCAtIHNvdXJjZSwgY2gpOwog
ICAgICAgICBpZiAoVV9JU19TVVJST0dBVEUoY2gpKSB7CiAgICAgICAgICAgICBpZiAoc291cmNl
ICsgaiA9PSBzb3VyY2VFbmQgJiYgVV9JU19TVVJST0dBVEVfTEVBRChjaCkpIHsKLSAgICAgICAg
ICAgICAgICByZXN1bHQgPSBTb3VyY2VFeGhhdXN0ZWQ7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gQ29udmVyc2lvblJlc3VsdDo6U291cmNlRXhoYXVzdGVkOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHN0cmljdCkgewotICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IFNvdXJjZUlsbGVnYWw7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
Q29udmVyc2lvblJlc3VsdDo6U291cmNlSWxsZWdhbDsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNoID0gcmVwbGFjZW1lbnRDaGFyYWN0ZXI7CiAg
ICAgICAgIH0KICAgICAgICAgVThfQVBQRU5EKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHRh
cmdldCksIGksIHRhcmdldEVuZCAtIHRhcmdldCwgY2gsIHNhd0Vycm9yKTsKICAgICAgICAgaWYg
KHNhd0Vycm9yKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBUYXJnZXRFeGhhdXN0ZWQ7CisgICAg
ICAgICAgICByZXN1bHQgPSBDb252ZXJzaW9uUmVzdWx0OjpUYXJnZXRFeGhhdXN0ZWQ7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBzb3VyY2UgKz0gajsKQEAgLTIwNyw1
ICsyMDcsNCBAQCBib29sIGVxdWFsTGF0aW4xV2l0aFVURjgoY29uc3QgTENoYXIqIGEsCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLX0gLy8gbmFtZXNwYWNlIFVuaWNvZGUKLX0gLy8gbmFtZXNwYWNl
IFdURgorfSAvLyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi91
bmljb2RlL1VURjhDb252ZXJzaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdW5p
Y29kZS9VVEY4Q29udmVyc2lvbi5oCShyZXZpc2lvbiAyOTA5NjQpCisrKyBTb3VyY2UvV1RGL3d0
Zi91bmljb2RlL1VURjhDb252ZXJzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDgg
QEAKIG5hbWVzcGFjZSBXVEYgewogbmFtZXNwYWNlIFVuaWNvZGUgewogCi1lbnVtIENvbnZlcnNp
b25SZXN1bHQgewotICAgIENvbnZlcnNpb25PSywgLy8gY29udmVyc2lvbiBzdWNjZXNzZnVsCitl
bnVtIGNsYXNzIENvbnZlcnNpb25SZXN1bHQgOiB1aW50OF90IHsKKyAgICBTdWNjZXNzLCAvLyBj
b252ZXJzaW9uIHN1Y2Nlc3NmdWwKICAgICBTb3VyY2VFeGhhdXN0ZWQsIC8vIHBhcnRpYWwgY2hh
cmFjdGVyIGluIHNvdXJjZSwgYnV0IGhpdCBlbmQKICAgICBUYXJnZXRFeGhhdXN0ZWQsIC8vIGlu
c3VmZmljaWVudCByb29tIGluIHRhcmdldCBmb3IgY29udmVyc2lvbgogICAgIFNvdXJjZUlsbGVn
YWwgLy8gc291cmNlIHNlcXVlbmNlIGlzIGlsbGVnYWwvbWFsZm9ybWVkCkBAIC00OCw3ICs0OCw2
IEBAIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGNvbnZlcnRVVEY4VG9VVEYKIFdURl9FWFBPUlRf
UFJJVkFURSBib29sIGNvbnZlcnRVVEY4VG9VVEYxNlJlcGxhY2luZ0ludmFsaWRTZXF1ZW5jZXMo
Y29uc3QgY2hhciogc291cmNlU3RhcnQsIGNvbnN0IGNoYXIqIHNvdXJjZUVuZCwgVUNoYXIqKiB0
YXJnZXRTdGFydCwgVUNoYXIqIHRhcmdldEVuZCwgYm9vbCogaXNTb3VyY2VBbGxBU0NJSSA9IG51
bGxwdHIpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgY29udmVydExhdGluMVRvVVRGOChjb25z
dCBMQ2hhcioqIHNvdXJjZVN0YXJ0LCBjb25zdCBMQ2hhciogc291cmNlRW5kLCBjaGFyKiogdGFy
Z2V0U3RhcnQsIGNoYXIqIHRhcmdldEVuZCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgQ29udmVyc2lv
blJlc3VsdCBjb252ZXJ0VVRGMTZUb1VURjgoY29uc3QgVUNoYXIqKiBzb3VyY2VTdGFydCwgY29u
c3QgVUNoYXIqIHNvdXJjZUVuZCwgY2hhcioqIHRhcmdldFN0YXJ0LCBjaGFyKiB0YXJnZXRFbmQs
IGJvb2wgc3RyaWN0ID0gdHJ1ZSk7Ci0KIFdURl9FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBjYWxj
dWxhdGVTdHJpbmdIYXNoQW5kTGVuZ3RoRnJvbVVURjhNYXNraW5nVG9wOEJpdHMoY29uc3QgY2hh
ciogZGF0YSwgY29uc3QgY2hhciogZGF0YUVuZCwgdW5zaWduZWQmIGRhdGFMZW5ndGgsIHVuc2ln
bmVkJiB1dGYxNkxlbmd0aCk7CiAKIC8vIENhbGxlcnMgb2YgdGhlc2UgZnVuY3Rpb25zIG11c3Qg
Y2hlY2sgdGhhdCB0aGUgbGVuZ3RocyBhcmUgdGhlIHNhbWU7IGFjY29yZGluZ2x5IHdlIG9taXQg
YW4gZW5kIGFyZ3VtZW50IGZvciBVVEYtMTYgYW5kIExhdGluLTEuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyOTA5NjQpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wMy0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJp
c3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIENsZWFuIHVwIFVURi04IGNvbnZlcnNpb24g
Y29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
NjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXRmOEJ1ZmZlcik6
CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydFVURjE2RW50aXR5VG9VVEY4KToKKwogMjAyMi0wMy0wNyAg
SmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhVGltZTo6
aW52YWxpZFRpbWUoKSBjb252ZXJzaW9uIHRvIENNVGltZSBpbmNvcnJlY3RseSBjcmVhdGVzIGEg
dmFsaWQgdGltZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNw
cAkocmV2aXNpb24gMjkwOTY0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVm
ZmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUxLDcgKzY1MSw3IEBAIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IHV0ZjhCdWZmZXIoY29uc3QgU3QKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBkID0gc3RyaW5n
LmNoYXJhY3RlcnMxNigpOwotICAgICAgICAgICAgaWYgKFdURjo6VW5pY29kZTo6Y29udmVydFVU
RjE2VG9VVEY4KCZkLCBkICsgbGVuZ3RoLCAmcCwgcCArIGJ1ZmZlci5zaXplKCkpICE9IFdURjo6
VW5pY29kZTo6Q29udmVyc2lvbk9LKQorICAgICAgICAgICAgaWYgKFdURjo6VW5pY29kZTo6Y29u
dmVydFVURjE2VG9VVEY4KCZkLCBkICsgbGVuZ3RoLCAmcCwgcCArIGJ1ZmZlci5zaXplKCkpICE9
IFdURjo6VW5pY29kZTo6Q29udmVyc2lvblJlc3VsdDo6U3VjY2VzcykKICAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAJKHJl
dmlzaW9uIDI5MDk2NCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1OCw3ICsxMTU4LDcgQEAgc3Rh
dGljIHNpemVfdCBjb252ZXJ0VVRGMTZFbnRpdHlUb1VURjgoYwogewogICAgIGNvbnN0IGNoYXIq
IG9yaWdpbmFsVGFyZ2V0ID0gdGFyZ2V0OwogICAgIGF1dG8gY29udmVyc2lvblJlc3VsdCA9IFdU
Rjo6VW5pY29kZTo6Y29udmVydFVURjE2VG9VVEY4KCZ1dGYxNkVudGl0eSwgdXRmMTZFbnRpdHkg
KyBudW1iZXJPZkNvZGVVbml0cywgJnRhcmdldCwgdGFyZ2V0ICsgdGFyZ2V0U2l6ZSk7Ci0gICAg
aWYgKGNvbnZlcnNpb25SZXN1bHQgIT0gV1RGOjpVbmljb2RlOjpDb252ZXJzaW9uT0spCisgICAg
aWYgKGNvbnZlcnNpb25SZXN1bHQgIT0gV1RGOjpVbmljb2RlOjpDb252ZXJzaW9uUmVzdWx0OjpT
dWNjZXNzKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEV2ZW4gdGhvdWdoIHdlIG11c3Qg
cGFzcyB0aGUgbGVuZ3RoLCBsaWJ4bWwgZXhwZWN0cyB0aGUgZW50aXR5IHN0cmluZyB0byBiZSBu
dWxsIHRlcm1pbmF0ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjkwOTY0KQorKysgU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0w
My0wNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIENsZWFuIHVwIFVURi04IGNvbnZlcnNpb24gY29kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNjEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwOgor
ICAgICAgICAoV0tTdHJpbmdHZXRVVEY4Q1N0cmluZ0ltcGwpOgorCiAyMDIyLTAzLTA3ICBSaWNo
YXJkIEhvdWxlICA8cmhvdWxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjQ2F0YWx5c3RdIENv
bXBpbGF0aW9uIGVycm9yOiBXZWJDb250ZW50UHJvY2Vzcy54aWI6IGVycm9yOiBtYWNPUyB4aWJz
IGRvIG5vdCBzdXBwb3J0IHRhcmdldCBkZXZpY2UgdHlwZSAiaXBhZCIuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCShyZXZpc2lvbiAyOTA5NjQpCisrKyBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDcgKzg4LDcgQEAgc2l6ZV90IFdLU3RyaW5nR2V0VVRGOENTdHJpbmdJbXBsKFdLU3RyaQogICAg
IH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gc3RyaW5nVmlldy5j
aGFyYWN0ZXJzMTYoKTsKICAgICAgICAgYXV0byByZXN1bHQgPSBXVEY6OlVuaWNvZGU6OmNvbnZl
cnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVycyArIHN0cmluZ1ZpZXcubGVuZ3Ro
KCksICZwLCBwICsgYnVmZmVyU2l6ZSAtIDEsIHN0cmljdCk7Ci0gICAgICAgIGlmIChyZXN1bHQg
IT0gV1RGOjpVbmljb2RlOjpDb252ZXJzaW9uT0sgJiYgcmVzdWx0ICE9IFdURjo6VW5pY29kZTo6
VGFyZ2V0RXhoYXVzdGVkKQorICAgICAgICBpZiAocmVzdWx0ICE9IFdURjo6VW5pY29kZTo6Q29u
dmVyc2lvblJlc3VsdDo6U3VjY2VzcyAmJiByZXN1bHQgIT0gV1RGOjpVbmljb2RlOjpDb252ZXJz
aW9uUmVzdWx0OjpUYXJnZXRFeGhhdXN0ZWQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAK
</data>
<flag name="commit-queue"
          id="482205"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>