<?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>311171</bug_id>
          
          <creation_ts>2026-03-31 01:18:41 -0700</creation_ts>
          <short_desc>REGRESSION(310284@main): Broke internal builds (probably external too)</short_desc>
          <delta_ts>2026-03-31 01:28: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>
          
          <blocked>301086</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aperez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2195464</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-31 01:18:41 -0700</bug_when>
    <thetext>https://commits.webkit.org/310284@main introduced a regression:
Broke internal builds (probably external too)

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195466</commentid>
    <comment_count>1</comment_count>
      <attachid>478857</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-31 01:18:50 -0700</bug_when>
    <thetext>Created attachment 478857
REVERT of 310284@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195470</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-03-31 01:27:29 -0700</bug_when>
    <thetext>Committed 310294@main (f0f4978b1da6): &lt;https://commits.webkit.org/310294@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478857.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2195471</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-31 01:28:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/173761691&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478857</attachid>
            <date>2026-03-31 01:18:50 -0700</date>
            <delta_ts>2026-03-31 01:27:30 -0700</delta_ts>
            <desc>REVERT of 310284@main</desc>
            <filename>bug-311171-20260331081850.patch</filename>
            <type>text/plain</type>
            <size>49534</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA2MTMxYmVmNmJmZTk1N2YwODY5NjViYjU4YjI5MTRjNGZjMTg5MDhiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUdWUsIDMxIE1hciAyMDI2IDA4OjE4OjQ4ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMxMDI4NEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMTE3MQoKQnJva2UgaW50ZXJuYWwgYnVpbGRzIChwcm9iYWJs
eSBleHRlcm5hbCB0b28pCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiW0dUS10gTmV3IGltcHJvdmVk
IEFQSSBmb3IgcGFnZSBmYXZpY29ucyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMwMTA4NgpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8zMTAyODRAbWFpbgotLS0K
IFNvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgICAgICAgICAgICAgICB8ICAgMiArCiAu
Li4vVUlQcm9jZXNzL0FQSS9BUElJY29uTG9hZGluZ0NsaWVudC5oICAgICAgfCAgMTQgLS0KIC4u
Li9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwICAgICAgICB8IDEwMSArLS0tLS0t
LS0tLS0KIC4uLi9BUEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaC5pbiAgICAgICB8ICAx
OCAtLS0KIC4uLi9BUEkvZ2xpYi9XZWJLaXRJY29uTG9hZGluZ0NsaWVudC5jcHAgICAgICB8ICA0
OSArKy0tLS0KIC4uLi9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdlLmNwcCB8
IDExNSAtLS0tLS0tLS0tLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbWFnZS5o
LmluICAgICAgIHwgIDM5ICstLS0tCiAuLi4vVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdl
UHJpdmF0ZS5oICAgfCAgIDUgLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3
LmNwcCAgICAgIHwgMTIzICsrLS0tLS0tLS0tLS0tLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJWaWV3LmguaW4gICAgIHwgICA2IC0KIC4uLi9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaCB8ICAgNSArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvd2Via2l0LmguaW4gIHwgICAyICstCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwICAgICAgfCAgNTIgKystLS0tLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggICAgICAgIHwgICAyICstCiAuLi4vV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gfCAgIDIgKy0KIC4uLi9XZWJMb2NhbEZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCAgICAgICAgICAgICB8ICAgNSArLQogLi4uL1dlYktpdEdMaWIvVGVzdFdlYktpdEZh
dmljb25EYXRhYmFzZS5jcHAgIHwgMTQ3ICstLS0tLS0tLS0tLS0tLS0tLQogLi4uL1Rlc3RzL1dl
YktpdEdMaWIvcmVzb3VyY2VzL2JsdWUtNDh4NDgucG5nIHwgQmluIDE1NyAtPiAwIGJ5dGVzCiAu
Li4vVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvcmVkLTMyeDMyLnBuZyAgfCBCaW4gMTU2IC0+
IDAgYnl0ZXMKIC4uLi9UZXN0V2ViS2l0QVBJL2dsaWIvVGVzdEV4cGVjdGF0aW9ucy5qc29uICB8
ICAgMyAtCiAyMCBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCA2MjkgZGVsZXRpb25z
KC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL3Jlc291cmNlcy9ibHVlLTQ4eDQ4LnBuZwogZGVsZXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvcmVkLTMyeDMyLnBuZwoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDMyMGI1YzAyYzllMC4uNDBmOTY2OTlkOTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQxNSw2ICs0MTUsOCBAQCBHRU5FUkFURV9HTElCX0FQ
SV9IRUFERVJTKFdlYktpdCBXZWJLaXRXZWJQcm9jZXNzRXh0ZW5zaW9uX0hFQURFUl9URU1QTEFU
RVMKICAgICAiLURFTkFCTEVfMjAyMl9HTElCX0FQST0kPEJPT0w6JHtFTkFCTEVfMjAyMl9HTElC
X0FQSX0+IgogKQogCitsaXN0KFJFTU9WRV9JVEVNIFdlYktpdEdUS19JTlNUQUxMRURfSEVBREVS
UyAke1dlYktpdEdUS19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvV2ViS2l0SW1hZ2UuaCkK
KwogaWYgKE5PVCBVU0VfR1RLNCkKICAgICBsaXN0KFJFTU9WRV9JVEVNIFdlYktpdEdUS19JTlNU
QUxMRURfSEVBREVSUyAke1dlYktpdEdUS19ERVJJVkVEX1NPVVJDRVNfRElSfS93ZWJraXQvd2Vi
a2l0LmgpCiAgICAgbGlzdChSRU1PVkVfSVRFTSBXZWJLaXRXZWJQcm9jZXNzRXh0ZW5zaW9uX0lO
U1RBTExFRF9IRUFERVJTICR7V2ViS2l0R1RLX0RFUklWRURfU09VUkNFU19ESVJ9L3dlYmtpdC93
ZWJraXQtd2ViLXByb2Nlc3MtZXh0ZW5zaW9uLmgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJSWNvbkxvYWRpbmdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJY29uTG9hZGluZ0NsaWVudC5oCmluZGV4IDI1N2Y3ZjUwZTM4ZC4uZDEz
ZjMxNjc0NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSWNv
bkxvYWRpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSWNv
bkxvYWRpbmdDbGllbnQuaApAQCAtMSw1ICsxLDQgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjYgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0y
NiwxMSArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkNhbGxiYWNrSUQuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtJY29uLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvVFpvbmVNYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVzcGFjZSBB
UEkgewpAQCAtNDIsMjEgKzM5LDEwIEBAIGNsYXNzIEljb25Mb2FkaW5nQ2xpZW50IHsKIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIH5JY29uTG9hZGluZ0NsaWVudCgpIHsgfQogCi0jaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdmlydHVhbCB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2Vi
Q29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoQVBJOjpEYXRhKik+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIHsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CiAgICAgfQotI2Vsc2UKLSAgICB2aXJ0dWFs
IHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9ySWNvbnMoY29uc3QgSGFzaE1hcDxXZWJLaXQ6OkNhbGxi
YWNrSUQsIFdlYkNvcmU6OkxpbmtJY29uPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNl
dDxXZWJLaXQ6OkNhbGxiYWNrSUQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotICAgIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
aWNvbkxvYWRlZChjb25zdCBXZWJLaXQ6OkNhbGxiYWNrSUQmLCBjb25zdCBXZWJDb3JlOjpMaW5r
SWNvbiYgaWNvbiwgQVBJOjpEYXRhKikKLSAgICB7Ci0gICAgfQotI2VuZGlmCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IDYyMzY2OTIzZTJlMy4uYmFi
MDE5ZDBkOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEyLCAyMDE3LCAyMDI2IElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTcgSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zOSwxNCAr
MzksNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVmUHRyQ2Fpcm8uaD4KICNlbmRpZgogCi0jaWYg
RU5BQkxFKDIwMjJfR0xJQl9BUEkpCi0jaW5jbHVkZSAiV2ViS2l0SW1hZ2VQcml2YXRlLmgiCi1X
VEZfSUdOT1JFX1dBUk5JTkdTX0lOX1RISVJEX1BBUlRZX0NPREVfQkVHSU4KLSNpbmNsdWRlIDxz
a2lhL2NvcmUvU2tCaXRtYXAuaD4KLSNpbmNsdWRlIDxza2lhL2NvcmUvU2tQaXhtYXAuaD4KLVdU
Rl9JR05PUkVfV0FSTklOR1NfSU5fVEhJUkRfUEFSVFlfQ09ERV9FTkQKLSNlbmRpZgotCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE4NCw3
ICsxNzYsNyBAQCB2b2lkIHdlYmtpdEZhdmljb25EYXRhYmFzZUdldEZhdmljb25JbnRlcm5hbChX
ZWJLaXRGYXZpY29uRGF0YWJhc2UqIGRhdGFiYXNlLCBjbwogewogICAgIGlmICghd2Via2l0RmF2
aWNvbkRhdGFiYXNlSXNPcGVuKGRhdGFiYXNlKSkgewogICAgICAgICBnX3Rhc2tfcmVwb3J0X25l
d19lcnJvcihkYXRhYmFzZSwgY2FsbGJhY2ssIHVzZXJEYXRhLCAwLAotICAgICAgICAgICAgV0VC
S0lUX0ZBVklDT05fREFUQUJBU0VfRVJST1IsIFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0VSUk9S
X05PVF9JTklUSUFMSVpFRCwgXygiRmF2aWNvbiBkYXRhYmFzZSBub3QgaW5pdGlhbGl6ZWQgeWV0
IikpOworICAgICAgICAgICAgV0VCS0lUX0ZBVklDT05fREFUQUJBU0VfRVJST1IsIFdFQktJVF9G
QVZJQ09OX0RBVEFCQVNFX0VSUk9SX05PVF9JTklUSUFMSVpFRCwgXygiRmF2aWNvbnMgZGF0YWJh
c2Ugbm90IGluaXRpYWxpemVkIHlldCIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MjcxLDk0ICsyNjMsNyBAQCBjYWlyb19zdXJmYWNlX3QqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNl
X2dldF9mYXZpY29uX2ZpbmlzaChXZWJLaXRGYXZpY29uRGF0YWJhcwogICAgIHJldHVybiBpbWFn
ZSA/IHNraWFJbWFnZVRvQ2Fpcm9TdXJmYWNlKCppbWFnZSkubGVha1JlZigpIDogbnVsbHB0cjsK
ICNlbmRpZgogfQotCi0jaWYgRU5BQkxFKDIwMjJfR0xJQl9BUEkpCi0vKioKLSAqIHdlYmtpdF9m
YXZpY29uX2RhdGFiYXNlX2dldF9wYWdlX2ljb25zOgotICogQGRhdGFiYXNlOiBhICNXZWJLaXRG
YXZpY29uRGF0YWJhc2UKLSAqIEBwYWdlX3VyaTogVVJJIG9mIHRoZSBwYWdlIHRvIGdldCBpY29u
cyBmb3IKLSAqIEBjYW5jZWxsYWJsZTogKG51bGxhYmxlKTogQSAjR0NhbmNlbGxhYmxlIGlvciAl
TlVMTAotICogQGNhbGxiYWNrOiAoc2NvcGUgYXN5bmMpIChudWxsYWJsZSk6IEEgI0dBc3luY1Jl
YWR5Q2FsbGJhY2sgdG8gaW52b2tlIHdoZW4gdGhlIHJlcXVlc3QKLSAqICAgIGlzIHNhdGlzZmll
ZCBvciAlTlVMTCB0byBkaXNjYXJkIHRoZSByZXN1bHQuCi0gKiBAdXNlcl9kYXRhOiBBZGRpdGlv
bmFsIGRhdGEgdG8gcGFzcyB0byBAY2FsbGJhY2suCi0gKgotICogT2J0YWlucyB0aGUgc2V0IG9m
IGljb25zIGZvciBhIHBhZ2UuCi0gKgotICogU3RhcnRzIGFuIGFzeW5jaHJvbm91cyBvcGVyYXRp
b24gdG8gb2J0YWluIHRoZSBzZXQgb2YgaWNvbnMgY2FjaGVkIGluIHRoZSBkYXRhYmFzZSBmb3Ig
YSBnaXZlbgotICogcGFnZSBVUkkuIEF2YWlsYWJsZSBpY29ucyB3aWxsIGJlIHJlYWQgZnJvbSB0
aGUgZGF0YWJhc2UgYW5kIHByb3ZpZGVkIGFzIGEgW3N0cnVjdEBJbWFnZUxpc3RdCi0gKiB0aGF0
IGNhbiBiZSByZXRyaWV2ZWQgdXNpbmcgW2lkQHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9w
YWdlX2ljb25zX2ZpbmlzaF0gaW4gdGhlIGNvbXBsZXRpb24KLSAqIEBjYWxsYmFjay4KLSAqCi0g
KiBTaW5jZTogMi41NAotICovCi12b2lkIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wYWdl
X2ljb25zKFdlYktpdEZhdmljb25EYXRhYmFzZSogZGF0YWJhc2UsIGNvbnN0IGdjaGFyKiBwYWdl
VVJJLCBHQ2FuY2VsbGFibGUqIGNhbmNlbGxhYmxlLCBHQXN5bmNSZWFkeUNhbGxiYWNrIGNhbGxi
YWNrLCBncG9pbnRlciB1c2VyRGF0YSkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9J
U19GQVZJQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChwYWdl
VVJJKTsKLQotICAgIGlmICghd2Via2l0RmF2aWNvbkRhdGFiYXNlSXNPcGVuKGRhdGFiYXNlKSkK
LSAgICAgICAgcmV0dXJuIGdfdGFza19yZXBvcnRfbmV3X2Vycm9yKGRhdGFiYXNlLCBjYWxsYmFj
aywgdXNlckRhdGEsIDAsIFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0VSUk9SLCBXRUJLSVRfRkFW
SUNPTl9EQVRBQkFTRV9FUlJPUl9OT1RfSU5JVElBTElaRUQsIF8oIkZhdmljb25zIGRhdGFiYXNl
IG5vdCBpbml0aWFsaXplZCB5ZXQiKSk7Ci0KLSAgICBjb25zdCBhdXRvIHVyaVN0cmluZyA9IFN0
cmluZzo6ZnJvbVVURjgocGFnZVVSSSk7Ci0gICAgaWYgKHVyaVN0cmluZy5zdGFydHNXaXRoKCJh
Ym91dDoiX3MpKQotICAgICAgICByZXR1cm4gZ190YXNrX3JlcG9ydF9uZXdfZXJyb3IoZGF0YWJh
c2UsIGNhbGxiYWNrLCB1c2VyRGF0YSwgMCwgV0VCS0lUX0ZBVklDT05fREFUQUJBU0VfRVJST1Is
IFdFQktJVF9GQVZJQ09OX0RBVEFCQVNFX0VSUk9SX0ZBVklDT05fTk9UX0ZPVU5ELCBfKCJQYWdl
ICVzIGRvZXMgbm90IGhhdmUgYSBmYXZpY29uIiksIHBhZ2VVUkkpOwotCi0gICAgYXV0byB0YXNr
ID0gYWRvcHRHUmVmKGdfdGFza19uZXcoZGF0YWJhc2UsIGNhbmNlbGxhYmxlLCBjYWxsYmFjaywg
dXNlckRhdGEpKTsKLSAgICBkYXRhYmFzZS0+cHJpdi0+aWNvbkRhdGFiYXNlLT5sb2FkSWNvbnNG
b3JQYWdlVVJMKHVyaVN0cmluZywgSWNvbkRhdGFiYXNlOjpBbGxvd0RhdGFiYXNlV3JpdGU6Ok5v
LCBbdGFzayA9IFdURjo6bW92ZSh0YXNrKV0oVmVjdG9yPFBsYXRmb3JtSW1hZ2VQdHI+JiYgaWNv
bnMpIHsKLSAgICAgICAgYXV0byBpbWFnZXMgPSBpY29ucy5tYXAoW10oUGxhdGZvcm1JbWFnZVB0
ciBpbWFnZSkgLT4gR1JlZlB0cjxXZWJLaXRJbWFnZT4gewotICAgICAgICAgICAgU2tQaXhtYXAg
cGl4bWFwOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW1hZ2UtPnBlZWtQaXhlbHMoJnBp
eG1hcCkpOwotCi0gICAgICAgICAgICBpZiAoaW1hZ2UtPmNvbG9yVHlwZSgpICE9IFNrQ29sb3JU
eXBlOjprTjMyX1NrQ29sb3JUeXBlIHx8ICFpbWFnZS0+Y29sb3JTcGFjZSgpLT5pc1NSR0IoKSkg
W1t1bmxpa2VseV1dIHsKLSAgICAgICAgICAgICAgICBhdXRvIG5ld0ltYWdlSW5mbyA9IFNrSW1h
Z2VJbmZvOjpNYWtlUzMyKGltYWdlLT53aWR0aCgpLCBpbWFnZS0+aGVpZ2h0KCksIFNrQWxwaGFU
eXBlOjprUHJlbXVsX1NrQWxwaGFUeXBlKTsKLSAgICAgICAgICAgICAgICBTa0JpdG1hcCBkZXN0
aW5hdGlvbjsKLSAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbi5hbGxvY1BpeGVscyhuZXdJbWFn
ZUluZm8pOwotICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGRlc3RpbmF0aW9uLndyaXRl
UGl4ZWxzKHBpeG1hcCkpOwotICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnNldEltbXV0YWJs
ZSgpOwotCi0gICAgICAgICAgICAgICAgLy8gUmVwbGFjZSBpbWFnZSB3aXRoIHRoZSBjb252ZXJ0
ZWQgb25lLCBhbmQgcmUtZmlsbCBwaXhtYXAuCi0gICAgICAgICAgICAgICAgaW1hZ2UgPSBTa0lt
YWdlczo6UmFzdGVyRnJvbUJpdG1hcChkZXN0aW5hdGlvbik7Ci0gICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQoaW1hZ2UtPnBlZWtQaXhlbHMoJnBpeG1hcCkpOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpbWFnZS0+Y29sb3JUeXBlKCkgPT0gU2tDb2xv
clR5cGU6OmtOMzJfU2tDb2xvclR5cGUpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaW1h
Z2UtPmNvbG9yU3BhY2UoKS0+aXNTUkdCKCkpOwotCi0gICAgICAgICAgICBpbnQgd2lkdGggPSBw
aXhtYXAud2lkdGgoKTsKLSAgICAgICAgICAgIGludCBoZWlnaHQgPSBwaXhtYXAuaGVpZ2h0KCk7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBzdHJpZGUgPSBwaXhtYXAucm93Qnl0ZXMoKTsKLSAgICAg
ICAgICAgIGF1dG8gYnl0ZXMgPSBhZG9wdEdSZWYoZ19ieXRlc19uZXdfd2l0aF9mcmVlX2Z1bmMo
cGl4bWFwLmFkZHIzMigpLCBwaXhtYXAuY29tcHV0ZUJ5dGVTaXplKCksIFtdKHZvaWQqIGRhdGEp
IHsKLSAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxTa0ltYWdlKj4oZGF0YSktPnVucmVmKCk7
Ci0gICAgICAgICAgICB9LCBpbWFnZS5yZWxlYXNlKCkpKTsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdEdSZWYod2Via2l0SW1hZ2VOZXcod2lkdGgsIGhlaWdodCwgc3RyaWRlLCBXVEY6Om1vdmUo
Ynl0ZXMpKSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGdfdGFza19yZXR1cm5fcG9pbnRlcih0
YXNrLmdldCgpLCB3ZWJraXRJbWFnZUxpc3RDcmVhdGUoV1RGOjptb3ZlKGltYWdlcykpLCBbXSh2
b2lkKiBkYXRhKSB7Ci0gICAgICAgICAgICB3ZWJraXRfaW1hZ2VfbGlzdF91bnJlZihzdGF0aWNf
Y2FzdDxXZWJLaXRJbWFnZUxpc3QqPihkYXRhKSk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQot
Ci0vKioKLSAqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9wYWdlX2ljb25zX2ZpbmlzaDoK
LSAqIEBkYXRhYmFzZTogQSAjV2ViS2l0RmF2aWNvbkRhdGFiYXNlCi0gKiBAcmVzdWx0OiBBICNH
QXN5bmNSZXN1bHQgb2J0YWluZWQgZnJvbSB0aGUgI0dBc3luY1JlYWR5Q2FsbGJhY2sgcGFzc2Vk
IHRvIFtpZEB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfcGFnZV9pY29uc10uCi0gKiBAZXJy
b3I6IChudWxsYWJsZSk6IFJldHVybiBsb2NhdGlvbiBmb3IgYW4gZXJyb3Igb3IgJU5VTEwuCi0g
KgotICogRmluaXNoZXMgYW4gb3BlcmF0aW9uIHN0YXJ0ZWQgd2l0aCBbaWRAd2Via2l0X2Zhdmlj
b25fZGF0YWJhc2VfZ2V0X3BhZ2VfaWNvbnNdLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogdGhlIHNldCBvZiBpY29ucyBmb3IgdGhlIHBhZ2UsIG9yICVOVUxMIGluIGNhc2Ugb2Yg
ZXJyb3IuCi0gKgotICogU2luY2U6IDIuNTQKLSAqLwotV2ViS2l0SW1hZ2VMaXN0KiB3ZWJraXRf
ZmF2aWNvbl9kYXRhYmFzZV9nZXRfcGFnZV9pY29uc19maW5pc2goV2ViS2l0RmF2aWNvbkRhdGFi
YXNlKiBkYXRhYmFzZSwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIEdFcnJvcioqIGVycm9yKQotewot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GQVZJQ09OX0RBVEFCQVNFKGRhdGFi
YXNlKSwgbnVsbHB0cik7Ci0KLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0SW1hZ2VMaXN0
Kj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKEdfVEFTSyhyZXN1bHQpLCBlcnJvcikpOwotfQot
I2VuZGlmIC8vIEVOQUJMRSgyMDIyX0dMSUJfQVBJKQotI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykK
KyNlbmRpZgogCiAvKioKICAqIHdlYmtpdF9mYXZpY29uX2RhdGFiYXNlX2dldF9mYXZpY29uX3Vy
aToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZh
dmljb25EYXRhYmFzZS5oLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0RmF2aWNvbkRhdGFiYXNlLmguaW4KaW5kZXggNjgxZTIyNjE3ZjllLi4yZDhmNGUyMTY2NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZhdmlj
b25EYXRhYmFzZS5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEZhdmljb25EYXRhYmFzZS5oLmluCkBAIC0zMiw5ICszMiw2IEBACiAjZWxzZQogI2luY2x1
ZGUgPGNhaXJvLmg+CiAjZW5kaWYKLSNpZiBFTkFCTEUoMjAyMl9HTElCX0FQSSkKLSNpbmNsdWRl
IDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJLaXRJbWFnZS5oPgotI2VuZGlmCiAjZW5kaWYKIAog
R19CRUdJTl9ERUNMUwpAQCAtOTcsMjEgKzk0LDYgQEAgd2Via2l0X2Zhdmljb25fZGF0YWJhc2Vf
Z2V0X2Zhdmljb25fZmluaXNoIChXZWJLaXRGYXZpY29uRGF0YWJhc2UgKmRhdGFiYXNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAg
ICAgICAgKnJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0Vycm9yICAgICAgICAgICAgICAgKiplcnJvcik7CiAjZW5kaWYKLQotI2lmIEVOQUJMRSgy
MDIyX0dMSUJfQVBJKQotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9n
ZXRfcGFnZV9pY29ucyAgICAgKFdlYktpdEZhdmljb25EYXRhYmFzZSAqZGF0YWJhc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAg
ICAgICAqcGFnZV91cmksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdDYW5jZWxsYWJsZSAgICAgICAgICAqY2FuY2VsbGFibGUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1JlYWR5Q2FsbGJhY2sgICAgY2FsbGJh
Y2ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVy
ICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKLQotV0VCS0lUX0FQSSBXZWJLaXRJbWFnZUxpc3Qg
Kgotd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X3BhZ2VfaWNvbnNfZmluaXNoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZhdmljb25EYXRhYmFz
ZSAgKmRhdGFiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHQXN5bmNSZXN1bHQgICAgICAgICAgICpyZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICAgICAqKmVycm9yKTsKLSNl
bmRpZgogI2VuZGlmCiAKIFdFQktJVF9BUEkgZ2NoYXIgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SWNvbkxvYWRpbmdDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SWNvbkxvYWRpbmdDbGllbnQuY3Bw
CmluZGV4IGJmMzgzODJkYjg0Ni4uMGM1ODhiNDA0MmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJY29uTG9hZGluZ0NsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SWNvbkxvYWRpbmdDbGllbnQu
Y3BwCkBAIC0yMSw4ICsyMSw2IEBACiAjaW5jbHVkZSAiV2ViS2l0SWNvbkxvYWRpbmdDbGllbnQu
aCIKIAogI2luY2x1ZGUgIkFQSUljb25Mb2FkaW5nQ2xpZW50LmgiCi0jaW5jbHVkZSAiUGFnZUxv
YWRTdGF0ZS5oIgotI2luY2x1ZGUgIldlYktpdEZhdmljb25EYXRhYmFzZVByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi9UWm9uZU1hbGxv
Y0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HV2Vha1B0ci5oPgpAQCAtMzgsNDIgKzM2
LDI5IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBnZXRMb2FkRGVjaXNp
b25Gb3JJY29ucyhjb25zdCBIYXNoTWFwPFdlYktpdDo6Q2FsbGJhY2tJRCwgV2ViQ29yZTo6TGlu
a0ljb24+JiBpY29ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFdlYktpdDo6Q2Fs
bGJhY2tJRD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIG92ZXJyaWRlCisgICAgdm9pZCBnZXRM
b2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiBpY29uLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQVBJOjpEYXRhKik+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgbV9wZW5kaW5nSWNv
bnMuY2xlYXIoKTsKLSAgICAgICAgd2Via2l0V2ViVmlld0dldExvYWREZWNpc2lvbkZvckljb25z
KG1fd2ViVmlldywgaWNvbnMsIFt0aGlzLCB3ZWFrV2ViVmlldyA9IEdXZWFrUHRyIHsgbV93ZWJW
aWV3IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
SGFzaFNldDxDYWxsYmFja0lEPiYmIGxvYWRJZGVudGlmaWVycykgbXV0YWJsZSB7Ci0gICAgICAg
ICAgICBpZiAoIXdlYWtXZWJWaWV3KQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcih7IH0pOworICAgICAgICAvLyBXZWJDb3JlIGNhbiBzZW5kIG5vbiBIVFRQIGljb25z
LgorICAgICAgICBpZiAoIWljb24udXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGxvYWRJZGVudGlmaWVycy5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgZmluaXNoZWRMb2FkaW5nSWNvbnMoKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBtX3BlbmRpbmdJY29ucyA9IGxvYWRJZGVudGlmaWVyczsKKyAg
ICAgICAgV2ViQ29yZTo6TGlua0ljb24gY29waWVkSWNvbiA9IGljb247CisgICAgICAgIHdlYmtp
dFdlYlZpZXdHZXRMb2FkRGVjaXNpb25Gb3JJY29uKG1fd2ViVmlldywgaWNvbiwgW3dlYWtXZWJW
aWV3ID0gR1dlYWtQdHI8V2ViS2l0V2ViVmlldz4obV93ZWJWaWV3KSwgaWNvbiA9IFdURjo6bW92
ZShjb3BpZWRJY29uKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEY6Om1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoYm9vbCBsb2FkSWNvbikgbXV0YWJsZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtX
ZWJWaWV3IHx8ICFsb2FkSWNvbikgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG51bGxwdHIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjptb3ZlKGxvYWRJZGVudGlmaWVycykpOwor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoW3dlYWtXZWJWaWV3ID0gV1RGOjptb3ZlKHdl
YWtXZWJWaWV3KSwgaWNvbiA9IFdURjo6bW92ZShpY29uKV0gKEFQSTo6RGF0YSogaWNvbkRhdGEp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIXdlYWtXZWJWaWV3IHx8ICFpY29uRGF0YSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdTZXRJ
Y29uKHdlYWtXZWJWaWV3LmdldCgpLCBpY29uLCAqaWNvbkRhdGEpOworICAgICAgICAgICAgfSk7
CiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIHZvaWQgaWNvbkxvYWRlZChjb25zdCBXZWJLaXQ6
OkNhbGxiYWNrSUQmIGxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYgaWNv
biwgQVBJOjpEYXRhKiBpY29uRGF0YSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIG1fcGVuZGlu
Z0ljb25zLnJlbW92ZShsb2FkSWRlbnRpZmllcik7Ci0KLSAgICAgICAgaWYgKGljb25EYXRhKQot
ICAgICAgICAgICAgd2Via2l0V2ViVmlld1NldEljb24obV93ZWJWaWV3LCBpY29uLCAqaWNvbkRh
dGEpOwotCi0gICAgICAgIGlmIChtX3BlbmRpbmdJY29ucy5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBmaW5pc2hlZExvYWRpbmdJY29ucygpOwotICAgIH0KLQotICAgIHZvaWQgZmluaXNoZWRMb2Fk
aW5nSWNvbnMoKQotICAgIHsKLSNpZiBFTkFCTEUoMjAyMl9HTElCX0FQSSkKLSAgICAgICAgd2Vi
a2l0V2ViVmlld1VwZGF0ZVBhZ2VJY29ucyhtX3dlYlZpZXcpOwotI2VuZGlmCi0gICAgfQotCi0g
ICAgSGFzaFNldDxDYWxsYmFja0lEPiBtX3BlbmRpbmdJY29uczsKLQogICAgIFdlYktpdFdlYlZp
ZXcqIG1fd2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEltYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEltYWdlLmNwcAppbmRleCBjOGY0YTM2ZWRlODAuLmY0NjBkOTUxNzc1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW1hZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdlLmNwcApA
QCAtNDE4LDExOSArNDE4LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2ltYWdlX2dsb2FkYWJsZV9p
Y29uX2ludGVyZmFjZV9pbml0KEdMb2FkYWJsZUljb25JZmFjZSogaWZhY2UKICAgICBpZmFjZS0+
bG9hZF9maW5pc2ggPSB3ZWJraXRJbWFnZUxvYWRGaW5pc2g7CiB9CiAKLS8qKgotICogV2ViS2l0
SW1hZ2VMaXN0OiAocmVmLWZ1bmMgd2Via2l0X2ltYWdlX2xpc3RfcmVmKSAodW5yZWYtZnVuYyB3
ZWJraXRfaW1hZ2VfbGlzdF91bnJlZikKLSAqCi0gKiBSZXByZXNlbnRzIGEgc2V0IG9mIHJlbGF0
ZWQgaW1hZ2VzLgotICoKLSAqIFRoZSBsaXN0IHN1cHBvcnRzIGl0ZXJhdGluZyBvdmVyIGVhY2gg
W2NsYXNzQEltYWdlXToKLSAqCi0gKiBgYGBjCi0gKiBnX2F1dG9wdHIoV2ViS2l0SW1hZ2VMaXN0
KSBsaXN0ID0gd2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X3BhZ2VfaWNvbnNfZmluaXNoKGRh
dGFiYXNlLCByZXN1bHQsIE5VTEwpOwotICogZm9yIChnc2l6ZSBpID0gMDsgaSA8IHdlYmtpdF9p
bWFnZV9saXN0X2dldF9sZW5ndGgobGlzdCk7IGkrKykgewotICogICAgIFdlYktpdEltYWdlICpp
bWFnZSA9IHdlYmtpdF9pbWFnZV9saXN0X2dldChsaXN0LCBpKTsKLSAqICAgICAvLyBEbyBzb21l
dGhpbmcgd2l0aCAiaW1hZ2UiLgotICogfQotICogYGBgCi0gKgotICogSW1hZ2UgbGlzdHMgY2Fu
IGJlIG9idGFpbmVkIGFzIHRoZSByZXN1bHQgb2YgW2lkQHdlYmtpdF9mYXZpY29uX2RhdGFiYXNl
X2dldF9wYWdlX2ljb25zXS4KLSAqCi0gKiBTaW5jZTogMi41NAotICovCi0KLXN0cnVjdCBfV2Vi
S2l0SW1hZ2VMaXN0IHsKLSAgICBWZWN0b3I8R1JlZlB0cjxXZWJLaXRJbWFnZT4+IGltYWdlczsK
LSAgICBpbnQgcmVmZXJlbmNlQ291bnQgeyAxIH07Ci19OwotCi1HX0RFRklORV9CT1hFRF9UWVBF
KFdlYktpdEltYWdlTGlzdCwgd2Via2l0X2ltYWdlX2xpc3QsIHdlYmtpdF9pbWFnZV9saXN0X3Jl
Ziwgd2Via2l0X2ltYWdlX2xpc3RfdW5yZWYpCi0KLVdlYktpdEltYWdlTGlzdCogd2Via2l0SW1h
Z2VMaXN0Q3JlYXRlKFZlY3RvcjxHUmVmUHRyPFdlYktpdEltYWdlPj4mJiBpbWFnZXMpCi17Ci0g
ICAgV2ViS2l0SW1hZ2VMaXN0KiBpbWFnZUxpc3QgPSBzdGF0aWNfY2FzdDxXZWJLaXRJbWFnZUxp
c3QqPihmYXN0TWFsbG9jKHNpemVvZihXZWJLaXRJbWFnZUxpc3QpKSk7Ci0gICAgbmV3IChpbWFn
ZUxpc3QpIFdlYktpdEltYWdlTGlzdCB7IFdURjo6bW92ZShpbWFnZXMpIH07Ci0gICAgcmV0dXJu
IGltYWdlTGlzdDsKLX0KLQotLyoqCi0gKiB3ZWJraXRfaW1hZ2VfbGlzdF9yZWY6Ci0gKiBAaW1h
Z2VfbGlzdDogYSAjV2ViS2l0SW1hZ2VMaXN0Ci0gKgotICogQXRvbWljYWxseSBhY3F1aXJlcyBh
IHJlZmVyZW5jZSBvbiB0aGUgZ2l2ZW4gQGltYWdlX2xpc3QuCi0gKgotICogVGhpcyBmdW5jdGlv
biBpcyBNVC1zYWZlIGFuZCBtYXkgYmUgY2FsbGVkIGZyb20gYW55IHRocmVhZC4KLSAqCi0gKiBS
ZXR1cm5zOiBUaGUgc2FtZSBAaW1hZ2VfbGlzdCB3aXRoIGFuIGFkZGl0aW9uYWwgcmVmZXJlbmNl
LgotICoKLSAqIFNpbmNlOiAyLjU0Ci0gKi8KLVdlYktpdEltYWdlTGlzdCogd2Via2l0X2ltYWdl
X2xpc3RfcmVmKFdlYktpdEltYWdlTGlzdCAqaW1hZ2VMaXN0KQotewotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKGltYWdlTGlzdCwgbnVsbHB0cik7Ci0gICAgZ19hdG9taWNfaW50X2luYygmaW1h
Z2VMaXN0LT5yZWZlcmVuY2VDb3VudCk7Ci0gICAgcmV0dXJuIGltYWdlTGlzdDsKLX0KLQotLyoq
Ci0gKiB3ZWJraXRfaW1hZ2VfbGlzdF91bnJlZjoKLSAqIEBpbWFnZV9saXN0OiBhICNXZWJLaXRJ
bWFnZUxpc3QKLSAqCi0gKiBBdG9taWNhbGx5IHJlbGVhc2VzIGEgcmVmZXJlbmNlIG9uIHRoZSBn
aXZlbiBAaW1hZ2VfbGlzdC4KLSAqCi0gKiBJZiB0aGUgcmVmZXJlbmNlIHdhcyB0aGUgbGFzdCwg
dGhlIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGgKLSAqIHRoZSBAaW1hZ2VfbGlzdCBhcmUgZnJl
ZWQuCi0gKgotICogVGhpcyBmdW5jdGlvbiBpcyBNVC1zYWZlIGFuZCBtYXkgYmUgY2FsbGVkIGZy
b20gYW55IHRocmVhZC4KLSAqCi0gKiBTaW5jZTogMi41NAotICovCi12b2lkIHdlYmtpdF9pbWFn
ZV9saXN0X3VucmVmKFdlYktpdEltYWdlTGlzdCAqaW1hZ2VMaXN0KQotewotICAgIGdfcmV0dXJu
X2lmX2ZhaWwoaW1hZ2VMaXN0KTsKLSAgICBpZiAoZ19hdG9taWNfaW50X2RlY19hbmRfdGVzdCgm
aW1hZ2VMaXN0LT5yZWZlcmVuY2VDb3VudCkpIHsKLSAgICAgICAgaW1hZ2VMaXN0LT5+V2ViS2l0
SW1hZ2VMaXN0KCk7Ci0gICAgICAgIGZhc3RGcmVlKGltYWdlTGlzdCk7Ci0gICAgfQotfQotCi0v
KioKLSAqIHdlYmtpdF9pbWFnZV9saXN0X2dldF9sZW5ndGg6Ci0gKiBAaW1hZ2VfbGlzdDogQSAj
V2ViS2l0SW1hZ2VMaXN0Ci0gKgotICogR2V0cyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRo
ZSBpbWFnZSBsaXN0LgotICoKLSAqIFJldHVybnM6IG51bWJlciBvZiBlbGVtZW50cy4KLSAqCi0g
KiBTaW5jZTogMi41NAotICovCi1nc2l6ZSB3ZWJraXRfaW1hZ2VfbGlzdF9nZXRfbGVuZ3RoKFdl
YktpdEltYWdlTGlzdCAqaW1hZ2VMaXN0KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGlt
YWdlTGlzdCwgMCk7Ci0KLSAgICByZXR1cm4gaW1hZ2VMaXN0LT5pbWFnZXMuc2l6ZSgpOwotfQot
Ci0vKioKLSAqIHdlYmtpdF9pbWFnZV9saXN0X2dldDoKLSAqIEBpbWFnZV9saXN0OiBBICNXZWJL
aXRJbWFnZUxpc3QKLSAqIEBpbmRleDogaW5kZXggb2YgdGhlIGltYWdlCi0gKgotICogR2V0cyBh
biBpbWFnZSBnaXZlbiBpdHMgaW5kZXguCi0gKgotICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBUaGUgaW1hZ2UgYXQgQGluZGV4LgotICoKLSAqIFNpbmNlOiAyLjU0Ci0gKi8KLVdlYktpdElt
YWdlKiB3ZWJraXRfaW1hZ2VfbGlzdF9nZXQoV2ViS2l0SW1hZ2VMaXN0ICppbWFnZUxpc3QsIGdz
aXplIGluZGV4KQotewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGltYWdlTGlzdCwgbnVsbHB0
cik7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoaW5kZXggPCBpbWFnZUxpc3QtPmltYWdlcy5z
aXplKCksIG51bGxwdHIpOwotCi0gICAgcmV0dXJuIGltYWdlTGlzdC0+aW1hZ2VzW2luZGV4XS5n
ZXQoKTsKLX0KLQotbmFtZXNwYWNlIFdURiB7Ci1XVEZfREVGSU5FX0dSRUZfVFJBSVRTKFdlYktp
dEltYWdlTGlzdCwgd2Via2l0X2ltYWdlX2xpc3RfcmVmLCB3ZWJraXRfaW1hZ2VfbGlzdF91bnJl
ZikKLX0KLQogI2VuZGlmIC8vIEVOQUJMRSgyMDIyX0dMSUJfQVBJKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW1hZ2UuaC5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdlLmguaW4KaW5kZXggNzBhNWNjYWU3
OTVhLi5hY2RlMGJiMjY0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEltYWdlLmguaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0SW1hZ2UuaC5pbgpAQCAtMzAsNDMgKzMwLDE0IEBACiAKIEdfQkVHSU5fREVD
TFMKIAotI2RlZmluZSBXRUJLSVRfVFlQRV9JTUFHRSAgICAgICh3ZWJraXRfaW1hZ2VfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1RZUEVfSU1BR0UgICAgICAgICAgICAgICAgICAgICAgICAg
ICh3ZWJraXRfaW1hZ2VfZ2V0X3R5cGUoKSkKIAogV0VCS0lUX0RFQ0xBUkVfRklOQUxfVFlQRSAo
V2ViS2l0SW1hZ2UsIHdlYmtpdF9pbWFnZSwgV0VCS0lULCBJTUFHRSwgR09iamVjdCkKIAotV0VC
S0lUX0FQSSBpbnQKLXdlYmtpdF9pbWFnZV9nZXRfd2lkdGggICAgICAgICAoV2ViS2l0SW1hZ2Ug
KmltYWdlKTsKLQotV0VCS0lUX0FQSSBpbnQKLXdlYmtpdF9pbWFnZV9nZXRfaGVpZ2h0ICAgICAg
ICAoV2ViS2l0SW1hZ2UgKmltYWdlKTsKLQotV0VCS0lUX0FQSSBndWludAotd2Via2l0X2ltYWdl
X2dldF9zdHJpZGUgICAgICAgIChXZWJLaXRJbWFnZSAqaW1hZ2UpOwotCi1XRUJLSVRfQVBJIEdC
eXRlcyAqCi13ZWJraXRfaW1hZ2VfYXNfYnl0ZXMgICAgICAgICAgKFdlYktpdEltYWdlICppbWFn
ZSk7Ci0KLSNkZWZpbmUgV0VCS0lUX1RZUEVfSU1BR0VfTElTVCAod2Via2l0X2ltYWdlX2xpc3Rf
Z2V0X3R5cGUoKSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEltYWdlTGlzdCBXZWJLaXRJbWFn
ZUxpc3Q7Ci0KLVdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9pbWFnZV9saXN0X2dldF90eXBlICAg
ICAodm9pZCkgR19HTlVDX0NPTlNUOwotCi1XRUJLSVRfQVBJIFdlYktpdEltYWdlTGlzdCAqCi13
ZWJraXRfaW1hZ2VfbGlzdF9yZWYgICAgICAgICAgKFdlYktpdEltYWdlTGlzdCAqaW1hZ2VfbGlz
dCk7Ci0KLVdFQktJVF9BUEkgdm9pZAotd2Via2l0X2ltYWdlX2xpc3RfdW5yZWYgICAgICAgIChX
ZWJLaXRJbWFnZUxpc3QgKmltYWdlX2xpc3QpOwotCi1XRUJLSVRfQVBJIGdzaXplCi13ZWJraXRf
aW1hZ2VfbGlzdF9nZXRfbGVuZ3RoICAgKFdlYktpdEltYWdlTGlzdCAqaW1hZ2VfbGlzdCk7Ci0K
LVdFQktJVF9BUEkgV2ViS2l0SW1hZ2UgKgotd2Via2l0X2ltYWdlX2xpc3RfZ2V0ICAgICAgICAg
IChXZWJLaXRJbWFnZUxpc3QgKmltYWdlX2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdzaXplICAgICAgICAgICAgaW5kZXgpOwotCi1HX0RFRklORV9BVVRPUFRSX0NMRUFO
VVBfRlVOQyhXZWJLaXRJbWFnZUxpc3QsIHdlYmtpdF9pbWFnZV9saXN0X3VucmVmKQorV0VCS0lU
X0FQSSBpbnQgICAgICAgICAgd2Via2l0X2ltYWdlX2dldF93aWR0aCAgKFdlYktpdEltYWdlICpp
bWFnZSk7CitXRUJLSVRfQVBJIGludCAgICAgICAgICB3ZWJraXRfaW1hZ2VfZ2V0X2hlaWdodCAo
V2ViS2l0SW1hZ2UgKmltYWdlKTsKK1dFQktJVF9BUEkgZ3VpbnQgICAgICAgIHdlYmtpdF9pbWFn
ZV9nZXRfc3RyaWRlIChXZWJLaXRJbWFnZSAqaW1hZ2UpOworV0VCS0lUX0FQSSBHQnl0ZXMgICAg
ICAqd2Via2l0X2ltYWdlX2FzX2J5dGVzICAgKFdlYktpdEltYWdlICppbWFnZSk7CiAKIEdfRU5E
X0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEltYWdlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0SW1hZ2VQcml2YXRlLmgKaW5kZXggZTU0ODgzOWZiODQwLi5kMjc4ZjYyY2ZhOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdlUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEltYWdlUHJp
dmF0ZS5oCkBAIC0yNCw5ICsyNCw0IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCi1uYW1lc3BhY2UgV1RGIHsKLVdU
Rl9ERUNMQVJFX0dSRUZfVFJBSVRTKFdlYktpdEltYWdlTGlzdCkKLX0KLQogV0tfRVhQT1JUIFdl
YktpdEltYWdlKiB3ZWJraXRJbWFnZU5ldyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIGd1aW50IHN0
cmlkZSwgR1JlZlB0cjxHQnl0ZXM+JiYpOwotV2ViS2l0SW1hZ2VMaXN0KiB3ZWJraXRJbWFnZUxp
c3RDcmVhdGUoVmVjdG9yPEdSZWZQdHI8V2ViS2l0SW1hZ2U+PiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggMWYzY2Q1
ODNlOTgxLi45ZTYzZDYyYTM2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0yNTMsMTAgKzI1Myw2IEBAIGVudW0gewog
ICAgIFBST1BfVEhFTUVfQ09MT1IsCiAgICAgUFJPUF9JU19JTU1FUlNJVkVfTU9ERV9FTkFCTEVE
LAogCi0jaWYgUExBVEZPUk0oR1RLKSAmJiBFTkFCTEUoMjAyMl9HTElCX0FQSSkKLSAgICBQUk9Q
X1BBR0VfSUNPTlMsCi0jZW5kaWYKLQogICAgIE5fUFJPUEVSVElFUywKIH07CiAKQEAgLTQyNCw5
ICs0MjAsNiBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKIAogICAgIENTdHJpbmcg
ZmF2aWNvblVSSTsKICAgICB1bnNpZ25lZCBsb25nIGZhdmljb25DaGFuZ2VkSGFuZGxlcklEOwot
I2lmIEVOQUJMRSgyMDIyX0dMSUJfQVBJKQotICAgIEdSZWZQdHI8V2ViS2l0SW1hZ2VMaXN0PiBw
YWdlSWNvbnM7Ci0jZW5kaWYKICNlbmRpZgogCiAgICAgR1JlZlB0cjxXZWJLaXRBdXRoZW50aWNh
dGlvblJlcXVlc3Q+IGF1dGhlbnRpY2F0aW9uUmVxdWVzdDsKQEAgLTc3MiwxOCArNzY1LDcgQEAg
c3RhdGljIHZvaWQgZmF2aWNvbkNoYW5nZWRDYWxsYmFjayhXZWJLaXRGYXZpY29uRGF0YWJhc2Uq
LCBjb25zdCBjaGFyKiBwYWdlVVJJLAogCiAgICAgd2Via2l0V2ViVmlld1VwZGF0ZUZhdmljb25V
Ukkod2ViVmlldywgZmF2aWNvblVSSSk7CiB9Ci0KLSNpZiBFTkFCTEUoMjAyMl9HTElCX0FQSSkK
LXN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdVcGRhdGVQYWdlSWNvbnMoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgR1JlZlB0cjxXZWJLaXRJbWFnZUxpc3Q+JiYgcGFnZUljb25zKQotewotICAgIGlm
IChwYWdlSWNvbnMgPT0gd2ViVmlldy0+cHJpdi0+cGFnZUljb25zKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB3ZWJWaWV3LT5wcml2LT5wYWdlSWNvbnMgPSBwYWdlSWNvbnM7Ci0gICAgZ19vYmpl
Y3Rfbm90aWZ5X2J5X3BzcGVjKEdfT0JKRUNUKHdlYlZpZXcpLCBzT2JqUHJvcGVydGllc1tQUk9Q
X1BBR0VfSUNPTlNdKTsKLX0KICNlbmRpZgotI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAogc3Rh
dGljIGJvb2wgd2Via2l0V2ViVmlld0lzQ29uc3RydWN0ZWQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKQEAgLTEyNDUsMTEgKzEyMjcsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAg
IGNhc2UgUFJPUF9JU19JTU1FUlNJVkVfTU9ERV9FTkFCTEVEOgogICAgICAgICBnX3ZhbHVlX3Nl
dF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfaW1tZXJzaXZlX21vZGVfZW5hYmxl
ZCh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOwotI2lmIFBMQVRGT1JNKEdUSykgJiYgRU5BQkxF
KDIwMjJfR0xJQl9BUEkpCi0gICAgY2FzZSBQUk9QX1BBR0VfSUNPTlM6Ci0gICAgICAgIGdfdmFs
dWVfc2V0X2JveGVkKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWNvbnMod2ViVmll
dykpOwotICAgICAgICBicmVhazsKLSNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsK
ICAgICB9CkBAIC0xNDY5LDIyICsxNDQ2LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAg
ICBudWxscHRyLCBudWxscHRyLAogICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKTsK
ICNlbmRpZgotCi0jaWYgRU5BQkxFKDIwMjJfR0xJQl9BUEkpCi0gICAgLyoqCi0gICAgICogV2Vi
S2l0V2ViVmlldzpwYWdlLWljb25zOiAoYXR0cmlidXRlcyBvcmcuZ3RrLlByb3BlcnR5LmdldD13
ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWNvbnMpIChnZXR0ZXIgZ2V0X3BhZ2VfaWNvbnMpOgot
ICAgICAqCi0gICAgICogVGhlIHBhZ2UgaWNvbnMgKGZhdmljb25zKSBhc3NvY2lhdGVkIHRvIHRo
ZSBjdXJyZW50bHkgbG9hZGVkIGNvbnRlbnQsIGlmIGFueS4KLSAgICAgKgotICAgICAqIFNpbmNl
OiAyLjU0Ci0gICAgICovCi0gICAgc09ialByb3BlcnRpZXNbUFJPUF9QQUdFX0lDT05TXSA9IGdf
cGFyYW1fc3BlY19ib3hlZCgKLSAgICAgICAgInBhZ2UtaWNvbnMiLAotICAgICAgICBudWxscHRy
LCBudWxscHRyLAotICAgICAgICBXRUJLSVRfVFlQRV9JTUFHRV9MSVNULAotICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpOwogI2VuZGlmCi0jZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogCiAg
ICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzp1cmk6CkBAIC0yNzcwLDY2ICsyNzMyLDIyIEBA
IHZvaWQgd2Via2l0V2ViVmlld0xvYWRGYWlsZWRXaXRoVExTRXJyb3JzKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIGNvbnN0IGNoYXIqIGZhCiB9CiAKICNpZiBQTEFURk9STShHVEspCi12b2lkIHdl
YmtpdFdlYlZpZXdHZXRMb2FkRGVjaXNpb25Gb3JJY29ucyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBjb25zdCBIYXNoTWFwPENhbGxiYWNrSUQsIFdlYkNvcmU6OkxpbmtJY29uPiYgaWNvbnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJLaXQ6OkNhbGxiYWNrSUQ+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCB3ZWJraXRXZWJWaWV3R2V0TG9hZERlY2lzaW9uRm9ySWNv
bihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBMaW5rSWNvbiYgaWNvbiwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzdHJ1Y3QgQ2FsbGJhY2tB
Z2dyZWdhdG9yIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENhbGxiYWNrQWdn
cmVnYXRvcj4gIHsKLSAgICAgICAgZXhwbGljaXQgQ2FsbGJhY2tBZ2dyZWdhdG9yKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJLaXQ6OkNhbGxiYWNrSUQ+JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQotICAgICAgICAgICAgOiBtX2NvbXBsZXRpb25IYW5kbGVyKFdURjo6bW92ZShj
b21wbGV0aW9uSGFuZGxlcikpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIH5DYWxs
YmFja0FnZ3JlZ2F0b3IoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2NvbXBsZXRpb25IYW5k
bGVyKFdURjo6bW92ZShsb2FkSWRlbnRpZmllcnMpKTsKLSAgICAgICAgfQotCi0gICAgICAgIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJLaXQ6OkNhbGxiYWNrSUQ+KT4gbV9jb21w
bGV0aW9uSGFuZGxlcjsKLSAgICAgICAgSGFzaFNldDxDYWxsYmFja0lEPiBsb2FkSWRlbnRpZmll
cnM7Ci0gICAgfTsKLQotICAgIGF1dG8gYWdncmVnYXRvciA9IGFkb3B0UmVmKG5ldyBDYWxsYmFj
a0FnZ3JlZ2F0b3IoV1RGOjptb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwotCi0gICAgYXV0byog
ZGF0YWJhc2UgPSB3ZWJraXRXZWJWaWV3R2V0RmF2aWNvbkRhdGFiYXNlKHdlYlZpZXcpOwotICAg
IGlmICghZGF0YWJhc2UpCisgICAgLy8gV2Ugb25seSBzdXBwb3J0IGZhdmljb25zIGZvciBub3cu
CisgICAgaWYgKGljb24udHlwZSAhPSBMaW5rSWNvblR5cGU6OkZhdmljb24pIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBh
dXRvIGlzRXBoZW1lcmFsID0gd2Via2l0V2ViVmlld0lzRXBoZW1lcmFsKHdlYlZpZXcpOwotICAg
IGNvbnN0IGF1dG8mIGFjdGl2ZVVSTCA9IGdldFBhZ2Uod2ViVmlldykucGFnZUxvYWRTdGF0ZSgp
LmFjdGl2ZVVSTCgpOwotICAgIGZvciAoY29uc3QgYXV0byYgW2lkZW50aWZpZXIsIGljb25dIDog
aWNvbnMpIHsKLSAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIHNob3VsZCBjb25zaWRlciBvdGhl
ciBpY29uIHR5cGVzIGFzIGxvYWRhYmxlLgotICAgICAgICBpZiAoIWljb24udXJsLnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoKSB8fCBpY29uLnR5cGUgIT0gTGlua0ljb25UeXBlOjpGYXZpY29uKQot
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgd2Via2l0RmF2aWNvbkRhdGFiYXNlR2V0
TG9hZERlY2lzaW9uRm9ySWNvbihkYXRhYmFzZSwgaWNvbiwgYWN0aXZlVVJMLCBpc0VwaGVtZXJh
bCwgW2FnZ3JlZ2F0b3IsIGlkZW50aWZpZXJdKGJvb2wgbG9hZEljb24pIHsKLSAgICAgICAgICAg
IGlmIChsb2FkSWNvbikKLSAgICAgICAgICAgICAgICBhZ2dyZWdhdG9yLT5sb2FkSWRlbnRpZmll
cnMuYWRkKGlkZW50aWZpZXIpOwotICAgICAgICB9KTsKICAgICB9Ci19CiAKLSNpZiBFTkFCTEUo
MjAyMl9HTElCX0FQSSkKLXZvaWQgd2Via2l0V2ViVmlld1VwZGF0ZVBhZ2VJY29ucyhXZWJLaXRX
ZWJWaWV3ICp3ZWJWaWV3KQotewogICAgIGF1dG8qIGRhdGFiYXNlID0gd2Via2l0V2ViVmlld0dl
dEZhdmljb25EYXRhYmFzZSh3ZWJWaWV3KTsKLSAgICBpZiAoIWRhdGFiYXNlKQorICAgIGlmICgh
ZGF0YWJhc2UpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogICAgICAgICBy
ZXR1cm47CisgICAgfQogCi0gICAgYXV0byBjYW5jZWxsYWJsZSA9IGFkb3B0R1JlZihnX2NhbmNl
bGxhYmxlX25ldygpKTsKLSAgICB3ZWJraXRfZmF2aWNvbl9kYXRhYmFzZV9nZXRfcGFnZV9pY29u
cyhkYXRhYmFzZSwgZ2V0UGFnZSh3ZWJWaWV3KS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCku
dXRmOCgpLmRhdGEoKSwgY2FuY2VsbGFibGUuZ2V0KCksIFtdKEdPYmplY3QqIGRhdGFiYXNlLCBH
QXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKLSAgICAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHRHUmVmKFdFQktJVF9XRUJfVklFVyh1c2VyRGF0YSkpOwotCi0gICAgICAg
IEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKLSAgICAgICAgYXV0byBwYWdlSWNvbnMgPSBh
ZG9wdEdSZWYod2Via2l0X2Zhdmljb25fZGF0YWJhc2VfZ2V0X3BhZ2VfaWNvbnNfZmluaXNoKFdF
QktJVF9GQVZJQ09OX0RBVEFCQVNFKGRhdGFiYXNlKSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkp
KTsKLSAgICAgICAgaWYgKCFwYWdlSWNvbnMpIHsKLSAgICAgICAgICAgIGlmICghZ19lcnJvcl9t
YXRjaGVzKGVycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExFRCkpCi0g
ICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZ2V0IHBhZ2UgaWNvbnM6ICVzIiwg
ZXJyb3ItPm1lc3NhZ2UpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgd2Via2l0V2ViVmlld1VwZGF0ZVBhZ2VJY29ucyh3ZWJWaWV3LmdldCgpLCBXVEY6Om1vdmUo
cGFnZUljb25zKSk7Ci0gICAgfSwgZ19vYmplY3RfcmVmKHdlYlZpZXcpKTsKKyAgICB3ZWJraXRG
YXZpY29uRGF0YWJhc2VHZXRMb2FkRGVjaXNpb25Gb3JJY29uKGRhdGFiYXNlLCBpY29uLCBnZXRQ
YWdlKHdlYlZpZXcpLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSwgd2Via2l0V2ViVmlld0lz
RXBoZW1lcmFsKHdlYlZpZXcpLCBXVEY6Om1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KLSNl
bmRpZiAvLyBFTkFCTEUoMjAyMl9HTElCX0FQSSkKIAogdm9pZCB3ZWJraXRXZWJWaWV3U2V0SWNv
bihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBMaW5rSWNvbiYgaWNvbiwgQVBJOjpEYXRh
JiBpY29uRGF0YSkKIHsKQEAgLTI4MzksNyArMjc1Nyw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1Nl
dEljb24oV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgTGlua0ljb24mIGljb24sIEFQSTo6
RGF0CiAKICAgICB3ZWJraXRGYXZpY29uRGF0YWJhc2VTZXRJY29uRm9yUGFnZVVSTChkYXRhYmFz
ZSwgaWNvbiwgaWNvbkRhdGEsIGdldFBhZ2Uod2ViVmlldykucGFnZUxvYWRTdGF0ZSgpLmFjdGl2
ZVVSTCgpLCB3ZWJraXRXZWJWaWV3SXNFcGhlbWVyYWwod2ViVmlldykpOwogfQotI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKKyNlbmRpZgogCiBSZWZQdHI8V2ViUGFnZVByb3h5PiB3ZWJraXRXZWJW
aWV3Q3JlYXRlTmV3UGFnZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJiBjb25maWd1cmF0aW9uLCBXZWJLaXROYXZpZ2F0aW9uQWN0aW9uKiBuYXZp
Z2F0aW9uQWN0aW9uKQogewpAQCAtNjA3NCwyNiArNTk5MiwzIEBAIHZvaWQgd2Via2l0X3dlYl92
aWV3X2xlYXZlX2ltbWVyc2l2ZV9tb2RlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgICAg
IHhyU3lzdGVtLT5pbnZhbGlkYXRlKFBsYXRmb3JtWFJTeXN0ZW06OkludmFsaWRhdGlvblJlYXNv
bjo6Q2xpZW50KTsKICNlbmRpZgogfQotCi0jaWYgUExBVEZPUk0oR1RLKSAmJiBFTkFCTEUoMjAy
Ml9HTElCX0FQSSkKLS8qKgotICogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2ljb25zOiAoZ2V0
LXByb3BlcnR5IHBhZ2UtaWNvbnMpOgotICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3Ci0g
KgotICogUmV0dXJucyB0aGUgcGFnZSBpY29ucyBmb3IgdGhlIGNvbnRlbnQgbG9hZGVkIGluIHRo
ZSB3ZWIgdmlldy4KLSAqCi0gKiBHZXRzIHRoZSBwYWdlIGljb25zIGFzc29jaWF0ZWQgd2l0aCB0
aGUgY29udGVudCBjdXJyZW50bHkgbG9hZGVkIGluIHRoZQotICogQHdlYl92aWV3LCBpZiBhbnks
IGFzIGEgW3N0cnVjdEBJbWFnZUxpc3RdLiBDaGFuZ2VzIHRvIHRoZSBwYWdlIGljb25zCi0gKiBj
YW4gYmUgb2JzZXJ2ZWQgYnkgY29ubmVjdGluZyB0byB0aGUgYG5vdGlmeTo6cGFnZS1pY29uc2Ag
c2lnbmFsLgotICoKLSAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKSAobnVsbGFibGUpOiBhIGxp
c3Qgb2YgaWNvbnMsIG9yICVOVUxMIGlmIHRoZXJlCi0gKiAgICBhcmUgbm8gaWNvbnMgZm9yIHRo
ZSBjb250ZW50IGxvYWRlZCBpbiBAd2ViX3ZpZXcuCi0gKgotICogU2luY2U6IDIuNTQKLSAqLwot
V2ViS2l0SW1hZ2VMaXN0KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWNvbnMoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKLXsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldyksIG51bGxwdHIpOwotICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5wYWdl
SWNvbnMuZ2V0KCk7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuaC5pbgppbmRleCBjZWQ0ZDQ1NzBjYzUuLjQ1MDFhNjcw
ZGU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5oLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuaC5pbgpAQCAtNjA1LDEyICs2MDUsNiBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Zh
dmljb24gICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJ
IGNhaXJvX3N1cmZhY2VfdCAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Zhdmljb24gICAgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAj
ZW5kaWYKLQotI2lmIEVOQUJMRSgyMDIyX0dMSUJfQVBJKQotV0VCS0lUX0FQSSBXZWJLaXRJbWFn
ZUxpc3QgKgotd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2ljb25zICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwotI2VuZGlmCi0KICNl
bmRpZgogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGM2ZTk3
MTJmNWVjNC4uNGUxNmEyYTA4OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKQEAgLTI2LDggKzI2LDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJBUElJY29uTG9hZGluZ0NsaWVudC5oIgotI2lu
Y2x1ZGUgIkNhbGxiYWNrSUQuaCIKICNpbmNsdWRlICJFZGl0aW5nUmFuZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJlckJ1ZmZlckRlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiVXNlck1lc3NhZ2UuaCIK
QEAgLTU1LDkgKzUzLDggQEAgdm9pZCB3ZWJraXRXZWJWaWV3TG9hZENoYW5nZWQoV2ViS2l0V2Vi
VmlldyosIFdlYktpdExvYWRFdmVudCk7CiB2b2lkIHdlYmtpdFdlYlZpZXdMb2FkRmFpbGVkKFdl
YktpdFdlYlZpZXcqLCBXZWJLaXRMb2FkRXZlbnQsIGNvbnN0IGNoYXIqIGZhaWxpbmdVUkksIEdF
cnJvciopOwogdm9pZCB3ZWJraXRXZWJWaWV3TG9hZEZhaWxlZFdpdGhUTFNFcnJvcnMoV2ViS2l0
V2ViVmlldyosIGNvbnN0IGNoYXIqIGZhaWxpbmdVUkksIEdFcnJvciosIEdUbHNDZXJ0aWZpY2F0
ZUZsYWdzLCBHVGxzQ2VydGlmaWNhdGUqKTsKICNpZiBQTEFURk9STShHVEspCi12b2lkIHdlYmtp
dFdlYlZpZXdHZXRMb2FkRGVjaXNpb25Gb3JJY29ucyhXZWJLaXRXZWJWaWV3KiwgY29uc3QgSGFz
aE1hcDxXZWJLaXQ6OkNhbGxiYWNrSUQsIFdlYkNvcmU6OkxpbmtJY29uPiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoSGFzaFNldDxXZWJLaXQ6OkNhbGxiYWNrSUQ+JiYpPiYmKTsKK3ZvaWQgd2Vi
a2l0V2ViVmlld0dldExvYWREZWNpc2lvbkZvckljb24oV2ViS2l0V2ViVmlldyosIGNvbnN0IFdl
YkNvcmU6OkxpbmtJY29uJiwgRnVuY3Rpb248dm9pZChib29sKT4mJik7CiB2b2lkIHdlYmtpdFdl
YlZpZXdTZXRJY29uKFdlYktpdFdlYlZpZXcqLCBjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIEFQ
STo6RGF0YSYpOwotdm9pZCB3ZWJraXRXZWJWaWV3VXBkYXRlUGFnZUljb25zKFdlYktpdFdlYlZp
ZXcqKTsKICNlbmRpZgogUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiB3ZWJraXRXZWJWaWV3
Q3JlYXRlTmV3UGFnZShXZWJLaXRXZWJWaWV3KiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+
JiYsIFdlYktpdE5hdmlnYXRpb25BY3Rpb24qKTsKIHZvaWQgd2Via2l0V2ViVmlld1JlYWR5VG9T
aG93UGFnZShXZWJLaXRXZWJWaWV3Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi93ZWJraXQuaC5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL3dlYmtpdC5oLmluCmluZGV4IGE2ZGViOTQ2NGVmMi4uYTc4ZmY0NDYyYzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi93ZWJraXQuaC5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi93ZWJraXQuaC5pbgpAQCAtNzMsNyArNzMs
NyBAQAogI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdEdlb2xvY2F0aW9uTWFu
YWdlci5oPgogI2luY2x1ZGUgPEBBUElfSU5DTFVERV9QUkVGSVhAL1dlYktpdEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDxAQVBJX0lOQ0xVREVfUFJFRklYQC9XZWJL
aXRIaXRUZXN0UmVzdWx0Lmg+Ci0jaWYgRU5BQkxFKDIwMjJfR0xJQl9BUEkpCisjaWYgUExBVEZP
Uk0oV1BFKSAmJiBFTkFCTEUoMjAyMl9HTElCX0FQSSkKICNpbmNsdWRlIDxAQVBJX0lOQ0xVREVf
UFJFRklYQC9XZWJLaXRJbWFnZS5oPgogI2VuZGlmCiAjaW5jbHVkZSA8QEFQSV9JTkNMVURFX1BS
RUZJWEAvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAyZjU4YjljMDZkNmYuLmYxN2ExMTI1ZDQ1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNTYzMCw0OCArMTU2MzAs
MjYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAgICAg
ICAgIHBhZ2VDbGllbnQtPmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6Z2V0TG9hZERlY2lzaW9uRm9ySWNvbnMoY29uc3QgSGFzaE1hcDxDYWxsYmFj
a0lELCBXZWJDb3JlOjpMaW5rSWNvbj4mIGljb25zKQordm9pZCBXZWJQYWdlUHJveHk6OmdldExv
YWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mIGljb24sIENhbGxiYWNr
SUQgbG9hZElkZW50aWZpZXIpCiB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZm9yIChjb25z
dCBhdXRvJiBbbG9hZElkZW50aWZpZXIsIGljb25dIDogaWNvbnMpIHsKLSAgICAgICAgbV9pY29u
TG9hZGluZ0NsaWVudC0+Z2V0TG9hZERlY2lzaW9uRm9ySWNvbihpY29uLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGxvYWRJZGVudGlmaWVyXSAoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChBUEk6OkRhdGEqKT4mJiBjYWxsYmFjaykgewotICAgICAgICAgICAgaWYgKCFoYXNS
dW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghY2FsbGJhY2spIHsKLSAgICAgICAg
ICAgICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEdldExvYWRE
ZWNpc2lvbkZvckljb24oZmFsc2UsIGxvYWRJZGVudGlmaWVyKSwgW10oYXV0bykgeyB9KTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RGlkR2V0TG9hZERlY2lzaW9uRm9ySWNv
bih0cnVlLCBsb2FkSWRlbnRpZmllciksIFtjYWxsYmFjayA9IFdURjo6bW92ZShjYWxsYmFjayld
KGNvbnN0IElQQzo6U2hhcmVkQnVmZmVyUmVmZXJlbmNlJiBpY29uRGF0YSkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFpY29uRGF0YS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAg
ICAgY2FsbGJhY2soQVBJOjpEYXRhOjpjcmVhdGUoaWNvbkRhdGEuc3BhbigpKS5wdHIoKSk7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxscHRy
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci0jZWxzZQotICAgIG1faWNv
bkxvYWRpbmdDbGllbnQtPmdldExvYWREZWNpc2lvbkZvckljb25zKGljb25zLCBbdGhpcywgaWNv
bnMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoSGFzaFNldDxDYWxsYmFja0lEPiYm
IGljb25JZGVudGlmaWVycykgewotICAgICAgICBpZiAoaWNvbklkZW50aWZpZXJzLmlzRW1wdHko
KSB8fCAhaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICBtX2ljb25Mb2FkaW5nQ2xpZW50LT5nZXRM
b2FkRGVjaXNpb25Gb3JJY29uKGljb24sIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgbG9hZElkZW50aWZpZXJdIChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFQSTo6RGF0YSop
PiYmIGNhbGxiYWNrKSB7CisgICAgICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgeworICAg
ICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKG51bGxwdHIp
OwogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKLSAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBsb2FkSWRlbnRpZmllciA6IGljb25zLmtleXMoKSkgewotICAgICAgICAgICAgaWYgKCFp
Y29uSWRlbnRpZmllcnMuY29udGFpbnMobG9hZElkZW50aWZpZXIpKQotICAgICAgICAgICAgICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6RGlkR2V0TG9hZERlY2lzaW9u
Rm9ySWNvbihmYWxzZSwgbG9hZElkZW50aWZpZXIpLCBbXShhdXRvKSB7IH0pOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgTGlua0ljb24gaWNvbiA9IGljb25zLmdldChsb2Fk
SWRlbnRpZmllcik7Ci0gICAgICAgICAgICAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlOjpEaWRHZXRMb2FkRGVjaXNpb25Gb3JJY29uKHRydWUsIGxvYWRJZGVudGlmaWVy
KSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGxvYWRJZGVudGlmaWVyLCBpY29uID0g
V1RGOjptb3ZlKGljb24pXShjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlclJlZmVyZW5jZSYgaWNvbkRh
dGEpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBpZiAoUmVmUHRyIHByb3RlY3RlZFRo
aXMgPSB3ZWFrVGhpcy5nZXQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRo
aXMtPm1faWNvbkxvYWRpbmdDbGllbnQtPmljb25Mb2FkZWQobG9hZElkZW50aWZpZXIsIGljb24s
IGljb25EYXRhLmlzTnVsbCgpID8gbnVsbHB0ciA6IEFQSTo6RGF0YTo6Y3JlYXRlKGljb25EYXRh
LnNwYW4oKSkucHRyKCkpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfQorICAg
ICAgICBpZiAoIWNhbGxiYWNrKSB7CisgICAgICAgICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2U6OkRpZEdldExvYWREZWNpc2lvbkZvckljb24oZmFsc2UsIGxvYWRJZGVu
dGlmaWVyKSwgW10oYXV0bykgeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQor
ICAgICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZEdldExvYWRE
ZWNpc2lvbkZvckljb24odHJ1ZSwgbG9hZElkZW50aWZpZXIpLCBbY2FsbGJhY2sgPSBXVEY6Om1v
dmUoY2FsbGJhY2spXShjb25zdCBJUEM6OlNoYXJlZEJ1ZmZlclJlZmVyZW5jZSYgaWNvbkRhdGEp
IG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFpY29uRGF0YS5pc051bGwoKSkKKyAgICAgICAg
ICAgICAgICBjYWxsYmFjayhBUEk6OkRhdGE6OmNyZWF0ZShpY29uRGF0YS5zcGFuKCkpLnB0cigp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhudWxscHRyKTsK
KyAgICAgICAgfSk7CiAgICAgfSk7Ci0jZW5kaWYKIH0KIAogV2ViQ29yZTo6VXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbiBXZWJQYWdlUHJveHk6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBjZDRkMjA4MjJm
NmYuLjQyNThjM2ZiNTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTIyMzIsNyArMjIzMiw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCk7CiAKLSAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb25zKGNvbnN0IEhh
c2hNYXA8V2ViS2l0OjpDYWxsYmFja0lELCBXZWJDb3JlOjpMaW5rSWNvbj4mKTsKKyAgICB2b2lk
IGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBDYWxsYmFj
a0lEKTsKIAogICAgIHZvaWQgZm9jdXNGcm9tU2VydmljZVdvcmtlcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwYjQ0
ZTJlNWNjMWEuLmIyZjg3NjNmMmM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgCiAgICAgUmVxdWVzdFNjcm9sbFRvUmVjdChXZWJDb3JlOjpG
bG9hdFJlY3QgdGFyZ2V0UmVjdCwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pCiAKLSAgICBH
ZXRMb2FkRGVjaXNpb25Gb3JJY29ucyhIYXNoTWFwPFdlYktpdDo6Q2FsbGJhY2tJRCwgV2ViQ29y
ZTo6TGlua0ljb24+IGljb25zKQorICAgIEdldExvYWREZWNpc2lvbkZvckljb24oc3RydWN0IFdl
YkNvcmU6OkxpbmtJY29uIGljb24sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAg
ICAgU3RhcnRVUkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0
ZXJzIHBhcmFtZXRlcnMpCiAgICAgU3RvcFVSTFNjaGVtZVRhc2soV2ViS2l0OjpXZWJVUkxTY2hl
bWVIYW5kbGVySWRlbnRpZmllciBoYW5kbGVySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyIHRhc2tJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkxvY2FsRnJhbWVMb2FkZXJDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkxvY2FsRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IGQ3NzIyNDk4YWQ3ZS4uNDE4MjA5NzdmNGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTG9jYWxGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkxvY2FsRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yMDE1LDExICsyMDE1LDgg
QEAgdm9pZCBXZWJMb2NhbEZyYW1lTG9hZGVyQ2xpZW50OjpnZXRMb2FkRGVjaXNpb25Gb3JJY29u
cyhjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFcKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEhhc2hNYXA8Q2FsbGJhY2tJRCwgV2ViQ29yZTo6TGlua0ljb24+IGNhbGxi
YWNrSWRJY29uTWFwOwogICAgIGZvciAoYXV0byYgaWNvbiA6IGljb25zKQotICAgICAgICBjYWxs
YmFja0lkSWNvbk1hcC5hZGQoQ2FsbGJhY2tJRDo6ZnJvbUludGVnZXIoaWNvbi5zZWNvbmQpLCBp
Y29uLmZpcnN0KTsKLQotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
R2V0TG9hZERlY2lzaW9uRm9ySWNvbnMoV1RGOjptb3ZlKGNhbGxiYWNrSWRJY29uTWFwKSkpOwor
ICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldExvYWREZWNp
c2lvbkZvckljb24oaWNvbi5maXJzdCwgQ2FsbGJhY2tJRDo6ZnJvbUludGVnZXIoaWNvbi5zZWNv
bmQpKSk7CiB9CiAKIHZvaWQgV2ViTG9jYWxGcmFtZUxvYWRlckNsaWVudDo6ZGlkRmluaXNoU2Vy
dmljZVdvcmtlclBhZ2VSZWdpc3RyYXRpb24oYm9vbCBzdWNjZXNzKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJh
c2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRG
YXZpY29uRGF0YWJhc2UuY3BwCmluZGV4IDczMzUwYzVlZjE5MC4uZTg1NWM1ZTY3MzhmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdEZh
dmljb25EYXRhYmFzZS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwCkBAIC01OSw4ICs1OSw2IEBAIHB1Ymxp
YzoKIAogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X21hdGNoZWQobV9kYXRh
YmFzZS5nZXQoKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgMCwgMCwgdGhpcyk7CiAjaWYg
RU5BQkxFKDIwMjJfR0xJQl9BUEkpCi0gICAgICAgIGdfY2xlYXJfcG9pbnRlcigmbV9wYWdlSWNv
bnMsIHdlYmtpdF9pbWFnZV9saXN0X3VucmVmKTsKLQogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+
IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoVGVzdDo6ZGF0YURpcmVjdG9yeSgp
LCAiaWNvbmRhdGFiYXNlIiwgbnVsbHB0cikpOwogICAgICAgICBpZiAoR0RpciogZGlyZWN0b3J5
ID0gZ19kaXJfb3BlbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSwgMCwgbnVsbHB0cikpIHsKICAg
ICAgICAgICAgIGNvbnN0IGNoYXIqIGZpbGVOYW1lOwpAQCAtNzEsOSArNjksNiBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBnX2Rpcl9jbG9zZShkaXJlY3RvcnkpOwogICAgICAgICB9CiAgICAgICAg
IGdfcm1kaXIoZGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOwotCi0gICAgICAgIGlmIChtX2RhdGFi
YXNlKQotICAgICAgICAgICAgY2xvc2UoKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTE4LDcgKzEx
Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCB2aWV3RmF2aWNvbkNoYW5nZWRDYWxsYmFj
ayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHUGFyYW1TcGVjKiBwc3BlYywgRmF2aWNvbkRhdGFi
YXNlVGVzdCogdGVzdCkKICAgICB7CiAgICAgICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+d2ViVmll
dygpID09IHdlYlZpZXcpOwotICAgICAgICB0ZXN0LT5tX3BhZ2VGYXZpY29uTm90aWZpY2F0aW9u
Q291bnQrKzsKKyAgICAgICAgdGVzdC0+bV9mYXZpY29uTm90aWZpY2F0aW9uUmVjZWl2ZWQgPSB0
cnVlOwogI2lmIFVTRShHVEs0KQogICAgICAgICB0ZXN0LT5tX2Zhdmljb24gPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2Zhdmljb24od2ViVmlldyk7CiAjZWxzZQpAQCAtMTI4LDE4ICsxMjMsNiBAQCBw
dWJsaWM6CiAgICAgICAgICAgICB0ZXN0LT5xdWl0TWFpbkxvb3AoKTsKICAgICB9CiAKLSNpZiBF
TkFCTEUoMjAyMl9HTElCX0FQSSkKLSAgICBzdGF0aWMgdm9pZCB2aWV3UGFnZUljb25zQ2hhbmdl
ZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdQYXJhbVNwZWMqLCBGYXZpY29uRGF0
YWJhc2VUZXN0KiB0ZXN0KQotICAgIHsKLSAgICAgICAgZ19jbGVhcl9wb2ludGVyKCZ0ZXN0LT5t
X3BhZ2VJY29ucywgd2Via2l0X2ltYWdlX2xpc3RfdW5yZWYpOwotICAgICAgICBnX2Fzc2VydF90
cnVlKHRlc3QtPndlYlZpZXcoKSA9PSB3ZWJWaWV3KTsKLSAgICAgICAgdGVzdC0+bV9wYWdlSWNv
bnNOb3RpY2F0aW9uQ291bnQrKzsKLSAgICAgICAgdGVzdC0+bV9wYWdlSWNvbnMgPSB3ZWJraXRf
aW1hZ2VfbGlzdF9yZWYod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2ljb25zKHdlYlZpZXcpKTsK
LSAgICAgICAgaWYgKHRlc3QtPm1fbG9hZEZpbmlzaGVkKQotICAgICAgICAgICAgdGVzdC0+cXVp
dE1haW5Mb29wKCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBzdGF0aWMgdm9pZCB2aWV3TG9hZENo
YW5nZWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRMb2FkRXZlbnQgbG9h
ZEV2ZW50LCBGYXZpY29uRGF0YWJhc2VUZXN0KiB0ZXN0KQogICAgIHsKICAgICAgICAgZ19hc3Nl
cnRfdHJ1ZSh0ZXN0LT53ZWJWaWV3KCkgPT0gd2ViVmlldyk7CkBAIC0xNDcsNyArMTMwLDcgQEAg
cHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRlc3QtPm1fbG9hZEZpbmlz
aGVkID0gdHJ1ZTsKLSAgICAgICAgaWYgKHRlc3QtPm1fcGFnZUZhdmljb25Ob3RpZmljYXRpb25D
b3VudCA+IDApCisgICAgICAgIGlmICh0ZXN0LT5tX2Zhdmljb25Ob3RpZmljYXRpb25SZWNlaXZl
ZCkKICAgICAgICAgICAgIHRlc3QtPnF1aXRNYWluTG9vcCgpOwogICAgIH0KIApAQCAtMTY0LDcg
KzE0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd2FpdFVudGlsRmF2aWNvbkNoYW5nZWQoKQog
ICAgIHsKLSAgICAgICAgbV9wYWdlRmF2aWNvbk5vdGlmaWNhdGlvbkNvdW50ID0gMDsKKyAgICAg
ICAgbV9mYXZpY29uTm90aWZpY2F0aW9uUmVjZWl2ZWQgPSBmYWxzZTsKICAgICAgICAgdW5zaWdu
ZWQgbG9uZyBoYW5kbGVySUQgPSBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldy5nZXQoKSwgIm5v
dGlmeTo6ZmF2aWNvbiIsIEdfQ0FMTEJBQ0sodmlld0Zhdmljb25DaGFuZ2VkQ2FsbGJhY2spLCB0
aGlzKTsKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwogICAgICAgICBnX3Np
Z25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QobV93ZWJWaWV3LmdldCgpLCBoYW5kbGVySUQpOwpAQCAt
MTc3LDcgKzE2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJv
eShtX2Zhdmljb24pOwogI2VuZGlmCiAgICAgICAgIG1fZmF2aWNvbiA9IG51bGxwdHI7Ci0gICAg
ICAgIG1fcGFnZUZhdmljb25Ob3RpZmljYXRpb25Db3VudCA9IDA7CisgICAgICAgIG1fZmF2aWNv
bk5vdGlmaWNhdGlvblJlY2VpdmVkID0gZmFsc2U7CiAgICAgICAgIG1fbG9hZEZpbmlzaGVkID0g
ZmFsc2U7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmF2aWNvbkNoYW5nZWRJRCA9IGdfc2lnbmFs
X2Nvbm5lY3QobV93ZWJWaWV3LmdldCgpLCAibm90aWZ5OjpmYXZpY29uIiwgR19DQUxMQkFDSyh2
aWV3RmF2aWNvbkNoYW5nZWRDYWxsYmFjayksIHRoaXMpOwogICAgICAgICB1bnNpZ25lZCBsb25n
IGxvYWRDaGFuZ2VkSUQgPSBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldy5nZXQoKSwgImxvYWQt
Y2hhbmdlZCIsIEdfQ0FMTEJBQ0sodmlld0xvYWRDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsKQEAg
LTE4NiwzMSArMTY5LDYgQEAgcHVibGljOgogICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nv
bm5lY3QobV93ZWJWaWV3LmdldCgpLCBsb2FkQ2hhbmdlZElEKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgdm9pZCBmYXZpY29uQ2hhbmdlZENvdW50Q2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmll
dywgR1BhcmFtU3BlYyosIEZhdmljb25EYXRhYmFzZVRlc3QqIHRlc3QpCi0gICAgewotICAgICAg
ICBnX2Fzc2VydF90cnVlKHRlc3QtPndlYlZpZXcoKSA9PSB3ZWJWaWV3KTsKLSAgICAgICAgdGVz
dC0+bV9wYWdlRmF2aWNvbk5vdGlmaWNhdGlvbkNvdW50Kys7Ci0gICAgfQotCi0jaWYgRU5BQkxF
KDIwMjJfR0xJQl9BUEkpCi0gICAgdm9pZCB3YWl0VW50aWxMb2FkRmluaXNoZWRBbmRQYWdlSWNv
bnNDaGFuZ2VkKCkKLSAgICB7Ci0gICAgICAgIGdfY2xlYXJfcG9pbnRlcigmbV9wYWdlSWNvbnMs
IHdlYmtpdF9pbWFnZV9saXN0X3VucmVmKTsKLSAgICAgICAgbV9wYWdlRmF2aWNvbk5vdGlmaWNh
dGlvbkNvdW50ID0gMDsKLSAgICAgICAgbV9wYWdlSWNvbnNOb3RpY2F0aW9uQ291bnQgPSAwOwot
ICAgICAgICBtX2xvYWRGaW5pc2hlZCA9IGZhbHNlOwotCi0gICAgICAgIGNvbnN0IGF1dG8gZmF2
aWNvbklEID0gZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcuZ2V0KCksICJub3RpZnk6OmZhdmlj
b24iLCBHX0NBTExCQUNLKGZhdmljb25DaGFuZ2VkQ291bnRDYWxsYmFjayksIHRoaXMpOwotICAg
ICAgICBjb25zdCBhdXRvIHBhZ2VJY29uc0lEID0gZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcu
Z2V0KCksICJub3RpZnk6OnBhZ2UtaWNvbnMiLCBHX0NBTExCQUNLKHZpZXdQYWdlSWNvbnNDaGFu
Z2VkQ2FsbGJhY2spLCB0aGlzKTsKLSAgICAgICAgY29uc3QgYXV0byBsb2FkQ2hhbmdlZElEID0g
Z19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcuZ2V0KCksICJsb2FkLWNoYW5nZWQiLCBHX0NBTExC
QUNLKHZpZXdMb2FkQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7Ci0gICAgICAgIGdfbWFpbl9sb29w
X3J1bihtX21haW5Mb29wKTsKLQotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3Qo
bV93ZWJWaWV3LmdldCgpLCBmYXZpY29uSUQpOwotICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rp
c2Nvbm5lY3QobV93ZWJWaWV3LmdldCgpLCBwYWdlSWNvbnNJRCk7Ci0gICAgICAgIGdfc2lnbmFs
X2hhbmRsZXJfZGlzY29ubmVjdChtX3dlYlZpZXcuZ2V0KCksIGxvYWRDaGFuZ2VkSUQpOwotICAg
IH0KLSNlbmRpZiAvLyBFTkFCTEUoMjAyMl9HTElCX0FQSSkKLQogICAgIHZvaWQgZ2V0RmF2aWNv
bkZvclBhZ2VVUklBbmRXYWl0VW50aWxSZWFkeShjb25zdCBjaGFyKiBwYWdlVVJJKQogICAgIHsK
ICNpZiAhVVNFKEdUSzQpCkBAIC0yNTYsNDEgKzIxNCwxOCBAQCBwdWJsaWM6CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICB2b2lkIHdhaXRVbnRpbEZhdmljb25DaGFuZ2VkVGltZXModW5zaWduZWQg
bnVtVGltZXMsIHVuc2lnbmVkIHRpbWVvdXRNaWxsaXNlY29uZHMgPSAwKQotICAgIHsKLSAgICAg
ICAgaWYgKG1fcGFnZUZhdmljb25Ob3RpZmljYXRpb25Db3VudCA+PSBudW1UaW1lcykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBHVGltZXIqIHRpbWVyID0gZ190aW1lcl9uZXcoKTsK
LSAgICAgICAgYXV0byBoYW5kbGVySUQgPSBnX3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldy5nZXQo
KSwgIm5vdGlmeTo6ZmF2aWNvbiIsIEdfQ0FMTEJBQ0soZmF2aWNvbkNoYW5nZWRDb3VudENhbGxi
YWNrKSwgdGhpcyk7Ci0gICAgICAgIHdoaWxlIChtX3BhZ2VGYXZpY29uTm90aWZpY2F0aW9uQ291
bnQgPCBudW1UaW1lcyAmJiBnX3RpbWVyX2VsYXBzZWQodGltZXIsIG51bGxwdHIpICogMTAwMC4w
IDw9IHRpbWVvdXRNaWxsaXNlY29uZHMpIHsKLSAgICAgICAgICAgIGdfbWFpbl9jb250ZXh0X2l0
ZXJhdGlvbihnX21haW5fbG9vcF9nZXRfY29udGV4dChtX21haW5Mb29wKSwgRkFMU0UpOwotICAg
ICAgICAgICAgZ191c2xlZXAoMTAwMDApOwotICAgICAgICB9Ci0gICAgICAgIGdfY2xlYXJfcG9p
bnRlcigmdGltZXIsIGdfdGltZXJfZGVzdHJveSk7Ci0gICAgICAgIGdfc2lnbmFsX2hhbmRsZXJf
ZGlzY29ubmVjdChtX3dlYlZpZXcuZ2V0KCksIGhhbmRsZXJJRCk7Ci0gICAgfQotCiAgICAgR1Jl
ZlB0cjxXZWJLaXRGYXZpY29uRGF0YWJhc2U+IG1fZGF0YWJhc2U7Ci0gICAgdW5zaWduZWQgbV9m
YXZpY29uQ2hhbmdlZElEIHsgMCB9OwogI2lmIFVTRShHVEs0KQogICAgIEdSZWZQdHI8R2RrVGV4
dHVyZT4gbV9mYXZpY29uOwogI2Vsc2UKICAgICBjYWlyb19zdXJmYWNlX3QqIG1fZmF2aWNvbiB7
IG51bGxwdHIgfTsKICNlbmRpZgotICAgIHNpemVfdCBtX3BhZ2VGYXZpY29uTm90aWZpY2F0aW9u
Q291bnQgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9wYWdlRmF2aWNvbk5vdGlmaWNhdGlvblRpbWVv
dXRJRCB7IDAgfTsKLQogICAgIHN0ZDo6b3B0aW9uYWw8Q1N0cmluZz4gbV9mYXZpY29uVVJJIHsg
c3RkOjpudWxsb3B0IH07CiAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IG1fZXJyb3I7CisgICAg
Ym9vbCBtX2Zhdmljb25Ob3RpZmljYXRpb25SZWNlaXZlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2xvYWRGaW5pc2hlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JGYXZpY29uVVJJ
IHsgZmFsc2UgfTsKICAgICB1bnNpZ25lZCBtX3dhaXRpbmdGb3JGYXZpY29uVVJJVGltZW91dElE
IHsgMCB9OwotCi0jaWYgRU5BQkxFKDIwMjJfR0xJQl9BUEkpCi0gICAgc2l6ZV90IG1fcGFnZUlj
b25zTm90aWNhdGlvbkNvdW50IHsgMCB9OwotICAgIFdlYktpdEltYWdlTGlzdCogbV9wYWdlSWNv
bnM7Ci0jZW5kaWYKIH07CiAKIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIq
LCBTb3VwU2VydmVyTWVzc2FnZSogbWVzc2FnZSwgY29uc3QgY2hhciogcGF0aCwgR0hhc2hUYWJs
ZSogcXVlcnksIGdwb2ludGVyKQpAQCAtMzE0LDI0ICsyNDksOSBAQCBzdGF0aWMgdm9pZCBzZXJ2
ZXJDYWxsYmFjayhTb3VwU2VydmVyKiwgU291cFNlcnZlck1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0
IGNoYXIqCiAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aFRvRmF2aWNvbihnX2J1aWxkX2Zp
bGVuYW1lKFRlc3Q6OmdldFJlc291cmNlc0RpcigpLmRhdGEoKSwgImJsYW5rLmljbyIsIG51bGxw
dHIpKTsKICAgICAgICAgZ19maWxlX2dldF9jb250ZW50cyhwYXRoVG9GYXZpY29uLmdldCgpLCAm
Y29udGVudHMsICZsZW5ndGgsIDApOwogICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQo
cmVzcG9uc2VCb2R5LCBTT1VQX01FTU9SWV9UQUtFLCBjb250ZW50cywgbGVuZ3RoKTsKLSAgICB9
IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvaWNvbi9yZWQtMzJ4MzIucG5nIikpIHsKLSAg
ICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoVG9GYXZpY29uKGdfYnVpbGRfZmlsZW5hbWUoVGVz
dDo6Z2V0UmVzb3VyY2VzRGlyKCkuZGF0YSgpLCAicmVkLTMyeDMyLnBuZyIsIG51bGxwdHIpKTsK
LSAgICAgICAgZ19maWxlX2dldF9jb250ZW50cyhwYXRoVG9GYXZpY29uLmdldCgpLCAmY29udGVu
dHMsICZsZW5ndGgsIG51bGxwdHIpOwotICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQo
cmVzcG9uc2VCb2R5LCBTT1VQX01FTU9SWV9UQUtFLCBjb250ZW50cywgbGVuZ3RoKTsKLSAgICB9
IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIvaWNvbi9ibHVlLTQ4eDQ4LnBuZyIpKSB7Ci0g
ICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aFRvRmF2aWNvbihnX2J1aWxkX2ZpbGVuYW1lKFRl
c3Q6OmdldFJlc291cmNlc0RpcigpLmRhdGEoKSwgImJsdWUtNDh4NDgucG5nIiwgbnVsbHB0cikp
OwotICAgICAgICBnX2ZpbGVfZ2V0X2NvbnRlbnRzKHBhdGhUb0Zhdmljb24uZ2V0KCksICZjb250
ZW50cywgJmxlbmd0aCwgbnVsbHB0cik7Ci0gICAgICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVu
ZChyZXNwb25zZUJvZHksIFNPVVBfTUVNT1JZX1RBS0UsIGNvbnRlbnRzLCBsZW5ndGgpOwogICAg
IH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9ub2Zhdmljb24iKSkgewogICAgICAgICBz
dGF0aWMgY29uc3QgY2hhciogbm9GYXZpY29uSFRNTCA9ICI8aHRtbD48aGVhZD48Ym9keT50ZXN0
PC9ib2R5PjwvaHRtbD4iOwogICAgICAgICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQocmVzcG9u
c2VCb2R5LCBTT1VQX01FTU9SWV9TVEFUSUMsIG5vRmF2aWNvbkhUTUwsIHN0cmxlbihub0Zhdmlj
b25IVE1MKSk7Ci0gICAgfSBlbHNlIGlmIChnX3N0cl9lcXVhbChwYXRoLCAiL211bHRpcGxlaWNv
bnMiKSkgewotICAgICAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBtdWx0aXBsZUlj
b25zSFRNTCA9ICI8aHRtbD48aGVhZD4iCi0gICAgICAgICAgICAiPGxpbmsgcmVsPSdpY29uJyB0
eXBlPSdpbWFnZS94LWljbycgaHJlZj0nL2ljb24vZmF2aWNvbi5pY28nPiIKLSAgICAgICAgICAg
ICI8bGluayByZWw9J2ljb24nIHR5cGU9J2ltYWdlL3BuZycgaHJlZj0nL2ljb24vcmVkLTMyeDMy
LnBuZycgc2l6ZXM9JzMyeDMyJz4iCi0gICAgICAgICAgICAiPGxpbmsgcmVsPSdpY29uJyB0eXBl
PSdpbWFnZS9wbmcnIGhyZWY9Jy9pY29uL2JsdWUtNDh4NDgucG5nJyBzaXplcz0nNDh4NDgnPiIK
LSAgICAgICAgICAgICI8L2hlYWQ+PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+IjsKLSAgICAgICAg
c291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKHJlc3BvbnNlQm9keSwgU09VUF9NRU1PUllfU1RBVElD
LCBtdWx0aXBsZUljb25zSFRNTCwgbXVsdGlwbGVJY29uc0hUTUwubGVuZ3RoKCkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb250ZW50c0hUTUwgPSAiPGh0bWw+
PGhlYWQ+PGxpbmsgcmVsPSdpY29uJyBocmVmPScvaWNvbi9mYXZpY29uLmljbycgdHlwZT0naW1h
Z2UveC1pY287IGNoYXJzZXQ9YmluYXJ5Jz48L2hlYWQ+PGJvZHk+dGVzdDwvYm9keT48L2h0bWw+
IjsKICAgICAgICAgc291cF9tZXNzYWdlX2JvZHlfYXBwZW5kKHJlc3BvbnNlQm9keSwgU09VUF9N
RU1PUllfU1RBVElDLCBjb250ZW50c0hUTUwsIHN0cmxlbihjb250ZW50c0hUTUwpKTsKQEAgLTQz
Nyw2MCArMzU3LDYgQEAgc3RhdGljIHZvaWQgdGVzdEZhdmljb25EYXRhYmFzZUdldEZhdmljb24o
RmF2aWNvbkRhdGFiYXNlVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnQKICAgICBnX2Fzc2VydF9ub25u
dWxsKHdlYmtpdF93ZWJfdmlld19nZXRfZmF2aWNvbih0ZXN0LT53ZWJWaWV3KCkpKTsKIH0KIAot
I2lmIEVOQUJMRSgyMDIyX0dMSUJfQVBJKQotc3RhdGljIHZvaWQgdGVzdEZhdmljb25EYXRhYmFz
ZUdldFBhZ2VJY29ucyhGYXZpY29uRGF0YWJhc2VUZXN0ICp0ZXN0LCBnY29uc3Rwb2ludGVyKQot
ewotICAgIHRlc3QtPm9wZW4oInRlc3RGYXZpY29uRGF0YWJhc2VHZXRQYWdlSWNvbnMiKTsKLQot
ICAgIHRlc3QtPmxvYWRVUkkoa1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL211bHRpcGxlaWNvbnMi
KS5kYXRhKCkpOwotICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZEFuZFBhZ2VJY29uc0No
YW5nZWQoKTsKLSAgICB0ZXN0LT53YWl0VW50aWxGYXZpY29uQ2hhbmdlZFRpbWVzKDMsIDE1MDAp
OwotICAgIGdfYXNzZXJ0X2NtcGludCh0ZXN0LT5tX3BhZ2VGYXZpY29uTm90aWZpY2F0aW9uQ291
bnQsID09LCAzKTsKLQotICAgIGdfYXNzZXJ0X2NtcGludCh0ZXN0LT5tX3BhZ2VJY29uc05vdGlj
YXRpb25Db3VudCwgPT0sIDEpOwotICAgIGdfYXNzZXJ0X25vbm51bGwodGVzdC0+bV9wYWdlSWNv
bnMpOwotICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfaW1hZ2VfbGlzdF9nZXRfbGVuZ3RoKHRl
c3QtPm1fcGFnZUljb25zKSwgPT0sIDMpOwotCi0gICAgc3RhdGljIGNvbnN0IGF1dG8gZ2V0SWNv
bldpdGhTaXplID0gW10oV2ViS2l0SW1hZ2VMaXN0KiBpbWFnZUxpc3QsIGludCBzaXplKSAtPiBX
ZWJLaXRJbWFnZSogewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgd2Via2l0X2lt
YWdlX2xpc3RfZ2V0X2xlbmd0aChpbWFnZUxpc3QpOyArK2kpIHsKLSAgICAgICAgICAgIGF1dG8q
IGltYWdlID0gd2Via2l0X2ltYWdlX2xpc3RfZ2V0KGltYWdlTGlzdCwgaSk7Ci0gICAgICAgICAg
ICBpZiAod2Via2l0X2ltYWdlX2dldF93aWR0aChpbWFnZSkgPT0gc2l6ZSAmJiB3ZWJraXRfaW1h
Z2VfZ2V0X2hlaWdodChpbWFnZSkgPT0gc2l6ZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gaW1h
Z2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfTsKLQotICAgIHN0
YXRpYyBjb25zdCBhdXRvIGdldEFSR0JDb2xvckF0T3JpZ2luID0gW10oV2ViS2l0SW1hZ2UqIGlt
YWdlKSAtPiBzdGQ6Om9wdGlvbmFsPHVpbnQzMl90PiB7Ci0gICAgICAgIGF1dG8qIGltYWdlQnl0
ZXMgPSB3ZWJraXRfaW1hZ2VfYXNfYnl0ZXMoaW1hZ2UpOwotCi0gICAgICAgIHNpemVfdCBpbWFn
ZURhdGFTaXplID0gMDsKLSAgICAgICAgYXV0byogaW1hZ2VEYXRhID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50MzJfdCo+KGdfYnl0ZXNfZ2V0X2RhdGEoaW1hZ2VCeXRlcywgJmltYWdlRGF0
YVNpemUpKTsKLSAgICAgICAgaWYgKGltYWdlRGF0YVNpemUgPj0gc2l6ZW9mKHVpbnQzMl90KSkK
LSAgICAgICAgICAgIHJldHVybiAqaW1hZ2VEYXRhOwotCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0gICAgfTsKLQotICAgIGF1dG8qIHdoaXRlSWNvbiA9IGdldEljb25XaXRoU2l6ZSh0
ZXN0LT5tX3BhZ2VJY29ucywgMTYpOwotICAgIGdfYXNzZXJ0X25vbm51bGwod2hpdGVJY29uKTsK
LSAgICBhdXRvIHdoaXRlSWNvblBpeGVsID0gZ2V0QVJHQkNvbG9yQXRPcmlnaW4od2hpdGVJY29u
KTsKLSAgICBnX2Fzc2VydF90cnVlKHdoaXRlSWNvblBpeGVsLmhhc192YWx1ZSgpKTsKLSAgICBn
X2Fzc2VydF9jbXBpbnQoKndoaXRlSWNvblBpeGVsLCA9PSwgMHhGRkZGRkZGRik7Ci0KLSAgICBh
dXRvKiByZWRJY29uID0gZ2V0SWNvbldpdGhTaXplKHRlc3QtPm1fcGFnZUljb25zLCAzMik7Ci0g
ICAgZ19hc3NlcnRfbm9ubnVsbChyZWRJY29uKTsKLSAgICBhdXRvIHJlZEljb25QaXhlbCA9IGdl
dEFSR0JDb2xvckF0T3JpZ2luKHJlZEljb24pOwotICAgIGdfYXNzZXJ0X3RydWUocmVkSWNvblBp
eGVsLmhhc192YWx1ZSgpKTsKLSAgICBnX2Fzc2VydF9jbXBpbnQoKnJlZEljb25QaXhlbCwgPT0s
IDB4RkZGRjAwMDApOwotCi0gICAgYXV0byogYmx1ZUljb24gPSBnZXRJY29uV2l0aFNpemUodGVz
dC0+bV9wYWdlSWNvbnMsIDQ4KTsKLSAgICBnX2Fzc2VydF9ub25udWxsKGJsdWVJY29uKTsKLSAg
ICBhdXRvIGJsdWVJY29uUGl4ZWwgPSBnZXRBUkdCQ29sb3JBdE9yaWdpbihibHVlSWNvbik7Ci0g
ICAgZ19hc3NlcnRfdHJ1ZShibHVlSWNvblBpeGVsLmhhc192YWx1ZSgpKTsKLSAgICBnX2Fzc2Vy
dF9jbXBpbnQoKmJsdWVJY29uUGl4ZWwsID09LCAweEZGMDAwMEZGKTsKLX0KLSNlbmRpZiAvLyBF
TkFCTEUoMjAyMl9HTElCX0FQSSkKLQogc3RhdGljIHZvaWQgZXBoZW1lcmFsVmlld0Zhdmljb25D
aGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3VGVzdCog
dGVzdCkKIHsKICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMod2ViVmll
dywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oZXBoZW1lcmFsVmlld0Zhdmljb25DaGFuZ2VkKSwg
dGVzdCk7CkBAIC01ODYsOSArNDUyLDYgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIEZhdmljb25E
YXRhYmFzZVRlc3Q6OmFkZCgiV2ViS2l0RmF2aWNvbkRhdGFiYXNlIiwgImdldC1mYXZpY29uIiwg
dGVzdEZhdmljb25EYXRhYmFzZUdldEZhdmljb24pOwogICAgIEZhdmljb25EYXRhYmFzZVRlc3Q6
OmFkZCgiV2ViS2l0RmF2aWNvbkRhdGFiYXNlIiwgImVwaGVtZXJhbCIsIHRlc3RGYXZpY29uRGF0
YWJhc2VFcGhlbWVyYWwpOwogICAgIEZhdmljb25EYXRhYmFzZVRlc3Q6OmFkZCgiV2ViS2l0RmF2
aWNvbkRhdGFiYXNlIiwgImNsZWFyIiwgdGVzdEZhdmljb25EYXRhYmFzZUNsZWFyKTsKLSNpZiBF
TkFCTEUoMjAyMl9HTElCX0FQSSkKLSAgICBGYXZpY29uRGF0YWJhc2VUZXN0OjphZGQoIldlYktp
dEZhdmljb25EYXRhYmFzZSIsICJnZXQtcGFnZS1pY29ucyIsIHRlc3RGYXZpY29uRGF0YWJhc2VH
ZXRQYWdlSWNvbnMpOwotI2VuZGlmCiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL3Jlc291cmNlcy9ibHVlLTQ4eDQ4
LnBuZyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvYmx1
ZS00OHg0OC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3MzE1M2E1NWM5ODQw
NWMxYTBiMDhhMzZmMThiNzdmMWFmMTQyZTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmxpdGVy
YWwgMTU3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMXxaREgzP3leVVdGRy1pakt4OWpQSy1C
Qz5lS0B7RWF7SEVqdG1TTgp6YD8+IWx2STYtRSRzUiR6Mz1DQ2ozPTlufDM9RkAzTEpjbiU3KXBW
cnloPm5UdSRzWlpBWUwkTVNEKzEwZjtxcV4KdiNGY15KZV48cSZhM0doKik1UzVROyNSVCpZWH5h
P1YqbXI9aylvPnRLeWUwN1MzajNeUDY8cl9acTZqKgoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvcmVkLTMyeDMyLnBuZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9yZXNvdXJjZXMvcmVkLTMyeDMyLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWZjN2RhMWQwNmRlZDQ3OTY1MGM2NmVlYzNk
ZDA1YjUwZGJhYzA1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApH
SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCAxNTYKemNtZUFT
QE4/KG9sSHlgdVZCcSFpYTB2cF4zTHduTDM/eDBieXgwejs3Pms0NG9mdlBQKVRzd0BTa2ZKUjlU
XnhsCnpfSCtNOVdDZntBXzZZSzJWNW19S1V9JEp6VkU2P1RZSXdvR1AtPyl5QEc2MFUhRDxFcmdM
dUs1VTRiQDAzRlpLdwp1NVpDXzw0M2R2SCY0RkJRUFohNktpZClHTlBrQHtTNDIrKnx6cDRiWDco
OEE1VC1HQHlHeXdvdUNuZk8hCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGli
L1Rlc3RFeHBlY3RhdGlvbnMuanNvbiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9UZXN0RXhw
ZWN0YXRpb25zLmpzb24KaW5kZXggZmJjOTExOWJhZmQxLi4zYTdhNWJhZjQxODYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9UZXN0RXhwZWN0YXRpb25zLmpzb24KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1Rlc3RFeHBlY3RhdGlvbnMuanNvbgpAQCAtMTQ0LDkg
KzE0NCw2IEBACiAgICAgICAgICJzdWJ0ZXN0cyI6IHsKICAgICAgICAgICAgICIvd2Via2l0L1dl
YktpdEZhdmljb25EYXRhYmFzZS9nZXQtZmF2aWNvbiI6IHsKICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiB7Imd0ayI6IHsic3RhdHVzIjogWyJGQUlMIiwgIlBBU1MiXSwgImJ1ZyI6ICJ3ZWJr
aXQub3JnL2IvMzEwNDI4In19Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgIi93ZWJraXQv
V2ViS2l0RmF2aWNvbkRhdGFiYXNlL2dldC1wYWdlLWljb25zIjogewotICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6IHsiZ3RrIjogeyJzdGF0dXMiOiBbIkZBSUwiLCAiUEFTUyJdLCAiYnVnIjog
IndlYmtpdC5vcmcvYi8zMTExMDUifX0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0s
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>