<?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>216633</bug_id>
          
          <creation_ts>2020-09-16 19:47:58 -0700</creation_ts>
          <short_desc>[LFC][IFC] Move InlineRect from Display to Layout namespace</short_desc>
          <delta_ts>2020-09-16 23:04:15 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1689312</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-09-16 19:47:58 -0700</bug_when>
    <thetext>Eventually all current Display types transition to Layout and we&apos;ll come up with a different set for the display tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689318</commentid>
    <comment_count>1</comment_count>
      <attachid>408983</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-16 20:34:43 -0700</bug_when>
    <thetext>Created attachment 408983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689319</commentid>
    <comment_count>2</comment_count>
      <attachid>408984</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-16 20:39:20 -0700</bug_when>
    <thetext>Created attachment 408984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689323</commentid>
    <comment_count>3</comment_count>
      <attachid>408985</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-16 20:43:31 -0700</bug_when>
    <thetext>Created attachment 408985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689326</commentid>
    <comment_count>4</comment_count>
      <attachid>408987</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-09-16 20:53:54 -0700</bug_when>
    <thetext>Created attachment 408987
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689330</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-16 21:40:24 -0700</bug_when>
    <thetext>Committed r267182: &lt;https://trac.webkit.org/changeset/267182&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408987.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689331</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-16 21:41:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/69039638&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408983</attachid>
            <date>2020-09-16 20:34:43 -0700</date>
            <delta_ts>2020-09-16 20:41:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216633-20200916203442.patch</filename>
            <type>text/plain</type>
            <size>41410</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5Mjg0ZWU2OThlNGQ5
YzJjZjg0NTg2NjJkMGQ4YjI2YTlmZDE5Ni4uYTI5NmZkOGRlMjVhZGU3ZDFkMmVkNWZkMzg1NDM0
NWNmMjIyZjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTE2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIElu
bGluZVJlY3QgZnJvbSBEaXNwbGF5IHRvIExheW91dCBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjYzMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCdzIG1vdmUgdGhlIERpc3BsYXkg
dHlwZSBvdmVyIHRvIExheW91dCBuYW1lc3BhY2UuIERpc3BsYXkgdHJlZSBuZWVkcyBhIGRpZmZl
cmVudCBzZXQgb2YgZGF0YSB0eXBlcy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxpbmUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnJlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheTo6TGluZTo6c2Nyb2xsYWJsZU92ZXJmbG93IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6Omlua092ZXJmbG93IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OkxpbmUpOgorICAgICAgICAqIGxheW91dC9kaXNw
bGF5dHJlZS9EaXNwbGF5UnVuLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OnJl
Y3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjppbmtPdmVyZmxvdyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpSdW46OlJ1bik6CisgICAgICAgICog
bGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2l6ZUFuZFBsYWNlRmxl
eEl0ZW1zKToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdDb250ZXh0Ojpjb21wdXRlZExpbmVMb2dpY2FsUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JM
aW5lQ29udGVudCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVMaW5lQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6SW5saW5l
Qm94OjpJbmxpbmVCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94Ojpsb2dp
Y2FsUmVjdEZvclRleHRSdW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5l
Qm94Ojpjb25zdHJ1Y3RJbmxpbmVCb3hlcyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lTGluZUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94
OjpJbmxpbmVCb3g6OmxvZ2ljYWxSZWN0IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVSZWN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZVJlY3QuaC4KKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6ZXhwYW5kSG9yaXpvbnRhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6ZXhwYW5kVmVydGljYWxseSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZVJlY3Q6OmludmFsaWRhdGVUb3ApOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OmludmFsaWRhdGVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OmludmFsaWRhdGVIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVSZWN0OjpoYXNWYWxpZFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6aGFzVmFsaWRTaXplIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6aGFzVmFsaWRHZW9tZXRyeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OklubGluZVJlY3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpzZXRIYXNWYWxpZFBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGFzVmFsaWRTaXplKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6dG9wIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6bGVmdCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OmJvdHRvbSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnJpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6dG9wTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OnNpemUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVSZWN0Ojp3aWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZVJlY3Q6OmhlaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6OnNldFRvcExlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0
OjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpzZXRCb3R0
b20pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpzZXRMZWZ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0V2lkdGgpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpzZXRIZWlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVSZWN0Ojptb3ZlSG9yaXpvbnRhbGx5KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZVZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVSZWN0Ojptb3ZlQnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpJbmxpbmVSZWN0OjpleHBhbmQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpleHBhbmRUb0NvbnRhaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpleHBhbmRWZXJ0aWNhbGx5VG9Db250YWluKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lUmVjdDo6aW5mbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZVJlY3Q6Om9wZXJhdG9yIElubGluZUxheW91dFJlY3QgY29uc3QpOgorCiAyMDIwLTA5LTE2ICBa
YWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gUmVtb3ZlIHBh
cnRpYWwgaW52YWxpZGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzk3NDI5YmIxNjJhYmE2MGIwMWI2MmFiMmFmOGE0NDBh
ZjMyZDA3Zi4uZmM4YTQ0NWM2MjMwOGI0OTIxYjdkY2M3MDg2MGJlM2Y1ZWEyN2U2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzY5LDcgKzM2OSw2IEBACiAJCTBGRkQ0RDYxMTg2NTFGQTMwMDUxMkY2RSAvKiBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkZENEQ1RjE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMEZCMDg0QTE0RTE1QzdFMDBB
M0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oICovOyB9OwogCQkxMTJCMzRENTFFNjBCOTgzMDBC
QjMxMEEgLyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBT
aW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oICovOyB9OwotCQkxMTJGQjM1MjIzOUMyM0M0MDA4
NzA1NEEgLyogRGlzcGxheUlubGluZVJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDExMkZCMzUwMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNwbGF5SW5s
aW5lUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTExMzEwQ0YyMjBCQTRBMzIwMDY1QThEMCAvKiBMYXlvdXRUcmVlQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExMDBGRDcyMDk1MTRE
RjAwODFBQTZDIC8qIExheW91dFRyZWVCdWlsZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjMyMEJBNEEzNzAwNjVBOEQwIC8qIExh
eW91dFJlcGxhY2VkQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxMTFDNjE1NjIwQUQxQUUxMDA1QjgyRkEgLyogTGF5b3V0UmVwbGFjZWRCb3guaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENG
NDIwQkE0QTNEMDA2NUE4RDAgLyogTGF5b3V0SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2QyAvKiBM
YXlvdXRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0yMDY0LDYgKzIwNjMsNyBAQAogCQk2RjI2QkI2QzIzMzQzRTZGMDAyRjJCRUEg
LyogTGF5b3V0Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNkYyNkJCNkIyMzM0M0U1QjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjI2RUI0ODIz
NDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJ
bmxpbmVMaW5lQnVpbGRlci5oICovOyB9OwogCQk2RjM2MEU1MDIzOTk5NDIxMDAxNTEyQTcgLyog
SW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGMzYwRTRFMjM5OTk0MjAwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGlu
ZUJyZWFrSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTZGNDBEQTgyMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjQwREE4MTI1MTMwMzNBMDBF
QzA0QjcgLyogSW5saW5lUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTZGNjM4M0Y2MjQyN0FGNEEwMERBQkE1MyAvKiBMYXlvdXRJbml0aWFs
Q29udGFpbmluZ0Jsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RjYzODNGNDI0MjdBRjQ5MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5p
bmdCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTZGNzc4Njg4MjM0OTFBRDgwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Nzg2ODcyMzQ5MUFENzAw
NEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQzYyMDhDMjk1NzAwMkYyOUFCIC8qIExheW91dFN0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjdD
QTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjA5OCw3ICs2MDk4LDYgQEAKIAkJMTEx
QzYxNTcyMEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkQm94LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExheW91dFJlcGxhY2VkQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTEyQjM0RDAxRTYwQjhBNzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVM
YXlvdXRQYWdpbmF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEyQjM0
RDQxRTYwQjk4MzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTExMkZCMzUwMjM5QzIzQzQwMDg3MDU0QSAv
KiBEaXNwbGF5SW5saW5lUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5SW5saW5lUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlE
NzIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTM0MDlEODIwM0UwMzgwMDBDNjY5MTUgLyogUmVu
ZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1
aWxkZXJDb250aW51YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzRDBC
NEYxRjlGREQyQjAwRjYxMUJCIC8qIEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05NTg4LDYgKzk1ODcsNyBAQAogCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2
RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5saW5lTGluZUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYz
NUVGQUYyMTg3Q0JENTAwNDRFMEY0IC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMzYw
RTRFMjM5OTk0MjAwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjQwREE4MTI1MTMwMzNBMDBFQzA0QjcgLyogSW5s
aW5lUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVSZWN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNEE1QkQ1MjJGOUYxNkIwMEE4MEYyNSAv
KiBMYXlvdXRQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRQaGFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlDMyAvKiBU
YWJsZUdyaWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFibGVHcmlkLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY2MzgzRjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dElu
aXRpYWxDb250YWluaW5nQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTc1MjEsNiArMTc1MjEsNyBAQAogCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5OTEgLyog
aW5saW5lZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNkY0MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCAqLywKIAkJ
CQk2RkU3RERERDIwRUM2RThCMDA4QjVCNEUgLyogdGV4dCAqLywKIAkJCQk2RjdDQTNDOTIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICovLAogCQkJCTZGN0NB
M0M4MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovLApAQCAt
MTc1NTIsNyArMTc1NTMsNiBAQAogCQkJCTExOTlGQTU5MjA4RTNDN0YwMDIzNThDQyAvKiBEaXNw
bGF5Qm94LmggKi8sCiAJCQkJRTRGQjRCMzUyMzlCRUIxMDAwM0MzMzZBIC8qIERpc3BsYXlJbmxp
bmVDb250ZW50LmNwcCAqLywKIAkJCQlFNDUxQzYzMzIzOTQwNThFMDA5OTMxOTAgLyogRGlzcGxh
eUlubGluZUNvbnRlbnQuaCAqLywKLQkJCQkxMTJGQjM1MDIzOUMyM0M0MDA4NzA1NEEgLyogRGlz
cGxheUlubGluZVJlY3QuaCAqLywKIAkJCQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JDQjAgLyogRGlz
cGxheUxpbmUuaCAqLywKIAkJCQk2Rjc3ODY4NTIzNDkxQUM2MDA0RDk2MzYgLyogRGlzcGxheVBh
aW50ZXIuY3BwICovLAogCQkJCTZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAvKiBEaXNwbGF5UGFp
bnRlci5oICovLApAQCAtMzA0NzQsNiArMzA0NzQsNyBAQAogCQkJCUM5RDQ2NzA1MUU2MEM0NjUw
MDgxOTVGQiAvKiBBdXRvcGxheUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTgzMEQ0RTE2
NzlCNEY4MDBBQ0Y4QzMgLyogQXV0b3Njcm9sbENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4Q0ZGMDRFMEExNTRGMDkwMDBBNDIzNCAvKiBBdXRvVGFibGVMYXlvdXQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTZGNDBEQTgyMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0Y0RTkzMzIwQjM1ODdGMDAyRTM4MDMgLyogQVZBc3NldE1JTUVU
eXBlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERUNBODlCMUVERjQ0N0QwMERDQjA4QiAv
KiBBVkFzc2V0VHJhY2tVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzY3NTI3MUVB
RUE5RDQwMDcyN0M4NCAvKiBBVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2UuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzEwNjUsNyArMzEwNjYsNiBAQAogCQkJCTdFREFBRkM5MTlBMkNDREMwMDM0REZE
MSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTExOTlGQTVC
MjA4RTNDN0YwMDIzNThDQyAvKiBEaXNwbGF5Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDUx
QzYzNDIzOTQwNThGMDA5OTMxOTAgLyogRGlzcGxheUlubGluZUNvbnRlbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTExMkZCMzUyMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNwbGF5SW5saW5lUmVjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCNDdFNjMyMjc3NDI1QTAwQzdCQ0IwIC8qIERpc3BsYXlM
aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlz
cGxheUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1QUQwOTQwMjQwODk2NDAwMERFNEQyRiAv
KiBEaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lUmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5ZDYyNzc0YTM3YmFlNThhZWJjZWZjYzVhNTlj
OTRkZGY3ZDExMjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSwyOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJM
YXlvdXRVbml0cy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgRGlzcGxheSB7
Ci0KLWNsYXNzIElubGluZVJlY3QgewotcHVibGljOgotICAgIElubGluZVJlY3QoKSA9IGRlZmF1
bHQ7Ci0gICAgSW5saW5lUmVjdChJbmxpbmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5b3V0VW5p
dCBsZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7
Ci0gICAgSW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgSW5saW5l
TGF5b3V0VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpOwotICAgIElubGluZVJl
Y3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW91dFNp
emUmKTsKLSAgICAKLSAgICBJbmxpbmVMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwotICAgIElubGlu
ZUxheW91dFVuaXQgbGVmdCgpIGNvbnN0OwotICAgIElubGluZUxheW91dFBvaW50IHRvcExlZnQo
KSBjb25zdDsKLQotICAgIElubGluZUxheW91dFVuaXQgYm90dG9tKCkgY29uc3Q7Ci0gICAgSW5s
aW5lTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0OyAgICAgICAgCi0KLSAgICBJbmxpbmVMYXlvdXRV
bml0IHdpZHRoKCkgY29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdDsK
LSAgICBJbmxpbmVMYXlvdXRTaXplIHNpemUoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0VG9wKElu
bGluZUxheW91dFVuaXQpOwotICAgIHZvaWQgc2V0Qm90dG9tKElubGluZUxheW91dFVuaXQpOwot
ICAgIHZvaWQgc2V0TGVmdChJbmxpbmVMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldFRvcExlZnQo
Y29uc3QgSW5saW5lTGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHNldFdpZHRoKElubGluZUxheW91
dFVuaXQpOwotICAgIHZvaWQgc2V0SGVpZ2h0KElubGluZUxheW91dFVuaXQpOwotCi0gICAgdm9p
ZCBtb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91dFVuaXQpOwotICAgIHZvaWQgbW92ZVZlcnRp
Y2FsbHkoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBtb3ZlQnkoSW5saW5lTGF5b3V0UG9p
bnQpOwotCi0gICAgdm9pZCBleHBhbmQoT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4sIE9wdGlv
bmFsPElubGluZUxheW91dFVuaXQ+KTsKLSAgICB2b2lkIGV4cGFuZFRvQ29udGFpbihjb25zdCBJ
bmxpbmVSZWN0Jik7Ci0gICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5p
dCBkZWx0YSkgeyBleHBhbmQoZGVsdGEsIHsgfSk7IH0KLSAgICB2b2lkIGV4cGFuZFZlcnRpY2Fs
bHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBleHBhbmQoeyB9LCBkZWx0YSk7IH0KLSAgICB2
b2lkIGV4cGFuZFZlcnRpY2FsbHlUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVjdCYpOwotICAgIHZv
aWQgaW5mbGF0ZShJbmxpbmVMYXlvdXRVbml0KTsKLQotICAgIG9wZXJhdG9yIElubGluZUxheW91
dFJlY3QoKSBjb25zdDsKLQotcHJpdmF0ZToKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIHZvaWQg
aW52YWxpZGF0ZVRvcCgpIHsgbV9oYXNWYWxpZFRvcCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZh
bGlkYXRlTGVmdCgpIHsgbV9oYXNWYWxpZExlZnQgPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxp
ZGF0ZVdpZHRoKCkgeyBtX2hhc1ZhbGlkV2lkdGggPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxp
ZGF0ZUhlaWdodCgpIHsgbV9oYXNWYWxpZEhlaWdodCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZh
bGlkYXRlUG9zaXRpb24oKTsKLQotICAgIGJvb2wgaGFzVmFsaWRQb3NpdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1faGFzVmFsaWRUb3AgJiYgbV9oYXNWYWxpZExlZnQ7IH0KLSAgICBib29sIGhhc1Zh
bGlkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmFsaWRXaWR0aCAmJiBtX2hhc1ZhbGlkSGVp
Z2h0OyB9Ci0gICAgYm9vbCBoYXNWYWxpZEdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gaGFzVmFs
aWRQb3NpdGlvbigpICYmIGhhc1ZhbGlkU2l6ZSgpOyB9Ci0KLSAgICB2b2lkIHNldEhhc1ZhbGlk
UG9zaXRpb24oKTsKLSAgICB2b2lkIHNldEhhc1ZhbGlkU2l6ZSgpOwotCi0gICAgYm9vbCBtX2hh
c1ZhbGlkVG9wIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzVmFsaWRMZWZ0IHsgZmFsc2UgfTsK
LSAgICBib29sIG1faGFzVmFsaWRXaWR0aCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc1ZhbGlk
SGVpZ2h0IHsgZmFsc2UgfTsKLSNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAotICAgIElubGluZUxh
eW91dFJlY3QgbV9yZWN0OwotfTsKLQotaW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoSW5s
aW5lTGF5b3V0VW5pdCB0b3AsIElubGluZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5p
dCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpCi0gICAgOiBtX3JlY3QobGVmdCwgdG9w
LCB3aWR0aCwgaGVpZ2h0KQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZFRv
cCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotICAgIG1faGFzVmFsaWRXaWR0
aCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLX0KLQotaW5s
aW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExl
ZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KQotICAg
IDogSW5saW5lUmVjdCh0b3BMZWZ0LnkoKSwgdG9wTGVmdC54KCksIHdpZHRoLCBoZWlnaHQpCi17
Ci19Ci0KLWlubGluZSBJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBv
aW50JiB0b3BMZWZ0LCBjb25zdCBJbmxpbmVMYXlvdXRTaXplJiBzaXplKQotICAgIDogSW5saW5l
UmVjdCh0b3BMZWZ0LnkoKSwgdG9wTGVmdC54KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSkKLXsKLX0KLQotI2lmIEFTU0VSVF9FTkFCTEVECi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojpp
bnZhbGlkYXRlUG9zaXRpb24oKQotewotICAgIGludmFsaWRhdGVUb3AoKTsKLSAgICBpbnZhbGlk
YXRlTGVmdCgpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRIYXNWYWxpZFBvc2l0
aW9uKCkKLXsKLSAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkTGVmdCA9
IHRydWU7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSgpCi17
Ci0gICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1
ZTsKLX0KLSNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5p
dCBJbmxpbmVSZWN0Ojp0b3AoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsK
LSAgICByZXR1cm4gbV9yZWN0LnkoKTsKLX0KLQotaW5saW5lIElubGluZUxheW91dFVuaXQgSW5s
aW5lUmVjdDo6bGVmdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAg
ICByZXR1cm4gbV9yZWN0LngoKTsKLX0KLQotaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5l
UmVjdDo6Ym90dG9tKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiBtX2hh
c1ZhbGlkSGVpZ2h0KTsKLSAgICByZXR1cm4gbV9yZWN0Lm1heFkoKTsKLX0KLQotaW5saW5lIElu
bGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6cmlnaHQoKSBjb25zdAotewotICAgIEFTU0VSVCht
X2hhc1ZhbGlkTGVmdCAmJiBtX2hhc1ZhbGlkV2lkdGgpOwotICAgIHJldHVybiBtX3JlY3QubWF4
WCgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0UG9pbnQgSW5saW5lUmVjdDo6dG9wTGVmdCgp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKGhhc1ZhbGlkUG9zaXRpb24oKSk7Ci0gICAgcmV0dXJuIG1f
cmVjdC5taW5YTWluWUNvcm5lcigpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0U2l6ZSBJbmxp
bmVSZWN0OjpzaXplKCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaGFzVmFsaWRTaXplKCkpOwotICAg
IHJldHVybiBtX3JlY3Quc2l6ZSgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxp
bmVSZWN0Ojp3aWR0aCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRXaWR0aCk7Ci0g
ICAgcmV0dXJuIG1fcmVjdC53aWR0aCgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJ
bmxpbmVSZWN0OjpoZWlnaHQoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkSGVpZ2h0
KTsKLSAgICByZXR1cm4gbV9yZWN0LmhlaWdodCgpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVS
ZWN0OjpzZXRUb3BMZWZ0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0KQotewotI2lm
IEFTU0VSVF9FTkFCTEVECi0gICAgc2V0SGFzVmFsaWRQb3NpdGlvbigpOwotI2VuZGlmCi0gICAg
bV9yZWN0LnNldExvY2F0aW9uKHRvcExlZnQpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0
OjpzZXRUb3AoSW5saW5lTGF5b3V0VW5pdCB0b3ApCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAg
ICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRZKHRvcCk7Ci19
Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEJvdHRvbShJbmxpbmVMYXlvdXRVbml0IGJv
dHRvbSkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwot
ICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNoaWZ0TWF4
WUVkZ2VUbyhib3R0b20pOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRMZWZ0KElu
bGluZUxheW91dFVuaXQgbGVmdCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFs
aWRMZWZ0ID0gdHJ1ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRYKGxlZnQpOwotfQotCi1pbmxp
bmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKQotewot
I2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSNlbmRpZgot
ICAgIG1fcmVjdC5zZXRXaWR0aCh3aWR0aCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6
OnNldEhlaWdodChJbmxpbmVMYXlvdXRVbml0IGhlaWdodCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxF
RAotICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldEhl
aWdodChoZWlnaHQpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlSG9yaXpvbnRh
bGx5KElubGluZUxheW91dFVuaXQgb2Zmc2V0KQotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVm
dCk7Ci0gICAgbV9yZWN0Lm1vdmUoSW5saW5lTGF5b3V0U2l6ZSB7IG9mZnNldCwgMCB9KTsKLX0K
LQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6bW92ZVZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5p
dCBvZmZzZXQpCi17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOwotICAgIG1fcmVjdC5tb3Zl
KElubGluZUxheW91dFNpemUgeyAwLCBvZmZzZXQgfSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGlu
ZVJlY3Q6Om1vdmVCeShJbmxpbmVMYXlvdXRQb2ludCBvZmZzZXQpCi17Ci0gICAgQVNTRVJUKG1f
aGFzVmFsaWRUb3ApOwotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7Ci0gICAgbV9yZWN0Lm1v
dmVCeShvZmZzZXQpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmQoT3B0aW9u
YWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhl
aWdodCkKLXsKLSAgICBBU1NFUlQoIXdpZHRoIHx8IG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgQVNT
RVJUKCFoZWlnaHQgfHwgbV9oYXNWYWxpZEhlaWdodCk7Ci0gICAgbV9yZWN0LmV4cGFuZCh3aWR0
aC52YWx1ZU9yKDApLCBoZWlnaHQudmFsdWVPcigwKSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGlu
ZVJlY3Q6OmV4cGFuZFRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0JiBvdGhlcikKLXsKLSNpZiBB
U1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotICAgIG1faGFzVmFsaWRM
ZWZ0ID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOwotICAgIG1faGFzVmFsaWRI
ZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnVuaXRlRXZlbklmRW1wdHkob3RoZXIp
OwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmRWZXJ0aWNhbGx5VG9Db250YWlu
KGNvbnN0IElubGluZVJlY3QmIG90aGVyKQotewotICAgIGF1dG8gY29udGFpblRvcCA9IHN0ZDo6
bWluKHRvcCgpLCBvdGhlci50b3AoKSk7Ci0gICAgYXV0byBjb250YWluQm90dG9tID0gc3RkOjpt
YXgoYm90dG9tKCksIG90aGVyLmJvdHRvbSgpKTsKLSAgICBzZXRUb3AoY29udGFpblRvcCk7Ci0g
ICAgc2V0Qm90dG9tKGNvbnRhaW5Cb3R0b20pOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0
OjppbmZsYXRlKElubGluZUxheW91dFVuaXQgaW5mbGF0ZSkKLXsKLSAgICBBU1NFUlQoaGFzVmFs
aWRHZW9tZXRyeSgpKTsKLSAgICBtX3JlY3QuaW5mbGF0ZShpbmZsYXRlKTsKLX0KLQotaW5saW5l
IElubGluZVJlY3Q6Om9wZXJhdG9yIElubGluZUxheW91dFJlY3QoKSBjb25zdAotewotICAgIEFT
U0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOyAKLSAgICByZXR1cm4gbV9yZWN0OwotfQotCi19Ci19
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5TGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlM
aW5lLmgKaW5kZXggNjFjMGI2NjdmMTFhNWUyMzg2YzU0NGQ3M2RmNWE0NzJhMGJhZGY0Yi4uODFm
NDRmZTRiOTNiYjQzZjMxMWIzYTc2OGE4MDU2NmMyMjhhNjAzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKQEAgLTI3LDcgKzI3LDcgQEAK
IAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRGlz
cGxheUlubGluZVJlY3QuaCIKKyNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5IHsKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3Bh
Y2UgRGlzcGxheSB7CiBjbGFzcyBMaW5lIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKLSAgICBMaW5lKGNvbnN0IElubGluZVJlY3QmLCBjb25zdCBJbmxpbmVSZWN0JiBz
Y3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93LCBJbmxpbmVM
YXlvdXRVbml0IGJhc2VsaW5lKTsKKyAgICBMaW5lKGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYs
IGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93LCBjb25zdCBMYXlv
dXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKTsK
IAotICAgIGNvbnN0IElubGluZVJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0K
LSAgICBjb25zdCBJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVy
biBtX3Njcm9sbGFibGVPdmVyZmxvdzsgfQotICAgIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJm
bG93KCkgY29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQorICAgIGNvbnN0IExheW91dDo6
SW5saW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0IExh
eW91dDo6SW5saW5lUmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9z
Y3JvbGxhYmxlT3ZlcmZsb3c7IH0KKyAgICBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092
ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQogCiAgICAgSW5saW5lTGF5
b3V0VW5pdCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxlZnQoKTsgfQogICAgIElubGlu
ZUxheW91dFVuaXQgcmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QucmlnaHQoKTsgfQpAQCAt
NTQsMTMgKzU0LDEzIEBAIHB1YmxpYzoKICAgICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKCkg
Y29uc3QgeyByZXR1cm4gbV9iYXNlbGluZTsgfQogCiBwcml2YXRlOgotICAgIElubGluZVJlY3Qg
bV9yZWN0OwotICAgIElubGluZVJlY3QgbV9zY3JvbGxhYmxlT3ZlcmZsb3c7Ci0gICAgSW5saW5l
UmVjdCBtX2lua092ZXJmbG93OworICAgIExheW91dDo6SW5saW5lUmVjdCBtX3JlY3Q7CisgICAg
TGF5b3V0OjpJbmxpbmVSZWN0IG1fc2Nyb2xsYWJsZU92ZXJmbG93OworICAgIExheW91dDo6SW5s
aW5lUmVjdCBtX2lua092ZXJmbG93OwogICAgIElubGluZUxheW91dFVuaXQgbV9iYXNlbGluZSB7
IDAgfTsKIH07CiAKLWlubGluZSBMaW5lOjpMaW5lKGNvbnN0IElubGluZVJlY3QmIHJlY3QsIGNv
bnN0IElubGluZVJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdywgY29uc3QgSW5saW5lUmVjdCYgaW5r
T3ZlcmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpCitpbmxpbmUgTGluZTo6TGluZShj
b25zdCBMYXlvdXQ6OklubGluZVJlY3QmIHJlY3QsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYg
c2Nyb2xsYWJsZU92ZXJmbG93LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93
LCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKQogICAgIDogbV9yZWN0KHJlY3QpCiAgICAgLCBt
X3Njcm9sbGFibGVPdmVyZmxvdyhzY3JvbGxhYmxlT3ZlcmZsb3cpCiAgICAgLCBtX2lua092ZXJm
bG93KGlua092ZXJmbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3Bs
YXl0cmVlL0Rpc3BsYXlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UnVuLmgKaW5kZXggNzFhYzhhN2VkOTgzZTc0ODI1NmM0MjdkMGYzNTExNjc3NzI1ZDM3
OC4uYjcxNjE4MTJmODY5ODQzMzk4YzFkMmU2OGEwZWIxMzQ0NmYxZjcxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCkBAIC0yNyw3ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUg
IkRpc3BsYXlJbmxpbmVSZWN0LmgiCisjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUg
IkxheW91dEJveC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiVGV4dEZs
YWdzLmgiCkBAIC02NCwxMCArNjQsMTAgQEAgc3RydWN0IFJ1biB7CiAgICAgfTsKIAogICAgIHN0
cnVjdCBFeHBhbnNpb247Ci0gICAgUnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6
Qm94JiwgY29uc3QgSW5saW5lUmVjdCYsIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93LCBF
eHBhbnNpb24sIE9wdGlvbmFsPFRleHRDb250ZW50PiA9IFdURjo6bnVsbG9wdCk7CisgICAgUnVu
KHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiwgY29uc3QgTGF5b3V0OjpJbmxp
bmVSZWN0JiwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9u
LCBPcHRpb25hbDxUZXh0Q29udGVudD4gPSBXVEY6Om51bGxvcHQpOwogCi0gICAgY29uc3QgSW5s
aW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IElubGlu
ZVJlY3QmIGlua092ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQorICAg
IGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsg
fQorICAgIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBtX2lua092ZXJmbG93OyB9CiAKICAgICBJbmxpbmVMYXlvdXRQb2ludCB0b3BMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWN0LnRvcExlZnQoKTsgfQogICAgIElubGluZUxheW91dFVuaXQg
bGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5sZWZ0KCk7IH0KQEAgLTEwMywxMyArMTAzLDEz
IEBAIHByaXZhdGU6CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwogICAgIFdlYWtQdHI8
Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5b3V0Qm94OwogICAgIENhY2hlZEltYWdlKiBtX2NhY2hl
ZEltYWdlIHsgbnVsbHB0ciB9OwotICAgIElubGluZVJlY3QgbV9yZWN0OwotICAgIElubGluZVJl
Y3QgbV9pbmtPdmVyZmxvdzsKKyAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9yZWN0OworICAgIExh
eW91dDo6SW5saW5lUmVjdCBtX2lua092ZXJmbG93OwogICAgIEV4cGFuc2lvbiBtX2V4cGFuc2lv
bjsKICAgICBPcHRpb25hbDxUZXh0Q29udGVudD4gbV90ZXh0Q29udGVudDsKIH07CiAKLWlubGlu
ZSBSdW46OlJ1bihzaXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94
LCBjb25zdCBJbmxpbmVSZWN0JiByZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywg
RXhwYW5zaW9uIGV4cGFuc2lvbiwgT3B0aW9uYWw8VGV4dENvbnRlbnQ+IHRleHRDb250ZW50KQor
aW5saW5lIFJ1bjo6UnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiBsYXlv
dXRCb3gsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5b3V0OjpJbmxp
bmVSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uIGV4cGFuc2lvbiwgT3B0aW9uYWw8VGV4dENv
bnRlbnQ+IHRleHRDb250ZW50KQogICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQogICAgICwg
bV9sYXlvdXRCb3gobWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKICAgICAsIG1fcmVjdChyZWN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3Jt
YXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcv
RmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA3NjNmMGQ2NGE3OTZiZDgwODkzNzg5YTg3
ZDI4M2M1M2RiNjM2Nzk1Li4xY2ViYjA2ZWZmYmI4OTU3NmE0MGJjOWM4MDI5OWI2NDVmODNmODYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZv
cm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1h
dHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEZs
ZXhGb3JtYXR0aW5nQ29udGV4dDo6c2l6ZUFuZFBsYWNlRmxleEl0ZW1zKGNvbnN0IENvbnN0cmFp
bnRzRm9ySW5GbG93Q29udAogICAgICAgICB9OwogICAgICAgICBjb21wdXRlRmxleEl0ZW1HZW9t
ZXRyeSgpOwogICAgIH0KLSAgICBhdXRvIGZsZXhMaW5lID0gRGlzcGxheTo6SW5saW5lUmVjdCB7
IGZsZXhJdGVtQ3Jvc0F4aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbU1h
aW5BeGlzRW5kIC0gZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbUNyb3NBeGlzRW5kIC0g
ZmxleEl0ZW1Dcm9zQXhpc1N0YXJ0IH07CisgICAgYXV0byBmbGV4TGluZSA9IElubGluZVJlY3Qg
eyBmbGV4SXRlbUNyb3NBeGlzU3RhcnQsIGZsZXhJdGVtTWFpbkF4aXNTdGFydCwgZmxleEl0ZW1N
YWluQXhpc0VuZCAtIGZsZXhJdGVtTWFpbkF4aXNTdGFydCwgZmxleEl0ZW1Dcm9zQXhpc0VuZCAt
IGZsZXhJdGVtQ3Jvc0F4aXNTdGFydCB9OwogICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRMaW5lKHsg
ZmxleExpbmUsIGZsZXhMaW5lLCBmbGV4TGluZSwgeyB9IH0pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZjFiZjdmZTlkOWRlMTQ3NWFmNTliZjkyYzlhZGUx
NDVhMGMwMjYwOS4uNTJlYTMxYzVjYzljOTVkZTA4YjM4ZmJhY2JhOTcxNTc4NTQzMTBkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDM0LDIwICs0MzQsMjAgQEAg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OkxpbmVSZWN0QW5kTGluZUJveE9mZnNldCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHUKICAgICB9IGVsc2UKICAgICAgICAgbGluZUxvZ2ljYWxI
ZWlnaHQgPSByb290U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAKLSAgICBhdXRvIGxvZ2lj
YWxSZWN0ID0gRGlzcGxheTo6SW5saW5lUmVjdCB7IGxpbmVDb250ZW50LmxvZ2ljYWxUb3BMZWZ0
LCBsaW5lQ29udGVudC5saW5lTG9naWNhbFdpZHRoLCBsaW5lTG9naWNhbEhlaWdodH07CisgICAg
YXV0byBsb2dpY2FsUmVjdCA9IElubGluZVJlY3QgeyBsaW5lQ29udGVudC5sb2dpY2FsVG9wTGVm
dCwgbGluZUNvbnRlbnQubGluZUxvZ2ljYWxXaWR0aCwgbGluZUxvZ2ljYWxIZWlnaHR9OwogICAg
IC8vIElubGluZSB0cmVlIGhlaWdodCBpcyBhbGwgaW50ZWdlciBiYXNlZC4KICAgICBhdXRvIGxp
bmVCb3hPZmZzZXQgPSBmbG9vcmYoKGxpbmVMb2dpY2FsSGVpZ2h0IC0gbGluZUJveExvZ2ljYWxI
ZWlnaHQpIC8gMik7CiAgICAgcmV0dXJuIHsgbGluZUJveE9mZnNldCwgbG9naWNhbFJlY3QgfTsK
IH0KIAotRGlzcGxheTo6SW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiBs
aW5lQ29udGVudCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3Ry
YWludHMpCitJbmxpbmVSZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0
cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmIGxpbmVDb250
ZW50LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykK
IHsKICAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSB0aGlzLT5mb3JtYXR0aW5nU3RhdGUoKTsK
ICAgICBhdXRvJiBsaW5lQm94ID0gbGluZUNvbnRlbnQubGluZUJveDsKICAgICBhdXRvIGxpbmVS
ZWN0QW5kTGluZUJveE9mZnNldCA9IGNvbXB1dGVkTGluZUxvZ2ljYWxSZWN0KGxpbmVDb250ZW50
KTsKICAgICBhdXRvIGxpbmVMb2dpY2FsUmVjdCA9IGxpbmVSZWN0QW5kTGluZUJveE9mZnNldC5s
b2dpY2FsUmVjdDsKICAgICBhdXRvIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCA9IGxpbmVSZWN0QW5k
TGluZUJveE9mZnNldC5saW5lQm94VmVydGljYWxPZmZzZXQ7Ci0gICAgYXV0byBzY3JvbGxhYmxl
T3ZlcmZsb3cgPSBEaXNwbGF5OjpJbmxpbmVSZWN0IHsgbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQo
KSwgc3RkOjptYXgobGluZUxvZ2ljYWxSZWN0LndpZHRoKCksIGxpbmVCb3gubG9naWNhbFdpZHRo
KCkpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJlY3QuaGVpZ2h0KCksIGxpbmVCb3hWZXJ0aWNhbE9m
ZnNldCArIGxpbmVCb3gubG9naWNhbEhlaWdodCgpKSB9OworICAgIGF1dG8gc2Nyb2xsYWJsZU92
ZXJmbG93ID0gSW5saW5lUmVjdCB7IGxpbmVMb2dpY2FsUmVjdC50b3BMZWZ0KCksIHN0ZDo6bWF4
KGxpbmVMb2dpY2FsUmVjdC53aWR0aCgpLCBsaW5lQm94LmxvZ2ljYWxXaWR0aCgpKSwgc3RkOjpt
YXgobGluZUxvZ2ljYWxSZWN0LmhlaWdodCgpLCBsaW5lQm94VmVydGljYWxPZmZzZXQgKyBsaW5l
Qm94LmxvZ2ljYWxIZWlnaHQoKSkgfTsKIAogICAgIGlmICghbGluZUNvbnRlbnQuZmxvYXRzLmlz
RW1wdHkoKSkgewogICAgICAgICBhdXRvIGZsb2F0aW5nQ29udGV4dCA9IEZsb2F0aW5nQ29udGV4
dCB7IHJvb3QoKSwgKnRoaXMsIGZvcm1hdHRpbmdTdGF0ZS5mbG9hdGluZ1N0YXRlKCkgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDE5M2M4NmZmYzgwYzZhZTNlNzExN2Yx
YWM2NGYzYzIxMzgwMjFmYzMuLmE3NzRlZmY2N2UzNzQ1ZDYwZDk2Mzc1YTdmZDAxMzU3NGQyN2M2
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtODYsMTAgKzg2LDEwIEBA
IHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29u
c3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7CiAKICAgICB2b2lkIGNvbGxlY3RJbmxpbmVDb250
ZW50SWZOZWVkZWQoKTsKLSAgICBEaXNwbGF5OjpJbmxpbmVSZWN0IGNvbXB1dGVHZW9tZXRyeUZv
ckxpbmVDb250ZW50KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYsIGNvbnN0IEhvcml6
b250YWxDb25zdHJhaW50cyYpOworICAgIElubGluZVJlY3QgY29tcHV0ZUdlb21ldHJ5Rm9yTGlu
ZUNvbnRlbnQoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiwgY29uc3QgSG9yaXpvbnRh
bENvbnN0cmFpbnRzJik7CiAgICAgc3RydWN0IExpbmVSZWN0QW5kTGluZUJveE9mZnNldCB7CiAg
ICAgICAgIElubGluZUxheW91dFVuaXQgbGluZUJveFZlcnRpY2FsT2Zmc2V0OwotICAgICAgICBE
aXNwbGF5OjpJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0OworICAgICAgICBJbmxpbmVSZWN0IGxvZ2lj
YWxSZWN0OwogICAgIH07CiAgICAgTGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0IGNvbXB1dGVkTGlu
ZUxvZ2ljYWxSZWN0KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYpIGNvbnN0OwogICAg
IHZvaWQgaW52YWxpZGF0ZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBJbnZhbGlkYXRpb25TdGF0ZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQm94LmNwcAppbmRleCA4MjM1ZGIxOThiN2NhODFjMzg1MmYyYjRlNTIzNjFjZjA1
OTEzODhiLi4zMWIyZjkzN2M5ZWI4ZjRhZmQ4NGFhZGE3OTlhZWNjOGM5MTM1YjEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVM
aW5lQm94LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBPcHRpb25hbDxJbmxpbmVMYXlv
dXRVbml0PiBob3Jpem9udGFsQWxpZ25tZW50T2Zmc2V0KGNvbnN0IExpbmU6OlJ1bkxpc3QmCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAotTGluZUJveDo6SW5saW5lQm94OjpJbmxpbmVCb3goY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIGNvbnN0IERpc3BsYXk6OklubGluZVJlY3QmIHJlY3QsIElubGluZUxh
eW91dFVuaXQgYmFzZWxpbmUsIElubGluZUxheW91dFVuaXQgZGVzY2VudCkKK0xpbmVCb3g6Oklu
bGluZUJveDo6SW5saW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBJbmxpbmVSZWN0
JiByZWN0LCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IGRlc2Nl
bnQpCiAgICAgOiBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gpKQogICAgICwgbV9s
b2dpY2FsUmVjdChyZWN0KQogICAgICwgbV9iYXNlbGluZShiYXNlbGluZSkKQEAgLTE0NSw3ICsx
NDUsNyBAQCBMaW5lQm94OjpMaW5lQm94KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBp
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCwgSW5saW5lTAogICAgIGFsaWduSW5saW5lQm94ZXNWZXJ0
aWNhbGx5QW5kQ29tcHV0ZUxpbmVCb3hIZWlnaHQoKTsKIH0KIAotRGlzcGxheTo6SW5saW5lUmVj
dCBMaW5lQm94Ojpsb2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3QgTGluZTo6UnVuJiBydW4pIGNv
bnN0CitJbmxpbmVSZWN0IExpbmVCb3g6OmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5l
OjpSdW4mIHJ1bikgY29uc3QKIHsKICAgICBBU1NFUlQocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xp
bmVCcmVhaygpKTsKICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlv
dXRCb3gocnVuLmxheW91dEJveCgpLnBhcmVudCgpKTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lk
IExpbmVCb3g6OmNvbnN0cnVjdElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMp
CiAgICAgICAgICAgICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmUudG9w
KCkgKyBsYXN0TGluZS5iYXNlbGluZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gaW5s
aW5lTGV2ZWxCb3hHZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSArIGlubGluZUxldmVsQm94R2VvbWV0
cnkuYm9yZGVyVG9wKCkgKyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1
ZU9yKDApICsgaW5saW5lQmxvY2tCYXNlbGluZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGF1dG8gcmVjdCA9IERpc3BsYXk6OklubGluZVJlY3QgeyB7IH0sIGxvZ2ljYWxMZWZ0LCBydW4u
bG9naWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQgfTsKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9
IElubGluZVJlY3QgeyB7IH0sIGxvZ2ljYWxMZWZ0LCBydW4ubG9naWNhbFdpZHRoKCksIGxvZ2lj
YWxIZWlnaHQgfTsKICAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gbWFrZVVuaXF1ZTxJbmxp
bmVCb3g+KGlubGluZUxldmVsQm94LCByZWN0LCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCB7
IH0pOwogICAgICAgICAgICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmaW5saW5lTGV2ZWxCb3gs
IGlubGluZUJveC5nZXQoKSk7CiAgICAgICAgICAgICBtX2lubGluZUJveExpc3QuYXBwZW5kKFdU
Rk1vdmUoaW5saW5lQm94KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKaW5kZXggY2MzMWQxZmFhZjRjODZmOWJkZmQ5
MDViNjMxZmE0YTI4MDEwMDJlMy4uOWJmYzI5ZTEwZjQ5MTgwN2ZjMTE2OWM5NGE0NmI3OTI3YWUy
YjljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCb3guaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKExBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJEaXNwbGF5SW5saW5lUmVjdC5oIgor
I2luY2x1ZGUgIklubGluZVJlY3QuaCIKICNpbmNsdWRlICJJbmxpbmVMaW5lLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgpAQCAtNTksMTEgKzU5LDExIEBAIHB1YmxpYzoKICAgICBzdHJ1Y3QgSW5saW5lQm94IHsKICAg
ICAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTkxJTkUoSW5saW5lQm94KTsKICAgICBwdWJs
aWM6Ci0gICAgICAgIElubGluZUJveChjb25zdCBCb3gmLCBjb25zdCBEaXNwbGF5OjpJbmxpbmVS
ZWN0JiwgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50
KTsKKyAgICAgICAgSW5saW5lQm94KGNvbnN0IEJveCYsIGNvbnN0IElubGluZVJlY3QmLCBJbmxp
bmVMYXlvdXRVbml0IGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IGRlc2NlbnQpOwogICAgICAg
ICBJbmxpbmVCb3goY29uc3QgQm94JiwgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgSW5s
aW5lTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgpOwogICAgICAgICBJbmxpbmVCb3goKSA9IGRlZmF1
bHQ7CiAKLSAgICAgICAgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYgbG9naWNhbFJlY3QoKSBj
b25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0OyB9CisgICAgICAgIGNvbnN0IElubGluZVJlY3Qm
IGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdDsgfQogICAgICAgICBJ
bmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0
LnRvcCgpOyB9CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbEJvdHRvbSgpIGNvbnN0
IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QuYm90dG9tKCk7IH0KICAgICAgICAgSW5saW5lTGF5b3V0
VW5pdCBsb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3QubGVmdCgpOyB9
CkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdm9pZCBzZXRMaW5lU3BhY2luZyhJ
bmxpbmVMYXlvdXRVbml0IGxpbmVTcGFjaW5nKSB7IG1fbGluZVNwYWNpbmcgPSBsaW5lU3BhY2lu
ZzsgfQogCiAgICAgICAgIFdlYWtQdHI8Y29uc3QgQm94PiBtX2xheW91dEJveDsKLSAgICAgICAg
RGlzcGxheTo6SW5saW5lUmVjdCBtX2xvZ2ljYWxSZWN0OworICAgICAgICBJbmxpbmVSZWN0IG1f
bG9naWNhbFJlY3Q7CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbV9iYXNlbGluZSB7IDAgfTsK
ICAgICAgICAgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gbV9kZXNjZW50OwogICAgICAgICBP
cHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX2xpbmVTcGFjaW5nOwpAQCAtMTEwLDcgKzExMCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGlzTGluZVZpc3VhbGx5RW1wdHkoKSBjb25zdCB7IHJldHVy
biBtX2lzTGluZVZpc3VhbGx5RW1wdHk7IH0KIAogICAgIGNvbnN0IElubGluZUJveCYgaW5saW5l
Qm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiAqbV9p
bmxpbmVCb3hSZWN0TWFwLmdldCgmbGF5b3V0Qm94KTsgfQotICAgIERpc3BsYXk6OklubGluZVJl
Y3QgbG9naWNhbFJlY3RGb3JUZXh0UnVuKGNvbnN0IExpbmU6OlJ1biYpIGNvbnN0OworICAgIElu
bGluZVJlY3QgbG9naWNhbFJlY3RGb3JUZXh0UnVuKGNvbnN0IExpbmU6OlJ1biYpIGNvbnN0Owog
CiAgICAgdXNpbmcgSW5saW5lQm94TWFwID0gSGFzaE1hcDxjb25zdCBCb3gqLCBJbmxpbmVCb3gq
PjsKICAgICBhdXRvIGlubGluZUJveExpc3QoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveFJl
Y3RNYXAudmFsdWVzKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZVJlY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hY2QwOWFiMWU3MTAxYWE2ZWNmNDMz
ZDI2NDAwNGZmZThmYjdhOGM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lUmVjdC5oCkBAIC0wLDAgKzEsMjkzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKKworI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K25hbWVzcGFjZSBMYXlvdXQgeworCitjbGFzcyBJbmxpbmVSZWN0IHsKK3B1YmxpYzoKKyAgICBJ
bmxpbmVSZWN0KCkgPSBkZWZhdWx0OworICAgIElubGluZVJlY3QoSW5saW5lTGF5b3V0VW5pdCB0
b3AsIElubGluZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5l
TGF5b3V0VW5pdCBoZWlnaHQpOworICAgIElubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9p
bnQmIHRvcExlZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVp
Z2h0KTsKKyAgICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBj
b25zdCBJbmxpbmVMYXlvdXRTaXplJik7CisgICAgCisgICAgSW5saW5lTGF5b3V0VW5pdCB0b3Ao
KSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdDsKKyAgICBJbmxpbmVM
YXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3Q7CisKKyAgICBJbmxpbmVMYXlvdXRVbml0IGJvdHRv
bSgpIGNvbnN0OworICAgIElubGluZUxheW91dFVuaXQgcmlnaHQoKSBjb25zdDsgICAgICAgIAor
CisgICAgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCgpIGNvbnN0OworICAgIElubGluZUxheW91dFVu
aXQgaGVpZ2h0KCkgY29uc3Q7CisgICAgSW5saW5lTGF5b3V0U2l6ZSBzaXplKCkgY29uc3Q7CisK
KyAgICB2b2lkIHNldFRvcChJbmxpbmVMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldEJvdHRvbShJ
bmxpbmVMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldExlZnQoSW5saW5lTGF5b3V0VW5pdCk7Cisg
ICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0IElubGluZUxheW91dFBvaW50Jik7CisgICAgdm9pZCBz
ZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0KTsKKyAgICB2b2lkIHNldEhlaWdodChJbmxpbmVMYXlv
dXRVbml0KTsKKworICAgIHZvaWQgbW92ZUhvcml6b250YWxseShJbmxpbmVMYXlvdXRVbml0KTsK
KyAgICB2b2lkIG1vdmVWZXJ0aWNhbGx5KElubGluZUxheW91dFVuaXQpOworICAgIHZvaWQgbW92
ZUJ5KElubGluZUxheW91dFBvaW50KTsKKworICAgIHZvaWQgZXhwYW5kKE9wdGlvbmFsPElubGlu
ZUxheW91dFVuaXQ+LCBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0Pik7CisgICAgdm9pZCBleHBh
bmRUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVjdCYpOworICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRh
bGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgZXhwYW5kKGRlbHRhLCB7IH0pOyB9CisgICAg
dm9pZCBleHBhbmRWZXJ0aWNhbGx5KElubGluZUxheW91dFVuaXQgZGVsdGEpIHsgZXhwYW5kKHsg
fSwgZGVsdGEpOyB9CisgICAgdm9pZCBleHBhbmRWZXJ0aWNhbGx5VG9Db250YWluKGNvbnN0IElu
bGluZVJlY3QmKTsKKyAgICB2b2lkIGluZmxhdGUoSW5saW5lTGF5b3V0VW5pdCk7CisKKyAgICBv
cGVyYXRvciBJbmxpbmVMYXlvdXRSZWN0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisjaWYgQVNTRVJU
X0VOQUJMRUQKKyAgICB2b2lkIGludmFsaWRhdGVUb3AoKSB7IG1faGFzVmFsaWRUb3AgPSBmYWxz
ZTsgfQorICAgIHZvaWQgaW52YWxpZGF0ZUxlZnQoKSB7IG1faGFzVmFsaWRMZWZ0ID0gZmFsc2U7
IH0KKyAgICB2b2lkIGludmFsaWRhdGVXaWR0aCgpIHsgbV9oYXNWYWxpZFdpZHRoID0gZmFsc2U7
IH0KKyAgICB2b2lkIGludmFsaWRhdGVIZWlnaHQoKSB7IG1faGFzVmFsaWRIZWlnaHQgPSBmYWxz
ZTsgfQorICAgIHZvaWQgaW52YWxpZGF0ZVBvc2l0aW9uKCk7CisKKyAgICBib29sIGhhc1ZhbGlk
UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2hhc1ZhbGlkVG9wICYmIG1faGFzVmFsaWRMZWZ0
OyB9CisgICAgYm9vbCBoYXNWYWxpZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2hhc1ZhbGlkV2lk
dGggJiYgbV9oYXNWYWxpZEhlaWdodDsgfQorICAgIGJvb2wgaGFzVmFsaWRHZW9tZXRyeSgpIGNv
bnN0IHsgcmV0dXJuIGhhc1ZhbGlkUG9zaXRpb24oKSAmJiBoYXNWYWxpZFNpemUoKTsgfQorCisg
ICAgdm9pZCBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7CisgICAgdm9pZCBzZXRIYXNWYWxpZFNpemUo
KTsKKworICAgIGJvb2wgbV9oYXNWYWxpZFRvcCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1Zh
bGlkTGVmdCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkV2lkdGggeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9oYXNWYWxpZEhlaWdodCB7IGZhbHNlIH07CisjZW5kaWYgLy8gQVNTRVJUX0VO
QUJMRUQKKyAgICBJbmxpbmVMYXlvdXRSZWN0IG1fcmVjdDsKK307CisKK2lubGluZSBJbmxpbmVS
ZWN0OjpJbmxpbmVSZWN0KElubGluZUxheW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRVbml0IGxl
ZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KQorICAg
IDogbV9yZWN0KGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxF
RAorICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsK
KyAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVl
OworI2VuZGlmCit9CisKK2lubGluZSBJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KGNvbnN0IElubGlu
ZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlv
dXRVbml0IGhlaWdodCkKKyAgICA6IElubGluZVJlY3QodG9wTGVmdC55KCksIHRvcExlZnQueCgp
LCB3aWR0aCwgaGVpZ2h0KQoreworfQorCitpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChj
b25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0U2l6ZSYg
c2l6ZSkKKyAgICA6IElubGluZVJlY3QodG9wTGVmdC55KCksIHRvcExlZnQueCgpLCBzaXplLndp
ZHRoKCksIHNpemUuaGVpZ2h0KCkpCit7Cit9CisKKyNpZiBBU1NFUlRfRU5BQkxFRAoraW5saW5l
IHZvaWQgSW5saW5lUmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKCkKK3sKKyAgICBpbnZhbGlkYXRl
VG9wKCk7CisgICAgaW52YWxpZGF0ZUxlZnQoKTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVj
dDo6c2V0SGFzVmFsaWRQb3NpdGlvbigpCit7CisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Cisg
ICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojpz
ZXRIYXNWYWxpZFNpemUoKQoreworICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7CisgICAgbV9o
YXNWYWxpZEhlaWdodCA9IHRydWU7Cit9CisjZW5kaWYgLy8gQVNTRVJUX0VOQUJMRUQKKworaW5s
aW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6dG9wKCkgY29uc3QKK3sKKyAgICBBU1NF
UlQobV9oYXNWYWxpZFRvcCk7CisgICAgcmV0dXJuIG1fcmVjdC55KCk7Cit9CisKK2lubGluZSBJ
bmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OmxlZnQoKSBjb25zdAoreworICAgIEFTU0VSVCht
X2hhc1ZhbGlkTGVmdCk7CisgICAgcmV0dXJuIG1fcmVjdC54KCk7Cit9CisKK2lubGluZSBJbmxp
bmVMYXlvdXRVbml0IElubGluZVJlY3Q6OmJvdHRvbSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1f
aGFzVmFsaWRUb3AgJiYgbV9oYXNWYWxpZEhlaWdodCk7CisgICAgcmV0dXJuIG1fcmVjdC5tYXhZ
KCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OnJpZ2h0KCkgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQgJiYgbV9oYXNWYWxpZFdpZHRoKTsKKyAg
ICByZXR1cm4gbV9yZWN0Lm1heFgoKTsKK30KKworaW5saW5lIElubGluZUxheW91dFBvaW50IElu
bGluZVJlY3Q6OnRvcExlZnQoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZFBvc2l0aW9u
KCkpOworICAgIHJldHVybiBtX3JlY3QubWluWE1pbllDb3JuZXIoKTsKK30KKworaW5saW5lIElu
bGluZUxheW91dFNpemUgSW5saW5lUmVjdDo6c2l6ZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhh
c1ZhbGlkU2l6ZSgpKTsKKyAgICByZXR1cm4gbV9yZWN0LnNpemUoKTsKK30KKworaW5saW5lIElu
bGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6d2lkdGgoKSBjb25zdAoreworICAgIEFTU0VSVCht
X2hhc1ZhbGlkV2lkdGgpOworICAgIHJldHVybiBtX3JlY3Qud2lkdGgoKTsKK30KKworaW5saW5l
IElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBBU1NF
UlQobV9oYXNWYWxpZEhlaWdodCk7CisgICAgcmV0dXJuIG1fcmVjdC5oZWlnaHQoKTsKK30KKwor
aW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0VG9wTGVmdChjb25zdCBJbmxpbmVMYXlvdXRQb2lu
dCYgdG9wTGVmdCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHNldEhhc1ZhbGlkUG9zaXRp
b24oKTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRMb2NhdGlvbih0b3BMZWZ0KTsKK30KKworaW5s
aW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0VG9wKElubGluZUxheW91dFVuaXQgdG9wKQoreworI2lm
IEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisjZW5kaWYKKyAgICBt
X3JlY3Quc2V0WSh0b3ApOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRCb3R0b20o
SW5saW5lTGF5b3V0VW5pdCBib3R0b20pCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hh
c1ZhbGlkVG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKKyNlbmRpZgor
ICAgIG1fcmVjdC5zaGlmdE1heFlFZGdlVG8oYm90dG9tKTsKK30KKworaW5saW5lIHZvaWQgSW5s
aW5lUmVjdDo6c2V0TGVmdChJbmxpbmVMYXlvdXRVbml0IGxlZnQpCit7CisjaWYgQVNTRVJUX0VO
QUJMRUQKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0
WChsZWZ0KTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0V2lkdGgoSW5saW5lTGF5
b3V0VW5pdCB3aWR0aCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFzVmFsaWRXaWR0
aCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0V2lkdGgod2lkdGgpOworfQorCitpbmxp
bmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRIZWlnaHQoSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpCit7
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKKyNlbmRp
ZgorICAgIG1fcmVjdC5zZXRIZWlnaHQoaGVpZ2h0KTsKK30KKworaW5saW5lIHZvaWQgSW5saW5l
UmVjdDo6bW92ZUhvcml6b250YWxseShJbmxpbmVMYXlvdXRVbml0IG9mZnNldCkKK3sKKyAgICBB
U1NFUlQobV9oYXNWYWxpZExlZnQpOworICAgIG1fcmVjdC5tb3ZlKElubGluZUxheW91dFNpemUg
eyBvZmZzZXQsIDAgfSk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6Om1vdmVWZXJ0aWNh
bGx5KElubGluZUxheW91dFVuaXQgb2Zmc2V0KQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9w
KTsKKyAgICBtX3JlY3QubW92ZShJbmxpbmVMYXlvdXRTaXplIHsgMCwgb2Zmc2V0IH0pOworfQor
CitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlQnkoSW5saW5lTGF5b3V0UG9pbnQgb2Zmc2V0
KQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsKKyAgICBBU1NFUlQobV9oYXNWYWxpZExl
ZnQpOworICAgIG1fcmVjdC5tb3ZlQnkob2Zmc2V0KTsKK30KKworaW5saW5lIHZvaWQgSW5saW5l
UmVjdDo6ZXhwYW5kKE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxJ
bmxpbmVMYXlvdXRVbml0PiBoZWlnaHQpCit7CisgICAgQVNTRVJUKCF3aWR0aCB8fCBtX2hhc1Zh
bGlkV2lkdGgpOworICAgIEFTU0VSVCghaGVpZ2h0IHx8IG1faGFzVmFsaWRIZWlnaHQpOworICAg
IG1fcmVjdC5leHBhbmQod2lkdGgudmFsdWVPcigwKSwgaGVpZ2h0LnZhbHVlT3IoMCkpOworfQor
CitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmRUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVj
dCYgb3RoZXIpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1
ZTsKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7CisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1
ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVjdC51bml0
ZUV2ZW5JZkVtcHR5KG90aGVyKTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6ZXhwYW5k
VmVydGljYWxseVRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0JiBvdGhlcikKK3sKKyAgICBhdXRv
IGNvbnRhaW5Ub3AgPSBzdGQ6Om1pbih0b3AoKSwgb3RoZXIudG9wKCkpOworICAgIGF1dG8gY29u
dGFpbkJvdHRvbSA9IHN0ZDo6bWF4KGJvdHRvbSgpLCBvdGhlci5ib3R0b20oKSk7CisgICAgc2V0
VG9wKGNvbnRhaW5Ub3ApOworICAgIHNldEJvdHRvbShjb250YWluQm90dG9tKTsKK30KKworaW5s
aW5lIHZvaWQgSW5saW5lUmVjdDo6aW5mbGF0ZShJbmxpbmVMYXlvdXRVbml0IGluZmxhdGUpCit7
CisgICAgQVNTRVJUKGhhc1ZhbGlkR2VvbWV0cnkoKSk7CisgICAgbV9yZWN0LmluZmxhdGUoaW5m
bGF0ZSk7Cit9CisKK2lubGluZSBJbmxpbmVSZWN0OjpvcGVyYXRvciBJbmxpbmVMYXlvdXRSZWN0
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsgCisgICAgcmV0dXJu
IG1fcmVjdDsKK30KKworfQorfQorI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="424554"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408984</attachid>
            <date>2020-09-16 20:39:20 -0700</date>
            <delta_ts>2020-09-16 21:01:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216633-20200916203919.patch</filename>
            <type>text/plain</type>
            <size>41507</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5Mjg0ZWU2OThlNGQ5
YzJjZjg0NTg2NjJkMGQ4YjI2YTlmZDE5Ni4uMGU1YTY4MWRjNWVhYWNhYThhMWU0ZjhmYzgyNmVk
N2Y4Njg5MjdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTE2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIElu
bGluZVJlY3QgZnJvbSBEaXNwbGF5IHRvIExheW91dCBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjYzMworCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBMZXQncyBtb3ZlIHRoZSBEaXNwbGF5IHR5
cGUgb3ZlciB0byBMYXlvdXQgbmFtZXNwYWNlLiBEaXNwbGF5IHRyZWUgbmVlZHMgYSBkaWZmZXJl
bnQgc2V0IG9mIGRhdGEgdHlwZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpyZWN0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnNjcm9sbGFibGVPdmVyZmxvdyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjppbmtPdmVyZmxvdyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aW5rT3ZlcmZsb3cgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAqIGxh
eW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNpemVBbmRQbGFjZUZsZXhJ
dGVtcyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZWRMaW5lTG9naWNhbFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGlu
ZUNvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJv
eDo6SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6bG9naWNh
bFJlY3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJv
eDo6Y29uc3RydWN0SW5saW5lQm94ZXMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6
SW5saW5lQm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lUmVjdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZVJlY3Q6OmV4cGFuZEhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnRvcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OnRvcExlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjpzaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVSZWN0OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpzZXRUb3BMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6
c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0Qm90dG9t
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0TGVmdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZVJlY3Q6Om1vdmVWZXJ0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6ZXhwYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVG9Db250YWluKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVmVydGljYWxseVRvQ29udGFpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZVJlY3Q6OmluZmxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpvcGVyYXRvciBJbmxpbmVMYXlvdXRSZWN0IGNvbnN0KToKKwogMjAyMC0wOS0xNiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFJlbW92ZSBwYXJ0
aWFsIGludmFsaWRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDc5NzQyOWJiMTYyYWJhNjBiMDFiNjJhYjJhZjhhNDQwYWYz
MmQwN2YuLjRmYmEyMDI3MDMzYzhlNmYyMjU3Y2Q1YWI1YzE5MTk4NjFkY2M4YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2
OSw3ICszNjksNiBAQAogCQkwRkZENEQ2MTE4NjUxRkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
MEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAwQTNE
Qjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKIAkJMTEyQjM0RDUxRTYwQjk4MzAwQkIz
MTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTJCMzRENDFFNjBCOTgzMDBCQjMxMEEgLyogU2lt
cGxlTGluZUxheW91dFBhZ2luYXRpb24uaCAqLzsgfTsKLQkJMTEyRkIzNTIyMzlDMjNDNDAwODcw
NTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMTJGQjM1MDIzOUMyM0M0MDA4NzA1NEEgLyogRGlzcGxheUlubGlu
ZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxMTMxMENGMjIwQkE0QTMyMDA2NUE4RDAgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMTAwRkQ3MjA5NTE0REYw
MDgxQUE2QyAvKiBMYXlvdXRUcmVlQnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0YzMjBCQTRBMzcwMDY1QThEMCAvKiBMYXlv
dXRSZXBsYWNlZEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTExQzYxNTYyMEFEMUFFMTAwNUI4MkZBIC8qIExheW91dFJlcGxhY2VkQm94LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjQy
MEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEwMEZDNzIwOTI3NjRDMDA4MUFBNkMgLyogTGF5
b3V0SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMjA2NCw2ICsyMDYzLDcgQEAKIAkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8q
IExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyNkVCNDgyMzQw
MDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5s
aW5lTGluZUJ1aWxkZXIuaCAqLzsgfTsKIAkJNkYzNjBFNTAyMzk5OTQyMTAwMTUxMkE3IC8qIElu
bGluZVNvZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RjM2MEU0RTIzOTk5NDIwMDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVC
cmVha0l0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY0MERBODEyNTEzMDMzQTAwRUMw
NEI3IC8qIElubGluZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2RjYzODNGNjI0MjdBRjRBMDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENv
bnRhaW5pbmdCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkY2MzgzRjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dEluaXRpYWxDb250YWluaW5n
QmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2Rjc3ODY4ODIzNDkxQUQ4MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNzc4Njg3MjM0OTFBRDcwMDRE
OTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0M2MjA4QzI5NTcwMDJGMjlBQiAvKiBMYXlvdXRTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0Ez
QzQyMDhDMjk1NjAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTYwOTgsNyArNjA5OCw2IEBACiAJCTExMUM2
MTU3MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRSZXBsYWNlZEJveC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMYXlvdXRSZXBsYWNlZEJveC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTExMkIzNEQwMUU2MEI4QTcwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaW1wbGVMaW5lTGF5
b3V0UGFnaW5hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMkIzNEQ0
MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTJGQjM1MDIzOUMyM0M0MDA4NzA1NEEgLyog
RGlzcGxheUlubGluZVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
cGxheUlubGluZVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5RDcy
MDNFMDM4MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5RDgyMDNFMDM4MDAwQzY2OTE1IC8qIFJlbmRl
clRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWls
ZGVyQ29udGludWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjRG
MUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTU4OCw2ICs5NTg3LDcgQEAKIAkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUy
IC8qIElubGluZUxpbmVCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElubGluZUxpbmVCdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMzVF
RkFGMjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjM2MEU0
RTIzOTk5NDIwMDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY0MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGlu
ZVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lUmVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjRBNUJENTIyRjlGMTZCMDBBODBGMjUgLyog
TGF5b3V0UGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UGhhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjVCN0VBQTIzMDBBNzlFMDA2N0Q5QzMgLyogVGFi
bGVHcmlkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlR3JpZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZGNjM4M0Y0MjQyN0FGNDkwMERBQkE1MyAvKiBMYXlvdXRJbml0
aWFsQ29udGFpbmluZ0Jsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExh
eW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3NTM4LDYgKzE3NTM4LDcgQEAKIAkJCQk2RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyog
SW5saW5lTGluZUJyZWFrZXIuaCAqLywKIAkJCQk2RjI1QjIwMDIyMEE4NUFCMDAwMDAxMUIgLyog
SW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJCTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAv
KiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAorCQkJCTZGNDBEQTgxMjUxMzAzM0EwMEVDMDRCNyAv
KiBJbmxpbmVSZWN0LmggKi8sCiAJCQkJNkYzNjBFNEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGlu
ZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8sCiAJCQkJNkYxQ0MxREMyMjVGOEI0MTAwNzIwQUQyIC8q
IElubGluZVRleHRJdGVtLmNwcCAqLywKIAkJCQk2RjFDQzFERDIyNUY4QjQyMDA3MjBBRDIgLyog
SW5saW5lVGV4dEl0ZW0uaCAqLywKQEAgLTE3NTUyLDcgKzE3NTUzLDYgQEAKIAkJCQkxMTk5RkE1
OTIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJveC5oICovLAogCQkJCUU0RkI0QjM1MjM5QkVC
MTAwMDNDMzM2QSAvKiBEaXNwbGF5SW5saW5lQ29udGVudC5jcHAgKi8sCiAJCQkJRTQ1MUM2MzMy
Mzk0MDU4RTAwOTkzMTkwIC8qIERpc3BsYXlJbmxpbmVDb250ZW50LmggKi8sCi0JCQkJMTEyRkIz
NTAyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggKi8sCiAJCQkJNkZCNDdF
NjEyMjc3NDI1QTAwQzdCQ0IwIC8qIERpc3BsYXlMaW5lLmggKi8sCiAJCQkJNkY3Nzg2ODUyMzQ5
MUFDNjAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmNwcCAqLywKIAkJCQk2Rjc3ODY4NzIzNDkx
QUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAqLywKQEAgLTMxMDY1LDcgKzMxMDY1LDYg
QEAKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29h
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1QjIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxh
eUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ1MUM2MzQyMzk0MDU4RjAwOTkzMTkwIC8qIERp
c3BsYXlJbmxpbmVDb250ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkxMTJGQjM1MjIzOUMyM0M0
MDA4NzA1NEEgLyogRGlzcGxheUlubGluZVJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjQ3
RTYzMjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5TGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc2Nyw2ICszMTc2Niw3IEBACiAJCQkJNkZFMTk4MTcy
MTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY0NTc3NUNFMjQxNDM3RDUwMDJERjFBMCAvKiBJbmxpbmVQYXRoRGF0YS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNkY0MERBODIyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMzYwRTUwMjM5OTk0MjEwMDE1MTJBNyAvKiBJbmxp
bmVTb2Z0TGluZUJyZWFrSXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE0QzNBNzcwQjJCMTY3
OTAwMjMzNEEyIC8qIElubGluZVN0eWxlU2hlZXRPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NUEwOTdEOTMwMjAwOTRDOUU0IC8qIElubGluZVRleHRCb3guaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJ
bmxpbmVSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlu
bGluZVJlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlkNjI3NzRhMzdiYWU1
OGFlYmNlZmNjNWE1OWM5NGRkZjdkMTEyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eUlubGluZVJlY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
LQotI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVz
cGFjZSBEaXNwbGF5IHsKLQotY2xhc3MgSW5saW5lUmVjdCB7Ci1wdWJsaWM6Ci0gICAgSW5saW5l
UmVjdCgpID0gZGVmYXVsdDsKLSAgICBJbmxpbmVSZWN0KElubGluZUxheW91dFVuaXQgdG9wLCBJ
bmxpbmVMYXlvdXRVbml0IGxlZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91
dFVuaXQgaGVpZ2h0KTsKLSAgICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0
b3BMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7
Ci0gICAgSW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3Qg
SW5saW5lTGF5b3V0U2l6ZSYpOwotICAgIAotICAgIElubGluZUxheW91dFVuaXQgdG9wKCkgY29u
c3Q7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0
UG9pbnQgdG9wTGVmdCgpIGNvbnN0OwotCi0gICAgSW5saW5lTGF5b3V0VW5pdCBib3R0b20oKSBj
b25zdDsKLSAgICBJbmxpbmVMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3Q7ICAgICAgICAKLQotICAg
IElubGluZUxheW91dFVuaXQgd2lkdGgoKSBjb25zdDsKLSAgICBJbmxpbmVMYXlvdXRVbml0IGhl
aWdodCgpIGNvbnN0OwotICAgIElubGluZUxheW91dFNpemUgc2l6ZSgpIGNvbnN0OwotCi0gICAg
dm9pZCBzZXRUb3AoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRCb3R0b20oSW5saW5l
TGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRMZWZ0KElubGluZUxheW91dFVuaXQpOwotICAgIHZv
aWQgc2V0VG9wTGVmdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYpOwotICAgIHZvaWQgc2V0V2lk
dGgoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRIZWlnaHQoSW5saW5lTGF5b3V0VW5p
dCk7Ci0KLSAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAg
dm9pZCBtb3ZlVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0KTsKLSAgICB2b2lkIG1vdmVCeShJ
bmxpbmVMYXlvdXRQb2ludCk7Ci0KLSAgICB2b2lkIGV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlv
dXRVbml0PiwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4pOwotICAgIHZvaWQgZXhwYW5kVG9D
b250YWluKGNvbnN0IElubGluZVJlY3QmKTsKLSAgICB2b2lkIGV4cGFuZEhvcml6b250YWxseShJ
bmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFuZChkZWx0YSwgeyB9KTsgfQotICAgIHZvaWQg
ZXhwYW5kVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFuZCh7IH0sIGRl
bHRhKTsgfQotICAgIHZvaWQgZXhwYW5kVmVydGljYWxseVRvQ29udGFpbihjb25zdCBJbmxpbmVS
ZWN0Jik7Ci0gICAgdm9pZCBpbmZsYXRlKElubGluZUxheW91dFVuaXQpOwotCi0gICAgb3BlcmF0
b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNvbnN0OwotCi1wcml2YXRlOgotI2lmIEFTU0VSVF9FTkFC
TEVECi0gICAgdm9pZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0K
LSAgICB2b2lkIGludmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9Ci0g
ICAgdm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0K
LSAgICB2b2lkIGludmFsaWRhdGVQb3NpdGlvbigpOwotCi0gICAgYm9vbCBoYXNWYWxpZFBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQot
ICAgIGJvb2wgaGFzVmFsaWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYm
IG1faGFzVmFsaWRIZWlnaHQ7IH0KLSAgICBib29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7
IHJldHVybiBoYXNWYWxpZFBvc2l0aW9uKCkgJiYgaGFzVmFsaWRTaXplKCk7IH0KLQotICAgIHZv
aWQgc2V0SGFzVmFsaWRQb3NpdGlvbigpOwotICAgIHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7Ci0K
LSAgICBib29sIG1faGFzVmFsaWRUb3AgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNWYWxpZExl
ZnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNWYWxpZFdpZHRoIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1faGFzVmFsaWRIZWlnaHQgeyBmYWxzZSB9OwotI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVE
Ci0gICAgSW5saW5lTGF5b3V0UmVjdCBtX3JlY3Q7Ci19OwotCi1pbmxpbmUgSW5saW5lUmVjdDo6
SW5saW5lUmVjdChJbmxpbmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5b3V0VW5pdCBsZWZ0LCBJ
bmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCkKLSAgICA6IG1f
cmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAg
ICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci0gICAg
bV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLSNl
bmRpZgotfQotCi1pbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlv
dXRQb2ludCYgdG9wTGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5p
dCBoZWlnaHQpCi0gICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0LngoKSwgd2lk
dGgsIGhlaWdodCkKLXsKLX0KLQotaW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3Qg
SW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW91dFNpemUmIHNpemUp
Ci0gICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0LngoKSwgc2l6ZS53aWR0aCgp
LCBzaXplLmhlaWdodCgpKQotewotfQotCi0jaWYgQVNTRVJUX0VOQUJMRUQKLWlubGluZSB2b2lk
IElubGluZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlvbigpCi17Ci0gICAgaW52YWxpZGF0ZVRvcCgp
OwotICAgIGludmFsaWRhdGVMZWZ0KCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNl
dEhhc1ZhbGlkUG9zaXRpb24oKQotewotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotICAgIG1f
aGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKLX0KLQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0SGFz
VmFsaWRTaXplKCkKLXsKLSAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOwotICAgIG1faGFzVmFs
aWRIZWlnaHQgPSB0cnVlOwotfQotI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECi0KLWlubGluZSBJ
bmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OnRvcCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1f
aGFzVmFsaWRUb3ApOwotICAgIHJldHVybiBtX3JlY3QueSgpOwotfQotCi1pbmxpbmUgSW5saW5l
TGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpsZWZ0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNW
YWxpZExlZnQpOwotICAgIHJldHVybiBtX3JlY3QueCgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5
b3V0VW5pdCBJbmxpbmVSZWN0Ojpib3R0b20oKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1Zh
bGlkVG9wICYmIG1faGFzVmFsaWRIZWlnaHQpOwotICAgIHJldHVybiBtX3JlY3QubWF4WSgpOwot
fQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpyaWdodCgpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgcmV0
dXJuIG1fcmVjdC5tYXhYKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVMYXlvdXRQb2ludCBJbmxpbmVS
ZWN0Ojp0b3BMZWZ0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaGFzVmFsaWRQb3NpdGlvbigpKTsK
LSAgICByZXR1cm4gbV9yZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVM
YXlvdXRTaXplIElubGluZVJlY3Q6OnNpemUoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNWYWxp
ZFNpemUoKSk7Ci0gICAgcmV0dXJuIG1fcmVjdC5zaXplKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVM
YXlvdXRVbml0IElubGluZVJlY3Q6OndpZHRoKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNW
YWxpZFdpZHRoKTsKLSAgICByZXR1cm4gbV9yZWN0LndpZHRoKCk7Ci19Ci0KLWlubGluZSBJbmxp
bmVMYXlvdXRVbml0IElubGluZVJlY3Q6OmhlaWdodCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1f
aGFzVmFsaWRIZWlnaHQpOwotICAgIHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7Ci19Ci0KLWlubGlu
ZSB2b2lkIElubGluZVJlY3Q6OnNldFRvcExlZnQoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRv
cExlZnQpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7
Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7Ci19Ci0KLWlubGluZSB2
b2lkIElubGluZVJlY3Q6OnNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRvcCkKLXsKLSNpZiBBU1NF
UlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0
LnNldFkodG9wKTsKLX0KLQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0Qm90dG9tKElubGlu
ZUxheW91dFVuaXQgYm90dG9tKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxp
ZFRvcCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLSAgICBt
X3JlY3Quc2hpZnRNYXhZRWRnZVRvKGJvdHRvbSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJl
Y3Q6OnNldExlZnQoSW5saW5lTGF5b3V0VW5pdCBsZWZ0KQotewotI2lmIEFTU0VSVF9FTkFCTEVE
Ci0gICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldFgobGVm
dCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFdpZHRoKElubGluZUxheW91dFVu
aXQgd2lkdGgpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlkV2lkdGggPSB0
cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldFdpZHRoKHdpZHRoKTsKLX0KLQotaW5saW5lIHZv
aWQgSW5saW5lUmVjdDo6c2V0SGVpZ2h0KElubGluZUxheW91dFVuaXQgaGVpZ2h0KQotewotI2lm
IEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLSAg
ICBtX3JlY3Quc2V0SGVpZ2h0KGhlaWdodCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6
Om1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpCi17Ci0gICAgQVNTRVJU
KG1faGFzVmFsaWRMZWZ0KTsKLSAgICBtX3JlY3QubW92ZShJbmxpbmVMYXlvdXRTaXplIHsgb2Zm
c2V0LCAwIH0pOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlVmVydGljYWxseShJ
bmxpbmVMYXlvdXRVbml0IG9mZnNldCkKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0g
ICAgbV9yZWN0Lm1vdmUoSW5saW5lTGF5b3V0U2l6ZSB7IDAsIG9mZnNldCB9KTsKLX0KLQotaW5s
aW5lIHZvaWQgSW5saW5lUmVjdDo6bW92ZUJ5KElubGluZUxheW91dFBvaW50IG9mZnNldCkKLXsK
LSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsK
LSAgICBtX3JlY3QubW92ZUJ5KG9mZnNldCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6
OmV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwgT3B0aW9uYWw8SW5saW5l
TGF5b3V0VW5pdD4gaGVpZ2h0KQotewotICAgIEFTU0VSVCghd2lkdGggfHwgbV9oYXNWYWxpZFdp
ZHRoKTsKLSAgICBBU1NFUlQoIWhlaWdodCB8fCBtX2hhc1ZhbGlkSGVpZ2h0KTsKLSAgICBtX3Jl
Y3QuZXhwYW5kKHdpZHRoLnZhbHVlT3IoMCksIGhlaWdodC52YWx1ZU9yKDApKTsKLX0KLQotaW5s
aW5lIHZvaWQgSW5saW5lUmVjdDo6ZXhwYW5kVG9Db250YWluKGNvbnN0IElubGluZVJlY3QmIG90
aGVyKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Ci0g
ICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7Ci0g
ICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLSAgICBtX3JlY3QudW5pdGVFdmVu
SWZFbXB0eShvdGhlcik7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFuZFZlcnRp
Y2FsbHlUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVjdCYgb3RoZXIpCi17Ci0gICAgYXV0byBjb250
YWluVG9wID0gc3RkOjptaW4odG9wKCksIG90aGVyLnRvcCgpKTsKLSAgICBhdXRvIGNvbnRhaW5C
b3R0b20gPSBzdGQ6Om1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOwotICAgIHNldFRvcChj
b250YWluVG9wKTsKLSAgICBzZXRCb3R0b20oY29udGFpbkJvdHRvbSk7Ci19Ci0KLWlubGluZSB2
b2lkIElubGluZVJlY3Q6OmluZmxhdGUoSW5saW5lTGF5b3V0VW5pdCBpbmZsYXRlKQotewotICAg
IEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOwotICAgIG1fcmVjdC5pbmZsYXRlKGluZmxhdGUp
OwotfQotCi1pbmxpbmUgSW5saW5lUmVjdDo6b3BlcmF0b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKGhhc1ZhbGlkR2VvbWV0cnkoKSk7IAotICAgIHJldHVybiBtX3Jl
Y3Q7Ci19Ci0KLX0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheUxpbmUuaAppbmRleCA2MWMwYjY2N2YxMWE1ZTIzODZjNTQ0ZDczZGY1YTQ3
MmEwYmFkZjRiLi44MWY0NGZlNGI5M2JiNDNmMzExYjNhNzY4YTgwNTY2YzIyOGE2MDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxpbmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxpbmUuaApAQCAt
MjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAK
LSNpbmNsdWRlICJEaXNwbGF5SW5saW5lUmVjdC5oIgorI2luY2x1ZGUgIklubGluZVJlY3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXkgewpAQCAtMzUsMTEgKzM1
LDExIEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIGNsYXNzIExpbmUgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExpbmUoY29uc3QgSW5saW5lUmVjdCYsIGNvbnN0
IElubGluZVJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdywgY29uc3QgSW5saW5lUmVjdCYgaW5rT3Zl
cmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpOworICAgIExpbmUoY29uc3QgTGF5b3V0
OjpJbmxpbmVSZWN0JiwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZs
b3csIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIElubGluZUxheW91dFVu
aXQgYmFzZWxpbmUpOwogCi0gICAgY29uc3QgSW5saW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IElubGluZVJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdygp
IGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZU92ZXJmbG93OyB9Ci0gICAgY29uc3QgSW5saW5l
UmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93OyB9CisgICAg
Y29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9
CisgICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbGFibGVPdmVyZmxvdzsgfQorICAgIGNvbnN0IExheW91dDo6SW5s
aW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93OyB9CiAK
ICAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QubGVmdCgp
OyB9CiAgICAgSW5saW5lTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5y
aWdodCgpOyB9CkBAIC01NCwxMyArNTQsMTMgQEAgcHVibGljOgogICAgIElubGluZUxheW91dFVu
aXQgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBtX2Jhc2VsaW5lOyB9CiAKIHByaXZhdGU6Ci0g
ICAgSW5saW5lUmVjdCBtX3JlY3Q7Ci0gICAgSW5saW5lUmVjdCBtX3Njcm9sbGFibGVPdmVyZmxv
dzsKLSAgICBJbmxpbmVSZWN0IG1faW5rT3ZlcmZsb3c7CisgICAgTGF5b3V0OjpJbmxpbmVSZWN0
IG1fcmVjdDsKKyAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9zY3JvbGxhYmxlT3ZlcmZsb3c7Cisg
ICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1faW5rT3ZlcmZsb3c7CiAgICAgSW5saW5lTGF5b3V0VW5p
dCBtX2Jhc2VsaW5lIHsgMCB9OwogfTsKIAotaW5saW5lIExpbmU6OkxpbmUoY29uc3QgSW5saW5l
UmVjdCYgcmVjdCwgY29uc3QgSW5saW5lUmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93LCBjb25zdCBJ
bmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSkKK2lubGlu
ZSBMaW5lOjpMaW5lKGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5b3V0
OjpJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IExheW91dDo6SW5saW5lUmVj
dCYgaW5rT3ZlcmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpCiAgICAgOiBtX3JlY3Qo
cmVjdCkKICAgICAsIG1fc2Nyb2xsYWJsZU92ZXJmbG93KHNjcm9sbGFibGVPdmVyZmxvdykKICAg
ICAsIG1faW5rT3ZlcmZsb3coaW5rT3ZlcmZsb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaAppbmRleCA3MWFjOGE3ZWQ5ODNlNzQ4MjU2YzQyN2Qw
ZjM1MTE2Nzc3MjVkMzc4Li5iNzE2MTgxMmY4Njk4NDMzOThjMWQyZTY4YTBlYjEzNDQ2ZjFmNzE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmgK
QEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhU
KQogCi0jaW5jbHVkZSAiRGlzcGxheUlubGluZVJlY3QuaCIKKyNpbmNsdWRlICJJbmxpbmVSZWN0
LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJUZXh0RmxhZ3MuaCIKQEAgLTY0LDEwICs2NCwxMCBAQCBzdHJ1Y3QgUnVuIHsKICAg
ICB9OwogCiAgICAgc3RydWN0IEV4cGFuc2lvbjsKLSAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwg
Y29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBJbmxpbmVSZWN0JiwgY29uc3QgSW5saW5lUmVjdCYg
aW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgT3B0aW9uYWw8VGV4dENvbnRlbnQ+ID0gV1RGOjpudWxs
b3B0KTsKKyAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25z
dCBMYXlvdXQ6OklubGluZVJlY3QmLCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJm
bG93LCBFeHBhbnNpb24sIE9wdGlvbmFsPFRleHRDb250ZW50PiA9IFdURjo6bnVsbG9wdCk7CiAK
LSAgICBjb25zdCBJbmxpbmVSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9Ci0g
ICAgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092
ZXJmbG93OyB9CisgICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWN0OyB9CisgICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxv
dygpIGNvbnN0IHsgcmV0dXJuIG1faW5rT3ZlcmZsb3c7IH0KIAogICAgIElubGluZUxheW91dFBv
aW50IHRvcExlZnQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QudG9wTGVmdCgpOyB9CiAgICAgSW5s
aW5lTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxlZnQoKTsgfQpAQCAt
MTAzLDEzICsxMDMsMTMgQEAgcHJpdmF0ZToKICAgICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7
CiAgICAgV2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJveD4gbV9sYXlvdXRCb3g7CiAgICAgQ2FjaGVk
SW1hZ2UqIG1fY2FjaGVkSW1hZ2UgeyBudWxscHRyIH07Ci0gICAgSW5saW5lUmVjdCBtX3JlY3Q7
Ci0gICAgSW5saW5lUmVjdCBtX2lua092ZXJmbG93OworICAgIExheW91dDo6SW5saW5lUmVjdCBt
X3JlY3Q7CisgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1faW5rT3ZlcmZsb3c7CiAgICAgRXhwYW5z
aW9uIG1fZXhwYW5zaW9uOwogICAgIE9wdGlvbmFsPFRleHRDb250ZW50PiBtX3RleHRDb250ZW50
OwogfTsKIAotaW5saW5lIFJ1bjo6UnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6
Qm94JiBsYXlvdXRCb3gsIGNvbnN0IElubGluZVJlY3QmIHJlY3QsIGNvbnN0IElubGluZVJlY3Qm
IGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBPcHRpb25hbDxUZXh0Q29udGVudD4g
dGV4dENvbnRlbnQpCitpbmxpbmUgUnVuOjpSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5
b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0LCBjb25z
dCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBP
cHRpb25hbDxUZXh0Q29udGVudD4gdGV4dENvbnRlbnQpCiAgICAgOiBtX2xpbmVJbmRleChsaW5l
SW5kZXgpCiAgICAgLCBtX2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gpKQogICAgICwg
bV9yZWN0KHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1h
dHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
bGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDc2M2YwZDY0YTc5
NmJkODA4OTM3ODlhODdkMjgzYzUzZGI2MzY3OTUuLjFjZWJiMDZlZmZiYjg5NTc2YTQwYmM5Yzgw
Mjk5YjY0NWY4M2Y4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9y
bWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC05Myw3ICs5
Myw3IEBAIHZvaWQgRmxleEZvcm1hdHRpbmdDb250ZXh0OjpzaXplQW5kUGxhY2VGbGV4SXRlbXMo
Y29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250CiAgICAgICAgIH07CiAgICAgICAgIGNvbXB1
dGVGbGV4SXRlbUdlb21ldHJ5KCk7CiAgICAgfQotICAgIGF1dG8gZmxleExpbmUgPSBEaXNwbGF5
OjpJbmxpbmVSZWN0IHsgZmxleEl0ZW1Dcm9zQXhpc1N0YXJ0LCBmbGV4SXRlbU1haW5BeGlzU3Rh
cnQsIGZsZXhJdGVtTWFpbkF4aXNFbmQgLSBmbGV4SXRlbU1haW5BeGlzU3RhcnQsIGZsZXhJdGVt
Q3Jvc0F4aXNFbmQgLSBmbGV4SXRlbUNyb3NBeGlzU3RhcnQgfTsKKyAgICBhdXRvIGZsZXhMaW5l
ID0gSW5saW5lUmVjdCB7IGZsZXhJdGVtQ3Jvc0F4aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc1N0
YXJ0LCBmbGV4SXRlbU1haW5BeGlzRW5kIC0gZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRl
bUNyb3NBeGlzRW5kIC0gZmxleEl0ZW1Dcm9zQXhpc1N0YXJ0IH07CiAgICAgZm9ybWF0dGluZ1N0
YXRlLmFkZExpbmUoeyBmbGV4TGluZSwgZmxleExpbmUsIGZsZXhMaW5lLCB7IH0gfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBmMWJmN2ZlOWQ5ZGUxNDc1
YWY1OWJmOTJjOWFkZTE0NWEwYzAyNjA5Li41MmVhMzFjNWNjOWM5NWRlMDhiMzhmYmFjYmE5NzE1
Nzg1NDMxMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC00MzQs
MjAgKzQzNCwyMCBAQCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6TGluZVJlY3RBbmRMaW5lQm94
T2Zmc2V0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdQogICAgIH0gZWxzZQogICAgICAg
ICBsaW5lTG9naWNhbEhlaWdodCA9IHJvb3RTdHlsZS5jb21wdXRlZExpbmVIZWlnaHQoKTsKIAot
ICAgIGF1dG8gbG9naWNhbFJlY3QgPSBEaXNwbGF5OjpJbmxpbmVSZWN0IHsgbGluZUNvbnRlbnQu
bG9naWNhbFRvcExlZnQsIGxpbmVDb250ZW50LmxpbmVMb2dpY2FsV2lkdGgsIGxpbmVMb2dpY2Fs
SGVpZ2h0fTsKKyAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gSW5saW5lUmVjdCB7IGxpbmVDb250ZW50
LmxvZ2ljYWxUb3BMZWZ0LCBsaW5lQ29udGVudC5saW5lTG9naWNhbFdpZHRoLCBsaW5lTG9naWNh
bEhlaWdodH07CiAgICAgLy8gSW5saW5lIHRyZWUgaGVpZ2h0IGlzIGFsbCBpbnRlZ2VyIGJhc2Vk
LgogICAgIGF1dG8gbGluZUJveE9mZnNldCA9IGZsb29yZigobGluZUxvZ2ljYWxIZWlnaHQgLSBs
aW5lQm94TG9naWNhbEhlaWdodCkgLyAyKTsKICAgICByZXR1cm4geyBsaW5lQm94T2Zmc2V0LCBs
b2dpY2FsUmVjdCB9OwogfQogCi1EaXNwbGF5OjpJbmxpbmVSZWN0IElubGluZUZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbGRlcjo6
TGluZUNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhv
cml6b250YWxDb25zdHJhaW50cykKK0lubGluZVJlY3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVHZW9tZXRyeUZvckxpbmVDb250ZW50KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29u
dGVudCYgbGluZUNvbnRlbnQsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRh
bENvbnN0cmFpbnRzKQogewogICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1h
dHRpbmdTdGF0ZSgpOwogICAgIGF1dG8mIGxpbmVCb3ggPSBsaW5lQ29udGVudC5saW5lQm94Owog
ICAgIGF1dG8gbGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0ID0gY29tcHV0ZWRMaW5lTG9naWNhbFJl
Y3QobGluZUNvbnRlbnQpOwogICAgIGF1dG8gbGluZUxvZ2ljYWxSZWN0ID0gbGluZVJlY3RBbmRM
aW5lQm94T2Zmc2V0LmxvZ2ljYWxSZWN0OwogICAgIGF1dG8gbGluZUJveFZlcnRpY2FsT2Zmc2V0
ID0gbGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0LmxpbmVCb3hWZXJ0aWNhbE9mZnNldDsKLSAgICBh
dXRvIHNjcm9sbGFibGVPdmVyZmxvdyA9IERpc3BsYXk6OklubGluZVJlY3QgeyBsaW5lTG9naWNh
bFJlY3QudG9wTGVmdCgpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJlY3Qud2lkdGgoKSwgbGluZUJv
eC5sb2dpY2FsV2lkdGgoKSksIHN0ZDo6bWF4KGxpbmVMb2dpY2FsUmVjdC5oZWlnaHQoKSwgbGlu
ZUJveFZlcnRpY2FsT2Zmc2V0ICsgbGluZUJveC5sb2dpY2FsSGVpZ2h0KCkpIH07CisgICAgYXV0
byBzY3JvbGxhYmxlT3ZlcmZsb3cgPSBJbmxpbmVSZWN0IHsgbGluZUxvZ2ljYWxSZWN0LnRvcExl
ZnQoKSwgc3RkOjptYXgobGluZUxvZ2ljYWxSZWN0LndpZHRoKCksIGxpbmVCb3gubG9naWNhbFdp
ZHRoKCkpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJlY3QuaGVpZ2h0KCksIGxpbmVCb3hWZXJ0aWNh
bE9mZnNldCArIGxpbmVCb3gubG9naWNhbEhlaWdodCgpKSB9OwogCiAgICAgaWYgKCFsaW5lQ29u
dGVudC5mbG9hdHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZmxvYXRpbmdDb250ZXh0ID0g
RmxvYXRpbmdDb250ZXh0IHsgcm9vdCgpLCAqdGhpcywgZm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5n
U3RhdGUoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMTkzYzg2ZmZj
ODBjNmFlM2U3MTE3ZjFhYzY0ZjNjMjEzODAyMWZjMy4uYTc3NGVmZjY3ZTM3NDVkNjBkOTYzNzVh
N2ZkMDEzNTc0ZDI3YzZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC04
NiwxMCArODYsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihj
b25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKIAogICAgIHZvaWQgY29s
bGVjdElubGluZUNvbnRlbnRJZk5lZWRlZCgpOwotICAgIERpc3BsYXk6OklubGluZVJlY3QgY29t
cHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50
JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7CisgICAgSW5saW5lUmVjdCBjb21wdXRl
R2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmLCBj
b25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKICAgICBzdHJ1Y3QgTGluZVJlY3RBbmRMaW5l
Qm94T2Zmc2V0IHsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsaW5lQm94VmVydGljYWxPZmZz
ZXQ7Ci0gICAgICAgIERpc3BsYXk6OklubGluZVJlY3QgbG9naWNhbFJlY3Q7CisgICAgICAgIElu
bGluZVJlY3QgbG9naWNhbFJlY3Q7CiAgICAgfTsKICAgICBMaW5lUmVjdEFuZExpbmVCb3hPZmZz
ZXQgY29tcHV0ZWRMaW5lTG9naWNhbFJlY3QoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50
JikgY29uc3Q7CiAgICAgdm9pZCBpbnZhbGlkYXRlRm9ybWF0dGluZ1N0YXRlKGNvbnN0IEludmFs
aWRhdGlvblN0YXRlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCmluZGV4IDgyMzVkYjE5OGI3Y2E4MWMzODUy
ZjJiNGU1MjM2MWNmMDU5MTM4OGIuLjMxYjJmOTM3YzllYjhmNGFmZDg0YWFkYTc5OWFlY2M4Yzkx
MzViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCb3guY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIE9wdGlv
bmFsPElubGluZUxheW91dFVuaXQ+IGhvcml6b250YWxBbGlnbm1lbnRPZmZzZXQoY29uc3QgTGlu
ZTo6UnVuTGlzdCYKICAgICByZXR1cm4geyB9OwogfQogCi1MaW5lQm94OjpJbmxpbmVCb3g6Oklu
bGluZUJveChjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYg
cmVjdCwgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50
KQorTGluZUJveDo6SW5saW5lQm94OjpJbmxpbmVCb3goY29uc3QgQm94JiBsYXlvdXRCb3gsIGNv
bnN0IElubGluZVJlY3QmIHJlY3QsIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUsIElubGluZUxh
eW91dFVuaXQgZGVzY2VudCkKICAgICA6IG1fbGF5b3V0Qm94KG1ha2VXZWFrUHRyKGxheW91dEJv
eCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHJlY3QpCiAgICAgLCBtX2Jhc2VsaW5lKGJhc2VsaW5l
KQpAQCAtMTQ1LDcgKzE0NSw3IEBAIExpbmVCb3g6OkxpbmVCb3goY29uc3QgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdDb250ZXh0LCBJbmxpbmVMCiAgICAgYWxpZ25J
bmxpbmVCb3hlc1ZlcnRpY2FsbHlBbmRDb21wdXRlTGluZUJveEhlaWdodCgpOwogfQogCi1EaXNw
bGF5OjpJbmxpbmVSZWN0IExpbmVCb3g6OmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5l
OjpSdW4mIHJ1bikgY29uc3QKK0lubGluZVJlY3QgTGluZUJveDo6bG9naWNhbFJlY3RGb3JUZXh0
UnVuKGNvbnN0IExpbmU6OlJ1biYgcnVuKSBjb25zdAogewogICAgIEFTU0VSVChydW4uaXNUZXh0
KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpOwogICAgIGF1dG8mIHBhcmVudElubGluZUJveCA9IGlu
bGluZUJveEZvckxheW91dEJveChydW4ubGF5b3V0Qm94KCkucGFyZW50KCkpOwpAQCAtMjQxLDcg
KzI0MSw3IEBAIHZvaWQgTGluZUJveDo6Y29uc3RydWN0SW5saW5lQm94ZXMoY29uc3QgTGluZTo6
UnVuTGlzdCYgcnVucykKICAgICAgICAgICAgICAgICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUg
PSBsYXN0TGluZS50b3AoKSArIGxhc3RMaW5lLmJhc2VsaW5lKCk7CiAgICAgICAgICAgICAgICAg
YmFzZWxpbmUgPSBpbmxpbmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpbkJlZm9yZSgpICsgaW5saW5l
TGV2ZWxCb3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGlubGluZUxldmVsQm94R2VvbWV0cnkucGFk
ZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBpbmxpbmVCbG9ja0Jhc2VsaW5lOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgYXV0byByZWN0ID0gRGlzcGxheTo6SW5saW5lUmVjdCB7IHsgfSwgbG9n
aWNhbExlZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCB9OworICAgICAgICAg
ICAgYXV0byByZWN0ID0gSW5saW5lUmVjdCB7IHsgfSwgbG9naWNhbExlZnQsIHJ1bi5sb2dpY2Fs
V2lkdGgoKSwgbG9naWNhbEhlaWdodCB9OwogICAgICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBt
YWtlVW5pcXVlPElubGluZUJveD4oaW5saW5lTGV2ZWxCb3gsIHJlY3QsIGJhc2VsaW5lLCBJbmxp
bmVMYXlvdXRVbml0IHsgfSk7CiAgICAgICAgICAgICBtX2lubGluZUJveFJlY3RNYXAuc2V0KCZp
bmxpbmVMZXZlbEJveCwgaW5saW5lQm94LmdldCgpKTsKICAgICAgICAgICAgIG1faW5saW5lQm94
TGlzdC5hcHBlbmQoV1RGTW92ZShpbmxpbmVCb3gpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guaAppbmRleCBjYzMxZDFm
YWFmNGM4NmY5YmRmZDkwNWI2MzFmYTRhMjgwMTAwMmUzLi42NjgwZThlZGNmMWMzYzJmNmI1NTMz
YzU2YTQ5MmJmNjI2Njk2ZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNp
ZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUgIkRpc3BsYXlJ
bmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5lTGluZS5oIgorI2luY2x1ZGUgIklubGluZVJl
Y3QuaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTU5LDExICs1OSwx
MSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IElubGluZUJveCB7CiAgICAgICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU5MSU5FKElubGluZUJveCk7CiAgICAgcHVibGljOgotICAgICAgICBJbmxp
bmVCb3goY29uc3QgQm94JiwgY29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYsIElubGluZUxheW91
dFVuaXQgYmFzZWxpbmUsIElubGluZUxheW91dFVuaXQgZGVzY2VudCk7CisgICAgICAgIElubGlu
ZUJveChjb25zdCBCb3gmLCBjb25zdCBJbmxpbmVSZWN0JiwgSW5saW5lTGF5b3V0VW5pdCBiYXNl
bGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50KTsKICAgICAgICAgSW5saW5lQm94KGNvbnN0
IEJveCYsIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQsIElubGluZUxheW91dFVuaXQgbG9n
aWNhbFdpZHRoKTsKICAgICAgICAgSW5saW5lQm94KCkgPSBkZWZhdWx0OwogCi0gICAgICAgIGNv
bnN0IERpc3BsYXk6OklubGluZVJlY3QmIGxvZ2ljYWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9s
b2dpY2FsUmVjdDsgfQorICAgICAgICBjb25zdCBJbmxpbmVSZWN0JiBsb2dpY2FsUmVjdCgpIGNv
bnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3Q7IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBs
b2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC50b3AoKTsgfQogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBtX2xvZ2lj
YWxSZWN0LmJvdHRvbSgpOyB9CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbExlZnQo
KSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmxlZnQoKTsgfQpAQCAtOTEsNyArOTEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0TGluZVNwYWNpbmcoSW5saW5lTGF5b3V0VW5pdCBs
aW5lU3BhY2luZykgeyBtX2xpbmVTcGFjaW5nID0gbGluZVNwYWNpbmc7IH0KIAogICAgICAgICBX
ZWFrUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7Ci0gICAgICAgIERpc3BsYXk6OklubGluZVJl
Y3QgbV9sb2dpY2FsUmVjdDsKKyAgICAgICAgSW5saW5lUmVjdCBtX2xvZ2ljYWxSZWN0OwogICAg
ICAgICBJbmxpbmVMYXlvdXRVbml0IG1fYmFzZWxpbmUgeyAwIH07CiAgICAgICAgIE9wdGlvbmFs
PElubGluZUxheW91dFVuaXQ+IG1fZGVzY2VudDsKICAgICAgICAgT3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gbV9saW5lU3BhY2luZzsKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0xpbmVWaXN1YWxseUVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9pc0xpbmVWaXN1YWxs
eUVtcHR5OyB9CiAKICAgICBjb25zdCBJbmxpbmVCb3gmIGlubGluZUJveEZvckxheW91dEJveChj
b25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gKm1faW5saW5lQm94UmVjdE1hcC5n
ZXQoJmxheW91dEJveCk7IH0KLSAgICBEaXNwbGF5OjpJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0Rm9y
VGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mKSBjb25zdDsKKyAgICBJbmxpbmVSZWN0IGxvZ2ljYWxS
ZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mKSBjb25zdDsKIAogICAgIHVzaW5nIElubGlu
ZUJveE1hcCA9IEhhc2hNYXA8Y29uc3QgQm94KiwgSW5saW5lQm94Kj47CiAgICAgYXV0byBpbmxp
bmVCb3hMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3hSZWN0TWFwLnZhbHVlcygpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVS
ZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWNkMDlhYjFlNzEwMWFhNmVjZjQzM2QyNjQwMDRmZmU4ZmI3YThj
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZVJlY3QuaApAQCAtMCwwICsxLDI5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRl
ICJMYXlvdXRVbml0cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0
IHsKKworY2xhc3MgSW5saW5lUmVjdCB7CitwdWJsaWM6CisgICAgSW5saW5lUmVjdCgpID0gZGVm
YXVsdDsKKyAgICBJbmxpbmVSZWN0KElubGluZUxheW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRV
bml0IGxlZnQsIElubGluZUxheW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0
KTsKKyAgICBJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxp
bmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7CisgICAgSW5saW5l
UmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0
U2l6ZSYpOworICAgIAorICAgIElubGluZUxheW91dFVuaXQgdG9wKCkgY29uc3Q7CisgICAgSW5s
aW5lTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3Q7CisgICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVm
dCgpIGNvbnN0OworCisgICAgSW5saW5lTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdDsKKyAgICBJ
bmxpbmVMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3Q7ICAgICAgICAKKworICAgIElubGluZUxheW91
dFVuaXQgd2lkdGgoKSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0
OworICAgIElubGluZUxheW91dFNpemUgc2l6ZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXRUb3Ao
SW5saW5lTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRCb3R0b20oSW5saW5lTGF5b3V0VW5pdCk7
CisgICAgdm9pZCBzZXRMZWZ0KElubGluZUxheW91dFVuaXQpOworICAgIHZvaWQgc2V0VG9wTGVm
dChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYpOworICAgIHZvaWQgc2V0V2lkdGgoSW5saW5lTGF5
b3V0VW5pdCk7CisgICAgdm9pZCBzZXRIZWlnaHQoSW5saW5lTGF5b3V0VW5pdCk7CisKKyAgICB2
b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCk7CisgICAgdm9pZCBtb3ZlVmVy
dGljYWxseShJbmxpbmVMYXlvdXRVbml0KTsKKyAgICB2b2lkIG1vdmVCeShJbmxpbmVMYXlvdXRQ
b2ludCk7CisKKyAgICB2b2lkIGV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiwgT3B0
aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4pOworICAgIHZvaWQgZXhwYW5kVG9Db250YWluKGNvbnN0
IElubGluZVJlY3QmKTsKKyAgICB2b2lkIGV4cGFuZEhvcml6b250YWxseShJbmxpbmVMYXlvdXRV
bml0IGRlbHRhKSB7IGV4cGFuZChkZWx0YSwgeyB9KTsgfQorICAgIHZvaWQgZXhwYW5kVmVydGlj
YWxseShJbmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFuZCh7IH0sIGRlbHRhKTsgfQorICAg
IHZvaWQgZXhwYW5kVmVydGljYWxseVRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0Jik7CisgICAg
dm9pZCBpbmZsYXRlKElubGluZUxheW91dFVuaXQpOworCisgICAgb3BlcmF0b3IgSW5saW5lTGF5
b3V0UmVjdCgpIGNvbnN0OworCitwcml2YXRlOgorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgdm9p
ZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KKyAgICB2b2lkIGlu
dmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZh
bGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZh
bGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KKyAgICB2b2lkIGlu
dmFsaWRhdGVQb3NpdGlvbigpOworCisgICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQorICAgIGJvb2wgaGFz
VmFsaWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRI
ZWlnaHQ7IH0KKyAgICBib29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNW
YWxpZFBvc2l0aW9uKCkgJiYgaGFzVmFsaWRTaXplKCk7IH0KKworICAgIHZvaWQgc2V0SGFzVmFs
aWRQb3NpdGlvbigpOworICAgIHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7CisKKyAgICBib29sIG1f
aGFzVmFsaWRUb3AgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWYWxpZExlZnQgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9oYXNWYWxpZFdpZHRoIHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzVmFs
aWRIZWlnaHQgeyBmYWxzZSB9OworI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECisgICAgSW5saW5l
TGF5b3V0UmVjdCBtX3JlY3Q7Cit9OworCitpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChJ
bmxpbmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5b3V0VW5pdCBsZWZ0LCBJbmxpbmVMYXlvdXRV
bml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCkKKyAgICA6IG1fcmVjdChsZWZ0LCB0
b3AsIHdpZHRoLCBoZWlnaHQpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlk
VG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7CisgICAgbV9oYXNWYWxpZFdp
ZHRoID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKKyNlbmRpZgorfQorCitp
bmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9w
TGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpCisg
ICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0LngoKSwgd2lkdGgsIGhlaWdodCkK
K3sKK30KKworaW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0
UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW91dFNpemUmIHNpemUpCisgICAgOiBJbmxp
bmVSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0LngoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKQoreworfQorCisjaWYgQVNTRVJUX0VOQUJMRUQKK2lubGluZSB2b2lkIElubGluZVJlY3Q6
OmludmFsaWRhdGVQb3NpdGlvbigpCit7CisgICAgaW52YWxpZGF0ZVRvcCgpOworICAgIGludmFs
aWRhdGVMZWZ0KCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhhc1ZhbGlkUG9z
aXRpb24oKQoreworICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworICAgIG1faGFzVmFsaWRMZWZ0
ID0gdHJ1ZTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0SGFzVmFsaWRTaXplKCkK
K3sKKyAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0
cnVlOworfQorI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECisKK2lubGluZSBJbmxpbmVMYXlvdXRV
bml0IElubGluZVJlY3Q6OnRvcCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3Ap
OworICAgIHJldHVybiBtX3JlY3QueSgpOworfQorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJ
bmxpbmVSZWN0OjpsZWZ0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQpOwor
ICAgIHJldHVybiBtX3JlY3QueCgpOworfQorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxp
bmVSZWN0Ojpib3R0b20oKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIG1f
aGFzVmFsaWRIZWlnaHQpOworICAgIHJldHVybiBtX3JlY3QubWF4WSgpOworfQorCitpbmxpbmUg
SW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpyaWdodCgpIGNvbnN0Cit7CisgICAgQVNTRVJU
KG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRXaWR0aCk7CisgICAgcmV0dXJuIG1fcmVjdC5t
YXhYKCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlvdXRQb2ludCBJbmxpbmVSZWN0Ojp0b3BMZWZ0
KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRQb3NpdGlvbigpKTsKKyAgICByZXR1cm4g
bV9yZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlvdXRTaXplIElu
bGluZVJlY3Q6OnNpemUoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZFNpemUoKSk7Cisg
ICAgcmV0dXJuIG1fcmVjdC5zaXplKCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IElu
bGluZVJlY3Q6OndpZHRoKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFdpZHRoKTsK
KyAgICByZXR1cm4gbV9yZWN0LndpZHRoKCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0
IElubGluZVJlY3Q6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRIZWln
aHQpOworICAgIHJldHVybiBtX3JlY3QuaGVpZ2h0KCk7Cit9CisKK2lubGluZSB2b2lkIElubGlu
ZVJlY3Q6OnNldFRvcExlZnQoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQpCit7Cisj
aWYgQVNTRVJUX0VOQUJMRUQKKyAgICBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7CisjZW5kaWYKKyAg
ICBtX3JlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJl
Y3Q6OnNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRvcCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNldFkodG9wKTsK
K30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0Qm90dG9tKElubGluZUxheW91dFVuaXQg
Ym90dG9tKQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7
CisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2hpZnRN
YXhZRWRnZVRvKGJvdHRvbSk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldExlZnQo
SW5saW5lTGF5b3V0VW5pdCBsZWZ0KQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNW
YWxpZExlZnQgPSB0cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNldFgobGVmdCk7Cit9CisKK2lu
bGluZSB2b2lkIElubGluZVJlY3Q6OnNldFdpZHRoKElubGluZUxheW91dFVuaXQgd2lkdGgpCit7
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOworI2VuZGlm
CisgICAgbV9yZWN0LnNldFdpZHRoKHdpZHRoKTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVj
dDo6c2V0SGVpZ2h0KElubGluZUxheW91dFVuaXQgaGVpZ2h0KQoreworI2lmIEFTU0VSVF9FTkFC
TEVECisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0
SGVpZ2h0KGhlaWdodCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6Om1vdmVIb3Jpem9u
dGFsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRM
ZWZ0KTsKKyAgICBtX3JlY3QubW92ZShJbmxpbmVMYXlvdXRTaXplIHsgb2Zmc2V0LCAwIH0pOwor
fQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlVmVydGljYWxseShJbmxpbmVMYXlvdXRV
bml0IG9mZnNldCkKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7CisgICAgbV9yZWN0Lm1v
dmUoSW5saW5lTGF5b3V0U2l6ZSB7IDAsIG9mZnNldCB9KTsKK30KKworaW5saW5lIHZvaWQgSW5s
aW5lUmVjdDo6bW92ZUJ5KElubGluZUxheW91dFBvaW50IG9mZnNldCkKK3sKKyAgICBBU1NFUlQo
bV9oYXNWYWxpZFRvcCk7CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKKyAgICBtX3JlY3Qu
bW92ZUJ5KG9mZnNldCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFuZChPcHRp
b25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4g
aGVpZ2h0KQoreworICAgIEFTU0VSVCghd2lkdGggfHwgbV9oYXNWYWxpZFdpZHRoKTsKKyAgICBB
U1NFUlQoIWhlaWdodCB8fCBtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICBtX3JlY3QuZXhwYW5kKHdp
ZHRoLnZhbHVlT3IoMCksIGhlaWdodC52YWx1ZU9yKDApKTsKK30KKworaW5saW5lIHZvaWQgSW5s
aW5lUmVjdDo6ZXhwYW5kVG9Db250YWluKGNvbnN0IElubGluZVJlY3QmIG90aGVyKQoreworI2lm
IEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxp
ZExlZnQgPSB0cnVlOworICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7CisgICAgbV9oYXNWYWxp
ZEhlaWdodCA9IHRydWU7CisjZW5kaWYKKyAgICBtX3JlY3QudW5pdGVFdmVuSWZFbXB0eShvdGhl
cik7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFuZFZlcnRpY2FsbHlUb0NvbnRh
aW4oY29uc3QgSW5saW5lUmVjdCYgb3RoZXIpCit7CisgICAgYXV0byBjb250YWluVG9wID0gc3Rk
OjptaW4odG9wKCksIG90aGVyLnRvcCgpKTsKKyAgICBhdXRvIGNvbnRhaW5Cb3R0b20gPSBzdGQ6
Om1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkpOworICAgIHNldFRvcChjb250YWluVG9wKTsK
KyAgICBzZXRCb3R0b20oY29udGFpbkJvdHRvbSk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJl
Y3Q6OmluZmxhdGUoSW5saW5lTGF5b3V0VW5pdCBpbmZsYXRlKQoreworICAgIEFTU0VSVChoYXNW
YWxpZEdlb21ldHJ5KCkpOworICAgIG1fcmVjdC5pbmZsYXRlKGluZmxhdGUpOworfQorCitpbmxp
bmUgSW5saW5lUmVjdDo6b3BlcmF0b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKGhhc1ZhbGlkR2VvbWV0cnkoKSk7IAorICAgIHJldHVybiBtX3JlY3Q7Cit9CisKK30K
K30KKyNlbmRpZgo=
</data>
<flag name="commit-queue"
          id="424557"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408985</attachid>
            <date>2020-09-16 20:43:31 -0700</date>
            <delta_ts>2020-09-16 20:53:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216633-20200916204330.patch</filename>
            <type>text/plain</type>
            <size>42047</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5Mjg0ZWU2OThlNGQ5
YzJjZjg0NTg2NjJkMGQ4YjI2YTlmZDE5Ni4uMGU1YTY4MWRjNWVhYWNhYThhMWU0ZjhmYzgyNmVk
N2Y4Njg5MjdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTE2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIElu
bGluZVJlY3QgZnJvbSBEaXNwbGF5IHRvIExheW91dCBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjYzMworCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBMZXQncyBtb3ZlIHRoZSBEaXNwbGF5IHR5
cGUgb3ZlciB0byBMYXlvdXQgbmFtZXNwYWNlLiBEaXNwbGF5IHRyZWUgbmVlZHMgYSBkaWZmZXJl
bnQgc2V0IG9mIGRhdGEgdHlwZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpyZWN0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnNjcm9sbGFibGVPdmVyZmxvdyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjppbmtPdmVyZmxvdyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aW5rT3ZlcmZsb3cgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAqIGxh
eW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNpemVBbmRQbGFjZUZsZXhJ
dGVtcyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZWRMaW5lTG9naWNhbFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGlu
ZUNvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJv
eDo6SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6bG9naWNh
bFJlY3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJv
eDo6Y29uc3RydWN0SW5saW5lQm94ZXMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6
SW5saW5lQm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lUmVjdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZVJlY3Q6OmV4cGFuZEhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnRvcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OnRvcExlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjpzaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVSZWN0OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpzZXRUb3BMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6
c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0Qm90dG9t
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0TGVmdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZVJlY3Q6Om1vdmVWZXJ0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6ZXhwYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVG9Db250YWluKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVmVydGljYWxseVRvQ29udGFpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZVJlY3Q6OmluZmxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpvcGVyYXRvciBJbmxpbmVMYXlvdXRSZWN0IGNvbnN0KToKKwogMjAyMC0wOS0xNiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFJlbW92ZSBwYXJ0
aWFsIGludmFsaWRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTU1YTE4ZDMyMDQ4ZTc2ZTY1
MWUwMDYwNWY4MGIwNWEzMjdhMTFlZS4uYzIxNzdhODhhYThhN2E3MzJhMzA4NjZkZjE1MDRlMGY0
ODliMzhkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC02OTgsNyArNjk4LDYgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAgbGF5b3V0L2Rpc3BsYXl0cmVlL0Rp
c3BsYXlCb3guaAogICAgIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lQ29udGVudC5o
Ci0gICAgbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmgKICAgICBsYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheUxpbmUuaAogICAgIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
UmVjdC5oCiAgICAgbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc5NzQyOWJi
MTYyYWJhNjBiMDFiNjJhYjJhZjhhNDQwYWYzMmQwN2YuLjRmYmEyMDI3MDMzYzhlNmYyMjU3Y2Q1
YWI1YzE5MTk4NjFkY2M4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2OSw3ICszNjksNiBAQAogCQkwRkZENEQ2MTE4NjUx
RkEzMDA1MTJGNkUgLyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGRDRENUYxODY1MUZBMzAwNTEyRjZF
IC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVi
bGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTBGQjA4NEExNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsg
fTsKIAkJMTEyQjM0RDUxRTYwQjk4MzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTJC
MzRENDFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaCAqLzsg
fTsKLQkJMTEyRkIzNTIyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTJGQjM1MDIzOUMy
M0M0MDA4NzA1NEEgLyogRGlzcGxheUlubGluZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTMxMENGMjIwQkE0QTMyMDA2NUE4RDAgLyog
TGF5b3V0VHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDExMTAwRkQ3MjA5NTE0REYwMDgxQUE2QyAvKiBMYXlvdXRUcmVlQnVpbGRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTExMzEw
Q0YzMjBCQTRBMzcwMDY1QThEMCAvKiBMYXlvdXRSZXBsYWNlZEJveC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTExQzYxNTYyMEFEMUFFMTAwNUI4MkZB
IC8qIExheW91dFJlcGxhY2VkQm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQwIC8qIExheW91dEl0ZXJh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTEw
MEZDNzIwOTI3NjRDMDA4MUFBNkMgLyogTGF5b3V0SXRlcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjA2NCw2ICsyMDYzLDcgQEAKIAkJ
NkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVBIC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJF
QSAvKiBMYXlvdXRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWls
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjI2
RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLzsgfTsKIAkJNkYz
NjBFNTAyMzk5OTQyMTAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjM2MEU0RTIzOTk5NDIw
MDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0Qjcg
LyogSW5saW5lUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkY0MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjYzODNGNjI0MjdBRjRB
MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY2MzgzRjQyNDI3QUY0OTAwREFCQTUz
IC8qIExheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2Rjc3ODY4ODIzNDkxQUQ4MDA0RDk2MzYgLyog
RGlzcGxheVBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZGNzc4Njg3MjM0OTFBRDcwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0M2MjA4
QzI5NTcwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzQyMDhDMjk1NjAwMkYyOUFCIC8qIExheW91dFN0
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTYwOTgsNyArNjA5OCw2IEBACiAJCTExMUM2MTU3MjBBRDFBRTEwMDVCODJGQSAvKiBMYXlvdXRS
ZXBsYWNlZEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRSZXBsYWNlZEJveC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMkIzNEQwMUU2MEI4QTcwMEJCMzEwQSAv
KiBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTExMkIzNEQ0MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5l
TGF5b3V0UGFnaW5hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaW1w
bGVMaW5lTGF5b3V0UGFnaW5hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkx
MTJGQjM1MDIzOUMyM0M0MDA4NzA1NEEgLyogRGlzcGxheUlubGluZVJlY3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUlubGluZVJlY3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5RDcyMDNFMDM4MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVC
dWlsZGVyQ29udGludWF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclRyZWVCdWls
ZGVyQ29udGludWF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzNDA5
RDgyMDNFMDM4MDAwQzY2OTE1IC8qIFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVyQ29udGludWF0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTExM0QwQjRGMUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdM
YXlvdXRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTU4OCw2ICs5NTg3LDcgQEAK
IAkJNkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVCdWlsZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGMzVFRkFGMjE4N0NCRDUwMDQ0RTBGNCAvKiBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2RjM2MEU0RTIzOTk5NDIwMDAxNTEyQTcgLyogSW5saW5lU29m
dExpbmVCcmVha0l0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5l
U29mdExpbmVCcmVha0l0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY0MERB
ODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjRBNUJENTIyRjlGMTZCMDBBODBGMjUgLyogTGF5b3V0UGhhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTGF5b3V0UGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjVC
N0VBQTIzMDBBNzlFMDA2N0Q5QzMgLyogVGFibGVHcmlkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRhYmxlR3JpZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNjM4M0Y0MjQy
N0FGNDkwMERBQkE1MyAvKiBMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTM4LDYgKzE3NTM4LDcgQEAKIAkJCQk2
RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCAqLywKIAkJCQk2
RjI1QjIwMDIyMEE4NUFCMDAwMDAxMUIgLyogSW5saW5lTGluZUJ1aWxkZXIuY3BwICovLAogCQkJ
CTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICovLAorCQkJ
CTZGNDBEQTgxMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggKi8sCiAJCQkJNkYzNjBF
NEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8sCiAJCQkJ
NkYxQ0MxREMyMjVGOEI0MTAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmNwcCAqLywKIAkJCQk2
RjFDQzFERDIyNUY4QjQyMDA3MjBBRDIgLyogSW5saW5lVGV4dEl0ZW0uaCAqLywKQEAgLTE3NTUy
LDcgKzE3NTUzLDYgQEAKIAkJCQkxMTk5RkE1OTIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJv
eC5oICovLAogCQkJCUU0RkI0QjM1MjM5QkVCMTAwMDNDMzM2QSAvKiBEaXNwbGF5SW5saW5lQ29u
dGVudC5jcHAgKi8sCiAJCQkJRTQ1MUM2MzMyMzk0MDU4RTAwOTkzMTkwIC8qIERpc3BsYXlJbmxp
bmVDb250ZW50LmggKi8sCi0JCQkJMTEyRkIzNTAyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJ
bmxpbmVSZWN0LmggKi8sCiAJCQkJNkZCNDdFNjEyMjc3NDI1QTAwQzdCQ0IwIC8qIERpc3BsYXlM
aW5lLmggKi8sCiAJCQkJNkY3Nzg2ODUyMzQ5MUFDNjAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVy
LmNwcCAqLywKIAkJCQk2Rjc3ODY4NzIzNDkxQUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIu
aCAqLywKQEAgLTMxMDY1LDcgKzMxMDY1LDYgQEAKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERG
RDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1
QjIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ1
MUM2MzQyMzk0MDU4RjAwOTkzMTkwIC8qIERpc3BsYXlJbmxpbmVDb250ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkxMTJGQjM1MjIzOUMyM0M0MDA4NzA1NEEgLyogRGlzcGxheUlubGluZVJlY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjQ3RTYzMjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5
TGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERp
c3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYg
LyogRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTc2Nyw2
ICszMTc2Niw3IEBACiAJCQkJNkZFMTk4MTcyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVC
cmVha2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2RTIgLyog
SW5saW5lTGluZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NTc3NUNFMjQxNDM3RDUw
MDJERjFBMCAvKiBJbmxpbmVQYXRoRGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY0MERBODIy
NTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGMzYw
RTUwMjM5OTk0MjEwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIElubGluZVN0eWxlU2hlZXRP
d25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NUEwOTdEOTMwMjAwOTRDOUU0IC8qIElu
bGluZVRleHRCb3guaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZVJlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNDlkNjI3NzRhMzdiYWU1OGFlYmNlZmNjNWE1OWM5NGRkZjdkMTEyMi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZVJlY3QuaAorKysgL2Rldi9udWxsCkBA
IC0xLDI5MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBEaXNwbGF5IHsKLQotY2xhc3MgSW5saW5l
UmVjdCB7Ci1wdWJsaWM6Ci0gICAgSW5saW5lUmVjdCgpID0gZGVmYXVsdDsKLSAgICBJbmxpbmVS
ZWN0KElubGluZUxheW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRVbml0IGxlZnQsIElubGluZUxh
eW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KTsKLSAgICBJbmxpbmVSZWN0
KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRo
LCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7Ci0gICAgSW5saW5lUmVjdChjb25zdCBJbmxpbmVM
YXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0U2l6ZSYpOwotICAgIAotICAg
IElubGluZUxheW91dFVuaXQgdG9wKCkgY29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0
KCkgY29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0OwotCi0gICAg
SW5saW5lTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdDsKLSAgICBJbmxpbmVMYXlvdXRVbml0IHJp
Z2h0KCkgY29uc3Q7ICAgICAgICAKLQotICAgIElubGluZUxheW91dFVuaXQgd2lkdGgoKSBjb25z
dDsKLSAgICBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0OwotICAgIElubGluZUxheW91
dFNpemUgc2l6ZSgpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRUb3AoSW5saW5lTGF5b3V0VW5pdCk7
Ci0gICAgdm9pZCBzZXRCb3R0b20oSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRMZWZ0
KElubGluZUxheW91dFVuaXQpOwotICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBJbmxpbmVMYXlv
dXRQb2ludCYpOwotICAgIHZvaWQgc2V0V2lkdGgoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9p
ZCBzZXRIZWlnaHQoSW5saW5lTGF5b3V0VW5pdCk7Ci0KLSAgICB2b2lkIG1vdmVIb3Jpem9udGFs
bHkoSW5saW5lTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBtb3ZlVmVydGljYWxseShJbmxpbmVMYXlv
dXRVbml0KTsKLSAgICB2b2lkIG1vdmVCeShJbmxpbmVMYXlvdXRQb2ludCk7Ci0KLSAgICB2b2lk
IGV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiwgT3B0aW9uYWw8SW5saW5lTGF5b3V0
VW5pdD4pOwotICAgIHZvaWQgZXhwYW5kVG9Db250YWluKGNvbnN0IElubGluZVJlY3QmKTsKLSAg
ICB2b2lkIGV4cGFuZEhvcml6b250YWxseShJbmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFu
ZChkZWx0YSwgeyB9KTsgfQotICAgIHZvaWQgZXhwYW5kVmVydGljYWxseShJbmxpbmVMYXlvdXRV
bml0IGRlbHRhKSB7IGV4cGFuZCh7IH0sIGRlbHRhKTsgfQotICAgIHZvaWQgZXhwYW5kVmVydGlj
YWxseVRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0Jik7Ci0gICAgdm9pZCBpbmZsYXRlKElubGlu
ZUxheW91dFVuaXQpOwotCi0gICAgb3BlcmF0b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNvbnN0Owot
Ci1wcml2YXRlOgotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgdm9pZCBpbnZhbGlkYXRlVG9wKCkg
eyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVMZWZ0KCkgeyBt
X2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7IG1f
aGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkgeyBt
X2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVQb3NpdGlvbigp
OwotCi0gICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxp
ZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQotICAgIGJvb2wgaGFzVmFsaWRTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRIZWlnaHQ7IH0KLSAgICBib29s
IGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNWYWxpZFBvc2l0aW9uKCkgJiYg
aGFzVmFsaWRTaXplKCk7IH0KLQotICAgIHZvaWQgc2V0SGFzVmFsaWRQb3NpdGlvbigpOwotICAg
IHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7Ci0KLSAgICBib29sIG1faGFzVmFsaWRUb3AgeyBmYWxz
ZSB9OwotICAgIGJvb2wgbV9oYXNWYWxpZExlZnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNW
YWxpZFdpZHRoIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzVmFsaWRIZWlnaHQgeyBmYWxzZSB9
OwotI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECi0gICAgSW5saW5lTGF5b3V0UmVjdCBtX3JlY3Q7
Ci19OwotCi1pbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChJbmxpbmVMYXlvdXRVbml0IHRv
cCwgSW5saW5lTGF5b3V0VW5pdCBsZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVM
YXlvdXRVbml0IGhlaWdodCkKLSAgICA6IG1fcmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQp
Ci17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKLSAgICBt
X2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSAgICBt
X2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLSNlbmRpZgotfQotCi1pbmxpbmUgSW5saW5lUmVjdDo6
SW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgSW5saW5lTGF5b3V0
VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpCi0gICAgOiBJbmxpbmVSZWN0KHRv
cExlZnQueSgpLCB0b3BMZWZ0LngoKSwgd2lkdGgsIGhlaWdodCkKLXsKLX0KLQotaW5saW5lIElu
bGluZVJlY3Q6OklubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNv
bnN0IElubGluZUxheW91dFNpemUmIHNpemUpCi0gICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgp
LCB0b3BMZWZ0LngoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKQotewotfQotCi0jaWYg
QVNTRVJUX0VOQUJMRUQKLWlubGluZSB2b2lkIElubGluZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlv
bigpCi17Ci0gICAgaW52YWxpZGF0ZVRvcCgpOwotICAgIGludmFsaWRhdGVMZWZ0KCk7Ci19Ci0K
LWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhhc1ZhbGlkUG9zaXRpb24oKQotewotICAgIG1f
aGFzVmFsaWRUb3AgPSB0cnVlOwotICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKLX0KLQotaW5s
aW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0SGFzVmFsaWRTaXplKCkKLXsKLSAgICBtX2hhc1ZhbGlk
V2lkdGggPSB0cnVlOwotICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOwotfQotI2VuZGlmIC8v
IEFTU0VSVF9FTkFCTEVECi0KLWlubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OnRv
cCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOwotICAgIHJldHVybiBtX3Jl
Y3QueSgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpsZWZ0KCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQpOwotICAgIHJldHVybiBtX3JlY3Qu
eCgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojpib3R0b20oKSBj
b25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIG1faGFzVmFsaWRIZWlnaHQpOwot
ICAgIHJldHVybiBtX3JlY3QubWF4WSgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJ
bmxpbmVSZWN0OjpyaWdodCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYm
IG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgcmV0dXJuIG1fcmVjdC5tYXhYKCk7Ci19Ci0KLWlubGlu
ZSBJbmxpbmVMYXlvdXRQb2ludCBJbmxpbmVSZWN0Ojp0b3BMZWZ0KCkgY29uc3QKLXsKLSAgICBB
U1NFUlQoaGFzVmFsaWRQb3NpdGlvbigpKTsKLSAgICByZXR1cm4gbV9yZWN0Lm1pblhNaW5ZQ29y
bmVyKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVMYXlvdXRTaXplIElubGluZVJlY3Q6OnNpemUoKSBj
b25zdAotewotICAgIEFTU0VSVChoYXNWYWxpZFNpemUoKSk7Ci0gICAgcmV0dXJuIG1fcmVjdC5z
aXplKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OndpZHRoKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFdpZHRoKTsKLSAgICByZXR1cm4gbV9yZWN0
LndpZHRoKCk7Ci19Ci0KLWlubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OmhlaWdo
dCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRIZWlnaHQpOwotICAgIHJldHVybiBt
X3JlY3QuaGVpZ2h0KCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFRvcExlZnQo
Y29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQK
LSAgICBzZXRIYXNWYWxpZFBvc2l0aW9uKCk7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0TG9jYXRp
b24odG9wTGVmdCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFRvcChJbmxpbmVM
YXlvdXRVbml0IHRvcCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3Ag
PSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldFkodG9wKTsKLX0KLQotaW5saW5lIHZvaWQg
SW5saW5lUmVjdDo6c2V0Qm90dG9tKElubGluZUxheW91dFVuaXQgYm90dG9tKQotewotI2lmIEFT
U0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZEhl
aWdodCA9IHRydWU7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2hpZnRNYXhZRWRnZVRvKGJvdHRvbSk7
Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldExlZnQoSW5saW5lTGF5b3V0VW5pdCBs
ZWZ0KQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwot
I2VuZGlmCi0gICAgbV9yZWN0LnNldFgobGVmdCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJl
Y3Q6OnNldFdpZHRoKElubGluZUxheW91dFVuaXQgd2lkdGgpCi17Ci0jaWYgQVNTRVJUX0VOQUJM
RUQKLSAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldFdp
ZHRoKHdpZHRoKTsKLX0KLQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0SGVpZ2h0KElubGlu
ZUxheW91dFVuaXQgaGVpZ2h0KQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxp
ZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0SGVpZ2h0KGhlaWdodCk7Ci19
Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6Om1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0
VW5pdCBvZmZzZXQpCi17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICBtX3JlY3Qu
bW92ZShJbmxpbmVMYXlvdXRTaXplIHsgb2Zmc2V0LCAwIH0pOwotfQotCi1pbmxpbmUgdm9pZCBJ
bmxpbmVSZWN0Ojptb3ZlVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0IG9mZnNldCkKLXsKLSAg
ICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0gICAgbV9yZWN0Lm1vdmUoSW5saW5lTGF5b3V0U2l6
ZSB7IDAsIG9mZnNldCB9KTsKLX0KLQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6bW92ZUJ5KElu
bGluZUxheW91dFBvaW50IG9mZnNldCkKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0g
ICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICBtX3JlY3QubW92ZUJ5KG9mZnNldCk7Ci19
Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlvdXRV
bml0PiB3aWR0aCwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gaGVpZ2h0KQotewotICAgIEFT
U0VSVCghd2lkdGggfHwgbV9oYXNWYWxpZFdpZHRoKTsKLSAgICBBU1NFUlQoIWhlaWdodCB8fCBt
X2hhc1ZhbGlkSGVpZ2h0KTsKLSAgICBtX3JlY3QuZXhwYW5kKHdpZHRoLnZhbHVlT3IoMCksIGhl
aWdodC52YWx1ZU9yKDApKTsKLX0KLQotaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6ZXhwYW5kVG9D
b250YWluKGNvbnN0IElubGluZVJlY3QmIG90aGVyKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0g
ICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotICAg
IG1faGFzVmFsaWRXaWR0aCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0j
ZW5kaWYKLSAgICBtX3JlY3QudW5pdGVFdmVuSWZFbXB0eShvdGhlcik7Ci19Ci0KLWlubGluZSB2
b2lkIElubGluZVJlY3Q6OmV4cGFuZFZlcnRpY2FsbHlUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVj
dCYgb3RoZXIpCi17Ci0gICAgYXV0byBjb250YWluVG9wID0gc3RkOjptaW4odG9wKCksIG90aGVy
LnRvcCgpKTsKLSAgICBhdXRvIGNvbnRhaW5Cb3R0b20gPSBzdGQ6Om1heChib3R0b20oKSwgb3Ro
ZXIuYm90dG9tKCkpOwotICAgIHNldFRvcChjb250YWluVG9wKTsKLSAgICBzZXRCb3R0b20oY29u
dGFpbkJvdHRvbSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OmluZmxhdGUoSW5saW5l
TGF5b3V0VW5pdCBpbmZsYXRlKQotewotICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOwot
ICAgIG1fcmVjdC5pbmZsYXRlKGluZmxhdGUpOwotfQotCi1pbmxpbmUgSW5saW5lUmVjdDo6b3Bl
cmF0b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGhhc1ZhbGlkR2Vv
bWV0cnkoKSk7IAotICAgIHJldHVybiBtX3JlY3Q7Ci19Ci0KLX0KLX0KLSNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxpbmUuaAppbmRleCA2MWMw
YjY2N2YxMWE1ZTIzODZjNTQ0ZDczZGY1YTQ3MmEwYmFkZjRiLi44MWY0NGZlNGI5M2JiNDNmMzEx
YjNhNzY4YTgwNTY2YzIyOGE2MDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheUxpbmUuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJEaXNwbGF5SW5saW5lUmVjdC5o
IgorI2luY2x1ZGUgIklubGluZVJlY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIERpc3BsYXkgewpAQCAtMzUsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBEaXNwbGF5IHsKIGNs
YXNzIExpbmUgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIExp
bmUoY29uc3QgSW5saW5lUmVjdCYsIGNvbnN0IElubGluZVJlY3QmIHNjcm9sbGFibGVPdmVyZmxv
dywgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxp
bmUpOworICAgIExpbmUoY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiwgY29uc3QgTGF5b3V0OjpJ
bmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3csIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYg
aW5rT3ZlcmZsb3csIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUpOwogCi0gICAgY29uc3QgSW5s
aW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IElubGlu
ZVJlY3QmIHNjcm9sbGFibGVPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsYWJsZU92
ZXJmbG93OyB9Ci0gICAgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJl
dHVybiBtX2lua092ZXJmbG93OyB9CisgICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiByZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CisgICAgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0
JiBzY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFibGVPdmVyZmxv
dzsgfQorICAgIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7
IHJldHVybiBtX2lua092ZXJmbG93OyB9CiAKICAgICBJbmxpbmVMYXlvdXRVbml0IGxlZnQoKSBj
b25zdCB7IHJldHVybiBtX3JlY3QubGVmdCgpOyB9CiAgICAgSW5saW5lTGF5b3V0VW5pdCByaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5yaWdodCgpOyB9CkBAIC01NCwxMyArNTQsMTMgQEAg
cHVibGljOgogICAgIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUoKSBjb25zdCB7IHJldHVybiBt
X2Jhc2VsaW5lOyB9CiAKIHByaXZhdGU6Ci0gICAgSW5saW5lUmVjdCBtX3JlY3Q7Ci0gICAgSW5s
aW5lUmVjdCBtX3Njcm9sbGFibGVPdmVyZmxvdzsKLSAgICBJbmxpbmVSZWN0IG1faW5rT3ZlcmZs
b3c7CisgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1fcmVjdDsKKyAgICBMYXlvdXQ6OklubGluZVJl
Y3QgbV9zY3JvbGxhYmxlT3ZlcmZsb3c7CisgICAgTGF5b3V0OjpJbmxpbmVSZWN0IG1faW5rT3Zl
cmZsb3c7CiAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2Jhc2VsaW5lIHsgMCB9OwogfTsKIAotaW5s
aW5lIExpbmU6OkxpbmUoY29uc3QgSW5saW5lUmVjdCYgcmVjdCwgY29uc3QgSW5saW5lUmVjdCYg
c2Nyb2xsYWJsZU92ZXJmbG93LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgSW5saW5l
TGF5b3V0VW5pdCBiYXNlbGluZSkKK2lubGluZSBMaW5lOjpMaW5lKGNvbnN0IExheW91dDo6SW5s
aW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZs
b3csIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIElubGluZUxheW91dFVu
aXQgYmFzZWxpbmUpCiAgICAgOiBtX3JlY3QocmVjdCkKICAgICAsIG1fc2Nyb2xsYWJsZU92ZXJm
bG93KHNjcm9sbGFibGVPdmVyZmxvdykKICAgICAsIG1faW5rT3ZlcmZsb3coaW5rT3ZlcmZsb3cp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1
bi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaAppbmRl
eCA3MWFjOGE3ZWQ5ODNlNzQ4MjU2YzQyN2QwZjM1MTE2Nzc3MjVkMzc4Li5iNzE2MTgxMmY4Njk4
NDMzOThjMWQyZTY4YTBlYjEzNDQ2ZjFmNzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRGlzcGxheUlubGluZVJl
Y3QuaCIKKyNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKQEAgLTY0LDEw
ICs2NCwxMCBAQCBzdHJ1Y3QgUnVuIHsKICAgICB9OwogCiAgICAgc3RydWN0IEV4cGFuc2lvbjsK
LSAgICBSdW4oc2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBJbmxp
bmVSZWN0JiwgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIEV4cGFuc2lvbiwgT3B0aW9u
YWw8VGV4dENvbnRlbnQ+ID0gV1RGOjpudWxsb3B0KTsKKyAgICBSdW4oc2l6ZV90IGxpbmVJbmRl
eCwgY29uc3QgTGF5b3V0OjpCb3gmLCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmLCBjb25zdCBM
YXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24sIE9wdGlvbmFsPFRleHRD
b250ZW50PiA9IFdURjo6bnVsbG9wdCk7CiAKLSAgICBjb25zdCBJbmxpbmVSZWN0JiByZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWN0OyB9Ci0gICAgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZs
b3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93OyB9CisgICAgY29uc3QgTGF5b3V0OjpJ
bmxpbmVSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CisgICAgY29uc3QgTGF5
b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5rT3ZlcmZs
b3c7IH0KIAogICAgIElubGluZUxheW91dFBvaW50IHRvcExlZnQoKSBjb25zdCB7IHJldHVybiBt
X3JlY3QudG9wTGVmdCgpOyB9CiAgICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWN0LmxlZnQoKTsgfQpAQCAtMTAzLDEzICsxMDMsMTMgQEAgcHJpdmF0ZToKICAg
ICBjb25zdCBzaXplX3QgbV9saW5lSW5kZXg7CiAgICAgV2Vha1B0cjxjb25zdCBMYXlvdXQ6OkJv
eD4gbV9sYXlvdXRCb3g7CiAgICAgQ2FjaGVkSW1hZ2UqIG1fY2FjaGVkSW1hZ2UgeyBudWxscHRy
IH07Ci0gICAgSW5saW5lUmVjdCBtX3JlY3Q7Ci0gICAgSW5saW5lUmVjdCBtX2lua092ZXJmbG93
OworICAgIExheW91dDo6SW5saW5lUmVjdCBtX3JlY3Q7CisgICAgTGF5b3V0OjpJbmxpbmVSZWN0
IG1faW5rT3ZlcmZsb3c7CiAgICAgRXhwYW5zaW9uIG1fZXhwYW5zaW9uOwogICAgIE9wdGlvbmFs
PFRleHRDb250ZW50PiBtX3RleHRDb250ZW50OwogfTsKIAotaW5saW5lIFJ1bjo6UnVuKHNpemVf
dCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0IElubGluZVJl
Y3QmIHJlY3QsIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24gZXhwYW5z
aW9uLCBPcHRpb25hbDxUZXh0Q29udGVudD4gdGV4dENvbnRlbnQpCitpbmxpbmUgUnVuOjpSdW4o
c2l6ZV90IGxpbmVJbmRleCwgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgY29uc3QgTGF5
b3V0OjpJbmxpbmVSZWN0JiByZWN0LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJm
bG93LCBFeHBhbnNpb24gZXhwYW5zaW9uLCBPcHRpb25hbDxUZXh0Q29udGVudD4gdGV4dENvbnRl
bnQpCiAgICAgOiBtX2xpbmVJbmRleChsaW5lSW5kZXgpCiAgICAgLCBtX2xheW91dEJveChtYWtl
V2Vha1B0cihsYXlvdXRCb3gpKQogICAgICwgbV9yZWN0KHJlY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0Nv
bnRleHQuY3BwCmluZGV4IDc2M2YwZDY0YTc5NmJkODA4OTM3ODlhODdkMjgzYzUzZGI2MzY3OTUu
LjFjZWJiMDZlZmZiYjg5NTc2YTQwYmM5YzgwMjk5YjY0NWY4M2Y4NjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0
dGluZ0NvbnRleHQuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgRmxleEZvcm1hdHRpbmdDb250
ZXh0OjpzaXplQW5kUGxhY2VGbGV4SXRlbXMoY29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250
CiAgICAgICAgIH07CiAgICAgICAgIGNvbXB1dGVGbGV4SXRlbUdlb21ldHJ5KCk7CiAgICAgfQot
ICAgIGF1dG8gZmxleExpbmUgPSBEaXNwbGF5OjpJbmxpbmVSZWN0IHsgZmxleEl0ZW1Dcm9zQXhp
c1N0YXJ0LCBmbGV4SXRlbU1haW5BeGlzU3RhcnQsIGZsZXhJdGVtTWFpbkF4aXNFbmQgLSBmbGV4
SXRlbU1haW5BeGlzU3RhcnQsIGZsZXhJdGVtQ3Jvc0F4aXNFbmQgLSBmbGV4SXRlbUNyb3NBeGlz
U3RhcnQgfTsKKyAgICBhdXRvIGZsZXhMaW5lID0gSW5saW5lUmVjdCB7IGZsZXhJdGVtQ3Jvc0F4
aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbU1haW5BeGlzRW5kIC0gZmxl
eEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbUNyb3NBeGlzRW5kIC0gZmxleEl0ZW1Dcm9zQXhp
c1N0YXJ0IH07CiAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmUoeyBmbGV4TGluZSwgZmxleExp
bmUsIGZsZXhMaW5lLCB7IH0gfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcAppbmRleCBmMWJmN2ZlOWQ5ZGUxNDc1YWY1OWJmOTJjOWFkZTE0NWEwYzAyNjA5Li41MmVh
MzFjNWNjOWM5NWRlMDhiMzhmYmFjYmE5NzE1Nzg1NDMxMGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwCkBAIC00MzQsMjAgKzQzNCwyMCBAQCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6TGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0IElubGluZUZvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdQogICAgIH0gZWxzZQogICAgICAgICBsaW5lTG9naWNhbEhlaWdodCA9IHJvb3RTdHls
ZS5jb21wdXRlZExpbmVIZWlnaHQoKTsKIAotICAgIGF1dG8gbG9naWNhbFJlY3QgPSBEaXNwbGF5
OjpJbmxpbmVSZWN0IHsgbGluZUNvbnRlbnQubG9naWNhbFRvcExlZnQsIGxpbmVDb250ZW50Lmxp
bmVMb2dpY2FsV2lkdGgsIGxpbmVMb2dpY2FsSGVpZ2h0fTsKKyAgICBhdXRvIGxvZ2ljYWxSZWN0
ID0gSW5saW5lUmVjdCB7IGxpbmVDb250ZW50LmxvZ2ljYWxUb3BMZWZ0LCBsaW5lQ29udGVudC5s
aW5lTG9naWNhbFdpZHRoLCBsaW5lTG9naWNhbEhlaWdodH07CiAgICAgLy8gSW5saW5lIHRyZWUg
aGVpZ2h0IGlzIGFsbCBpbnRlZ2VyIGJhc2VkLgogICAgIGF1dG8gbGluZUJveE9mZnNldCA9IGZs
b29yZigobGluZUxvZ2ljYWxIZWlnaHQgLSBsaW5lQm94TG9naWNhbEhlaWdodCkgLyAyKTsKICAg
ICByZXR1cm4geyBsaW5lQm94T2Zmc2V0LCBsb2dpY2FsUmVjdCB9OwogfQogCi1EaXNwbGF5OjpJ
bmxpbmVSZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5l
Q29udGVudChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25z
dCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKK0lubGluZVJl
Y3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVHZW9tZXRyeUZvckxpbmVDb250ZW50
KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGluZUNvbnRlbnQsIGNvbnN0IEhvcml6
b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewogICAgIGF1dG8mIGZv
cm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIGF1dG8mIGxpbmVC
b3ggPSBsaW5lQ29udGVudC5saW5lQm94OwogICAgIGF1dG8gbGluZVJlY3RBbmRMaW5lQm94T2Zm
c2V0ID0gY29tcHV0ZWRMaW5lTG9naWNhbFJlY3QobGluZUNvbnRlbnQpOwogICAgIGF1dG8gbGlu
ZUxvZ2ljYWxSZWN0ID0gbGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0LmxvZ2ljYWxSZWN0OwogICAg
IGF1dG8gbGluZUJveFZlcnRpY2FsT2Zmc2V0ID0gbGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0Lmxp
bmVCb3hWZXJ0aWNhbE9mZnNldDsKLSAgICBhdXRvIHNjcm9sbGFibGVPdmVyZmxvdyA9IERpc3Bs
YXk6OklubGluZVJlY3QgeyBsaW5lTG9naWNhbFJlY3QudG9wTGVmdCgpLCBzdGQ6Om1heChsaW5l
TG9naWNhbFJlY3Qud2lkdGgoKSwgbGluZUJveC5sb2dpY2FsV2lkdGgoKSksIHN0ZDo6bWF4KGxp
bmVMb2dpY2FsUmVjdC5oZWlnaHQoKSwgbGluZUJveFZlcnRpY2FsT2Zmc2V0ICsgbGluZUJveC5s
b2dpY2FsSGVpZ2h0KCkpIH07CisgICAgYXV0byBzY3JvbGxhYmxlT3ZlcmZsb3cgPSBJbmxpbmVS
ZWN0IHsgbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgc3RkOjptYXgobGluZUxvZ2ljYWxSZWN0
LndpZHRoKCksIGxpbmVCb3gubG9naWNhbFdpZHRoKCkpLCBzdGQ6Om1heChsaW5lTG9naWNhbFJl
Y3QuaGVpZ2h0KCksIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCArIGxpbmVCb3gubG9naWNhbEhlaWdo
dCgpKSB9OwogCiAgICAgaWYgKCFsaW5lQ29udGVudC5mbG9hdHMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGF1dG8gZmxvYXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgcm9vdCgpLCAqdGhp
cywgZm9ybWF0dGluZ1N0YXRlLmZsb2F0aW5nU3RhdGUoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgKaW5kZXggMTkzYzg2ZmZjODBjNmFlM2U3MTE3ZjFhYzY0ZjNjMjEzODAyMWZj
My4uYTc3NGVmZjY3ZTM3NDVkNjBkOTYzNzVhN2ZkMDEzNTc0ZDI3YzZkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9Jbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC04NiwxMCArODYsMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29u
c3RyYWludHMmKTsKIAogICAgIHZvaWQgY29sbGVjdElubGluZUNvbnRlbnRJZk5lZWRlZCgpOwot
ICAgIERpc3BsYXk6OklubGluZVJlY3QgY29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29u
c3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRz
Jik7CisgICAgSW5saW5lUmVjdCBjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29udGVudChjb25zdCBM
aW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsK
ICAgICBzdHJ1Y3QgTGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0IHsKICAgICAgICAgSW5saW5lTGF5
b3V0VW5pdCBsaW5lQm94VmVydGljYWxPZmZzZXQ7Ci0gICAgICAgIERpc3BsYXk6OklubGluZVJl
Y3QgbG9naWNhbFJlY3Q7CisgICAgICAgIElubGluZVJlY3QgbG9naWNhbFJlY3Q7CiAgICAgfTsK
ICAgICBMaW5lUmVjdEFuZExpbmVCb3hPZmZzZXQgY29tcHV0ZWRMaW5lTG9naWNhbFJlY3QoY29u
c3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JikgY29uc3Q7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Rm9ybWF0dGluZ1N0YXRlKGNvbnN0IEludmFsaWRhdGlvblN0YXRlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3Bw
CmluZGV4IDgyMzVkYjE5OGI3Y2E4MWMzODUyZjJiNGU1MjM2MWNmMDU5MTM4OGIuLjMxYjJmOTM3
YzllYjhmNGFmZDg0YWFkYTc5OWFlY2M4YzkxMzViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCb3guY3BwCkBAIC0x
MTksNyArMTE5LDcgQEAgc3RhdGljIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhvcml6b250
YWxBbGlnbm1lbnRPZmZzZXQoY29uc3QgTGluZTo6UnVuTGlzdCYKICAgICByZXR1cm4geyB9Owog
fQogCi1MaW5lQm94OjpJbmxpbmVCb3g6OklubGluZUJveChjb25zdCBCb3gmIGxheW91dEJveCwg
Y29uc3QgRGlzcGxheTo6SW5saW5lUmVjdCYgcmVjdCwgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGlu
ZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50KQorTGluZUJveDo6SW5saW5lQm94OjpJbmxpbmVC
b3goY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IElubGluZVJlY3QmIHJlY3QsIElubGluZUxh
eW91dFVuaXQgYmFzZWxpbmUsIElubGluZUxheW91dFVuaXQgZGVzY2VudCkKICAgICA6IG1fbGF5
b3V0Qm94KG1ha2VXZWFrUHRyKGxheW91dEJveCkpCiAgICAgLCBtX2xvZ2ljYWxSZWN0KHJlY3Qp
CiAgICAgLCBtX2Jhc2VsaW5lKGJhc2VsaW5lKQpAQCAtMTQ1LDcgKzE0NSw3IEBAIExpbmVCb3g6
OkxpbmVCb3goY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmIGlubGluZUZvcm1hdHRpbmdD
b250ZXh0LCBJbmxpbmVMCiAgICAgYWxpZ25JbmxpbmVCb3hlc1ZlcnRpY2FsbHlBbmRDb21wdXRl
TGluZUJveEhlaWdodCgpOwogfQogCi1EaXNwbGF5OjpJbmxpbmVSZWN0IExpbmVCb3g6OmxvZ2lj
YWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mIHJ1bikgY29uc3QKK0lubGluZVJlY3Qg
TGluZUJveDo6bG9naWNhbFJlY3RGb3JUZXh0UnVuKGNvbnN0IExpbmU6OlJ1biYgcnVuKSBjb25z
dAogewogICAgIEFTU0VSVChydW4uaXNUZXh0KCkgfHwgcnVuLmlzTGluZUJyZWFrKCkpOwogICAg
IGF1dG8mIHBhcmVudElubGluZUJveCA9IGlubGluZUJveEZvckxheW91dEJveChydW4ubGF5b3V0
Qm94KCkucGFyZW50KCkpOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgTGluZUJveDo6Y29uc3Ry
dWN0SW5saW5lQm94ZXMoY29uc3QgTGluZTo6UnVuTGlzdCYgcnVucykKICAgICAgICAgICAgICAg
ICBhdXRvIGlubGluZUJsb2NrQmFzZWxpbmUgPSBsYXN0TGluZS50b3AoKSArIGxhc3RMaW5lLmJh
c2VsaW5lKCk7CiAgICAgICAgICAgICAgICAgYmFzZWxpbmUgPSBpbmxpbmVMZXZlbEJveEdlb21l
dHJ5Lm1hcmdpbkJlZm9yZSgpICsgaW5saW5lTGV2ZWxCb3hHZW9tZXRyeS5ib3JkZXJUb3AoKSAr
IGlubGluZUxldmVsQm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBpbmxpbmVC
bG9ja0Jhc2VsaW5lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYXV0byByZWN0ID0gRGlz
cGxheTo6SW5saW5lUmVjdCB7IHsgfSwgbG9naWNhbExlZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwg
bG9naWNhbEhlaWdodCB9OworICAgICAgICAgICAgYXV0byByZWN0ID0gSW5saW5lUmVjdCB7IHsg
fSwgbG9naWNhbExlZnQsIHJ1bi5sb2dpY2FsV2lkdGgoKSwgbG9naWNhbEhlaWdodCB9OwogICAg
ICAgICAgICAgYXV0byBpbmxpbmVCb3ggPSBtYWtlVW5pcXVlPElubGluZUJveD4oaW5saW5lTGV2
ZWxCb3gsIHJlY3QsIGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IHsgfSk7CiAgICAgICAgICAg
ICBtX2lubGluZUJveFJlY3RNYXAuc2V0KCZpbmxpbmVMZXZlbEJveCwgaW5saW5lQm94LmdldCgp
KTsKICAgICAgICAgICAgIG1faW5saW5lQm94TGlzdC5hcHBlbmQoV1RGTW92ZShpbmxpbmVCb3gp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZUxpbmVCb3guaAppbmRleCBjYzMxZDFmYWFmNGM4NmY5YmRmZDkwNWI2MzFmYTRhMjgwMTAw
MmUzLi42NjgwZThlZGNmMWMzYzJmNmI1NTMzYzU2YTQ5MmJmNjI2Njk2ZmI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKIAotI2luY2x1ZGUgIkRpc3BsYXlJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiSW5saW5l
TGluZS5oIgorI2luY2x1ZGUgIklubGluZVJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRCb3hHZW9t
ZXRyeS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KQEAgLTU5LDExICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RydWN0IElubGlu
ZUJveCB7CiAgICAgICAgIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU5MSU5FKElubGluZUJveCk7
CiAgICAgcHVibGljOgotICAgICAgICBJbmxpbmVCb3goY29uc3QgQm94JiwgY29uc3QgRGlzcGxh
eTo6SW5saW5lUmVjdCYsIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUsIElubGluZUxheW91dFVu
aXQgZGVzY2VudCk7CisgICAgICAgIElubGluZUJveChjb25zdCBCb3gmLCBjb25zdCBJbmxpbmVS
ZWN0JiwgSW5saW5lTGF5b3V0VW5pdCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCBkZXNjZW50
KTsKICAgICAgICAgSW5saW5lQm94KGNvbnN0IEJveCYsIElubGluZUxheW91dFVuaXQgbG9naWNh
bExlZnQsIElubGluZUxheW91dFVuaXQgbG9naWNhbFdpZHRoKTsKICAgICAgICAgSW5saW5lQm94
KCkgPSBkZWZhdWx0OwogCi0gICAgICAgIGNvbnN0IERpc3BsYXk6OklubGluZVJlY3QmIGxvZ2lj
YWxSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdDsgfQorICAgICAgICBjb25zdCBJ
bmxpbmVSZWN0JiBsb2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3Q7IH0K
ICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gbV9s
b2dpY2FsUmVjdC50b3AoKTsgfQogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxCb3R0
b20oKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0LmJvdHRvbSgpOyB9CiAgICAgICAgIElu
bGluZUxheW91dFVuaXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0
LmxlZnQoKTsgfQpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgc2V0TGlu
ZVNwYWNpbmcoSW5saW5lTGF5b3V0VW5pdCBsaW5lU3BhY2luZykgeyBtX2xpbmVTcGFjaW5nID0g
bGluZVNwYWNpbmc7IH0KIAogICAgICAgICBXZWFrUHRyPGNvbnN0IEJveD4gbV9sYXlvdXRCb3g7
Ci0gICAgICAgIERpc3BsYXk6OklubGluZVJlY3QgbV9sb2dpY2FsUmVjdDsKKyAgICAgICAgSW5s
aW5lUmVjdCBtX2xvZ2ljYWxSZWN0OwogICAgICAgICBJbmxpbmVMYXlvdXRVbml0IG1fYmFzZWxp
bmUgeyAwIH07CiAgICAgICAgIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fZGVzY2VudDsK
ICAgICAgICAgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gbV9saW5lU3BhY2luZzsKQEAgLTEx
MCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpbmVWaXN1YWxseUVtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9pc0xpbmVWaXN1YWxseUVtcHR5OyB9CiAKICAgICBjb25zdCBJbmxpbmVC
b3gmIGlubGluZUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyBy
ZXR1cm4gKm1faW5saW5lQm94UmVjdE1hcC5nZXQoJmxheW91dEJveCk7IH0KLSAgICBEaXNwbGF5
OjpJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mKSBjb25z
dDsKKyAgICBJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4m
KSBjb25zdDsKIAogICAgIHVzaW5nIElubGluZUJveE1hcCA9IEhhc2hNYXA8Y29uc3QgQm94Kiwg
SW5saW5lQm94Kj47CiAgICAgYXV0byBpbmxpbmVCb3hMaXN0KCkgY29uc3QgeyByZXR1cm4gbV9p
bmxpbmVCb3hSZWN0TWFwLnZhbHVlcygpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNkMDlhYjFlNzEw
MWFhNmVjZjQzM2QyNjQwMDRmZmU4ZmI3YThjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVJlY3QuaApAQCAtMCwwICsxLDI5
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRVbml0cy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworY2xhc3MgSW5saW5lUmVjdCB7CitwdWJs
aWM6CisgICAgSW5saW5lUmVjdCgpID0gZGVmYXVsdDsKKyAgICBJbmxpbmVSZWN0KElubGluZUxh
eW91dFVuaXQgdG9wLCBJbmxpbmVMYXlvdXRVbml0IGxlZnQsIElubGluZUxheW91dFVuaXQgd2lk
dGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KTsKKyAgICBJbmxpbmVSZWN0KGNvbnN0IElubGlu
ZUxheW91dFBvaW50JiB0b3BMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlv
dXRVbml0IGhlaWdodCk7CisgICAgSW5saW5lUmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYg
dG9wTGVmdCwgY29uc3QgSW5saW5lTGF5b3V0U2l6ZSYpOworICAgIAorICAgIElubGluZUxheW91
dFVuaXQgdG9wKCkgY29uc3Q7CisgICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0KCkgY29uc3Q7Cisg
ICAgSW5saW5lTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0OworCisgICAgSW5saW5lTGF5b3V0
VW5pdCBib3R0b20oKSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3Q7
ICAgICAgICAKKworICAgIElubGluZUxheW91dFVuaXQgd2lkdGgoKSBjb25zdDsKKyAgICBJbmxp
bmVMYXlvdXRVbml0IGhlaWdodCgpIGNvbnN0OworICAgIElubGluZUxheW91dFNpemUgc2l6ZSgp
IGNvbnN0OworCisgICAgdm9pZCBzZXRUb3AoSW5saW5lTGF5b3V0VW5pdCk7CisgICAgdm9pZCBz
ZXRCb3R0b20oSW5saW5lTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRMZWZ0KElubGluZUxheW91
dFVuaXQpOworICAgIHZvaWQgc2V0VG9wTGVmdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYpOwor
ICAgIHZvaWQgc2V0V2lkdGgoSW5saW5lTGF5b3V0VW5pdCk7CisgICAgdm9pZCBzZXRIZWlnaHQo
SW5saW5lTGF5b3V0VW5pdCk7CisKKyAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5
b3V0VW5pdCk7CisgICAgdm9pZCBtb3ZlVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0KTsKKyAg
ICB2b2lkIG1vdmVCeShJbmxpbmVMYXlvdXRQb2ludCk7CisKKyAgICB2b2lkIGV4cGFuZChPcHRp
b25hbDxJbmxpbmVMYXlvdXRVbml0PiwgT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4pOworICAg
IHZvaWQgZXhwYW5kVG9Db250YWluKGNvbnN0IElubGluZVJlY3QmKTsKKyAgICB2b2lkIGV4cGFu
ZEhvcml6b250YWxseShJbmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7IGV4cGFuZChkZWx0YSwgeyB9
KTsgfQorICAgIHZvaWQgZXhwYW5kVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0IGRlbHRhKSB7
IGV4cGFuZCh7IH0sIGRlbHRhKTsgfQorICAgIHZvaWQgZXhwYW5kVmVydGljYWxseVRvQ29udGFp
bihjb25zdCBJbmxpbmVSZWN0Jik7CisgICAgdm9pZCBpbmZsYXRlKElubGluZUxheW91dFVuaXQp
OworCisgICAgb3BlcmF0b3IgSW5saW5lTGF5b3V0UmVjdCgpIGNvbnN0OworCitwcml2YXRlOgor
I2lmIEFTU0VSVF9FTkFCTEVECisgICAgdm9pZCBpbnZhbGlkYXRlVG9wKCkgeyBtX2hhc1ZhbGlk
VG9wID0gZmFsc2U7IH0KKyAgICB2b2lkIGludmFsaWRhdGVMZWZ0KCkgeyBtX2hhc1ZhbGlkTGVm
dCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7IG1faGFzVmFsaWRXaWR0
aCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkgeyBtX2hhc1ZhbGlkSGVp
Z2h0ID0gZmFsc2U7IH0KKyAgICB2b2lkIGludmFsaWRhdGVQb3NpdGlvbigpOworCisgICAgYm9v
bCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNWYWxpZFRvcCAmJiBtX2hh
c1ZhbGlkTGVmdDsgfQorICAgIGJvb2wgaGFzVmFsaWRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRIZWlnaHQ7IH0KKyAgICBib29sIGhhc1ZhbGlkR2Vv
bWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNWYWxpZFBvc2l0aW9uKCkgJiYgaGFzVmFsaWRTaXpl
KCk7IH0KKworICAgIHZvaWQgc2V0SGFzVmFsaWRQb3NpdGlvbigpOworICAgIHZvaWQgc2V0SGFz
VmFsaWRTaXplKCk7CisKKyAgICBib29sIG1faGFzVmFsaWRUb3AgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9oYXNWYWxpZExlZnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNWYWxpZFdpZHRoIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faGFzVmFsaWRIZWlnaHQgeyBmYWxzZSB9OworI2VuZGlmIC8v
IEFTU0VSVF9FTkFCTEVECisgICAgSW5saW5lTGF5b3V0UmVjdCBtX3JlY3Q7Cit9OworCitpbmxp
bmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChJbmxpbmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5
b3V0VW5pdCBsZWZ0LCBJbmxpbmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhl
aWdodCkKKyAgICA6IG1fcmVjdChsZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpCit7CisjaWYgQVNT
RVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkTGVm
dCA9IHRydWU7CisgICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVp
Z2h0ID0gdHJ1ZTsKKyNlbmRpZgorfQorCitpbmxpbmUgSW5saW5lUmVjdDo6SW5saW5lUmVjdChj
b25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwg
SW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpCisgICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgpLCB0
b3BMZWZ0LngoKSwgd2lkdGgsIGhlaWdodCkKK3sKK30KKworaW5saW5lIElubGluZVJlY3Q6Oklu
bGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxh
eW91dFNpemUmIHNpemUpCisgICAgOiBJbmxpbmVSZWN0KHRvcExlZnQueSgpLCB0b3BMZWZ0Lngo
KSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKQoreworfQorCisjaWYgQVNTRVJUX0VOQUJM
RUQKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OmludmFsaWRhdGVQb3NpdGlvbigpCit7CisgICAg
aW52YWxpZGF0ZVRvcCgpOworICAgIGludmFsaWRhdGVMZWZ0KCk7Cit9CisKK2lubGluZSB2b2lk
IElubGluZVJlY3Q6OnNldEhhc1ZhbGlkUG9zaXRpb24oKQoreworICAgIG1faGFzVmFsaWRUb3Ag
PSB0cnVlOworICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKK30KKworaW5saW5lIHZvaWQgSW5s
aW5lUmVjdDo6c2V0SGFzVmFsaWRTaXplKCkKK3sKKyAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVl
OworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOworfQorI2VuZGlmIC8vIEFTU0VSVF9FTkFC
TEVECisKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OnRvcCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOworICAgIHJldHVybiBtX3JlY3QueSgpOworfQor
CitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpsZWZ0KCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobV9oYXNWYWxpZExlZnQpOworICAgIHJldHVybiBtX3JlY3QueCgpOworfQorCitp
bmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojpib3R0b20oKSBjb25zdAoreworICAg
IEFTU0VSVChtX2hhc1ZhbGlkVG9wICYmIG1faGFzVmFsaWRIZWlnaHQpOworICAgIHJldHVybiBt
X3JlY3QubWF4WSgpOworfQorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojpy
aWdodCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRX
aWR0aCk7CisgICAgcmV0dXJuIG1fcmVjdC5tYXhYKCk7Cit9CisKK2lubGluZSBJbmxpbmVMYXlv
dXRQb2ludCBJbmxpbmVSZWN0Ojp0b3BMZWZ0KCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFs
aWRQb3NpdGlvbigpKTsKKyAgICByZXR1cm4gbV9yZWN0Lm1pblhNaW5ZQ29ybmVyKCk7Cit9CisK
K2lubGluZSBJbmxpbmVMYXlvdXRTaXplIElubGluZVJlY3Q6OnNpemUoKSBjb25zdAoreworICAg
IEFTU0VSVChoYXNWYWxpZFNpemUoKSk7CisgICAgcmV0dXJuIG1fcmVjdC5zaXplKCk7Cit9CisK
K2lubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OndpZHRoKCkgY29uc3QKK3sKKyAg
ICBBU1NFUlQobV9oYXNWYWxpZFdpZHRoKTsKKyAgICByZXR1cm4gbV9yZWN0LndpZHRoKCk7Cit9
CisKK2lubGluZSBJbmxpbmVMYXlvdXRVbml0IElubGluZVJlY3Q6OmhlaWdodCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRIZWlnaHQpOworICAgIHJldHVybiBtX3JlY3QuaGVpZ2h0
KCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFRvcExlZnQoY29uc3QgSW5saW5l
TGF5b3V0UG9pbnQmIHRvcExlZnQpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBzZXRIYXNW
YWxpZFBvc2l0aW9uKCk7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7
Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFRvcChJbmxpbmVMYXlvdXRVbml0IHRv
cCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworI2Vu
ZGlmCisgICAgbV9yZWN0LnNldFkodG9wKTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6
c2V0Qm90dG9tKElubGluZUxheW91dFVuaXQgYm90dG9tKQoreworI2lmIEFTU0VSVF9FTkFCTEVE
CisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7
CisjZW5kaWYKKyAgICBtX3JlY3Quc2hpZnRNYXhZRWRnZVRvKGJvdHRvbSk7Cit9CisKK2lubGlu
ZSB2b2lkIElubGluZVJlY3Q6OnNldExlZnQoSW5saW5lTGF5b3V0VW5pdCBsZWZ0KQoreworI2lm
IEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOworI2VuZGlmCisgICAg
bV9yZWN0LnNldFgobGVmdCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldFdpZHRo
KElubGluZUxheW91dFVuaXQgd2lkdGgpCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hh
c1ZhbGlkV2lkdGggPSB0cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNldFdpZHRoKHdpZHRoKTsK
K30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6c2V0SGVpZ2h0KElubGluZUxheW91dFVuaXQg
aGVpZ2h0KQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRy
dWU7CisjZW5kaWYKKyAgICBtX3JlY3Quc2V0SGVpZ2h0KGhlaWdodCk7Cit9CisKK2lubGluZSB2
b2lkIElubGluZVJlY3Q6Om1vdmVIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQp
Cit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKKyAgICBtX3JlY3QubW92ZShJbmxpbmVM
YXlvdXRTaXplIHsgb2Zmc2V0LCAwIH0pOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojpt
b3ZlVmVydGljYWxseShJbmxpbmVMYXlvdXRVbml0IG9mZnNldCkKK3sKKyAgICBBU1NFUlQobV9o
YXNWYWxpZFRvcCk7CisgICAgbV9yZWN0Lm1vdmUoSW5saW5lTGF5b3V0U2l6ZSB7IDAsIG9mZnNl
dCB9KTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6bW92ZUJ5KElubGluZUxheW91dFBv
aW50IG9mZnNldCkKK3sKKyAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7CisgICAgQVNTRVJUKG1f
aGFzVmFsaWRMZWZ0KTsKKyAgICBtX3JlY3QubW92ZUJ5KG9mZnNldCk7Cit9CisKK2lubGluZSB2
b2lkIElubGluZVJlY3Q6OmV4cGFuZChPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB3aWR0aCwg
T3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gaGVpZ2h0KQoreworICAgIEFTU0VSVCghd2lkdGgg
fHwgbV9oYXNWYWxpZFdpZHRoKTsKKyAgICBBU1NFUlQoIWhlaWdodCB8fCBtX2hhc1ZhbGlkSGVp
Z2h0KTsKKyAgICBtX3JlY3QuZXhwYW5kKHdpZHRoLnZhbHVlT3IoMCksIGhlaWdodC52YWx1ZU9y
KDApKTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVjdDo6ZXhwYW5kVG9Db250YWluKGNvbnN0
IElubGluZVJlY3QmIG90aGVyKQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxp
ZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOworICAgIG1faGFzVmFsaWRX
aWR0aCA9IHRydWU7CisgICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7CisjZW5kaWYKKyAgICBt
X3JlY3QudW5pdGVFdmVuSWZFbXB0eShvdGhlcik7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJl
Y3Q6OmV4cGFuZFZlcnRpY2FsbHlUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVjdCYgb3RoZXIpCit7
CisgICAgYXV0byBjb250YWluVG9wID0gc3RkOjptaW4odG9wKCksIG90aGVyLnRvcCgpKTsKKyAg
ICBhdXRvIGNvbnRhaW5Cb3R0b20gPSBzdGQ6Om1heChib3R0b20oKSwgb3RoZXIuYm90dG9tKCkp
OworICAgIHNldFRvcChjb250YWluVG9wKTsKKyAgICBzZXRCb3R0b20oY29udGFpbkJvdHRvbSk7
Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OmluZmxhdGUoSW5saW5lTGF5b3V0VW5pdCBp
bmZsYXRlKQoreworICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkpOworICAgIG1fcmVjdC5p
bmZsYXRlKGluZmxhdGUpOworfQorCitpbmxpbmUgSW5saW5lUmVjdDo6b3BlcmF0b3IgSW5saW5l
TGF5b3V0UmVjdCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhhc1ZhbGlkR2VvbWV0cnkoKSk7IAor
ICAgIHJldHVybiBtX3JlY3Q7Cit9CisKK30KK30KKyNlbmRpZgo=
</data>
<flag name="commit-queue"
          id="424556"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408987</attachid>
            <date>2020-09-16 20:53:54 -0700</date>
            <delta_ts>2020-09-16 23:04:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216633-20200916205354.patch</filename>
            <type>text/plain</type>
            <size>42165</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5Mjg0ZWU2OThlNGQ5
YzJjZjg0NTg2NjJkMGQ4YjI2YTlmZDE5Ni4uMGU1YTY4MWRjNWVhYWNhYThhMWU0ZjhmYzgyNmVk
N2Y4Njg5MjdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIwLTA5LTE2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBNb3ZlIElu
bGluZVJlY3QgZnJvbSBEaXNwbGF5IHRvIExheW91dCBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjYzMworCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBMZXQncyBtb3ZlIHRoZSBEaXNwbGF5IHR5
cGUgb3ZlciB0byBMYXlvdXQgbmFtZXNwYWNlLiBEaXNwbGF5IHRyZWUgbmVlZHMgYSBkaWZmZXJl
bnQgc2V0IG9mIGRhdGEgdHlwZXMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmg6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpyZWN0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXk6OkxpbmU6OnNjcm9sbGFibGVPdmVyZmxvdyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjppbmtPdmVyZmxvdyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5OjpMaW5lOjpMaW5lKToKKyAgICAgICAgKiBsYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheVJ1bi5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpyZWN0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlJ1bjo6aW5rT3ZlcmZsb3cgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheTo6UnVuOjpSdW4pOgorICAgICAgICAqIGxh
eW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ0NvbnRleHQ6OnNpemVBbmRQbGFjZUZsZXhJ
dGVtcyk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZWRMaW5lTG9naWNhbFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9yTGlu
ZUNvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
TGluZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3g6OklubGluZUJv
eDo6SW5saW5lQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6bG9naWNh
bFJlY3RGb3JUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJv
eDo6Y29uc3RydWN0SW5saW5lQm94ZXMpOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZUxpbmVCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUJveDo6
SW5saW5lQm94Ojpsb2dpY2FsUmVjdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lUmVjdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OklubGluZVJlY3Q6OmV4cGFuZEhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OmV4cGFuZFZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlVG9wKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZUxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjppbnZhbGlkYXRlSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lUmVjdDo6aGFzVmFsaWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkU2l6ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6Omhhc1ZhbGlkR2VvbWV0cnkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnRvcCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpJbmxpbmVSZWN0Ojpib3R0b20gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpJbmxpbmVSZWN0OjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OklubGluZVJlY3Q6OnRvcExlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVSZWN0OjpzaXplIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6d2lkdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVSZWN0OjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpzZXRUb3BMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6
c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0Qm90dG9t
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0TGVmdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVJlY3Q6OnNldFdpZHRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lUmVjdDo6c2V0SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUhvcml6b250YWxseSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OklubGluZVJlY3Q6Om1vdmVWZXJ0aWNhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6SW5saW5lUmVjdDo6bW92ZUJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lUmVjdDo6ZXhwYW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVG9Db250YWluKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lUmVj
dDo6ZXhwYW5kVmVydGljYWxseVRvQ29udGFpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZVJlY3Q6OmluZmxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVS
ZWN0OjpvcGVyYXRvciBJbmxpbmVMYXlvdXRSZWN0IGNvbnN0KToKKwogMjAyMC0wOS0xNiAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFJlbW92ZSBwYXJ0
aWFsIGludmFsaWRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYTU1YTE4ZDMyMDQ4ZTc2ZTY1
MWUwMDYwNWY4MGIwNWEzMjdhMTFlZS4uY2M4ZTdhY2YzYjkwODQ3OTZkNWI2ZDM3NWEwODg1NjIz
OGI3YWJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC02OTgsMTEgKzY5OCwxMiBAQCBzZXQoV2Vi
Q29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICBsYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheUJveC5oCiAgICAgbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50
LmgKLSAgICBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZVJlY3QuaAogICAgIGxheW91
dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCiAgICAgbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlSZWN0LmgKICAgICBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCiAKKyAgICBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSZWN0LmgKKwogICAgIGxheW91dC9sYXlvdXR0cmVl
L0xheW91dEJveC5oCiAKICAgICBsb2FkZXIvQWRDbGlja0F0dHJpYnV0aW9uLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3OTc0
MjliYjE2MmFiYTYwYjAxYjYyYWIyYWY4YTQ0MGFmMzJkMDdmLi40ZmJhMjAyNzAzM2M4ZTZmMjI1
N2NkNWFiNWMxOTE5ODYxZGNjOGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjksNyArMzY5LDYgQEAKIAkJMEZGRDRENjEx
ODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRkQ0RDVGMTg2NTFGQTMwMDUx
MkY2RSAvKiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTBGQjA4NEIxNEUxNUM3RTAwQTNEQjk4IC8q
IFB1YmxpY1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmgg
Ki87IH07CiAJCTExMkIzNEQ1MUU2MEI5ODMwMEJCMzEwQSAvKiBTaW1wbGVMaW5lTGF5b3V0UGFn
aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTEyQjM0RDQxRTYwQjk4MzAwQkIzMTBBIC8qIFNpbXBsZUxpbmVMYXlvdXRQYWdpbmF0aW9uLmgg
Ki87IH07Ci0JCTExMkZCMzUyMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNwbGF5SW5saW5lUmVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTEyRkIzNTAy
MzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTEzMTBDRjIyMEJBNEEzMjAwNjVBOEQw
IC8qIExheW91dFRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTEwMEZENzIwOTUxNERGMDA4MUFBNkMgLyogTGF5b3V0VHJlZUJ1aWxk
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
MTMxMENGMzIwQkE0QTM3MDA2NUE4RDAgLyogTGF5b3V0UmVwbGFjZWRCb3guaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExMUM2MTU2MjBBRDFBRTEwMDVC
ODJGQSAvKiBMYXlvdXRSZXBsYWNlZEJveC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTExMzEwQ0Y0MjBCQTRBM0QwMDY1QThEMCAvKiBMYXlvdXRJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTExMDBGQzcyMDkyNzY0QzAwODFBQTZDIC8qIExheW91dEl0ZXJhdG9yLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwNjQsNiArMjA2Myw3IEBA
CiAJCTZGMjZCQjZDMjMzNDNFNkYwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjI2QkI2QjIzMzQzRTVCMDAy
RjJCRUEgLyogTGF5b3V0Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTZGMjZFQjQ4MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5l
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkYyNkVCNDYyMzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVCdWlsZGVyLmggKi87IH07CiAJ
CTZGMzYwRTUwMjM5OTk0MjEwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYzNjBFNEUyMzk5
OTQyMDAwMTUxMkE3IC8qIElubGluZVNvZnRMaW5lQnJlYWtJdGVtLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkY0MERBODIyNTEzMDMzQTAwRUMw
NEI3IC8qIElubGluZVJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGNDBEQTgxMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY2MzgzRjYyNDI3
QUY0QTAwREFCQTUzIC8qIExheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNjM4M0Y0MjQyN0FGNDkwMERB
QkE1MyAvKiBMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2
IC8qIERpc3BsYXlQYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkxQUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTND
NjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlv
dXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC02MDk4LDcgKzYwOTgsNiBAQAogCQkxMTFDNjE1NzIwQUQxQUUxMDA1QjgyRkEgLyogTGF5
b3V0UmVwbGFjZWRCb3guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVwbGFjZWRCb3gu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTJCMzREMDFFNjBCOEE3MDBCQjMx
MEEgLyogU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTJCMzRENDFFNjBCOTgzMDBCQjMxMEEgLyogU2ltcGxl
TGluZUxheW91dFBhZ2luYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2ltcGxlTGluZUxheW91dFBhZ2luYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMTEyRkIzNTAyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVSZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlJbmxpbmVSZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExMzQwOUQ3MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJU
cmVlQnVpbGRlckNvbnRpbnVhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJUcmVl
QnVpbGRlckNvbnRpbnVhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEx
MzQwOUQ4MjAzRTAzODAwMEM2NjkxNSAvKiBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckNvbnRpbnVhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTNEMEI0RjFGOUZERDJCMDBGNjExQkIgLyogRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1ODgsNiArOTU4Nyw3
IEBACiAJCTZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJbmxpbmVMaW5lQnVpbGRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lQnVpbGRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjM1RUZBRjIxODdDQkQ1MDA0NEUwRjQgLyogSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkYzNjBFNEUyMzk5OTQyMDAwMTUxMkE3IC8qIElubGlu
ZVNvZnRMaW5lQnJlYWtJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
bGluZVNvZnRMaW5lQnJlYWtJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZG
NDBEQTgxMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IElubGluZVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNkY0QTVCRDUyMkY5RjE2QjAwQTgwRjI1IC8qIExheW91dFBoYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExheW91dFBoYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkY1QjdFQUEyMzAwQTc5RTAwNjdEOUMzIC8qIFRhYmxlR3JpZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBUYWJsZUdyaWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjYzODNG
NDI0MjdBRjQ5MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzUzOCw2ICsxNzUzOCw3IEBACiAJ
CQkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUxpbmVCcmVha2VyLmggKi8sCiAJ
CQkJNkYyNUIyMDAyMjBBODVBQjAwMDAwMTFCIC8qIElubGluZUxpbmVCdWlsZGVyLmNwcCAqLywK
IAkJCQk2RjI2RUI0NjIzNDAwNEE1MDA2OTA2RTIgLyogSW5saW5lTGluZUJ1aWxkZXIuaCAqLywK
KwkJCQk2RjQwREE4MTI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oICovLAogCQkJCTZG
MzYwRTRFMjM5OTk0MjAwMDE1MTJBNyAvKiBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbS5oICovLAog
CQkJCTZGMUNDMURDMjI1RjhCNDEwMDcyMEFEMiAvKiBJbmxpbmVUZXh0SXRlbS5jcHAgKi8sCiAJ
CQkJNkYxQ0MxREQyMjVGOEI0MjAwNzIwQUQyIC8qIElubGluZVRleHRJdGVtLmggKi8sCkBAIC0x
NzU1Miw3ICsxNzU1Myw2IEBACiAJCQkJMTE5OUZBNTkyMDhFM0M3RjAwMjM1OENDIC8qIERpc3Bs
YXlCb3guaCAqLywKIAkJCQlFNEZCNEIzNTIzOUJFQjEwMDAzQzMzNkEgLyogRGlzcGxheUlubGlu
ZUNvbnRlbnQuY3BwICovLAogCQkJCUU0NTFDNjMzMjM5NDA1OEUwMDk5MzE5MCAvKiBEaXNwbGF5
SW5saW5lQ29udGVudC5oICovLAotCQkJCTExMkZCMzUwMjM5QzIzQzQwMDg3MDU0QSAvKiBEaXNw
bGF5SW5saW5lUmVjdC5oICovLAogCQkJCTZGQjQ3RTYxMjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNw
bGF5TGluZS5oICovLAogCQkJCTZGNzc4Njg1MjM0OTFBQzYwMDREOTYzNiAvKiBEaXNwbGF5UGFp
bnRlci5jcHAgKi8sCiAJCQkJNkY3Nzg2ODcyMzQ5MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWlu
dGVyLmggKi8sCkBAIC0zMTA2NSw3ICszMTA2NSw2IEBACiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAw
MzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTE5
OUZBNUIyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3guaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU0NTFDNjM0MjM5NDA1OEYwMDk5MzE5MCAvKiBEaXNwbGF5SW5saW5lQ29udGVudC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMTEyRkIzNTIyMzlDMjNDNDAwODcwNTRBIC8qIERpc3BsYXlJbmxpbmVS
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkI0N0U2MzIyNzc0MjVBMDBDN0JDQjAgLyogRGlz
cGxheUxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1MUUwMDA3QTJDQSAv
KiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAyNDA4OTY0MDAwREU0
RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE3
NjcsNiArMzE3NjYsNyBAQAogCQkJCTZGRTE5ODE3MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVM
aW5lQnJlYWtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUy
IC8qIElubGluZUxpbmVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDU3NzVDRTI0MTQz
N0Q1MDAyREYxQTAgLyogSW5saW5lUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGNDBE
QTgyMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2
RjM2MEU1MDIzOTk5NDIxMDAxNTEyQTcgLyogSW5saW5lU29mdExpbmVCcmVha0l0ZW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUFBNEMzQTc3MEIyQjE2NzkwMDIzMzRBMiAvKiBJbmxpbmVTdHlsZVNo
ZWV0T3duZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODVBMDk3RDkzMDIwMDk0QzlFNCAv
KiBJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5SW5saW5lUmVjdC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ5ZDYyNzc0YTM3YmFlNThhZWJjZWZjYzVhNTljOTRkZGY3ZDExMjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVSZWN0LmgKKysrIC9kZXYvbnVs
bApAQCAtMSwyOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNsdWRlICJMYXlvdXRVbml0cy5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgRGlzcGxheSB7Ci0KLWNsYXNzIElu
bGluZVJlY3QgewotcHVibGljOgotICAgIElubGluZVJlY3QoKSA9IGRlZmF1bHQ7Ci0gICAgSW5s
aW5lUmVjdChJbmxpbmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5b3V0VW5pdCBsZWZ0LCBJbmxp
bmVMYXlvdXRVbml0IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7Ci0gICAgSW5saW5l
UmVjdChjb25zdCBJbmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3
aWR0aCwgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQpOwotICAgIElubGluZVJlY3QoY29uc3QgSW5s
aW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW91dFNpemUmKTsKLSAgICAK
LSAgICBJbmxpbmVMYXlvdXRVbml0IHRvcCgpIGNvbnN0OwotICAgIElubGluZUxheW91dFVuaXQg
bGVmdCgpIGNvbnN0OwotICAgIElubGluZUxheW91dFBvaW50IHRvcExlZnQoKSBjb25zdDsKLQot
ICAgIElubGluZUxheW91dFVuaXQgYm90dG9tKCkgY29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0VW5p
dCByaWdodCgpIGNvbnN0OyAgICAgICAgCi0KLSAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKCkg
Y29uc3Q7Ci0gICAgSW5saW5lTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdDsKLSAgICBJbmxpbmVM
YXlvdXRTaXplIHNpemUoKSBjb25zdDsKLQotICAgIHZvaWQgc2V0VG9wKElubGluZUxheW91dFVu
aXQpOwotICAgIHZvaWQgc2V0Qm90dG9tKElubGluZUxheW91dFVuaXQpOwotICAgIHZvaWQgc2V0
TGVmdChJbmxpbmVMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldFRvcExlZnQoY29uc3QgSW5saW5l
TGF5b3V0UG9pbnQmKTsKLSAgICB2b2lkIHNldFdpZHRoKElubGluZUxheW91dFVuaXQpOwotICAg
IHZvaWQgc2V0SGVpZ2h0KElubGluZUxheW91dFVuaXQpOwotCi0gICAgdm9pZCBtb3ZlSG9yaXpv
bnRhbGx5KElubGluZUxheW91dFVuaXQpOwotICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoSW5saW5l
TGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBtb3ZlQnkoSW5saW5lTGF5b3V0UG9pbnQpOwotCi0gICAg
dm9pZCBleHBhbmQoT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4sIE9wdGlvbmFsPElubGluZUxh
eW91dFVuaXQ+KTsKLSAgICB2b2lkIGV4cGFuZFRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0Jik7
Ci0gICAgdm9pZCBleHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBl
eHBhbmQoZGVsdGEsIHsgfSk7IH0KLSAgICB2b2lkIGV4cGFuZFZlcnRpY2FsbHkoSW5saW5lTGF5
b3V0VW5pdCBkZWx0YSkgeyBleHBhbmQoeyB9LCBkZWx0YSk7IH0KLSAgICB2b2lkIGV4cGFuZFZl
cnRpY2FsbHlUb0NvbnRhaW4oY29uc3QgSW5saW5lUmVjdCYpOwotICAgIHZvaWQgaW5mbGF0ZShJ
bmxpbmVMYXlvdXRVbml0KTsKLQotICAgIG9wZXJhdG9yIElubGluZUxheW91dFJlY3QoKSBjb25z
dDsKLQotcHJpdmF0ZToKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIHZvaWQgaW52YWxpZGF0ZVRv
cCgpIHsgbV9oYXNWYWxpZFRvcCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlTGVmdCgp
IHsgbV9oYXNWYWxpZExlZnQgPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxpZGF0ZVdpZHRoKCkg
eyBtX2hhc1ZhbGlkV2lkdGggPSBmYWxzZTsgfQotICAgIHZvaWQgaW52YWxpZGF0ZUhlaWdodCgp
IHsgbV9oYXNWYWxpZEhlaWdodCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlUG9zaXRp
b24oKTsKLQotICAgIGJvb2wgaGFzVmFsaWRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFz
VmFsaWRUb3AgJiYgbV9oYXNWYWxpZExlZnQ7IH0KLSAgICBib29sIGhhc1ZhbGlkU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzVmFsaWRXaWR0aCAmJiBtX2hhc1ZhbGlkSGVpZ2h0OyB9Ci0gICAg
Ym9vbCBoYXNWYWxpZEdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gaGFzVmFsaWRQb3NpdGlvbigp
ICYmIGhhc1ZhbGlkU2l6ZSgpOyB9Ci0KLSAgICB2b2lkIHNldEhhc1ZhbGlkUG9zaXRpb24oKTsK
LSAgICB2b2lkIHNldEhhc1ZhbGlkU2l6ZSgpOwotCi0gICAgYm9vbCBtX2hhc1ZhbGlkVG9wIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faGFzVmFsaWRMZWZ0IHsgZmFsc2UgfTsKLSAgICBib29sIG1f
aGFzVmFsaWRXaWR0aCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc1ZhbGlkSGVpZ2h0IHsgZmFs
c2UgfTsKLSNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAotICAgIElubGluZUxheW91dFJlY3QgbV9y
ZWN0OwotfTsKLQotaW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoSW5saW5lTGF5b3V0VW5p
dCB0b3AsIElubGluZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5s
aW5lTGF5b3V0VW5pdCBoZWlnaHQpCi0gICAgOiBtX3JlY3QobGVmdCwgdG9wLCB3aWR0aCwgaGVp
Z2h0KQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7Ci0g
ICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7Ci0g
ICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci0jZW5kaWYKLX0KLQotaW5saW5lIElubGluZVJl
Y3Q6OklubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIElubGluZUxh
eW91dFVuaXQgd2lkdGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KQotICAgIDogSW5saW5lUmVj
dCh0b3BMZWZ0LnkoKSwgdG9wTGVmdC54KCksIHdpZHRoLCBoZWlnaHQpCi17Ci19Ci0KLWlubGlu
ZSBJbmxpbmVSZWN0OjpJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0
LCBjb25zdCBJbmxpbmVMYXlvdXRTaXplJiBzaXplKQotICAgIDogSW5saW5lUmVjdCh0b3BMZWZ0
LnkoKSwgdG9wTGVmdC54KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkKLXsKLX0KLQot
I2lmIEFTU0VSVF9FTkFCTEVECi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjppbnZhbGlkYXRlUG9z
aXRpb24oKQotewotICAgIGludmFsaWRhdGVUb3AoKTsKLSAgICBpbnZhbGlkYXRlTGVmdCgpOwot
fQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRIYXNWYWxpZFBvc2l0aW9uKCkKLXsKLSAg
ICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci19Ci0K
LWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSgpCi17Ci0gICAgbV9oYXNW
YWxpZFdpZHRoID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLX0KLSNlbmRp
ZiAvLyBBU1NFUlRfRU5BQkxFRAotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0
Ojp0b3AoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsKLSAgICByZXR1cm4g
bV9yZWN0LnkoKTsKLX0KLQotaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6bGVm
dCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICByZXR1cm4gbV9y
ZWN0LngoKTsKLX0KLQotaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6Ym90dG9t
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0
KTsKLSAgICByZXR1cm4gbV9yZWN0Lm1heFkoKTsKLX0KLQotaW5saW5lIElubGluZUxheW91dFVu
aXQgSW5saW5lUmVjdDo6cmlnaHQoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVm
dCAmJiBtX2hhc1ZhbGlkV2lkdGgpOwotICAgIHJldHVybiBtX3JlY3QubWF4WCgpOwotfQotCi1p
bmxpbmUgSW5saW5lTGF5b3V0UG9pbnQgSW5saW5lUmVjdDo6dG9wTGVmdCgpIGNvbnN0Ci17Ci0g
ICAgQVNTRVJUKGhhc1ZhbGlkUG9zaXRpb24oKSk7Ci0gICAgcmV0dXJuIG1fcmVjdC5taW5YTWlu
WUNvcm5lcigpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0U2l6ZSBJbmxpbmVSZWN0OjpzaXpl
KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaGFzVmFsaWRTaXplKCkpOwotICAgIHJldHVybiBtX3Jl
Y3Quc2l6ZSgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojp3aWR0
aCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgcmV0dXJuIG1f
cmVjdC53aWR0aCgpOwotfQotCi1pbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojpo
ZWlnaHQoKSBjb25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkSGVpZ2h0KTsKLSAgICByZXR1
cm4gbV9yZWN0LmhlaWdodCgpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRUb3BM
ZWZ0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0KQotewotI2lmIEFTU0VSVF9FTkFC
TEVECi0gICAgc2V0SGFzVmFsaWRQb3NpdGlvbigpOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldExv
Y2F0aW9uKHRvcExlZnQpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRUb3AoSW5s
aW5lTGF5b3V0VW5pdCB0b3ApCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlk
VG9wID0gdHJ1ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRZKHRvcCk7Ci19Ci0KLWlubGluZSB2
b2lkIElubGluZVJlY3Q6OnNldEJvdHRvbShJbmxpbmVMYXlvdXRVbml0IGJvdHRvbSkKLXsKLSNp
ZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotICAgIG1faGFzVmFs
aWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNoaWZ0TWF4WUVkZ2VUbyhib3R0
b20pOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRMZWZ0KElubGluZUxheW91dFVu
aXQgbGVmdCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1
ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5zZXRYKGxlZnQpOwotfQotCi1pbmxpbmUgdm9pZCBJbmxp
bmVSZWN0OjpzZXRXaWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKQotewotI2lmIEFTU0VSVF9F
TkFCTEVECi0gICAgbV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKLSNlbmRpZgotICAgIG1fcmVjdC5z
ZXRXaWR0aCh3aWR0aCk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhlaWdodChJ
bmxpbmVMYXlvdXRVbml0IGhlaWdodCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFz
VmFsaWRIZWlnaHQgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNldEhlaWdodChoZWlnaHQp
OwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlSG9yaXpvbnRhbGx5KElubGluZUxh
eW91dFVuaXQgb2Zmc2V0KQotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7Ci0gICAgbV9y
ZWN0Lm1vdmUoSW5saW5lTGF5b3V0U2l6ZSB7IG9mZnNldCwgMCB9KTsKLX0KLQotaW5saW5lIHZv
aWQgSW5saW5lUmVjdDo6bW92ZVZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpCi17
Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOwotICAgIG1fcmVjdC5tb3ZlKElubGluZUxheW91
dFNpemUgeyAwLCBvZmZzZXQgfSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6Om1vdmVC
eShJbmxpbmVMYXlvdXRQb2ludCBvZmZzZXQpCi17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRUb3Ap
OwotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7Ci0gICAgbV9yZWN0Lm1vdmVCeShvZmZzZXQp
OwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmQoT3B0aW9uYWw8SW5saW5lTGF5
b3V0VW5pdD4gd2lkdGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhlaWdodCkKLXsKLSAg
ICBBU1NFUlQoIXdpZHRoIHx8IG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgQVNTRVJUKCFoZWlnaHQg
fHwgbV9oYXNWYWxpZEhlaWdodCk7Ci0gICAgbV9yZWN0LmV4cGFuZCh3aWR0aC52YWx1ZU9yKDAp
LCBoZWlnaHQudmFsdWVPcigwKSk7Ci19Ci0KLWlubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFu
ZFRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0JiBvdGhlcikKLXsKLSNpZiBBU1NFUlRfRU5BQkxF
RAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsK
LSAgICBtX2hhc1ZhbGlkV2lkdGggPSB0cnVlOwotICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVl
OwotI2VuZGlmCi0gICAgbV9yZWN0LnVuaXRlRXZlbklmRW1wdHkob3RoZXIpOwotfQotCi1pbmxp
bmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmRWZXJ0aWNhbGx5VG9Db250YWluKGNvbnN0IElubGlu
ZVJlY3QmIG90aGVyKQotewotICAgIGF1dG8gY29udGFpblRvcCA9IHN0ZDo6bWluKHRvcCgpLCBv
dGhlci50b3AoKSk7Ci0gICAgYXV0byBjb250YWluQm90dG9tID0gc3RkOjptYXgoYm90dG9tKCks
IG90aGVyLmJvdHRvbSgpKTsKLSAgICBzZXRUb3AoY29udGFpblRvcCk7Ci0gICAgc2V0Qm90dG9t
KGNvbnRhaW5Cb3R0b20pOwotfQotCi1pbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjppbmZsYXRlKElu
bGluZUxheW91dFVuaXQgaW5mbGF0ZSkKLXsKLSAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgp
KTsKLSAgICBtX3JlY3QuaW5mbGF0ZShpbmZsYXRlKTsKLX0KLQotaW5saW5lIElubGluZVJlY3Q6
Om9wZXJhdG9yIElubGluZUxheW91dFJlY3QoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNWYWxp
ZEdlb21ldHJ5KCkpOyAKLSAgICByZXR1cm4gbV9yZWN0OwotfQotCi19Ci19Ci0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKaW5kZXgg
NjFjMGI2NjdmMTFhNWUyMzg2YzU0NGQ3M2RmNWE0NzJhMGJhZGY0Yi4uODFmNDRmZTRiOTNiYjQz
ZjMxMWIzYTc2OGE4MDU2NmMyMjhhNjAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlMaW5lLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRGlzcGxheUlubGluZVJl
Y3QuaCIKKyNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5h
bWVzcGFjZSBEaXNwbGF5IHsKQEAgLTM1LDExICszNSwxMSBAQCBuYW1lc3BhY2UgRGlzcGxheSB7
CiBjbGFzcyBMaW5lIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBMaW5lKGNvbnN0IElubGluZVJlY3QmLCBjb25zdCBJbmxpbmVSZWN0JiBzY3JvbGxhYmxlT3Zl
cmZsb3csIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93LCBJbmxpbmVMYXlvdXRVbml0IGJh
c2VsaW5lKTsKKyAgICBMaW5lKGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYsIGNvbnN0IExheW91
dDo6SW5saW5lUmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93LCBjb25zdCBMYXlvdXQ6OklubGluZVJl
Y3QmIGlua092ZXJmbG93LCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKTsKIAotICAgIGNvbnN0
IElubGluZVJlY3QmIHJlY3QoKSBjb25zdCB7IHJldHVybiBtX3JlY3Q7IH0KLSAgICBjb25zdCBJ
bmxpbmVSZWN0JiBzY3JvbGxhYmxlT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGFi
bGVPdmVyZmxvdzsgfQotICAgIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93KCkgY29uc3Qg
eyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQorICAgIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYg
cmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0IExheW91dDo6SW5saW5l
UmVjdCYgc2Nyb2xsYWJsZU92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxlT3Zl
cmZsb3c7IH0KKyAgICBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93KCkgY29u
c3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBsZWZ0
KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0LmxlZnQoKTsgfQogICAgIElubGluZUxheW91dFVuaXQg
cmlnaHQoKSBjb25zdCB7IHJldHVybiBtX3JlY3QucmlnaHQoKTsgfQpAQCAtNTQsMTMgKzU0LDEz
IEBAIHB1YmxpYzoKICAgICBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lKCkgY29uc3QgeyByZXR1
cm4gbV9iYXNlbGluZTsgfQogCiBwcml2YXRlOgotICAgIElubGluZVJlY3QgbV9yZWN0OwotICAg
IElubGluZVJlY3QgbV9zY3JvbGxhYmxlT3ZlcmZsb3c7Ci0gICAgSW5saW5lUmVjdCBtX2lua092
ZXJmbG93OworICAgIExheW91dDo6SW5saW5lUmVjdCBtX3JlY3Q7CisgICAgTGF5b3V0OjpJbmxp
bmVSZWN0IG1fc2Nyb2xsYWJsZU92ZXJmbG93OworICAgIExheW91dDo6SW5saW5lUmVjdCBtX2lu
a092ZXJmbG93OwogICAgIElubGluZUxheW91dFVuaXQgbV9iYXNlbGluZSB7IDAgfTsKIH07CiAK
LWlubGluZSBMaW5lOjpMaW5lKGNvbnN0IElubGluZVJlY3QmIHJlY3QsIGNvbnN0IElubGluZVJl
Y3QmIHNjcm9sbGFibGVPdmVyZmxvdywgY29uc3QgSW5saW5lUmVjdCYgaW5rT3ZlcmZsb3csIElu
bGluZUxheW91dFVuaXQgYmFzZWxpbmUpCitpbmxpbmUgTGluZTo6TGluZShjb25zdCBMYXlvdXQ6
OklubGluZVJlY3QmIHJlY3QsIGNvbnN0IExheW91dDo6SW5saW5lUmVjdCYgc2Nyb2xsYWJsZU92
ZXJmbG93LCBjb25zdCBMYXlvdXQ6OklubGluZVJlY3QmIGlua092ZXJmbG93LCBJbmxpbmVMYXlv
dXRVbml0IGJhc2VsaW5lKQogICAgIDogbV9yZWN0KHJlY3QpCiAgICAgLCBtX3Njcm9sbGFibGVP
dmVyZmxvdyhzY3JvbGxhYmxlT3ZlcmZsb3cpCiAgICAgLCBtX2lua092ZXJmbG93KGlua092ZXJm
bG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmgK
aW5kZXggNzFhYzhhN2VkOTgzZTc0ODI1NmM0MjdkMGYzNTExNjc3NzI1ZDM3OC4uYjcxNjE4MTJm
ODY5ODQzMzk4YzFkMmU2OGEwZWIxMzQ0NmYxZjcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUgIkRpc3BsYXlJbmxp
bmVSZWN0LmgiCisjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUgIkxheW91dEJveC5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiVGV4dEZsYWdzLmgiCkBAIC02
NCwxMCArNjQsMTAgQEAgc3RydWN0IFJ1biB7CiAgICAgfTsKIAogICAgIHN0cnVjdCBFeHBhbnNp
b247Ci0gICAgUnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiwgY29uc3Qg
SW5saW5lUmVjdCYsIGNvbnN0IElubGluZVJlY3QmIGlua092ZXJmbG93LCBFeHBhbnNpb24sIE9w
dGlvbmFsPFRleHRDb250ZW50PiA9IFdURjo6bnVsbG9wdCk7CisgICAgUnVuKHNpemVfdCBsaW5l
SW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiwgY29u
c3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uLCBPcHRpb25hbDxU
ZXh0Q29udGVudD4gPSBXVEY6Om51bGxvcHQpOwogCi0gICAgY29uc3QgSW5saW5lUmVjdCYgcmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQotICAgIGNvbnN0IElubGluZVJlY3QmIGlua092
ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9pbmtPdmVyZmxvdzsgfQorICAgIGNvbnN0IExheW91
dDo6SW5saW5lUmVjdCYgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdDsgfQorICAgIGNvbnN0
IExheW91dDo6SW5saW5lUmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092
ZXJmbG93OyB9CiAKICAgICBJbmxpbmVMYXlvdXRQb2ludCB0b3BMZWZ0KCkgY29uc3QgeyByZXR1
cm4gbV9yZWN0LnRvcExlZnQoKTsgfQogICAgIElubGluZUxheW91dFVuaXQgbGVmdCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVjdC5sZWZ0KCk7IH0KQEAgLTEwMywxMyArMTAzLDEzIEBAIHByaXZhdGU6
CiAgICAgY29uc3Qgc2l6ZV90IG1fbGluZUluZGV4OwogICAgIFdlYWtQdHI8Y29uc3QgTGF5b3V0
OjpCb3g+IG1fbGF5b3V0Qm94OwogICAgIENhY2hlZEltYWdlKiBtX2NhY2hlZEltYWdlIHsgbnVs
bHB0ciB9OwotICAgIElubGluZVJlY3QgbV9yZWN0OwotICAgIElubGluZVJlY3QgbV9pbmtPdmVy
ZmxvdzsKKyAgICBMYXlvdXQ6OklubGluZVJlY3QgbV9yZWN0OworICAgIExheW91dDo6SW5saW5l
UmVjdCBtX2lua092ZXJmbG93OwogICAgIEV4cGFuc2lvbiBtX2V4cGFuc2lvbjsKICAgICBPcHRp
b25hbDxUZXh0Q29udGVudD4gbV90ZXh0Q29udGVudDsKIH07CiAKLWlubGluZSBSdW46OlJ1bihz
aXplX3QgbGluZUluZGV4LCBjb25zdCBMYXlvdXQ6OkJveCYgbGF5b3V0Qm94LCBjb25zdCBJbmxp
bmVSZWN0JiByZWN0LCBjb25zdCBJbmxpbmVSZWN0JiBpbmtPdmVyZmxvdywgRXhwYW5zaW9uIGV4
cGFuc2lvbiwgT3B0aW9uYWw8VGV4dENvbnRlbnQ+IHRleHRDb250ZW50KQoraW5saW5lIFJ1bjo6
UnVuKHNpemVfdCBsaW5lSW5kZXgsIGNvbnN0IExheW91dDo6Qm94JiBsYXlvdXRCb3gsIGNvbnN0
IExheW91dDo6SW5saW5lUmVjdCYgcmVjdCwgY29uc3QgTGF5b3V0OjpJbmxpbmVSZWN0JiBpbmtP
dmVyZmxvdywgRXhwYW5zaW9uIGV4cGFuc2lvbiwgT3B0aW9uYWw8VGV4dENvbnRlbnQ+IHRleHRD
b250ZW50KQogICAgIDogbV9saW5lSW5kZXgobGluZUluZGV4KQogICAgICwgbV9sYXlvdXRCb3go
bWFrZVdlYWtQdHIobGF5b3V0Qm94KSkKICAgICAsIG1fcmVjdChyZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRp
bmdDb250ZXh0LmNwcAppbmRleCA3NjNmMGQ2NGE3OTZiZDgwODkzNzg5YTg3ZDI4M2M1M2RiNjM2
Nzk1Li4xY2ViYjA2ZWZmYmI4OTU3NmE0MGJjOWM4MDI5OWI2NDVmODNmODYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZv
cm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEZsZXhGb3JtYXR0aW5n
Q29udGV4dDo6c2l6ZUFuZFBsYWNlRmxleEl0ZW1zKGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93
Q29udAogICAgICAgICB9OwogICAgICAgICBjb21wdXRlRmxleEl0ZW1HZW9tZXRyeSgpOwogICAg
IH0KLSAgICBhdXRvIGZsZXhMaW5lID0gRGlzcGxheTo6SW5saW5lUmVjdCB7IGZsZXhJdGVtQ3Jv
c0F4aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbU1haW5BeGlzRW5kIC0g
ZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbUNyb3NBeGlzRW5kIC0gZmxleEl0ZW1Dcm9z
QXhpc1N0YXJ0IH07CisgICAgYXV0byBmbGV4TGluZSA9IElubGluZVJlY3QgeyBmbGV4SXRlbUNy
b3NBeGlzU3RhcnQsIGZsZXhJdGVtTWFpbkF4aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc0VuZCAt
IGZsZXhJdGVtTWFpbkF4aXNTdGFydCwgZmxleEl0ZW1Dcm9zQXhpc0VuZCAtIGZsZXhJdGVtQ3Jv
c0F4aXNTdGFydCB9OwogICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRMaW5lKHsgZmxleExpbmUsIGZs
ZXhMaW5lLCBmbGV4TGluZSwgeyB9IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKaW5kZXggZjFiZjdmZTlkOWRlMTQ3NWFmNTliZjkyYzlhZGUxNDVhMGMwMjYwOS4u
NTJlYTMxYzVjYzljOTVkZTA4YjM4ZmJhY2JhOTcxNTc4NTQzMTBkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDM0LDIwICs0MzQsMjAgQEAgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQ6OkxpbmVSZWN0QW5kTGluZUJveE9mZnNldCBJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHUKICAgICB9IGVsc2UKICAgICAgICAgbGluZUxvZ2ljYWxIZWlnaHQgPSByb290
U3R5bGUuY29tcHV0ZWRMaW5lSGVpZ2h0KCk7CiAKLSAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gRGlz
cGxheTo6SW5saW5lUmVjdCB7IGxpbmVDb250ZW50LmxvZ2ljYWxUb3BMZWZ0LCBsaW5lQ29udGVu
dC5saW5lTG9naWNhbFdpZHRoLCBsaW5lTG9naWNhbEhlaWdodH07CisgICAgYXV0byBsb2dpY2Fs
UmVjdCA9IElubGluZVJlY3QgeyBsaW5lQ29udGVudC5sb2dpY2FsVG9wTGVmdCwgbGluZUNvbnRl
bnQubGluZUxvZ2ljYWxXaWR0aCwgbGluZUxvZ2ljYWxIZWlnaHR9OwogICAgIC8vIElubGluZSB0
cmVlIGhlaWdodCBpcyBhbGwgaW50ZWdlciBiYXNlZC4KICAgICBhdXRvIGxpbmVCb3hPZmZzZXQg
PSBmbG9vcmYoKGxpbmVMb2dpY2FsSGVpZ2h0IC0gbGluZUJveExvZ2ljYWxIZWlnaHQpIC8gMik7
CiAgICAgcmV0dXJuIHsgbGluZUJveE9mZnNldCwgbG9naWNhbFJlY3QgfTsKIH0KIAotRGlzcGxh
eTo6SW5saW5lUmVjdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUdlb21ldHJ5Rm9y
TGluZUNvbnRlbnQoY29uc3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiBsaW5lQ29udGVudCwg
Y29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMpCitJbmxp
bmVSZWN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlR2VvbWV0cnlGb3JMaW5lQ29u
dGVudChjb25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmIGxpbmVDb250ZW50LCBjb25zdCBI
b3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKIHsKICAgICBhdXRv
JiBmb3JtYXR0aW5nU3RhdGUgPSB0aGlzLT5mb3JtYXR0aW5nU3RhdGUoKTsKICAgICBhdXRvJiBs
aW5lQm94ID0gbGluZUNvbnRlbnQubGluZUJveDsKICAgICBhdXRvIGxpbmVSZWN0QW5kTGluZUJv
eE9mZnNldCA9IGNvbXB1dGVkTGluZUxvZ2ljYWxSZWN0KGxpbmVDb250ZW50KTsKICAgICBhdXRv
IGxpbmVMb2dpY2FsUmVjdCA9IGxpbmVSZWN0QW5kTGluZUJveE9mZnNldC5sb2dpY2FsUmVjdDsK
ICAgICBhdXRvIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCA9IGxpbmVSZWN0QW5kTGluZUJveE9mZnNl
dC5saW5lQm94VmVydGljYWxPZmZzZXQ7Ci0gICAgYXV0byBzY3JvbGxhYmxlT3ZlcmZsb3cgPSBE
aXNwbGF5OjpJbmxpbmVSZWN0IHsgbGluZUxvZ2ljYWxSZWN0LnRvcExlZnQoKSwgc3RkOjptYXgo
bGluZUxvZ2ljYWxSZWN0LndpZHRoKCksIGxpbmVCb3gubG9naWNhbFdpZHRoKCkpLCBzdGQ6Om1h
eChsaW5lTG9naWNhbFJlY3QuaGVpZ2h0KCksIGxpbmVCb3hWZXJ0aWNhbE9mZnNldCArIGxpbmVC
b3gubG9naWNhbEhlaWdodCgpKSB9OworICAgIGF1dG8gc2Nyb2xsYWJsZU92ZXJmbG93ID0gSW5s
aW5lUmVjdCB7IGxpbmVMb2dpY2FsUmVjdC50b3BMZWZ0KCksIHN0ZDo6bWF4KGxpbmVMb2dpY2Fs
UmVjdC53aWR0aCgpLCBsaW5lQm94LmxvZ2ljYWxXaWR0aCgpKSwgc3RkOjptYXgobGluZUxvZ2lj
YWxSZWN0LmhlaWdodCgpLCBsaW5lQm94VmVydGljYWxPZmZzZXQgKyBsaW5lQm94LmxvZ2ljYWxI
ZWlnaHQoKSkgfTsKIAogICAgIGlmICghbGluZUNvbnRlbnQuZmxvYXRzLmlzRW1wdHkoKSkgewog
ICAgICAgICBhdXRvIGZsb2F0aW5nQ29udGV4dCA9IEZsb2F0aW5nQ29udGV4dCB7IHJvb3QoKSwg
KnRoaXMsIGZvcm1hdHRpbmdTdGF0ZS5mbG9hdGluZ1N0YXRlKCkgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5oCmluZGV4IDE5M2M4NmZmYzgwYzZhZTNlNzExN2YxYWM2NGYzYzIxMzgw
MjFmYzMuLmE3NzRlZmY2N2UzNzQ1ZDYwZDk2Mzc1YTdmZDAxMzU3NGQyN2M2ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtODYsMTAgKzg2LDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRh
bENvbnN0cmFpbnRzJik7CiAKICAgICB2b2lkIGNvbGxlY3RJbmxpbmVDb250ZW50SWZOZWVkZWQo
KTsKLSAgICBEaXNwbGF5OjpJbmxpbmVSZWN0IGNvbXB1dGVHZW9tZXRyeUZvckxpbmVDb250ZW50
KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJh
aW50cyYpOworICAgIElubGluZVJlY3QgY29tcHV0ZUdlb21ldHJ5Rm9yTGluZUNvbnRlbnQoY29u
c3QgTGluZUJ1aWxkZXI6OkxpbmVDb250ZW50JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRz
Jik7CiAgICAgc3RydWN0IExpbmVSZWN0QW5kTGluZUJveE9mZnNldCB7CiAgICAgICAgIElubGlu
ZUxheW91dFVuaXQgbGluZUJveFZlcnRpY2FsT2Zmc2V0OwotICAgICAgICBEaXNwbGF5OjpJbmxp
bmVSZWN0IGxvZ2ljYWxSZWN0OworICAgICAgICBJbmxpbmVSZWN0IGxvZ2ljYWxSZWN0OwogICAg
IH07CiAgICAgTGluZVJlY3RBbmRMaW5lQm94T2Zmc2V0IGNvbXB1dGVkTGluZUxvZ2ljYWxSZWN0
KGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYpIGNvbnN0OwogICAgIHZvaWQgaW52YWxp
ZGF0ZUZvcm1hdHRpbmdTdGF0ZShjb25zdCBJbnZhbGlkYXRpb25TdGF0ZSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94
LmNwcAppbmRleCA4MjM1ZGIxOThiN2NhODFjMzg1MmYyYjRlNTIzNjFjZjA1OTEzODhiLi4zMWIy
ZjkzN2M5ZWI4ZjRhZmQ4NGFhZGE3OTlhZWNjOGM5MTM1YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQm94LmNwcApA
QCAtMTE5LDcgKzExOSw3IEBAIHN0YXRpYyBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBob3Jp
em9udGFsQWxpZ25tZW50T2Zmc2V0KGNvbnN0IExpbmU6OlJ1bkxpc3QmCiAgICAgcmV0dXJuIHsg
fTsKIH0KIAotTGluZUJveDo6SW5saW5lQm94OjpJbmxpbmVCb3goY29uc3QgQm94JiBsYXlvdXRC
b3gsIGNvbnN0IERpc3BsYXk6OklubGluZVJlY3QmIHJlY3QsIElubGluZUxheW91dFVuaXQgYmFz
ZWxpbmUsIElubGluZUxheW91dFVuaXQgZGVzY2VudCkKK0xpbmVCb3g6OklubGluZUJveDo6SW5s
aW5lQm94KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBJbmxpbmVSZWN0JiByZWN0LCBJbmxp
bmVMYXlvdXRVbml0IGJhc2VsaW5lLCBJbmxpbmVMYXlvdXRVbml0IGRlc2NlbnQpCiAgICAgOiBt
X2xheW91dEJveChtYWtlV2Vha1B0cihsYXlvdXRCb3gpKQogICAgICwgbV9sb2dpY2FsUmVjdChy
ZWN0KQogICAgICwgbV9iYXNlbGluZShiYXNlbGluZSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBMaW5l
Qm94OjpMaW5lQm94KGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBpbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCwgSW5saW5lTAogICAgIGFsaWduSW5saW5lQm94ZXNWZXJ0aWNhbGx5QW5kQ29t
cHV0ZUxpbmVCb3hIZWlnaHQoKTsKIH0KIAotRGlzcGxheTo6SW5saW5lUmVjdCBMaW5lQm94Ojps
b2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3QgTGluZTo6UnVuJiBydW4pIGNvbnN0CitJbmxpbmVS
ZWN0IExpbmVCb3g6OmxvZ2ljYWxSZWN0Rm9yVGV4dFJ1bihjb25zdCBMaW5lOjpSdW4mIHJ1bikg
Y29uc3QKIHsKICAgICBBU1NFUlQocnVuLmlzVGV4dCgpIHx8IHJ1bi5pc0xpbmVCcmVhaygpKTsK
ICAgICBhdXRvJiBwYXJlbnRJbmxpbmVCb3ggPSBpbmxpbmVCb3hGb3JMYXlvdXRCb3gocnVuLmxh
eW91dEJveCgpLnBhcmVudCgpKTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIExpbmVCb3g6OmNv
bnN0cnVjdElubGluZUJveGVzKGNvbnN0IExpbmU6OlJ1bkxpc3QmIHJ1bnMpCiAgICAgICAgICAg
ICAgICAgYXV0byBpbmxpbmVCbG9ja0Jhc2VsaW5lID0gbGFzdExpbmUudG9wKCkgKyBsYXN0TGlu
ZS5iYXNlbGluZSgpOwogICAgICAgICAgICAgICAgIGJhc2VsaW5lID0gaW5saW5lTGV2ZWxCb3hH
ZW9tZXRyeS5tYXJnaW5CZWZvcmUoKSArIGlubGluZUxldmVsQm94R2VvbWV0cnkuYm9yZGVyVG9w
KCkgKyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LnBhZGRpbmdUb3AoKS52YWx1ZU9yKDApICsgaW5s
aW5lQmxvY2tCYXNlbGluZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGF1dG8gcmVjdCA9
IERpc3BsYXk6OklubGluZVJlY3QgeyB7IH0sIGxvZ2ljYWxMZWZ0LCBydW4ubG9naWNhbFdpZHRo
KCksIGxvZ2ljYWxIZWlnaHQgfTsKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9IElubGluZVJlY3Qg
eyB7IH0sIGxvZ2ljYWxMZWZ0LCBydW4ubG9naWNhbFdpZHRoKCksIGxvZ2ljYWxIZWlnaHQgfTsK
ICAgICAgICAgICAgIGF1dG8gaW5saW5lQm94ID0gbWFrZVVuaXF1ZTxJbmxpbmVCb3g+KGlubGlu
ZUxldmVsQm94LCByZWN0LCBiYXNlbGluZSwgSW5saW5lTGF5b3V0VW5pdCB7IH0pOwogICAgICAg
ICAgICAgbV9pbmxpbmVCb3hSZWN0TWFwLnNldCgmaW5saW5lTGV2ZWxCb3gsIGlubGluZUJveC5n
ZXQoKSk7CiAgICAgICAgICAgICBtX2lubGluZUJveExpc3QuYXBwZW5kKFdURk1vdmUoaW5saW5l
Qm94KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQm94LmgKaW5kZXggY2MzMWQxZmFhZjRjODZmOWJkZmQ5MDViNjMxZmE0YTI4
MDEwMDJlMy4uNjY4MGU4ZWRjZjFjM2MyZjZiNTUzM2M1NmE0OTJiZjYyNjY5NmZiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxp
bmVCb3guaApAQCAtMjcsOCArMjcsOCBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCiAKLSNpbmNsdWRlICJEaXNwbGF5SW5saW5lUmVjdC5oIgogI2luY2x1ZGUgIklu
bGluZUxpbmUuaCIKKyNpbmNsdWRlICJJbmxpbmVSZWN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94
R2VvbWV0cnkuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CkBAIC01OSwxMSArNTksMTEgQEAgcHVibGljOgogICAgIHN0cnVjdCBJ
bmxpbmVCb3ggewogICAgICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShJbmxpbmVC
b3gpOwogICAgIHB1YmxpYzoKLSAgICAgICAgSW5saW5lQm94KGNvbnN0IEJveCYsIGNvbnN0IERp
c3BsYXk6OklubGluZVJlY3QmLCBJbmxpbmVMYXlvdXRVbml0IGJhc2VsaW5lLCBJbmxpbmVMYXlv
dXRVbml0IGRlc2NlbnQpOworICAgICAgICBJbmxpbmVCb3goY29uc3QgQm94JiwgY29uc3QgSW5s
aW5lUmVjdCYsIElubGluZUxheW91dFVuaXQgYmFzZWxpbmUsIElubGluZUxheW91dFVuaXQgZGVz
Y2VudCk7CiAgICAgICAgIElubGluZUJveChjb25zdCBCb3gmLCBJbmxpbmVMYXlvdXRVbml0IGxv
Z2ljYWxMZWZ0LCBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCk7CiAgICAgICAgIElubGlu
ZUJveCgpID0gZGVmYXVsdDsKIAotICAgICAgICBjb25zdCBEaXNwbGF5OjpJbmxpbmVSZWN0JiBs
b2dpY2FsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFJlY3Q7IH0KKyAgICAgICAgY29u
c3QgSW5saW5lUmVjdCYgbG9naWNhbFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2xvZ2ljYWxSZWN0
OyB9CiAgICAgICAgIElubGluZUxheW91dFVuaXQgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJu
IG1fbG9naWNhbFJlY3QudG9wKCk7IH0KICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dpY2Fs
Qm90dG9tKCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2FsUmVjdC5ib3R0b20oKTsgfQogICAgICAg
ICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sb2dpY2Fs
UmVjdC5sZWZ0KCk7IH0KQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogICAgICAgICB2b2lkIHNl
dExpbmVTcGFjaW5nKElubGluZUxheW91dFVuaXQgbGluZVNwYWNpbmcpIHsgbV9saW5lU3BhY2lu
ZyA9IGxpbmVTcGFjaW5nOyB9CiAKICAgICAgICAgV2Vha1B0cjxjb25zdCBCb3g+IG1fbGF5b3V0
Qm94OwotICAgICAgICBEaXNwbGF5OjpJbmxpbmVSZWN0IG1fbG9naWNhbFJlY3Q7CisgICAgICAg
IElubGluZVJlY3QgbV9sb2dpY2FsUmVjdDsKICAgICAgICAgSW5saW5lTGF5b3V0VW5pdCBtX2Jh
c2VsaW5lIHsgMCB9OwogICAgICAgICBPcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiBtX2Rlc2Nl
bnQ7CiAgICAgICAgIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IG1fbGluZVNwYWNpbmc7CkBA
IC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaW5lVmlzdWFsbHlFbXB0eSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNMaW5lVmlzdWFsbHlFbXB0eTsgfQogCiAgICAgY29uc3QgSW5s
aW5lQm94JiBpbmxpbmVCb3hGb3JMYXlvdXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0
IHsgcmV0dXJuICptX2lubGluZUJveFJlY3RNYXAuZ2V0KCZsYXlvdXRCb3gpOyB9Ci0gICAgRGlz
cGxheTo6SW5saW5lUmVjdCBsb2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3QgTGluZTo6UnVuJikg
Y29uc3Q7CisgICAgSW5saW5lUmVjdCBsb2dpY2FsUmVjdEZvclRleHRSdW4oY29uc3QgTGluZTo6
UnVuJikgY29uc3Q7CiAKICAgICB1c2luZyBJbmxpbmVCb3hNYXAgPSBIYXNoTWFwPGNvbnN0IEJv
eCosIElubGluZUJveCo+OwogICAgIGF1dG8gaW5saW5lQm94TGlzdCgpIGNvbnN0IHsgcmV0dXJu
IG1faW5saW5lQm94UmVjdE1hcC52YWx1ZXMoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lUmVjdC5oIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjZDA5YWIx
ZTcxMDFhYTZlY2Y0MzNkMjY0MDA0ZmZlOGZiN2E4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSZWN0LmgKQEAgLTAsMCAr
MSwyOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiTGF5b3V0VW5pdHMuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK2NsYXNzIElubGluZVJlY3Qgewor
cHVibGljOgorICAgIElubGluZVJlY3QoKSA9IGRlZmF1bHQ7CisgICAgSW5saW5lUmVjdChJbmxp
bmVMYXlvdXRVbml0IHRvcCwgSW5saW5lTGF5b3V0VW5pdCBsZWZ0LCBJbmxpbmVMYXlvdXRVbml0
IHdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGhlaWdodCk7CisgICAgSW5saW5lUmVjdChjb25zdCBJ
bmxpbmVMYXlvdXRQb2ludCYgdG9wTGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5l
TGF5b3V0VW5pdCBoZWlnaHQpOworICAgIElubGluZVJlY3QoY29uc3QgSW5saW5lTGF5b3V0UG9p
bnQmIHRvcExlZnQsIGNvbnN0IElubGluZUxheW91dFNpemUmKTsKKyAgICAKKyAgICBJbmxpbmVM
YXlvdXRVbml0IHRvcCgpIGNvbnN0OworICAgIElubGluZUxheW91dFVuaXQgbGVmdCgpIGNvbnN0
OworICAgIElubGluZUxheW91dFBvaW50IHRvcExlZnQoKSBjb25zdDsKKworICAgIElubGluZUxh
eW91dFVuaXQgYm90dG9tKCkgY29uc3Q7CisgICAgSW5saW5lTGF5b3V0VW5pdCByaWdodCgpIGNv
bnN0OyAgICAgICAgCisKKyAgICBJbmxpbmVMYXlvdXRVbml0IHdpZHRoKCkgY29uc3Q7CisgICAg
SW5saW5lTGF5b3V0VW5pdCBoZWlnaHQoKSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRTaXplIHNp
emUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0VG9wKElubGluZUxheW91dFVuaXQpOworICAgIHZv
aWQgc2V0Qm90dG9tKElubGluZUxheW91dFVuaXQpOworICAgIHZvaWQgc2V0TGVmdChJbmxpbmVM
YXlvdXRVbml0KTsKKyAgICB2b2lkIHNldFRvcExlZnQoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQm
KTsKKyAgICB2b2lkIHNldFdpZHRoKElubGluZUxheW91dFVuaXQpOworICAgIHZvaWQgc2V0SGVp
Z2h0KElubGluZUxheW91dFVuaXQpOworCisgICAgdm9pZCBtb3ZlSG9yaXpvbnRhbGx5KElubGlu
ZUxheW91dFVuaXQpOworICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5pdCk7
CisgICAgdm9pZCBtb3ZlQnkoSW5saW5lTGF5b3V0UG9pbnQpOworCisgICAgdm9pZCBleHBhbmQo
T3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4sIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+KTsK
KyAgICB2b2lkIGV4cGFuZFRvQ29udGFpbihjb25zdCBJbmxpbmVSZWN0Jik7CisgICAgdm9pZCBl
eHBhbmRIb3Jpem9udGFsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0YSkgeyBleHBhbmQoZGVsdGEs
IHsgfSk7IH0KKyAgICB2b2lkIGV4cGFuZFZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5pdCBkZWx0
YSkgeyBleHBhbmQoeyB9LCBkZWx0YSk7IH0KKyAgICB2b2lkIGV4cGFuZFZlcnRpY2FsbHlUb0Nv
bnRhaW4oY29uc3QgSW5saW5lUmVjdCYpOworICAgIHZvaWQgaW5mbGF0ZShJbmxpbmVMYXlvdXRV
bml0KTsKKworICAgIG9wZXJhdG9yIElubGluZUxheW91dFJlY3QoKSBjb25zdDsKKworcHJpdmF0
ZToKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHZvaWQgaW52YWxpZGF0ZVRvcCgpIHsgbV9oYXNW
YWxpZFRvcCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZhbGlkYXRlTGVmdCgpIHsgbV9oYXNWYWxp
ZExlZnQgPSBmYWxzZTsgfQorICAgIHZvaWQgaW52YWxpZGF0ZVdpZHRoKCkgeyBtX2hhc1ZhbGlk
V2lkdGggPSBmYWxzZTsgfQorICAgIHZvaWQgaW52YWxpZGF0ZUhlaWdodCgpIHsgbV9oYXNWYWxp
ZEhlaWdodCA9IGZhbHNlOyB9CisgICAgdm9pZCBpbnZhbGlkYXRlUG9zaXRpb24oKTsKKworICAg
IGJvb2wgaGFzVmFsaWRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzVmFsaWRUb3AgJiYg
bV9oYXNWYWxpZExlZnQ7IH0KKyAgICBib29sIGhhc1ZhbGlkU2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1faGFzVmFsaWRXaWR0aCAmJiBtX2hhc1ZhbGlkSGVpZ2h0OyB9CisgICAgYm9vbCBoYXNWYWxp
ZEdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gaGFzVmFsaWRQb3NpdGlvbigpICYmIGhhc1ZhbGlk
U2l6ZSgpOyB9CisKKyAgICB2b2lkIHNldEhhc1ZhbGlkUG9zaXRpb24oKTsKKyAgICB2b2lkIHNl
dEhhc1ZhbGlkU2l6ZSgpOworCisgICAgYm9vbCBtX2hhc1ZhbGlkVG9wIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1faGFzVmFsaWRMZWZ0IHsgZmFsc2UgfTsKKyAgICBib29sIG1faGFzVmFsaWRXaWR0
aCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2hhc1ZhbGlkSGVpZ2h0IHsgZmFsc2UgfTsKKyNlbmRp
ZiAvLyBBU1NFUlRfRU5BQkxFRAorICAgIElubGluZUxheW91dFJlY3QgbV9yZWN0OworfTsKKwor
aW5saW5lIElubGluZVJlY3Q6OklubGluZVJlY3QoSW5saW5lTGF5b3V0VW5pdCB0b3AsIElubGlu
ZUxheW91dFVuaXQgbGVmdCwgSW5saW5lTGF5b3V0VW5pdCB3aWR0aCwgSW5saW5lTGF5b3V0VW5p
dCBoZWlnaHQpCisgICAgOiBtX3JlY3QobGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0KQoreworI2lm
IEFTU0VSVF9FTkFCTEVECisgICAgbV9oYXNWYWxpZFRvcCA9IHRydWU7CisgICAgbV9oYXNWYWxp
ZExlZnQgPSB0cnVlOworICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7CisgICAgbV9oYXNWYWxp
ZEhlaWdodCA9IHRydWU7CisjZW5kaWYKK30KKworaW5saW5lIElubGluZVJlY3Q6OklubGluZVJl
Y3QoY29uc3QgSW5saW5lTGF5b3V0UG9pbnQmIHRvcExlZnQsIElubGluZUxheW91dFVuaXQgd2lk
dGgsIElubGluZUxheW91dFVuaXQgaGVpZ2h0KQorICAgIDogSW5saW5lUmVjdCh0b3BMZWZ0Lnko
KSwgdG9wTGVmdC54KCksIHdpZHRoLCBoZWlnaHQpCit7Cit9CisKK2lubGluZSBJbmxpbmVSZWN0
OjpJbmxpbmVSZWN0KGNvbnN0IElubGluZUxheW91dFBvaW50JiB0b3BMZWZ0LCBjb25zdCBJbmxp
bmVMYXlvdXRTaXplJiBzaXplKQorICAgIDogSW5saW5lUmVjdCh0b3BMZWZ0LnkoKSwgdG9wTGVm
dC54KCksIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkKK3sKK30KKworI2lmIEFTU0VSVF9F
TkFCTEVECitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjppbnZhbGlkYXRlUG9zaXRpb24oKQorewor
ICAgIGludmFsaWRhdGVUb3AoKTsKKyAgICBpbnZhbGlkYXRlTGVmdCgpOworfQorCitpbmxpbmUg
dm9pZCBJbmxpbmVSZWN0OjpzZXRIYXNWYWxpZFBvc2l0aW9uKCkKK3sKKyAgICBtX2hhc1ZhbGlk
VG9wID0gdHJ1ZTsKKyAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Cit9CisKK2lubGluZSB2b2lk
IElubGluZVJlY3Q6OnNldEhhc1ZhbGlkU2l6ZSgpCit7CisgICAgbV9oYXNWYWxpZFdpZHRoID0g
dHJ1ZTsKKyAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKK30KKyNlbmRpZiAvLyBBU1NFUlRf
RU5BQkxFRAorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojp0b3AoKSBjb25z
dAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkVG9wKTsKKyAgICByZXR1cm4gbV9yZWN0LnkoKTsK
K30KKworaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6bGVmdCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKKyAgICByZXR1cm4gbV9yZWN0LngoKTsKK30K
KworaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVjdDo6Ym90dG9tKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiBtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICByZXR1
cm4gbV9yZWN0Lm1heFkoKTsKK30KKworaW5saW5lIElubGluZUxheW91dFVuaXQgSW5saW5lUmVj
dDo6cmlnaHQoKSBjb25zdAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCAmJiBtX2hhc1Zh
bGlkV2lkdGgpOworICAgIHJldHVybiBtX3JlY3QubWF4WCgpOworfQorCitpbmxpbmUgSW5saW5l
TGF5b3V0UG9pbnQgSW5saW5lUmVjdDo6dG9wTGVmdCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGhh
c1ZhbGlkUG9zaXRpb24oKSk7CisgICAgcmV0dXJuIG1fcmVjdC5taW5YTWluWUNvcm5lcigpOwor
fQorCitpbmxpbmUgSW5saW5lTGF5b3V0U2l6ZSBJbmxpbmVSZWN0OjpzaXplKCkgY29uc3QKK3sK
KyAgICBBU1NFUlQoaGFzVmFsaWRTaXplKCkpOworICAgIHJldHVybiBtX3JlY3Quc2l6ZSgpOwor
fQorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0Ojp3aWR0aCgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKG1faGFzVmFsaWRXaWR0aCk7CisgICAgcmV0dXJuIG1fcmVjdC53aWR0aCgp
OworfQorCitpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBJbmxpbmVSZWN0OjpoZWlnaHQoKSBjb25z
dAoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkSGVpZ2h0KTsKKyAgICByZXR1cm4gbV9yZWN0Lmhl
aWdodCgpOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRUb3BMZWZ0KGNvbnN0IElu
bGluZUxheW91dFBvaW50JiB0b3BMZWZ0KQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAgc2V0
SGFzVmFsaWRQb3NpdGlvbigpOworI2VuZGlmCisgICAgbV9yZWN0LnNldExvY2F0aW9uKHRvcExl
ZnQpOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRUb3AoSW5saW5lTGF5b3V0VW5p
dCB0b3ApCit7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBtX2hhc1ZhbGlkVG9wID0gdHJ1ZTsK
KyNlbmRpZgorICAgIG1fcmVjdC5zZXRZKHRvcCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJl
Y3Q6OnNldEJvdHRvbShJbmxpbmVMYXlvdXRVbml0IGJvdHRvbSkKK3sKKyNpZiBBU1NFUlRfRU5B
QkxFRAorICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0
cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNoaWZ0TWF4WUVkZ2VUbyhib3R0b20pOworfQorCitp
bmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRMZWZ0KElubGluZUxheW91dFVuaXQgbGVmdCkKK3sK
KyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKKyNlbmRpZgor
ICAgIG1fcmVjdC5zZXRYKGxlZnQpOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjpzZXRX
aWR0aChJbmxpbmVMYXlvdXRVbml0IHdpZHRoKQoreworI2lmIEFTU0VSVF9FTkFCTEVECisgICAg
bV9oYXNWYWxpZFdpZHRoID0gdHJ1ZTsKKyNlbmRpZgorICAgIG1fcmVjdC5zZXRXaWR0aCh3aWR0
aCk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OnNldEhlaWdodChJbmxpbmVMYXlvdXRV
bml0IGhlaWdodCkKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFzVmFsaWRIZWlnaHQg
PSB0cnVlOworI2VuZGlmCisgICAgbV9yZWN0LnNldEhlaWdodChoZWlnaHQpOworfQorCitpbmxp
bmUgdm9pZCBJbmxpbmVSZWN0Ojptb3ZlSG9yaXpvbnRhbGx5KElubGluZUxheW91dFVuaXQgb2Zm
c2V0KQoreworICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7CisgICAgbV9yZWN0Lm1vdmUoSW5s
aW5lTGF5b3V0U2l6ZSB7IG9mZnNldCwgMCB9KTsKK30KKworaW5saW5lIHZvaWQgSW5saW5lUmVj
dDo6bW92ZVZlcnRpY2FsbHkoSW5saW5lTGF5b3V0VW5pdCBvZmZzZXQpCit7CisgICAgQVNTRVJU
KG1faGFzVmFsaWRUb3ApOworICAgIG1fcmVjdC5tb3ZlKElubGluZUxheW91dFNpemUgeyAwLCBv
ZmZzZXQgfSk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6Om1vdmVCeShJbmxpbmVMYXlv
dXRQb2ludCBvZmZzZXQpCit7CisgICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOworICAgIEFTU0VS
VChtX2hhc1ZhbGlkTGVmdCk7CisgICAgbV9yZWN0Lm1vdmVCeShvZmZzZXQpOworfQorCitpbmxp
bmUgdm9pZCBJbmxpbmVSZWN0OjpleHBhbmQoT3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lk
dGgsIE9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IGhlaWdodCkKK3sKKyAgICBBU1NFUlQoIXdp
ZHRoIHx8IG1faGFzVmFsaWRXaWR0aCk7CisgICAgQVNTRVJUKCFoZWlnaHQgfHwgbV9oYXNWYWxp
ZEhlaWdodCk7CisgICAgbV9yZWN0LmV4cGFuZCh3aWR0aC52YWx1ZU9yKDApLCBoZWlnaHQudmFs
dWVPcigwKSk7Cit9CisKK2lubGluZSB2b2lkIElubGluZVJlY3Q6OmV4cGFuZFRvQ29udGFpbihj
b25zdCBJbmxpbmVSZWN0JiBvdGhlcikKK3sKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIG1faGFz
VmFsaWRUb3AgPSB0cnVlOworICAgIG1faGFzVmFsaWRMZWZ0ID0gdHJ1ZTsKKyAgICBtX2hhc1Zh
bGlkV2lkdGggPSB0cnVlOworICAgIG1faGFzVmFsaWRIZWlnaHQgPSB0cnVlOworI2VuZGlmCisg
ICAgbV9yZWN0LnVuaXRlRXZlbklmRW1wdHkob3RoZXIpOworfQorCitpbmxpbmUgdm9pZCBJbmxp
bmVSZWN0OjpleHBhbmRWZXJ0aWNhbGx5VG9Db250YWluKGNvbnN0IElubGluZVJlY3QmIG90aGVy
KQoreworICAgIGF1dG8gY29udGFpblRvcCA9IHN0ZDo6bWluKHRvcCgpLCBvdGhlci50b3AoKSk7
CisgICAgYXV0byBjb250YWluQm90dG9tID0gc3RkOjptYXgoYm90dG9tKCksIG90aGVyLmJvdHRv
bSgpKTsKKyAgICBzZXRUb3AoY29udGFpblRvcCk7CisgICAgc2V0Qm90dG9tKGNvbnRhaW5Cb3R0
b20pOworfQorCitpbmxpbmUgdm9pZCBJbmxpbmVSZWN0OjppbmZsYXRlKElubGluZUxheW91dFVu
aXQgaW5mbGF0ZSkKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsKKyAgICBtX3Jl
Y3QuaW5mbGF0ZShpbmZsYXRlKTsKK30KKworaW5saW5lIElubGluZVJlY3Q6Om9wZXJhdG9yIElu
bGluZUxheW91dFJlY3QoKSBjb25zdAoreworICAgIEFTU0VSVChoYXNWYWxpZEdlb21ldHJ5KCkp
OyAKKyAgICByZXR1cm4gbV9yZWN0OworfQorCit9Cit9CisjZW5kaWYK
</data>
<flag name="commit-queue"
          id="424564"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>