<?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>203306</bug_id>
          
          <creation_ts>2019-10-23 11:19:11 -0700</creation_ts>
          <short_desc>[Quick Look] Rename PreviewLoader{,Client} to LegacyPreviewLoader{,Client}</short_desc>
          <delta_ts>2019-10-23 12:35:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1582902</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-10-23 11:19:11 -0700</bug_when>
    <thetext>[Quick Look] Rename PreviewLoader{,Client} to LegacyPreviewLoader{,Client}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582908</commentid>
    <comment_count>1</comment_count>
      <attachid>381704</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2019-10-23 11:24:50 -0700</bug_when>
    <thetext>Created attachment 381704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582915</commentid>
    <comment_count>2</comment_count>
      <attachid>381704</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-10-23 11:31:23 -0700</bug_when>
    <thetext>Comment on attachment 381704
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582951</commentid>
    <comment_count>3</comment_count>
      <attachid>381704</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 12:34:40 -0700</bug_when>
    <thetext>Comment on attachment 381704
Patch

Clearing flags on attachment: 381704

Committed r251488: &lt;https://trac.webkit.org/changeset/251488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582952</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-23 12:34:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582953</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-23 12:35:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/56549699&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381704</attachid>
            <date>2019-10-23 11:24:50 -0700</date>
            <delta_ts>2019-10-23 12:34:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203306-20191023112449.patch</filename>
            <type>text/plain</type>
            <size>59079</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMxMWUxZmY1MjIzMWU4
Y2FmNzMwOTMwM2E2OTA0YTA3NTJiYmRjNS4uYzQxMzZjMjA2Zjg3ZTc2ZDg4Y2RhMDVmMTRkMDQx
OWUzYmJmN2U4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEwLTIzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbUXVpY2sgTG9va10gUmVuYW1l
IFByZXZpZXdMb2FkZXJ7LENsaWVudH0gdG8gTGVnYWN5UHJldmlld0xvYWRlcnssQ2xpZW50fQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzMzA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Vz
Q29jb2EudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAqIGxvYWRlci9pb3MvTGVnYWN5UHJldmlld0xvYWRlci5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9QcmV2aWV3TG9hZGVyLmguCisgICAg
ICAgICogbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9QcmV2aWV3TG9hZGVyLm1tLgorICAgICAgICAodGVzdGlu
Z0NsaWVudCk6CisgICAgICAgIChlbXB0eUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lQcmV2aWV3TG9hZGVyOjpMZWdhY3lQcmV2aWV3TG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVByZXZpZXdMb2FkZXI6On5MZWdhY3lQcmV2aWV3TG9hZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lQcmV2aWV3TG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5UHJldmlld0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5UHJldmlld0xvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6CisgICAgICAgIChXZWJD
b3JlOjpMZWdhY3lQcmV2aWV3TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5UHJldmlld0xvYWRlcjo6c2V0Q2xpZW50Rm9yVGVzdGluZyk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9pb3MvTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0xvYWRlckNsaWVu
dC5oLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldFF1aWNrTG9va1Bhc3N3b3JkKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
cmV2aWV3TG9hZGVyQ2xpZW50Lmg6CisKIDIwMTktMTAtMjMgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBOYXZpZ2F0b3JCYXNlOjpzZXJ2aWNlV29y
a2VySWZFeGlzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzc0NTA4OTRjNWU3ZjYyN2IyOGYwM2Y1NjNiNmJhNzFk
OTczNGQxMS4uODE0YTk3M2Y4NjdhZDU4ZDA0N2EyZjZmNWJiZWM5ODVkODJhYjc4NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0xMC0yMyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW1F1aWNrIExvb2tdIFJlbmFtZSBQcmV2aWV3TG9hZGVyeyxDbGll
bnR9IHRvIExlZ2FjeVByZXZpZXdMb2FkZXJ7LENsaWVudH0KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzMwNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJQcmV2aWV3TG9hZGVyQ2xp
ZW50Lmg6CisKIDIwMTktMTAtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29u
eS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIG5vbi11bmlmaWVkIHNv
dXJjZSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBhNjdmOWRjZmY0NGM4
YjQxY2IzZjRjMTRhOGNlY2U0MDNlM2Q5ZGJkLi43OGU3NWRjYmE2NDE1OWQ2YWZiZTExNmYwOTM0
MTBiYzczZWRhNTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTktMTAtMjMgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFtRdWljayBMb29rXSBSZW5hbWUgUHJldmlld0xvYWRlcnssQ2xpZW50fSB0byBMZWdhY3lQcmV2
aWV3TG9hZGVyeyxDbGllbnR9CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDMzMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNsaWVudCk6CisgICAgICAg
ICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9x
dWlja0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50XSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2Ug
X3NldFF1aWNrTG9va1ByZXZpZXdMb2FkZXJDbGllbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJEYXRhU291cmNlSW50ZXJuYWwuaDoKKwogMjAxOS0xMC0yMiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlLWVuYWJsZSBsZWdhY3kgVExT
IGJ5IGRlZmF1bHQsIGtlZXAgcnVudGltZSBzd2l0Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cmlu
ZGV4IGRhNWU3NDhmNWI2MTJiODE2MDQ4MGRhNTMzNTk3M2E4YzFmNTAyODcuLmNkNWJlNGViODBj
OTUxZTFlODJhNzIwNWViZmFmZDMxY2VmMjk4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApA
QCAtMTE2LDcgKzExNiw3IEBAIGxvYWRlci9hcmNoaXZlL2NmL0xlZ2FjeVdlYkFyY2hpdmVNYWMu
bW0KIGxvYWRlci9jb2NvYS9EaXNrQ2FjaGVNb25pdG9yQ29jb2EubW0KIGxvYWRlci9jb2NvYS9T
dWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCiAKLWxvYWRlci9pb3MvUHJldmlld0xvYWRlci5tbQor
bG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVyLm1tCiAKIGxvYWRlci9tYWMvRG9jdW1lbnRM
b2FkZXJNYWMuY3BwCiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTEyNTZl
MDg1NTNiOTRlZTg4N2M0NjdjMWJiMmYxMzM4MWVlOTJhYi4uZWZjZjk2YzViZTliNTA1ZTQyNzZj
YzU3YzljNGY1MDYzN2UxMGU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjg5Myw3ICsyODkzLDcgQEAKIAkJQTEwNEYyNDQx
NEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTA0RjI0MjE0QzcxRjdBMDA5RTJDMjMgLyog
Q2FjaGVkU1ZHRG9jdW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBMTBCQjU4NTE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQkI1ODMx
NDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCAqLzsgfTsKIAkJQTEwQkI1OEIxNDg0
RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0EgLyogUmVuZGVy
U1ZHU2hhcGUuaCAqLzsgfTsKLQkJQTEwREJGNDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFByZXZpZXdM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEwREJGNDcx
OEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERCRjQ2MThGOTIzMTcwMDBE
NzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8q
IFN0eWxlR3JpZERhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTExMERCOUIxNEY1
REY3NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTEwREI5QTE0RjVERjc3MDBBMDNCOTMgLyogU3R5
bGVHcmlkSXRlbURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBMTEzRTAyODIzMzE4MjkzMDA5QzMzQTAgLyogUGF5bWVudFNlc3Npb25FcnJv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExM0Uw
MjcyMzMxODI5MzAwOUMzM0EwIC8qIFBheW1lbnRTZXNzaW9uRXJyb3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjk3Myw3ICsyOTczLDcgQEAK
IAkJQTE3RDI3NUUxRUFDNTc5ODAwQkYwMUU3IC8qIE1lZGlhU2VsZWN0aW9uT3B0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdEMjc1RDFFQUM1
Nzk4MDBCRjAxRTcgLyogTWVkaWFTZWxlY3Rpb25PcHRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTdGRUU2NDFGODg5MzIyMDAyMUU4MTEg
LyogUGF5bWVudFNlc3Npb25CYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTdGRUU2MzFGODg5MzIyMDAyMUU4MTEgLyogUGF5bWVudFNlc3Npb25C
YXNlLmggKi87IH07CiAJCUExODBBRDVCMjE5RjgxQjAwMERDMDM5QSAvKiBXZWJDb3JlQWRkaXRp
b25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE3
RTRGMjYyMTlCQzAxNjAwRTFDN0VFIC8qIFdlYkNvcmVBZGRpdGlvbnMubW0gKi87IH07Ci0JCUEx
ODVCNDJBMUU4MjExQTEwMERDOTExOCAvKiBQcmV2aWV3TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg1QjQyODFFODIxMUExMDBEQzkxMTgg
LyogUHJldmlld0xvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUExODVCNDJBMUU4MjExQTEwMERDOTExOCAvKiBMZWdhY3lQcmV2aWV3TG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTg1
QjQyODFFODIxMUExMDBEQzkxMTggLyogTGVnYWN5UHJldmlld0xvYWRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExODg5MEFGMUFBMTNGMjUw
MDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4ODkwQUQxQUExM0YyNTAwMjZDMzAx
IC8qIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggKi87IH07CiAJCUExOTU2RjFDMjMz
MUE2NzcwMDU3RTlEMiAvKiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExOTU2RjFCMjMzMUE2NDYwMDU3RTlEMiAv
KiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaCAqLzsgfTsKIAkJQTE5NTZGMjAyMzMxQThDNzAwNTdF
OUQyIC8qIEFwcGxlUGF5U2Vzc2lvbkVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTk1NkYxRDIzMzFBOEM3MDA1N0U5RDIgLyogQXBwbGVQYXlT
ZXNzaW9uRXJyb3IuaCAqLzsgfTsKQEAgLTExMTg3LDcgKzExMTg3LDcgQEAKIAkJQTEwQkI1ODgx
NDg0RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwQkI1ODkxNDg0RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNWR1NoYXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEQ2RTk0MjE0NEM5OTgwMEZERDE0RCAvKiBKU1Bh
eW1lbnRSZXNwb25zZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRSZXNw
b25zZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMERCRjQ2MThG
OTIzMTcwMDBENzBDNiAvKiBQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFByZXZpZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2Fk
ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UHJldmll
d0xvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2ODE0
NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVHcmlkRGF0YS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMTEwREI5QTE0RjVERjc3MDBBMDNCOTMgLyogU3R5bGVHcmlk
SXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVHcmlkSXRl
bURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjkzLDggKzExMjkzLDgg
QEAKIAkJQTE3RTRGMjYyMTlCQzAxNjAwRTFDN0VFIC8qIFdlYkNvcmVBZGRpdGlvbnMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlQWRkaXRpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMTdGRUU2MzFGODg5MzIyMDAyMUU4MTEgLyogUGF5bWVudFNlc3Npb25C
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRTZXNzaW9uQmFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMTgyRDVCNjFCRTcyMjYyMDA4N0E3Q0MgLyogU2V0dGluZ3NCYXNl
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXR0aW5n
c0Jhc2VDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTE4NUI0MjcxRTgy
MTFBMTAwREM5MTE4IC8qIFByZXZpZXdMb2FkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQcmV2aWV3TG9hZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBMTg1QjQyODFFODIxMUExMDBEQzkxMTggLyogUHJldmlld0xvYWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmV2aWV3TG9hZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUExODVCNDI3MUU4MjExQTEwMERDOTExOCAvKiBMZWdhY3lQcmV2
aWV3TG9hZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTGVn
YWN5UHJldmlld0xvYWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE4NUI0
MjgxRTgyMTFBMTAwREM5MTE4IC8qIExlZ2FjeVByZXZpZXdMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UHJldmlld0xvYWRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMTg4OTBBQzFBQTEzRjI1MDAyNkMzMDEgLyogUGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTE4ODkwQUQxQUExM0YyNTAwMjZDMzAxIC8qIFBhcmVudGFsQ29udHJvbHND
b250ZW50RmlsdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcmVudGFs
Q29udHJvbHNDb250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
OEY3QTM1MUVDQTczNjQwMDU5RTFFMSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjYzLDEwICsxODI2MywxMCBAQAogCQk0NDk3RDU4QzBF
QkE4NTRGMDBBMTA1NTIgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlBMTBEQkY0NjE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmlld0xv
YWRlckNsaWVudC5oICovLAogCQkJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3Jr
U3RhdGVOb3RpZmllcklPUy5tbSAqLywKIAkJCQlBMUMxNTA3ODFFM0YyQjNFMDAzMkM5OEMgLyog
UHJldmlld0NvbnZlcnRlci5oICovLAogCQkJCUExQzE1MDc3MUUzRjJCM0UwMDMyQzk4QyAvKiBQ
cmV2aWV3Q29udmVydGVyLm1tICovLAotCQkJCUExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBQ
cmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJNDRBMjBEQjgwRjg0MTY2QzAwQjNFMUZFIC8q
IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5oICovLAogCQkJCTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThF
MCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8sCiAJCQkpOwpAQCAtMjI0ODgsOCArMjI0
ODgsOCBAQAogCQlBMTVFMzFGMDFFMENCMDc1MDA0QjM3MUMgLyogaW9zICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlBMTg1QjQyODFFODIxMUExMDBEQzkx
MTggLyogUHJldmlld0xvYWRlci5oICovLAotCQkJCUExODVCNDI3MUU4MjExQTEwMERDOTExOCAv
KiBQcmV2aWV3TG9hZGVyLm1tICovLAorCQkJCUExODVCNDI4MUU4MjExQTEwMERDOTExOCAvKiBM
ZWdhY3lQcmV2aWV3TG9hZGVyLmggKi8sCisJCQkJQTE4NUI0MjcxRTgyMTFBMTAwREM5MTE4IC8q
IExlZ2FjeVByZXZpZXdMb2FkZXIubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMDk4Miw2ICszMDk4Miw4IEBACiAJCQkJQ0RGNEI3
MTIxRTAwODdBRTAwRTIzNUEyIC8qIExlZ2FjeUNETVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUNERThCNUYxMUE2OTc3OEIwMEI0QjY2QSAvKiBMZWdhY3lDRE1TZXNzaW9uQ2xlYXJLZXku
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0NEE1RjU5MUZFRDM4RjIwMDdGNTk0NCAvKiBMZWdhY3lO
U1Bhc3RlYm9hcmRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE4NUI0MkExRTgyMTFBMTAw
REM5MTE4IC8qIExlZ2FjeVByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMERC
RjQ3MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTYyQzdGNTExRjc3RUZCMDA2MTJFRkUgLyogTGVnYWN5U2NoZW1lUmVn
aXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QzNCMUZBMEYwRTQxNjEwMDk2OTNGNiAvKiBM
ZWdhY3lUaWxlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QjY1QTU4MTMyRkE4RTcwMDcw
RTdCRSAvKiBMZWdhY3lUaWxlR3JpZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ3MSw4ICszMTQ3
Myw2IEBACiAJCQkJNDZEQkI2NTAxQUI4Qzk2RjAwRDlBODEzIC8qIFBvd2VyT2JzZXJ2ZXJNYWMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUMwRjJBNDQxMTM4NjlBQUIwMDY2QzUzNCAvKiBwcmVwcm9j
ZXNzb3IucG0gaW4gSGVhZGVycyAqLywKIAkJCQlBMUMxNTA3QTFFM0YyQjNFMDAzMkM5OEMgLyog
UHJldmlld0NvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTE4NUI0MkExRTgyMTFBMTAw
REM5MTE4IC8qIFByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUExMERCRjQ3MThG
OTIzMTcwMDBENzBDNiAvKiBQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNDYwNUZFQzIxNjY0ODA5MDBFNTMwNDYgLyogUHJld2FybUluZm9ybWF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyogUHJpbnRDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAppbmRleCA3YTM3NWI0MDUxZDM2ZWEyN2M0MDJjOTM4Y2ViZjJkN2FhZjgyNjI5Li41Y2U5
ZTExZWMwYjY2MDU3YzU3YmQzOGRiOTU2ZjQwZTczYzk4ZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNzgsNyArNzgsNyBAQAogI2VuZGlmCiAKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKLSNpbmNsdWRlICJQcmV2aWV3TG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAi
TGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDA5Y2NkNWEyMjc3N2ZjYmViMWE3OGUxY2U5ODhjNjY0MjY1MzRmZjEuLjNmMTg0ZjAyNjcw
MzIxZWY3NmJmYTY5ZGI2N2MyNGU5MTFjYzBmNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKIAogI2lmIFVTRShRVUlDS19MT09LKQotI2luY2x1ZGUgIlByZXZp
ZXdMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmgi
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjAxLDcgKzIwMSw3IEBAIGNsYXNz
IFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2Fk
ZXJDbGllbnQgewogICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9
CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICBSZWZQdHI8UHJldmlld0xvYWRlckNsaWVudD4g
Y3JlYXRlUHJldmlld0xvYWRlckNsaWVudChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBudWxscHRyOyB9CisgICAgUmVmUHRyPExlZ2FjeVByZXZpZXdMb2FkZXJD
bGllbnQ+IGNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNj
ZXNzKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggOThkZjk0NWY1Mjg3ZDYxNzc0YjMyZDNmZWQ5NGM0ZWVhOTcw
ZmVhYi4uZTEwNDZiYTM3MTc2MzMwMjBjM2VjMDJkYzYwYmUzOGMwMjFiNmYyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg0LDExICs4NCwxMSBAQCBj
bGFzcyBIVE1MRnJhbWVPd25lckVsZW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKIGNs
YXNzIEhpc3RvcnlJdGVtOwogY2xhc3MgSW50U2l6ZTsKK2NsYXNzIExlZ2FjeVByZXZpZXdMb2Fk
ZXJDbGllbnQ7CiBjbGFzcyBNZXNzYWdlRXZlbnQ7CiBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwog
Y2xhc3MgUGFnZTsKIGNsYXNzIFBsdWdpblZpZXdCYXNlOwotY2xhc3MgUHJldmlld0xvYWRlckNs
aWVudDsKIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlcjsKIGNsYXNzIFJlc291cmNlRXJyb3I7CkBAIC0zNTEsNyArMzUxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxMZWdhY3lQ
cmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpID0gMDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTNl
MjYyOTIzNGM1NTczZjE5Y2MxNDNiNzAwNWFlNGQ5NDJhYjk4My4uNWMzZDQxODRlNTJiOGJiYTFh
ODZlYjRlNmMwNmVlMDc5ZWRlZDA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC01OSw4ICs1OSw4IEBACiAjZW5kaWYKIAogI2lmIFVTRShRVUlDS19MT09L
KQorI2luY2x1ZGUgIkxlZ2FjeVByZXZpZXdMb2FkZXIuaCIKICNpbmNsdWRlICJQcmV2aWV3Q29u
dmVydGVyLmgiCi0jaW5jbHVkZSAiUHJldmlld0xvYWRlci5oIgogI2VuZGlmCiAKICN1bmRlZiBS
RUxFQVNFX0xPR19JRl9BTExPV0VECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5o
CmluZGV4IDcyZjRjN2FmMDU2MjEwMThjODg0ZmRmNTI2ZjNlODc4NTdlOTUzN2EuLjVhZDY2NjA0
MTE2OGIwNWVmYzE3ZWU0MDM2ZWU5OTZiYjM5ODIwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCkBAIC01MSw4ICs1MSw4IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1l
TG9hZGVyOworY2xhc3MgTGVnYWN5UHJldmlld0xvYWRlcjsKIGNsYXNzIE5ldHdvcmtMb2FkTWV0
cmljczsKLWNsYXNzIFByZXZpZXdMb2FkZXI7CiAKIGNsYXNzIFJlc291cmNlTG9hZGVyIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFJlc291cmNlTG9hZGVyPiwgcHVibGljIFJlZkNvdW50ZWQ8UmVz
b3VyY2VMb2FkZXI+LCBwcm90ZWN0ZWQgUmVzb3VyY2VIYW5kbGVDbGllbnQgewogcHVibGljOgpA
QCAtMTc4LDcgKzE3OCw3IEBAIHByb3RlY3RlZDoKICAgICBSZXNvdXJjZVJlc3BvbnNlIG1fcmVz
cG9uc2U7CiAgICAgTG9hZFRpbWluZyBtX2xvYWRUaW1pbmc7CiAjaWYgVVNFKFFVSUNLX0xPT0sp
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByZXZpZXdMb2FkZXI+IG1fcHJldmlld0xvYWRlcjsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5UHJldmlld0xvYWRlcj4gbV9wcmV2aWV3TG9hZGVyOwog
I2VuZGlmCiAgICAgYm9vbCBtX2NhbkNyb3NzT3JpZ2luUmVxdWVzdHNBc2tVc2VyRm9yQ3JlZGVu
dGlhbHMgeyB0cnVlIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDhlMzBiNzU0MTA3NWIyNmQzMjgxMWFmYTg5NWQ0ZTYxOWE2YTliNzQuLmUx
MmRjY2I0Y2JkODVlMjMwZWM2OGU4MjQ3OThjM2JjZDE4MjI0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNjQsOCArNjQsOCBAQAogI2VuZGlm
CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKKyNpbmNsdWRlICJMZWdhY3lQcmV2aWV3TG9hZGVyLmgi
CiAjaW5jbHVkZSAiUHJldmlld0NvbnZlcnRlci5oIgotI2luY2x1ZGUgIlByZXZpZXdMb2FkZXIu
aCIKICNlbmRpZgogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApAQCAtMzM0LDcgKzMz
NCw3IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAg
ICBpZiAoc2hvdWxkQ3JlYXRlUHJldmlld0xvYWRlckZvclJlc3BvbnNlKHJlc3BvbnNlKSkgewot
ICAgICAgICBtX3ByZXZpZXdMb2FkZXIgPSBQcmV2aWV3TG9hZGVyOjpjcmVhdGUoKnRoaXMsIHJl
c3BvbnNlKTsKKyAgICAgICAgbV9wcmV2aWV3TG9hZGVyID0gTGVnYWN5UHJldmlld0xvYWRlcjo6
Y3JlYXRlKCp0aGlzLCByZXNwb25zZSk7CiAgICAgICAgIGlmIChtX3ByZXZpZXdMb2FkZXItPmRp
ZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL0xlZ2FjeVByZXZpZXdMb2FkZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zNDg2OWFiYzMzYWYzYTFlZWJjNmIxNTM1OGE2Zjk5MDEwMzNmYjA3Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVy
LmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXZWJQcmV2aWV3TG9hZGVyOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQ7
CitjbGFzcyBSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBT
aGFyZWRCdWZmZXI7CisKK2NsYXNzIExlZ2FjeVByZXZpZXdMb2FkZXIgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExlZ2FjeVByZXZpZXdM
b2FkZXIpOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5UHJldmll
d0xvYWRlcj4gY3JlYXRlKFJlc291cmNlTG9hZGVyJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OworICAgIH5MZWdhY3lQcmV2aWV3TG9hZGVyKCk7CisKKyAgICBib29sIGRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgYm9vbCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOworICAgIGJvb2wgZGlkUmVjZWl2ZUJ1
ZmZlcihjb25zdCBTaGFyZWRCdWZmZXImKTsKKyAgICBib29sIGRpZEZpbmlzaExvYWRpbmcoKTsK
KyAgICB2b2lkIGRpZEZhaWwoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNl
dENsaWVudEZvclRlc3RpbmcoUmVmUHRyPExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQ+JiYpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5UHJldmlld0xvYWRl
cj4gc3RkOjptYWtlX3VuaXF1ZTxMZWdhY3lQcmV2aWV3TG9hZGVyPihSZXNvdXJjZUxvYWRlciYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBMZWdhY3lQcmV2aWV3TG9hZGVyKFJlc291
cmNlTG9hZGVyJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCisgICAgUmV0YWluUHRyPFdl
YlByZXZpZXdMb2FkZXI+IG1fcHJldmlld0xvYWRlcjsKKyAgICBib29sIG1fZmluaXNoZWRMb2Fk
aW5nRGF0YUludG9Db252ZXJ0ZXIgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3
TG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9MZWdhY3lQcmV2aWV3TG9hZGVy
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkwZTk2MTZiMjBkOTQwNDA1YTRlNTI5YWIzZjNjYzY3MmMzZTQ3ZDIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL0xlZ2FjeVByZXZp
ZXdMb2FkZXIubW0KQEAgLTAsMCArMSwzMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiTGVnYWN5UHJldmlld0xvYWRlci5oIgorCisjaWYgVVNFKFFV
SUNLX0xPT0spCisKKyNpbXBvcnQgIkRvY3VtZW50TG9hZGVyLmgiCisjaW1wb3J0ICJGcmFtZS5o
IgorI2ltcG9ydCAiRnJhbWVMb2FkZXIuaCIKKyNpbXBvcnQgIkZyYW1lTG9hZGVyQ2xpZW50Lmgi
CisjaW1wb3J0ICJMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmgiCisjaW1wb3J0ICJMb2dnaW5n
LmgiCisjaW1wb3J0ICJQcmV2aWV3Q29udmVydGVyLmgiCisjaW1wb3J0ICJRdWlja0xvb2suaCIK
KyNpbXBvcnQgIlJlc291cmNlTG9hZGVyLmgiCisjaW1wb3J0ICJTZXR0aW5ncy5oIgorI2ltcG9y
dCA8cGFsL3NwaS9pb3MvUXVpY2tMb29rU1BJLmg+CisjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK0BpbnRlcmZhY2UgV2ViUHJldmll
d0xvYWRlciA6IE5TT2JqZWN0IHsKKyAgICBXZWFrUHRyPFJlc291cmNlTG9hZGVyPiBfcmVzb3Vy
Y2VMb2FkZXI7CisgICAgUmVzb3VyY2VSZXNwb25zZSBfcmVzcG9uc2U7CisgICAgUmVmUHRyPExl
Z2FjeVByZXZpZXdMb2FkZXJDbGllbnQ+IF9jbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFBy
ZXZpZXdDb252ZXJ0ZXI+IF9jb252ZXJ0ZXI7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5
PiBfYnVmZmVyZWREYXRhQXJyYXk7CisgICAgQk9PTCBfaGFzTG9hZGVkUHJldmlldzsKKyAgICBC
T09MIF9oYXNQcm9jZXNzZWRSZXNwb25zZTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBfYnVm
ZmVyZWREYXRhOworICAgIGxvbmcgbG9uZyBfbGVuZ3RoUmVjZWl2ZWQ7CisgICAgQk9PTCBfbmVl
ZHNUb0NhbGxEaWRGaW5pc2hMb2FkaW5nOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhS
ZXNvdXJjZUxvYWRlcjooUmVzb3VyY2VMb2FkZXImKXJlc291cmNlTG9hZGVyIHJlc291cmNlUmVz
cG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc291cmNlUmVzcG9uc2U7CistICh2b2lk
KWFwcGVuZERhdGFBcnJheTooTlNBcnJheTxOU0RhdGEgKj4gKilkYXRhQXJyYXk7CistICh2b2lk
KWZpbmlzaGVkQXBwZW5kaW5nOworLSAodm9pZClmYWlsZWQ7CisKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBzaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nOworCitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJQcmV2aWV3TG9hZGVyCisKK3N0YXRpYyBSZWZQdHI8
TGVnYWN5UHJldmlld0xvYWRlckNsaWVudD4mIHRlc3RpbmdDbGllbnQoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxSZWZQdHI8TGVnYWN5UHJldmlld0xvYWRlckNsaWVudD4+IHRlc3Rp
bmdDbGllbnQ7CisgICAgcmV0dXJuIHRlc3RpbmdDbGllbnQuZ2V0KCk7Cit9CisKK3N0YXRpYyBM
ZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50JiBlbXB0eUNsaWVudCgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQ+IGVtcHR5Q2xpZW50OworICAg
IHJldHVybiBlbXB0eUNsaWVudC5nZXQoKTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UmVzb3VyY2VMb2FkZXI6KFJlc291cmNlTG9hZGVyJilyZXNvdXJjZUxvYWRlciByZXNvdXJjZVJl
c3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNvdXJjZVJlc3BvbnNlCit7CisgICAg
aWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBf
cmVzb3VyY2VMb2FkZXIgPSBtYWtlV2Vha1B0cihyZXNvdXJjZUxvYWRlcik7CisgICAgX3Jlc3Bv
bnNlID0gcmVzb3VyY2VSZXNwb25zZTsKKyAgICBfY29udmVydGVyID0gbWFrZVVuaXF1ZTxQcmV2
aWV3Q29udmVydGVyPihzZWxmLCBfcmVzcG9uc2UpOworICAgIF9idWZmZXJlZERhdGFBcnJheSA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgIF9zaG91bGREZWNp
ZGVQb2xpY3lCZWZvcmVMb2FkaW5nID0gcmVzb3VyY2VMb2FkZXIuZnJhbWUoKS0+c2V0dGluZ3Mo
KS5zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldygpOworCisg
ICAgaWYgKHRlc3RpbmdDbGllbnQoKSkKKyAgICAgICAgX2NsaWVudCA9IHRlc3RpbmdDbGllbnQo
KTsKKyAgICBlbHNlIGlmIChhdXRvIGNsaWVudCA9IHJlc291cmNlTG9hZGVyLmZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLmNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQoX2NvbnZlcnRlci0+cHJldmll
d0ZpbGVOYW1lKCksIF9jb252ZXJ0ZXItPnByZXZpZXdVVEkoKSkpCisgICAgICAgIF9jbGllbnQg
PSBXVEZNb3ZlKGNsaWVudCk7CisgICAgZWxzZQorICAgICAgICBfY2xpZW50ID0gJmVtcHR5Q2xp
ZW50KCk7CisKKyAgICBMT0coTmV0d29yaywgIldlYlByZXZpZXdDb252ZXJ0ZXIgY3JlYXRlZCB3
aXRoIHByZXZpZXcgZmlsZSBuYW1lIFwiJXNcIi4iLCBfY29udmVydGVyLT5wcmV2aWV3RmlsZU5h
bWUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClhcHBl
bmREYXRhQXJyYXk6KE5TQXJyYXk8TlNEYXRhICo+ICopZGF0YUFycmF5Cit7CisgICAgTE9HKE5l
dHdvcmssICJXZWJQcmV2aWV3Q29udmVydGVyIGFwcGVuZGluZyBkYXRhIGFycmF5IHdpdGggY291
bnQgJWxkLiIsIGRhdGFBcnJheS5jb3VudCk7CisgICAgW19jb252ZXJ0ZXItPnBsYXRmb3JtQ29u
dmVydGVyKCkgYXBwZW5kRGF0YUFycmF5OmRhdGFBcnJheV07CisgICAgW19idWZmZXJlZERhdGFB
cnJheSBhZGRPYmplY3RzRnJvbUFycmF5OmRhdGFBcnJheV07CisgICAgX2NsaWVudC0+ZGlkUmVj
ZWl2ZURhdGFBcnJheSgoQ0ZBcnJheVJlZilkYXRhQXJyYXkpOworfQorCistICh2b2lkKWZpbmlz
aGVkQXBwZW5kaW5nCit7CisgICAgTE9HKE5ldHdvcmssICJXZWJQcmV2aWV3Q29udmVydGVyIGZp
bmlzaGVkIGFwcGVuZGluZyBkYXRhLiIpOworICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZl
cnRlcigpIGZpbmlzaGVkQXBwZW5kaW5nRGF0YV07CisgICAgX2NsaWVudC0+ZGlkRmluaXNoTG9h
ZGluZygpOworfQorCistICh2b2lkKWZhaWxlZAoreworICAgIExPRyhOZXR3b3JrLCAiV2ViUHJl
dmlld0NvbnZlcnRlciBmYWlsZWQuIik7CisgICAgW19jb252ZXJ0ZXItPnBsYXRmb3JtQ29udmVy
dGVyKCkgZmluaXNoQ29udmVydGluZ107CisgICAgX2NsaWVudC0+ZGlkRmFpbCgpOworfQorCist
ICh2b2lkKV9sb2FkUHJldmlld0lmTmVlZGVkCit7CisgICAgaWYgKCFfcmVzb3VyY2VMb2FkZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVCghX3Jlc291cmNlTG9hZGVyLT5yZWFjaGVk
VGVybWluYWxTdGF0ZSgpKTsKKyAgICBpZiAoX2hhc0xvYWRlZFByZXZpZXcpCisgICAgICAgIHJl
dHVybjsKKworICAgIF9oYXNMb2FkZWRQcmV2aWV3ID0gWUVTOworICAgIFtfYnVmZmVyZWREYXRh
QXJyYXkgcmVtb3ZlQWxsT2JqZWN0c107CisKKyAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
IHsgX2NvbnZlcnRlci0+cHJldmlld1Jlc3BvbnNlKCkgfTsKKyAgICByZXNwb25zZS5zZXRJc1F1
aWNrTG9vayh0cnVlKTsKKyAgICBBU1NFUlQocmVzcG9uc2UubWltZVR5cGUoKS5sZW5ndGgoKSk7
CisKKyAgICBfcmVzb3VyY2VMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnNldFByZXZpZXdDb252
ZXJ0ZXIoV1RGTW92ZShfY29udmVydGVyKSk7CisKKyAgICBpZiAoX3Nob3VsZERlY2lkZVBvbGlj
eUJlZm9yZUxvYWRpbmcpIHsKKyAgICAgICAgX2hhc1Byb2Nlc3NlZFJlc3BvbnNlID0gWUVTOwor
ICAgICAgICBfcmVzb3VyY2VMb2FkZXItPmRpZFJlY2VpdmVQcmV2aWV3UmVzcG9uc2UocmVzcG9u
c2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgX2hhc1Byb2Nlc3NlZFJlc3BvbnNl
ID0gTk87CisgICAgX3Jlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2Us
IFtzZWxmLCByZXRhaW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZildIHsKKyAgICAgICAgX2hhc1By
b2Nlc3NlZFJlc3BvbnNlID0gWUVTOworCisgICAgICAgIGlmICghX3Jlc291cmNlTG9hZGVyKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChfcmVzb3VyY2VMb2FkZXItPnJlYWNo
ZWRUZXJtaW5hbFN0YXRlKCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGF1
dG8gYnVmZmVyZWREYXRhID0gV1RGTW92ZShfYnVmZmVyZWREYXRhKSkgeworICAgICAgICAgICAg
X3Jlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlRGF0YShidWZmZXJlZERhdGEtPmRhdGEoKSwgYnVm
ZmVyZWREYXRhLT5zaXplKCksIF9sZW5ndGhSZWNlaXZlZCwgRGF0YVBheWxvYWRCeXRlcyk7Cisg
ICAgICAgICAgICBfbGVuZ3RoUmVjZWl2ZWQgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYg
KF9yZXNvdXJjZUxvYWRlci0+cmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBpZiAoX25lZWRzVG9DYWxsRGlkRmluaXNoTG9hZGluZykgeworICAg
ICAgICAgICAgX25lZWRzVG9DYWxsRGlkRmluaXNoTG9hZGluZyA9IE5POworICAgICAgICAgICAg
X3Jlc291cmNlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtMb2FkTWV0cmljcyB7IH0p
OworICAgICAgICB9CisgICAgfSk7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25u
ZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsZW5ndGhS
ZWNlaXZlZDoobG9uZyBsb25nKWxlbmd0aFJlY2VpdmVkCit7CisgICAgaWYgKCFfcmVzb3VyY2VM
b2FkZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwg
IWNvbm5lY3Rpb24pOworICAgIGlmIChfcmVzb3VyY2VMb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0
YXRlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFtzZWxmIF9sb2FkUHJldmlld0lmTmVlZGVk
XTsKKworICAgIGF1dG8gZGF0YUxlbmd0aCA9IGRhdGEubGVuZ3RoOworCisgICAgLy8gUXVpY2tM
b29rIGNvZGUgc2VuZHMgdXMgYSBuaWwgZGF0YSBhdCB0aW1lcy4gVGhlIGNoZWNrIGJlbG93IGlz
IHRoZSBzYW1lIGFzIHRoZSBvbmUgaW4KKyAgICAvLyBSZXNvdXJjZUhhbmRsZU1hYy5jcHAgYWRk
ZWQgZm9yIGEgZGlmZmVyZW50IGJ1Zy4KKyAgICBpZiAoIWRhdGFMZW5ndGgpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChfaGFzUHJvY2Vzc2VkUmVzcG9uc2UpIHsKKyAgICAgICAgX3Jlc291
cmNlTG9hZGVyLT5kaWRSZWNlaXZlRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihk
YXRhLmJ5dGVzKSwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQsIERhdGFQYXlsb2FkQnl0ZXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFfYnVmZmVyZWREYXRhKQorICAg
ICAgICBfYnVmZmVyZWREYXRhID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CisgICAgZWxz
ZQorICAgICAgICBfYnVmZmVyZWREYXRhLT5hcHBlbmQoZGF0YSk7CisgICAgX2xlbmd0aFJlY2Vp
dmVkICs9IGxlbmd0aFJlY2VpdmVkOworfQorCistICh2b2lkKWNvbm5lY3Rpb25EaWRGaW5pc2hM
b2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uCit7CisgICAgaWYgKCFfcmVzb3Vy
Y2VMb2FkZXIpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlv
biwgIWNvbm5lY3Rpb24pOworICAgIGlmIChfcmVzb3VyY2VMb2FkZXItPnJlYWNoZWRUZXJtaW5h
bFN0YXRlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBBU1NFUlQoX2hhc0xvYWRlZFBy
ZXZpZXcpOworCisgICAgaWYgKCFfaGFzUHJvY2Vzc2VkUmVzcG9uc2UpIHsKKyAgICAgICAgX25l
ZWRzVG9DYWxsRGlkRmluaXNoTG9hZGluZyA9IFlFUzsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIF9yZXNvdXJjZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhOZXR3b3JrTG9hZE1ldHJp
Y3MgeyB9KTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzUXVpY2tMb29rUGFzc3dvcmRFcnJv
cihOU0Vycm9yICplcnJvcikKK3sKKyAgICByZXR1cm4gZXJyb3IuY29kZSA9PSBrUUxSZXR1cm5Q
YXNzd29yZFByb3RlY3RlZCAmJiBbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmluZzpAIlF1aWNr
TG9va0Vycm9yRG9tYWluIl07Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0
aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKK3sKKyAg
ICBpZiAoIV9yZXNvdXJjZUxvYWRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUX1VO
VVNFRChjb25uZWN0aW9uLCAhY29ubmVjdGlvbik7CisgICAgaWYgKF9yZXNvdXJjZUxvYWRlci0+
cmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpc1F1
aWNrTG9va1Bhc3N3b3JkRXJyb3IoZXJyb3IpKSB7CisgICAgICAgIF9yZXNvdXJjZUxvYWRlci0+
ZGlkRmFpbChlcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIV9jbGll
bnQtPnN1cHBvcnRzUGFzc3dvcmRFbnRyeSgpKSB7CisgICAgICAgIF9yZXNvdXJjZUxvYWRlci0+
ZGlkRmFpbChfcmVzb3VyY2VMb2FkZXItPmNhbm5vdFNob3dVUkxFcnJvcigpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIF9jbGllbnQtPmRpZFJlcXVlc3RQYXNzd29yZChbc2VsZiwg
cmV0YWluZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoY29uc3QgU3RyaW5nJiBwYXNzd29yZCkg
eworICAgICAgICBfY29udmVydGVyID0gbWFrZVVuaXF1ZTxQcmV2aWV3Q29udmVydGVyPihzZWxm
LCBfcmVzcG9uc2UsIHBhc3N3b3JkKTsKKyAgICAgICAgW19jb252ZXJ0ZXItPnBsYXRmb3JtQ29u
dmVydGVyKCkgYXBwZW5kRGF0YUFycmF5Ol9idWZmZXJlZERhdGFBcnJheS5nZXQoKV07CisgICAg
ICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigpIGZpbmlzaGVkQXBwZW5kaW5nRGF0
YV07CisgICAgfSk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitMZWdhY3lQ
cmV2aWV3TG9hZGVyOjpMZWdhY3lQcmV2aWV3TG9hZGVyKFJlc291cmNlTG9hZGVyJiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorICAgIDogbV9wcmV2aWV3TG9hZGVy
IHsgYWRvcHROUyhbW1dlYlByZXZpZXdMb2FkZXIgYWxsb2NdIGluaXRXaXRoUmVzb3VyY2VMb2Fk
ZXI6bG9hZGVyIHJlc291cmNlUmVzcG9uc2U6cmVzcG9uc2VdKSB9Cit7Cit9CisKK0xlZ2FjeVBy
ZXZpZXdMb2FkZXI6On5MZWdhY3lQcmV2aWV3TG9hZGVyKCkKK3sKK30KKworc3RkOjp1bmlxdWVf
cHRyPExlZ2FjeVByZXZpZXdMb2FkZXI+IExlZ2FjeVByZXZpZXdMb2FkZXI6OmNyZWF0ZShSZXNv
dXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sK
KyAgICBBU1NFUlQoUHJldmlld0NvbnZlcnRlcjo6c3VwcG9ydHNNSU1FVHlwZShyZXNwb25zZS5t
aW1lVHlwZSgpKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8TGVnYWN5UHJldmlld0xvYWRlcj4o
bG9hZGVyLCByZXNwb25zZSk7Cit9CisKK2Jvb2wgTGVnYWN5UHJldmlld0xvYWRlcjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQoreworICAgIHJldHVybiAhW21f
cHJldmlld0xvYWRlciBzaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nXTsKK30KKworYm9v
bCBMZWdhY3lQcmV2aWV3TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgpCit7CisgICAgaWYgKG1fZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252
ZXJ0ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFttX3ByZXZpZXdMb2FkZXIgYXBw
ZW5kRGF0YUFycmF5OkBbIFtOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhd
IF1dOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIExlZ2FjeVByZXZpZXdMb2FkZXI6OmRp
ZFJlY2VpdmVCdWZmZXIoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCit7CisgICAgaWYgKG1f
ZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIFttX3ByZXZpZXdMb2FkZXIgYXBwZW5kRGF0YUFycmF5OmJ1ZmZlci5jcmVhdGVOU0Rh
dGFBcnJheSgpLmdldCgpXTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBMZWdhY3lQcmV2
aWV3TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKK3sKKyAgICBpZiAobV9maW5pc2hlZExvYWRp
bmdEYXRhSW50b0NvbnZlcnRlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9maW5p
c2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlciA9IHRydWU7CisgICAgW21fcHJldmlld0xvYWRl
ciBmaW5pc2hlZEFwcGVuZGluZ107CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTGVnYWN5
UHJldmlld0xvYWRlcjo6ZGlkRmFpbCgpCit7CisgICAgaWYgKG1fZmluaXNoZWRMb2FkaW5nRGF0
YUludG9Db252ZXJ0ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZmluaXNoZWRMb2FkaW5n
RGF0YUludG9Db252ZXJ0ZXIgPSB0cnVlOworICAgIFttX3ByZXZpZXdMb2FkZXIgZmFpbGVkXTsK
KyAgICBtX3ByZXZpZXdMb2FkZXIgPSBudWxscHRyOworfQorCit2b2lkIExlZ2FjeVByZXZpZXdM
b2FkZXI6OnNldENsaWVudEZvclRlc3RpbmcoUmVmUHRyPExlZ2FjeVByZXZpZXdMb2FkZXJDbGll
bnQ+JiYgY2xpZW50KQoreworICAgIHRlc3RpbmdDbGllbnQoKSA9IFdURk1vdmUoY2xpZW50KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKFFVSUNLX0xPT0sp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaW9zL1ByZXZpZXdMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pb3MvUHJldmlld0xvYWRlci5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxNTAzZDc4ZTNhZjU5OTQ5NTRiMzNjMmE4MDg0ZjRmZWE2MzAwNzA4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pb3MvUHJldmlld0xvYWRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KLQotT0JKQ19DTEFTUyBXZWJQcmV2aWV3TG9hZGVyOwotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFByZXZpZXdMb2FkZXJDbGllbnQ7Ci1jbGFzcyBSZXNvdXJjZUxv
YWRlcjsKLWNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci0KLWNs
YXNzIFByZXZpZXdMb2FkZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFByZXZpZXdMb2FkZXIpOwotcHVibGljOgotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8UHJldmlld0xvYWRlcj4gY3JlYXRlKFJlc291cmNlTG9hZGVyJiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIH5QcmV2aWV3TG9hZGVyKCk7Ci0KLSAgICBib29s
IGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgYm9vbCBk
aWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIGJv
b2wgZGlkUmVjZWl2ZUJ1ZmZlcihjb25zdCBTaGFyZWRCdWZmZXImKTsKLSAgICBib29sIGRpZEZp
bmlzaExvYWRpbmcoKTsKLSAgICB2b2lkIGRpZEZhaWwoKTsKLQotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyB2b2lkIHNldENsaWVudEZvclRlc3RpbmcoUmVmUHRyPFByZXZpZXdMb2FkZXJDbGll
bnQ+JiYpOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBzdGQ6OnVuaXF1ZV9wdHI8UHJldmlld0xv
YWRlcj4gc3RkOjptYWtlX3VuaXF1ZTxQcmV2aWV3TG9hZGVyPihSZXNvdXJjZUxvYWRlciYsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICBQcmV2aWV3TG9hZGVyKFJlc291cmNlTG9hZGVy
JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotCi0gICAgUmV0YWluUHRyPFdlYlByZXZpZXdM
b2FkZXI+IG1fcHJldmlld0xvYWRlcjsKLSAgICBib29sIG1fZmluaXNoZWRMb2FkaW5nRGF0YUlu
dG9Db252ZXJ0ZXIgeyBmYWxzZSB9OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9QcmV2aWV3TG9hZGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2lvcy9QcmV2aWV3TG9hZGVyLm1tCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyY2QzNTU5NmNmNjEzYjVmMWEzOWI3ZGNmMDRlY2ZlYzZiOTQ3Mjc3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pb3MvUHJldmlld0xvYWRlci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDMyNCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlBy
ZXZpZXdMb2FkZXIuaCIKLQotI2lmIFVTRShRVUlDS19MT09LKQotCi0jaW1wb3J0ICJEb2N1bWVu
dExvYWRlci5oIgotI2ltcG9ydCAiRnJhbWUuaCIKLSNpbXBvcnQgIkZyYW1lTG9hZGVyLmgiCi0j
aW1wb3J0ICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9y
dCAiUHJldmlld0NvbnZlcnRlci5oIgotI2ltcG9ydCAiUHJldmlld0xvYWRlckNsaWVudC5oIgot
I2ltcG9ydCAiUXVpY2tMb29rLmgiCi0jaW1wb3J0ICJSZXNvdXJjZUxvYWRlci5oIgotI2ltcG9y
dCAiU2V0dGluZ3MuaCIKLSNpbXBvcnQgPHBhbC9zcGkvaW9zL1F1aWNrTG9va1NQSS5oPgotI2lt
cG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1AaW50ZXJmYWNlIFdlYlByZXZpZXdMb2FkZXIgOiBOU09iamVjdCB7Ci0gICAgV2Vha1B0cjxS
ZXNvdXJjZUxvYWRlcj4gX3Jlc291cmNlTG9hZGVyOwotICAgIFJlc291cmNlUmVzcG9uc2UgX3Jl
c3BvbnNlOwotICAgIFJlZlB0cjxQcmV2aWV3TG9hZGVyQ2xpZW50PiBfY2xpZW50OwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcmV2aWV3Q29udmVydGVyPiBfY29udmVydGVyOwotICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gX2J1ZmZlcmVkRGF0YUFycmF5OwotICAgIEJPT0wgX2hhc0xvYWRl
ZFByZXZpZXc7Ci0gICAgQk9PTCBfaGFzUHJvY2Vzc2VkUmVzcG9uc2U7Ci0gICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gX2J1ZmZlcmVkRGF0YTsKLSAgICBsb25nIGxvbmcgX2xlbmd0aFJlY2VpdmVk
OwotICAgIEJPT0wgX25lZWRzVG9DYWxsRGlkRmluaXNoTG9hZGluZzsKLX0KLQotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUmVzb3VyY2VMb2FkZXI6KFJlc291cmNlTG9hZGVyJilyZXNvdXJjZUxv
YWRlciByZXNvdXJjZVJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNvdXJjZVJl
c3BvbnNlOwotLSAodm9pZClhcHBlbmREYXRhQXJyYXk6KE5TQXJyYXk8TlNEYXRhICo+ICopZGF0
YUFycmF5OwotLSAodm9pZClmaW5pc2hlZEFwcGVuZGluZzsKLS0gKHZvaWQpZmFpbGVkOwotCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgc2hvdWxkRGVjaWRlUG9saWN5QmVm
b3JlTG9hZGluZzsKLQotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV2ViUHJldmlld0xvYWRlcgot
Ci1zdGF0aWMgUmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+JiB0ZXN0aW5nQ2xpZW50KCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmUHRyPFByZXZpZXdMb2FkZXJDbGllbnQ+PiB0
ZXN0aW5nQ2xpZW50OwotICAgIHJldHVybiB0ZXN0aW5nQ2xpZW50LmdldCgpOwotfQotCi1zdGF0
aWMgUHJldmlld0xvYWRlckNsaWVudCYgZW1wdHlDbGllbnQoKQotewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxQcmV2aWV3TG9hZGVyQ2xpZW50PiBlbXB0eUNsaWVudDsKLSAgICByZXR1cm4g
ZW1wdHlDbGllbnQuZ2V0KCk7Ci19Ci0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJlc291cmNl
TG9hZGVyOihSZXNvdXJjZUxvYWRlciYpcmVzb3VyY2VMb2FkZXIgcmVzb3VyY2VSZXNwb25zZToo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzb3VyY2VSZXNwb25zZQotewotICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgX3Jlc291cmNl
TG9hZGVyID0gbWFrZVdlYWtQdHIocmVzb3VyY2VMb2FkZXIpOwotICAgIF9yZXNwb25zZSA9IHJl
c291cmNlUmVzcG9uc2U7Ci0gICAgX2NvbnZlcnRlciA9IG1ha2VVbmlxdWU8UHJldmlld0NvbnZl
cnRlcj4oc2VsZiwgX3Jlc3BvbnNlKTsKLSAgICBfYnVmZmVyZWREYXRhQXJyYXkgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICBfc2hvdWxkRGVjaWRlUG9saWN5
QmVmb3JlTG9hZGluZyA9IHJlc291cmNlTG9hZGVyLmZyYW1lKCktPnNldHRpbmdzKCkuc2hvdWxk
RGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9va1ByZXZpZXcoKTsKLQotICAgIGlmICh0
ZXN0aW5nQ2xpZW50KCkpCi0gICAgICAgIF9jbGllbnQgPSB0ZXN0aW5nQ2xpZW50KCk7Ci0gICAg
ZWxzZSBpZiAoYXV0byBjbGllbnQgPSByZXNvdXJjZUxvYWRlci5mcmFtZUxvYWRlcigpLT5jbGll
bnQoKS5jcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KF9jb252ZXJ0ZXItPnByZXZpZXdGaWxlTmFt
ZSgpLCBfY29udmVydGVyLT5wcmV2aWV3VVRJKCkpKQotICAgICAgICBfY2xpZW50ID0gV1RGTW92
ZShjbGllbnQpOwotICAgIGVsc2UKLSAgICAgICAgX2NsaWVudCA9ICZlbXB0eUNsaWVudCgpOwot
Ci0gICAgTE9HKE5ldHdvcmssICJXZWJQcmV2aWV3Q29udmVydGVyIGNyZWF0ZWQgd2l0aCBwcmV2
aWV3IGZpbGUgbmFtZSBcIiVzXCIuIiwgX2NvbnZlcnRlci0+cHJldmlld0ZpbGVOYW1lKCkudXRm
OCgpLmRhdGEoKSk7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpYXBwZW5kRGF0YUFy
cmF5OihOU0FycmF5PE5TRGF0YSAqPiAqKWRhdGFBcnJheQotewotICAgIExPRyhOZXR3b3JrLCAi
V2ViUHJldmlld0NvbnZlcnRlciBhcHBlbmRpbmcgZGF0YSBhcnJheSB3aXRoIGNvdW50ICVsZC4i
LCBkYXRhQXJyYXkuY291bnQpOwotICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigp
IGFwcGVuZERhdGFBcnJheTpkYXRhQXJyYXldOwotICAgIFtfYnVmZmVyZWREYXRhQXJyYXkgYWRk
T2JqZWN0c0Zyb21BcnJheTpkYXRhQXJyYXldOwotICAgIF9jbGllbnQtPmRpZFJlY2VpdmVEYXRh
QXJyYXkoKENGQXJyYXlSZWYpZGF0YUFycmF5KTsKLX0KLQotLSAodm9pZClmaW5pc2hlZEFwcGVu
ZGluZwotewotICAgIExPRyhOZXR3b3JrLCAiV2ViUHJldmlld0NvbnZlcnRlciBmaW5pc2hlZCBh
cHBlbmRpbmcgZGF0YS4iKTsKLSAgICBbX2NvbnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSBm
aW5pc2hlZEFwcGVuZGluZ0RhdGFdOwotICAgIF9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoKTsK
LX0KLQotLSAodm9pZClmYWlsZWQKLXsKLSAgICBMT0coTmV0d29yaywgIldlYlByZXZpZXdDb252
ZXJ0ZXIgZmFpbGVkLiIpOwotICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigpIGZp
bmlzaENvbnZlcnRpbmddOwotICAgIF9jbGllbnQtPmRpZEZhaWwoKTsKLX0KLQotLSAodm9pZClf
bG9hZFByZXZpZXdJZk5lZWRlZAotewotICAgIGlmICghX3Jlc291cmNlTG9hZGVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIV9yZXNvdXJjZUxvYWRlci0+cmVhY2hlZFRlcm1pbmFs
U3RhdGUoKSk7Ci0gICAgaWYgKF9oYXNMb2FkZWRQcmV2aWV3KQotICAgICAgICByZXR1cm47Ci0K
LSAgICBfaGFzTG9hZGVkUHJldmlldyA9IFlFUzsKLSAgICBbX2J1ZmZlcmVkRGF0YUFycmF5IHJl
bW92ZUFsbE9iamVjdHNdOwotCi0gICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IF9jb252
ZXJ0ZXItPnByZXZpZXdSZXNwb25zZSgpIH07Ci0gICAgcmVzcG9uc2Uuc2V0SXNRdWlja0xvb2so
dHJ1ZSk7Ci0gICAgQVNTRVJUKHJlc3BvbnNlLm1pbWVUeXBlKCkubGVuZ3RoKCkpOwotCi0gICAg
X3Jlc291cmNlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zZXRQcmV2aWV3Q29udmVydGVyKFdU
Rk1vdmUoX2NvbnZlcnRlcikpOwotCi0gICAgaWYgKF9zaG91bGREZWNpZGVQb2xpY3lCZWZvcmVM
b2FkaW5nKSB7Ci0gICAgICAgIF9oYXNQcm9jZXNzZWRSZXNwb25zZSA9IFlFUzsKLSAgICAgICAg
X3Jlc291cmNlTG9hZGVyLT5kaWRSZWNlaXZlUHJldmlld1Jlc3BvbnNlKHJlc3BvbnNlKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIF9oYXNQcm9jZXNzZWRSZXNwb25zZSA9IE5POwot
ICAgIF9yZXNvdXJjZUxvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlLCBbc2VsZiwg
cmV0YWluZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSB7Ci0gICAgICAgIF9oYXNQcm9jZXNzZWRS
ZXNwb25zZSA9IFlFUzsKLQotICAgICAgICBpZiAoIV9yZXNvdXJjZUxvYWRlcikKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBpZiAoX3Jlc291cmNlTG9hZGVyLT5yZWFjaGVkVGVybWlu
YWxTdGF0ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChhdXRvIGJ1ZmZl
cmVkRGF0YSA9IFdURk1vdmUoX2J1ZmZlcmVkRGF0YSkpIHsKLSAgICAgICAgICAgIF9yZXNvdXJj
ZUxvYWRlci0+ZGlkUmVjZWl2ZURhdGEoYnVmZmVyZWREYXRhLT5kYXRhKCksIGJ1ZmZlcmVkRGF0
YS0+c2l6ZSgpLCBfbGVuZ3RoUmVjZWl2ZWQsIERhdGFQYXlsb2FkQnl0ZXMpOwotICAgICAgICAg
ICAgX2xlbmd0aFJlY2VpdmVkID0gMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChfcmVzb3Vy
Y2VMb2FkZXItPnJlYWNoZWRUZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgaWYgKF9uZWVkc1RvQ2FsbERpZEZpbmlzaExvYWRpbmcpIHsKLSAgICAgICAgICAg
IF9uZWVkc1RvQ2FsbERpZEZpbmlzaExvYWRpbmcgPSBOTzsKLSAgICAgICAgICAgIF9yZXNvdXJj
ZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhOZXR3b3JrTG9hZE1ldHJpY3MgeyB9KTsKLSAgICAg
ICAgfQotICAgIH0pOwotfQotCi0tICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gZGlkUmVjZWl2ZURhdGE6KE5TRGF0YSAqKWRhdGEgbGVuZ3RoUmVjZWl2ZWQ6
KGxvbmcgbG9uZylsZW5ndGhSZWNlaXZlZAotewotICAgIGlmICghX3Jlc291cmNlTG9hZGVyKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sICFjb25uZWN0
aW9uKTsKLSAgICBpZiAoX3Jlc291cmNlTG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBbc2VsZiBfbG9hZFByZXZpZXdJZk5lZWRlZF07Ci0KLSAg
ICBhdXRvIGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDsKLQotICAgIC8vIFF1aWNrTG9vayBjb2Rl
IHNlbmRzIHVzIGEgbmlsIGRhdGEgYXQgdGltZXMuIFRoZSBjaGVjayBiZWxvdyBpcyB0aGUgc2Ft
ZSBhcyB0aGUgb25lIGluCi0gICAgLy8gUmVzb3VyY2VIYW5kbGVNYWMuY3BwIGFkZGVkIGZvciBh
IGRpZmZlcmVudCBidWcuCi0gICAgaWYgKCFkYXRhTGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoX2hhc1Byb2Nlc3NlZFJlc3BvbnNlKSB7Ci0gICAgICAgIF9yZXNvdXJjZUxvYWRl
ci0+ZGlkUmVjZWl2ZURhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5ieXRl
cyksIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkLCBEYXRhUGF5bG9hZEJ5dGVzKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghX2J1ZmZlcmVkRGF0YSkKLSAgICAgICAgX2J1
ZmZlcmVkRGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwotICAgIGVsc2UKLSAgICAg
ICAgX2J1ZmZlcmVkRGF0YS0+YXBwZW5kKGRhdGEpOwotICAgIF9sZW5ndGhSZWNlaXZlZCArPSBs
ZW5ndGhSZWNlaXZlZDsKLX0KLQotLSAodm9pZCljb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzoo
TlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbgotewotICAgIGlmICghX3Jlc291cmNlTG9hZGVy
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sICFjb25u
ZWN0aW9uKTsKLSAgICBpZiAoX3Jlc291cmNlTG9hZGVyLT5yZWFjaGVkVGVybWluYWxTdGF0ZSgp
KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQVNTRVJUKF9oYXNMb2FkZWRQcmV2aWV3KTsK
LQotICAgIGlmICghX2hhc1Byb2Nlc3NlZFJlc3BvbnNlKSB7Ci0gICAgICAgIF9uZWVkc1RvQ2Fs
bERpZEZpbmlzaExvYWRpbmcgPSBZRVM7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBf
cmVzb3VyY2VMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRNZXRyaWNzIHsgfSk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1F1aWNrTG9va1Bhc3N3b3JkRXJyb3IoTlNFcnJv
ciAqZXJyb3IpCi17Ci0gICAgcmV0dXJuIGVycm9yLmNvZGUgPT0ga1FMUmV0dXJuUGFzc3dvcmRQ
cm90ZWN0ZWQgJiYgW2Vycm9yLmRvbWFpbiBpc0VxdWFsVG9TdHJpbmc6QCJRdWlja0xvb2tFcnJv
ckRvbWFpbiJdOwotfQotCi0tICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNv
bm5lY3Rpb24gZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCi17Ci0gICAgaWYgKCFf
cmVzb3VyY2VMb2FkZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVF9VTlVTRUQoY29u
bmVjdGlvbiwgIWNvbm5lY3Rpb24pOwotICAgIGlmIChfcmVzb3VyY2VMb2FkZXItPnJlYWNoZWRU
ZXJtaW5hbFN0YXRlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghaXNRdWlja0xvb2tQ
YXNzd29yZEVycm9yKGVycm9yKSkgewotICAgICAgICBfcmVzb3VyY2VMb2FkZXItPmRpZEZhaWwo
ZXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFfY2xpZW50LT5zdXBw
b3J0c1Bhc3N3b3JkRW50cnkoKSkgewotICAgICAgICBfcmVzb3VyY2VMb2FkZXItPmRpZEZhaWwo
X3Jlc291cmNlTG9hZGVyLT5jYW5ub3RTaG93VVJMRXJyb3IoKSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBfY2xpZW50LT5kaWRSZXF1ZXN0UGFzc3dvcmQoW3NlbGYsIHJldGFpbmVk
U2VsZiA9IHJldGFpblB0cihzZWxmKV0gKGNvbnN0IFN0cmluZyYgcGFzc3dvcmQpIHsKLSAgICAg
ICAgX2NvbnZlcnRlciA9IG1ha2VVbmlxdWU8UHJldmlld0NvbnZlcnRlcj4oc2VsZiwgX3Jlc3Bv
bnNlLCBwYXNzd29yZCk7Ci0gICAgICAgIFtfY29udmVydGVyLT5wbGF0Zm9ybUNvbnZlcnRlcigp
IGFwcGVuZERhdGFBcnJheTpfYnVmZmVyZWREYXRhQXJyYXkuZ2V0KCldOwotICAgICAgICBbX2Nv
bnZlcnRlci0+cGxhdGZvcm1Db252ZXJ0ZXIoKSBmaW5pc2hlZEFwcGVuZGluZ0RhdGFdOwotICAg
IH0pOwotfQotCi1AZW5kCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUHJldmlld0xvYWRlcjo6
UHJldmlld0xvYWRlcihSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKLSAgICA6IG1fcHJldmlld0xvYWRlciB7IGFkb3B0TlMoW1tXZWJQcmV2
aWV3TG9hZGVyIGFsbG9jXSBpbml0V2l0aFJlc291cmNlTG9hZGVyOmxvYWRlciByZXNvdXJjZVJl
c3BvbnNlOnJlc3BvbnNlXSkgfQotewotfQotCi1QcmV2aWV3TG9hZGVyOjp+UHJldmlld0xvYWRl
cigpCi17Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxQcmV2aWV3TG9hZGVyPiBQcmV2aWV3TG9hZGVy
OjpjcmVhdGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCi17Ci0gICAgQVNTRVJUKFByZXZpZXdDb252ZXJ0ZXI6OnN1cHBvcnRzTUlNRVR5
cGUocmVzcG9uc2UubWltZVR5cGUoKSkpOwotICAgIHJldHVybiBtYWtlVW5pcXVlPFByZXZpZXdM
b2FkZXI+KGxvYWRlciwgcmVzcG9uc2UpOwotfQotCi1ib29sIFByZXZpZXdMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKLXsKLSAgICByZXR1cm4gIVtt
X3ByZXZpZXdMb2FkZXIgc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ107Ci19Ci0KLWJv
b2wgUHJldmlld0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgdW5zaWdu
ZWQgbGVuZ3RoKQotewotICAgIGlmIChtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVy
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBbbV9wcmV2aWV3TG9hZGVyIGFwcGVuZERh
dGFBcnJheTpAWyBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXSBdXTsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBQcmV2aWV3TG9hZGVyOjpkaWRSZWNlaXZlQnVm
ZmVyKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQotewotICAgIGlmIChtX2ZpbmlzaGVkTG9h
ZGluZ0RhdGFJbnRvQ29udmVydGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBbbV9w
cmV2aWV3TG9hZGVyIGFwcGVuZERhdGFBcnJheTpidWZmZXIuY3JlYXRlTlNEYXRhQXJyYXkoKS5n
ZXQoKV07Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgUHJldmlld0xvYWRlcjo6ZGlkRmlu
aXNoTG9hZGluZygpCi17Ci0gICAgaWYgKG1fZmluaXNoZWRMb2FkaW5nRGF0YUludG9Db252ZXJ0
ZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG1fZmluaXNoZWRMb2FkaW5nRGF0YUlu
dG9Db252ZXJ0ZXIgPSB0cnVlOwotICAgIFttX3ByZXZpZXdMb2FkZXIgZmluaXNoZWRBcHBlbmRp
bmddOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFByZXZpZXdMb2FkZXI6OmRpZEZhaWwo
KQotewotICAgIGlmIChtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVyID0gdHJ1
ZTsKLSAgICBbbV9wcmV2aWV3TG9hZGVyIGZhaWxlZF07Ci0gICAgbV9wcmV2aWV3TG9hZGVyID0g
bnVsbHB0cjsKLX0KLQotdm9pZCBQcmV2aWV3TG9hZGVyOjpzZXRDbGllbnRGb3JUZXN0aW5nKFJl
ZlB0cjxQcmV2aWV3TG9hZGVyQ2xpZW50PiYmIGNsaWVudCkKLXsKLSAgICB0ZXN0aW5nQ2xpZW50
KCkgPSBXVEZNb3ZlKGNsaWVudCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9pb3MvTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9pb3MvTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiMjEzNzg4ODJmNzAzNGM0OWQyMTc4ZWM2YzJmYTM1ODI3ZTllYTQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9MZWdhY3lQcmV2
aWV3TG9hZGVyQ2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQgOiBwdWJsaWMgUmVm
Q291bnRlZDxMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB+TGVnYWN5UHJldmlld0xvYWRlckNsaWVudCgpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZURhdGFBcnJheShDRkFycmF5UmVmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZygpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKCkgeyB9Cisg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzUGFzc3dvcmRFbnRyeSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZChGdW5jdGlvbjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KCIiKTsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0xvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUHJldmlld0xvYWRlckNsaWVudC5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YzBlODc5M2IwYmIzNWRjMWI2ZDhhM2Y0MWJh
YzY3YmE2ZmJiZDViLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1ByZXZpZXdMb2FkZXJDbGll
bnQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBQcmV2aWV3TG9hZGVyQ2xpZW50IDogcHVibGljIFJlZkNvdW50
ZWQ8UHJldmlld0xvYWRlckNsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgflByZXZpZXdM
b2FkZXJDbGllbnQoKSA9IGRlZmF1bHQ7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRh
QXJyYXkoQ0ZBcnJheVJlZikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbCgpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1Bhc3N3b3JkRW50cnkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmQoRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigiIik7IH0KLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCA0ZjFmMTRmNGE5ODdlNTE3OWZlZjc2NWRlMGI1NjQ5MzQyMDliNGE5Li5lNGU3YWM5ZmQ5YzIz
ZmI1OWU3Y2IxNTMwODkyMzJhNmZjOWY1M2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC0yODMsOCArMjgzLDggQEAKICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0sp
CisjaW5jbHVkZSAiTGVnYWN5UHJldmlld0xvYWRlci5oIgogI2luY2x1ZGUgIk1vY2tQcmV2aWV3
TG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUHJldmlld0xvYWRlci5oIgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNTE0LDcgKzUxNCw3IEBAIHZvaWQgSW50ZXJuYWxzOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAKICNpZiBVU0UoUVVJQ0tfTE9PSykK
ICAgICBNb2NrUHJldmlld0xvYWRlckNsaWVudDo6c2luZ2xldG9uKCkuc2V0UGFzc3dvcmQoIiIp
OwotICAgIFByZXZpZXdMb2FkZXI6OnNldENsaWVudEZvclRlc3RpbmcobnVsbHB0cik7CisgICAg
TGVnYWN5UHJldmlld0xvYWRlcjo6c2V0Q2xpZW50Rm9yVGVzdGluZyhudWxscHRyKTsKICNlbmRp
ZgogCiAgICAgcHJpbnRDb250ZXh0Rm9yVGVzdGluZygpID0gbnVsbHB0cjsKQEAgLTQ3MDAsNyAr
NDcwMCw3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRRdWlja0xvb2tQYXNzd29yZChjb25zdCBTdHJp
bmcmIHBhc3N3b3JkKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIFVTRShRVUlDS19M
T09LKQogICAgIGF1dG8mIHF1aWNrTG9va0hhbmRsZUNsaWVudCA9IE1vY2tQcmV2aWV3TG9hZGVy
Q2xpZW50OjpzaW5nbGV0b24oKTsKLSAgICBQcmV2aWV3TG9hZGVyOjpzZXRDbGllbnRGb3JUZXN0
aW5nKCZxdWlja0xvb2tIYW5kbGVDbGllbnQpOworICAgIExlZ2FjeVByZXZpZXdMb2FkZXI6OnNl
dENsaWVudEZvclRlc3RpbmcoJnF1aWNrTG9va0hhbmRsZUNsaWVudCk7CiAgICAgcXVpY2tMb29r
SGFuZGxlQ2xpZW50LnNldFBhc3N3b3JkKHBhc3N3b3JkKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHBhc3N3b3JkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1By
ZXZpZXdMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1ByZXZpZXdM
b2FkZXJDbGllbnQuaAppbmRleCBhYzVhZWIwOTAwOTAwNWRmZWM1M2IzODY4ZjdiOWJiZDZiYmY0
NDJkLi4yMmVkOGIxMGI3N2RlZmE4N2RlNDE2ODc3MmVhZjJhYTgzZGZkYWIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUHJldmlld0xvYWRlckNsaWVudC5oCkBAIC0yNywx
MSArMjcsMTEgQEAKIAogI2lmIFVTRShRVUlDS19MT09LKQogCi0jaW5jbHVkZSAiUHJldmlld0xv
YWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2NrUHJldmlld0xvYWRlckNsaWVudCBmaW5h
bCA6IHB1YmxpYyBQcmV2aWV3TG9hZGVyQ2xpZW50IHsKK2NsYXNzIE1vY2tQcmV2aWV3TG9hZGVy
Q2xpZW50IGZpbmFsIDogcHVibGljIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQgewogcHVibGlj
OgogICAgIHN0YXRpYyBNb2NrUHJldmlld0xvYWRlckNsaWVudCYgc2luZ2xldG9uKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA0YjRlMmVlMjE2NzJmYmQ4Mzc0
M2RlMDEyNDJmODBkODI0MTFjYTAzLi5hMmFiYWI5ZGJiYjQzMWQ0N2I5Njc1ZWRkNzgzNDg5Mzkx
OGMxOWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC02Miw3ICs2
Miw3IEBACiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogCiAjaWYgVVNFKFFVSUNLX0xPT0sp
Ci0jaW5jbHVkZSA8V2ViQ29yZS9QcmV2aWV3TG9hZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9MZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDYxMWZjYjg2ZGJlNjNhZDcz
M2IxMjAxNzU2YTE1MmRkY2I5MzYxYzAuLmFlYzAzMzk5YzQ0M2UxNzgyZmJhZmUxZmViYTA1MjIx
OTIwYjEyYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNTYsNyArMjU2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlUGFnZVRyYW5zaXRpb25JZk5lZWRlZCgpIGZpbmFs
OwogCiAjaWYgVVNFKFFVSUNLX0xPT0spCi0gICAgUmVmUHRyPFdlYkNvcmU6OlByZXZpZXdMb2Fk
ZXJDbGllbnQ+IGNyZWF0ZVByZXZpZXdMb2FkZXJDbGllbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgU3RyaW5nJiB1dGkpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpMZWdhY3lQ
cmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRpKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGll
bnRJT1MubW0KaW5kZXggOGZhZjMxZWE0YjdiMzBlNTdkYzQ4ZWQyNjRhYzk2YWEyMTRmZGRkYS4u
ZWFkNDM5MmE1NDg5ODA2NmMwMWY1Y2MwMjg4NDI2Y2Y0ZDMwNGMwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNs
aWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
aW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCkBAIC02NSw3ICs2NSw3IEBAIFJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb25uZWN0aW9uUHJvcGVy
dGllcyhEb2N1bWVudExvCiB9CiAKICNpZiBVU0UoUVVJQ0tfTE9PSykKLVJlZlB0cjxQcmV2aWV3
TG9hZGVyQ2xpZW50PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJldmlld0xvYWRlckNs
aWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkKK1JlZlB0cjxM
ZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlUHJl
dmlld0xvYWRlckNsaWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0
aSkKIHsKICAgICBpZiAoIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJDbGllbnQuaAppbmRleCBiOWQ2
OTY1Y2MzZTBlNWI3YWU0ZWQ0N2JiYzI0OGYwODliODRmMGE4Li5kYTNiNTA4ZjUyNjliOGM2M2Ji
ZjM1ZTIyM2U1Y2ExZTgwOWM3NWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYlByZXZpZXdMb2FkZXJD
bGllbnQuaApAQCAtMjgsMTUgKzI4LDE1IEBACiAjaWYgVVNFKFFVSUNLX0xPT0spCiAKICNpbmNs
dWRlICJRdWlja0xvb2tEb2N1bWVudERhdGEuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVBy
ZXZpZXdMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9QcmV2aWV3TG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJGcmFt
ZTsKIAotY2xhc3MgV2ViUHJldmlld0xvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpQcmV2aWV3TG9hZGVyQ2xpZW50IHsKK2NsYXNzIFdlYlByZXZpZXdMb2FkZXJDbGllbnQgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6TGVnYWN5UHJldmlld0xvYWRlckNsaWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxXZWJQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiB1dGksIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNGVlOWU2MDZj
NTdmY2Y1NzJlMTEzODYzOWJjMTQ1MzRmMzc4OTA2Li42MWE4MTBlMzE4OTEzY2I5YWE2YTUwNzAz
NDI0Mzg0YzczN2ZlNGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI0MSw3ICsy
NDEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBV
UkwmKSBjb25zdCBmaW5hbDsKIAogI2lmIFVTRShRVUlDS19MT09LKQotICAgIFJlZlB0cjxXZWJD
b3JlOjpQcmV2aWV3TG9hZGVyQ2xpZW50PiBjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRpKSBmaW5hbDsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6TGVnYWN5UHJldmlld0xvYWRlckNsaWVudD4gY3JlYXRlUHJldmlld0xvYWRlckNs
aWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIHV0aSkgZmluYWw7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KaW5kZXggYTNlOTgzMzhiNjQ4OWVhYzk2YjdjMWQwOTc5ZDI1NTYxZmEwYzUwYy4u
MzdiODI3M2NlOWRkNzczNjI1OGY4MjZlMmFhYTEwN2JiOTE2YmJkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KQEAgLTE1Miw3ICsxNTIsNyBAQAogI2VuZGlmCiAKICNpZiBVU0UoUVVJ
Q0tfTE9PSykKLSNpbXBvcnQgPFdlYkNvcmUvUHJldmlld0xvYWRlckNsaWVudC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9MZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1F1aWNrTG9vay5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0ZpbGVNYW5hZ2VyU1BJLmg+
CiAjZW5kaWYKQEAgLTIxODYsOSArMjE4Niw5IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNob3VsZExvYWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAjZW5kaWYK
IAogI2lmIFVTRShRVUlDS19MT09LKQotUmVmUHRyPFdlYkNvcmU6OlByZXZpZXdMb2FkZXJDbGll
bnQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2aWV3TG9hZGVyQ2xpZW50KGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRpKQorUmVmUHRyPFdlYkNvcmU6Okxl
Z2FjeVByZXZpZXdMb2FkZXJDbGllbnQ+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVQcmV2
aWV3TG9hZGVyQ2xpZW50KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgdXRp
KQogewotICAgIGNsYXNzIFF1aWNrTG9va0RvY3VtZW50V3JpdGVyIDogcHVibGljIFdlYkNvcmU6
OlByZXZpZXdMb2FkZXJDbGllbnQgeworICAgIGNsYXNzIFF1aWNrTG9va0RvY3VtZW50V3JpdGVy
IDogcHVibGljIFdlYkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQgewogICAgIHB1Ymxp
YzoKICAgICAgICAgZXhwbGljaXQgUXVpY2tMb29rRG9jdW1lbnRXcml0ZXIoTlNTdHJpbmcgKmZp
bGVQYXRoKQogICAgICAgICAgICAgOiBtX2ZpbGVQYXRoIHsgZmlsZVBhdGggfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IDEwMjlj
MWRkMWNiMjNhMmY4NTY3ODIxZGJkYWM3YWFmZjNmOTY2MWYuLjkxZTk0YmZmMGQyZGJlZjE2N2Rj
ZTU0YThmMTdhNWIzOTRkODI4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTcxLDcgKzcxLDcgQEAKICNlbmRpZgogCiAjaWYg
VVNFKFFVSUNLX0xPT0spCi0jaW1wb3J0IDxXZWJDb3JlL1ByZXZpZXdMb2FkZXJDbGllbnQuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9RdWlja0xvb2suaD4KICNlbmRpZgogCkBAIC0xMDcsNyArMTA3LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgUmV0YWluUHRyPE5TRGljdGlvbmFy
eT4gX3F1aWNrTG9va0NvbnRlbnQ7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlByZXZpZXdMb2FkZXJD
bGllbnQ+IF9xdWlja0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50OworICAgIFJlZlB0cjxXZWJDb3Jl
OjpMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50PiBfcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVu
dDsKICNlbmRpZgogfTsKIApAQCAtNDE2LDcgKzQxNiw3IEBAIC0gKGlkKV9pbml0V2l0aERvY3Vt
ZW50TG9hZGVyOihSZWY8V2ViRG9jdW1lbnRMb2FkZXJNYWM+JiYpbG9hZGVyCiB9CiAKICNpZiBV
U0UoUVVJQ0tfTE9PSykKLS0gKFdlYkNvcmU6OlByZXZpZXdMb2FkZXJDbGllbnQqKV9xdWlja0xv
b2tQcmV2aWV3TG9hZGVyQ2xpZW50CistIChXZWJDb3JlOjpMZWdhY3lQcmV2aWV3TG9hZGVyQ2xp
ZW50KilfcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudAogewogICAgIHJldHVybiB0b1ByaXZh
dGUoX3ByaXZhdGUpLT5fcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudC5nZXQoKTsKIH0KQEAg
LTQyNiw3ICs0MjYsNyBAQCAtICh2b2lkKV9zZXRRdWlja0xvb2tDb250ZW50OihOU0RpY3Rpb25h
cnkgKilxdWlja0xvb2tDb250ZW50CiAgICAgdG9Qcml2YXRlKF9wcml2YXRlKS0+X3F1aWNrTG9v
a0NvbnRlbnQgPSBhZG9wdE5TKFtxdWlja0xvb2tDb250ZW50IGNvcHldKTsKIH0KIAotLSAodm9p
ZClfc2V0UXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudDooV2ViQ29yZTo6UHJldmlld0xvYWRl
ckNsaWVudCopcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudAorLSAodm9pZClfc2V0UXVpY2tM
b29rUHJldmlld0xvYWRlckNsaWVudDooV2ViQ29yZTo6TGVnYWN5UHJldmlld0xvYWRlckNsaWVu
dCopcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudAogewogICAgIHRvUHJpdmF0ZShfcHJpdmF0
ZSktPl9xdWlja0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50ID0gcXVpY2tMb29rUHJldmlld0xvYWRl
ckNsaWVudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRGF0YVNvdXJjZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCmluZGV4IGVkMDE1M2E0YWU1NWZhYTg4MzY3Zjc1MzM3
OGM0YWExZDdjZTMyYWYuLjgwZTgxMTBmNTRmYjJkMjg4YTNiNzE5NDg3ZWNiN2RmZDg0MGMyYjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJj
ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRh
U291cmNlSW50ZXJuYWwuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKLWNsYXNzIFByZXZpZXdMb2FkZXJDbGllbnQ7CitjbGFz
cyBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50OwogfQogCiBjbGFzcyBXZWJEb2N1bWVudExvYWRl
ck1hYzsKQEAgLTYwLDYgKzYwLDYgQEAgY2xhc3MgV2ViRG9jdW1lbnRMb2FkZXJNYWM7CiAtIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9hZGVyOwogI2lmIFVTRShRVUlDS19M
T09LKQogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0UXVpY2tMb29rQ29u
dGVudDopIE5TRGljdGlvbmFyeSAqX3F1aWNrTG9va0NvbnRlbnQ7Ci1AcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRRdWlja0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50OikgV2ViQ29yZTo6
UHJldmlld0xvYWRlckNsaWVudCogX3F1aWNrTG9va1ByZXZpZXdMb2FkZXJDbGllbnQ7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRRdWlja0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50
OikgV2ViQ29yZTo6TGVnYWN5UHJldmlld0xvYWRlckNsaWVudCogX3F1aWNrTG9va1ByZXZpZXdM
b2FkZXJDbGllbnQ7CiAjZW5kaWYKIEBlbmQK
</data>

          </attachment>
      

    </bug>

</bugzilla>