<?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>290810</bug_id>
          
          <creation_ts>2025-03-31 16:51:27 -0700</creation_ts>
          <short_desc>REGRESSION(292946@main): basic browsing does not seem to work</short_desc>
          <delta_ts>2025-04-01 12:46:21 -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>290738</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>Morningstar</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2107632</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-31 16:51:27 -0700</bug_when>
    <thetext>https://commits.webkit.org/292946@main introduced a regression:
basic browsing does not seem to work

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>2107634</commentid>
    <comment_count>1</comment_count>
      <attachid>474780</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-31 16:51:34 -0700</bug_when>
    <thetext>Created attachment 474780
REVERT of 292946@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>2107666</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-03-31 18:03:26 -0700</bug_when>
    <thetext>Committed 292980@main (e183674b74e1): &lt;https://commits.webkit.org/292980@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 474780.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2107667</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-03-31 18:04:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/148291222&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2107875</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2025-04-01 12:46:08 -0700</bug_when>
    <thetext>*** Bug 290807 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2107877</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2025-04-01 12:46:21 -0700</bug_when>
    <thetext>*** Bug 290821 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474780</attachid>
            <date>2025-03-31 16:51:34 -0700</date>
            <delta_ts>2025-03-31 18:03:27 -0700</delta_ts>
            <desc>REVERT of 292946@main</desc>
            <filename>bug-290810-20250331235134.patch</filename>
            <type>text/plain</type>
            <size>38890</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBlZjY5NmVlZTVkODlkMWE0NDNlNWRhNjYwNTA0Zjk3OGJjNWEwNmJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBNb24sIDMxIE1hciAyMDI1IDIzOjUxOjMxICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI5Mjk0NkBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI5MDgxMAoKYmFzaWMgYnJvd3NpbmcgZG9lcyBub3Qgc2VlbSB0
byB3b3JrCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiQWRkcmVzcyBtb3JlIFNhZmVyIENQUCBmYWls
dXJlcyBpbiBXZWJLaXQvU2hhcmVkIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjkwNzM4Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzI5Mjk0NkBtYWluCi0tLQog
Li4uL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tICAgIHwgIDggKy0KIC4u
Li9VbmNvdW50ZWRDYWxsQXJnc0NoZWNrZXJFeHBlY3RhdGlvbnMgICAgICB8ICAxICsKIC4uLi9V
bmNvdW50ZWRMb2NhbFZhcnNDaGVja2VyRXhwZWN0YXRpb25zICAgICB8ICAxICsKIC4uLi9VbnJl
dGFpbmVkTG9jYWxWYXJzQ2hlY2tlckV4cGVjdGF0aW9ucyAgICB8ICA3ICsrCiAuLi4vV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3QubW0gfCAgNCArLQogLi4uL1NoYXJlZC9B
UEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rlci5tbSAgIHwgOTEgKysrKysrKysrLS0tLS0tLS0t
LQogLi4uL0FwcGxlUGF5L0FwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXMubW0gIHwgIDQgKy0K
IC4uLi9jb2NvYS9EZWZlcnJlZFBheW1lbnRSZXF1ZXN0Q29jb2EubW0gICAgICB8ICA0ICstCiAu
Li4vY29jb2EvUGF5bWVudFNldHVwQ29uZmlndXJhdGlvbkNvY29hLm1tICAgfCAgNCArLQogLi4u
L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaCAgIHwgIDQgKy0KIC4uLi9j
b2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tICB8IDEyICstLQogLi4uL21h
Yy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbSAgICAgIHwgIDIgKy0KIC4uLi9TaGFy
ZWQvSmF2YVNjcmlwdEV2YWx1YXRpb25SZXN1bHQubW0gICAgICB8ICA0ICstCiAuLi4vUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0gICAgICAgICAgICAgICAgfCAyNCArKy0tLQogLi4uL1JlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbSAgICAgICAgIHwgMTQgKy0tCiAuLi4vV2ViS2l0
L1NoYXJlZC9jZi9Db3JlSVBDU2VjS2V5Y2hhaW5JdGVtLmggfCAgNyArLQogMTYgZmlsZXMgY2hh
bmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5t
bSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXIubW0KaW5kZXggZTdiNjA4YjNlNTZkLi5mMzE4N2IxN2JmNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlv
blByZXNlbnRlci5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihzdGQ6Om9wdGlvbmFs
CiAjaWYgSEFWRShQQVNTS0lUX1VQREFURV9TSElQUElOR19NRVRIT0RTX1dIRU5fQ0hBTkdJTkdf
U1VNTUFSWV9JVEVNUykKICAgICBbcGF5bWVudE1ldGhvZFVwZGF0ZSBzZXRFcnJvcnM6dG9OU0Vy
cm9ycyhXVEZNb3ZlKHVwZGF0ZS0+ZXJyb3JzKSkuZ2V0KCldOwogI2lmIEhBVkUoUEFTU0tJVF9E
RUZBVUxUX1NISVBQSU5HX01FVEhPRCkKLSAgICBbcGF5bWVudE1ldGhvZFVwZGF0ZSBzZXRBdmFp
bGFibGVTaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhXVEZNb3ZlKHVwZGF0ZS0+
bmV3U2hpcHBpbmdNZXRob2RzKSkuZ2V0KCldOworICAgIFtwYXltZW50TWV0aG9kVXBkYXRlIHNl
dEF2YWlsYWJsZVNoaXBwaW5nTWV0aG9kczp0b1BLU2hpcHBpbmdNZXRob2RzKFdURk1vdmUodXBk
YXRlLT5uZXdTaGlwcGluZ01ldGhvZHMpKV07CiAjZWxzZQogICAgIFtwYXltZW50TWV0aG9kVXBk
YXRlIHNldFNoaXBwaW5nTWV0aG9kczpjcmVhdGVOU0FycmF5KFdURk1vdmUodXBkYXRlLT5uZXdT
aGlwcGluZ01ldGhvZHMpLCBbXSAoYXV0byYgbWV0aG9kKSB7CiAgICAgICAgIHJldHVybiB0b1BL
U2hpcHBpbmdNZXRob2QobWV0aG9kKTsKQEAgLTM2MCw3ICszNjAsNyBAQCB2b2lkIFBheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihz
dGQ6Om9wdGlvbgogICAgICAgICBzaGlwcGluZ0NvbnRhY3RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6
OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNlKCkgaW5p
dFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKFdU
Rk1vdmUodXBkYXRlLT5uZXdUb3RhbCksIFdURk1vdmUodXBkYXRlLT5uZXdMaW5lSXRlbXMpKV0p
OwogICAgIFtzaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2V0RXJyb3JzOnRvTlNFcnJvcnMoV1RGTW92
ZSh1cGRhdGUtPmVycm9ycykpLmdldCgpXTsKICNpZiBIQVZFKFBBU1NLSVRfREVGQVVMVF9TSElQ
UElOR19NRVRIT0QpCi0gICAgW3NoaXBwaW5nQ29udGFjdFVwZGF0ZSBzZXRBdmFpbGFibGVTaGlw
cGluZ01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBp
bmdNZXRob2RzKSkuZ2V0KCldOworICAgIFtzaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2V0QXZhaWxh
YmxlU2hpcHBpbmdNZXRob2RzOnRvUEtTaGlwcGluZ01ldGhvZHMoV1RGTW92ZSh1cGRhdGUtPm5l
d1NoaXBwaW5nTWV0aG9kcykpXTsKICNlbHNlCiAgICAgW3NoaXBwaW5nQ29udGFjdFVwZGF0ZSBz
ZXRTaGlwcGluZ01ldGhvZHM6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBp
bmdNZXRob2RzKSwgW10gKGF1dG8mIG1ldGhvZCkgewogICAgICAgICByZXR1cm4gdG9QS1NoaXBw
aW5nTWV0aG9kKG1ldGhvZCk7CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihzdGQ6Om9w
dGlvbmEKIAogICAgIGF1dG8gc2hpcHBpbmdNZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFs
bG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0
aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92
ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7CiAj
aWYgSEFWRShQQVNTS0lUX0RFRkFVTFRfU0hJUFBJTkdfTUVUSE9EKQotICAgIFtzaGlwcGluZ01l
dGhvZFVwZGF0ZSBzZXRBdmFpbGFibGVTaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9k
cyhXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKSkuZ2V0KCldOworICAgIFtzaGlw
cGluZ01ldGhvZFVwZGF0ZSBzZXRBdmFpbGFibGVTaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBwaW5n
TWV0aG9kcyhXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKSldOwogI2VsaWYgSEFW
RShQQVNTS0lUX1VQREFURV9TSElQUElOR19NRVRIT0RTX1dIRU5fQ0hBTkdJTkdfU1VNTUFSWV9J
VEVNUykKICAgICBbc2hpcHBpbmdNZXRob2RVcGRhdGUgc2V0U2hpcHBpbmdNZXRob2RzOmNyZWF0
ZU5TQXJyYXkoV1RGTW92ZSh1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcyksIFtdIChhdXRvJiBt
ZXRob2QpIHsKICAgICAgICAgcmV0dXJuIHRvUEtTaGlwcGluZ01ldGhvZChtZXRob2QpOwpAQCAt
NDMzLDcgKzQzMyw3IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBs
ZXRlQ291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPFdlYkNvCiAgICAgYXV0byBjb3Vwb25D
b2RlVXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RDb3Vwb25Db2Rl
VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxh
dGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRh
dGUtPm5ld0xpbmVJdGVtcykpXSk7CiAgICAgW2NvdXBvbkNvZGVVcGRhdGUgc2V0RXJyb3JzOnRv
TlNFcnJvcnMoV1RGTW92ZSh1cGRhdGUtPmVycm9ycykpLmdldCgpXTsKICNpZiBIQVZFKFBBU1NL
SVRfREVGQVVMVF9TSElQUElOR19NRVRIT0QpCi0gICAgW2NvdXBvbkNvZGVVcGRhdGUgc2V0QXZh
aWxhYmxlU2hpcHBpbmdNZXRob2RzOnRvUEtTaGlwcGluZ01ldGhvZHMoV1RGTW92ZSh1cGRhdGUt
Pm5ld1NoaXBwaW5nTWV0aG9kcykpLmdldCgpXTsKKyAgICBbY291cG9uQ29kZVVwZGF0ZSBzZXRB
dmFpbGFibGVTaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhXVEZNb3ZlKHVwZGF0
ZS0+bmV3U2hpcHBpbmdNZXRob2RzKSldOwogI2Vsc2UKICAgICBbY291cG9uQ29kZVVwZGF0ZSBz
ZXRTaGlwcGluZ01ldGhvZHM6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBp
bmdNZXRob2RzKSwgW10gKGF1dG8mIG1ldGhvZCkgewogICAgICAgICByZXR1cm4gdG9QS1NoaXBw
aW5nTWV0aG9kKG1ldGhvZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NhZmVyQ1BQRXhw
ZWN0YXRpb25zL1VuY291bnRlZENhbGxBcmdzQ2hlY2tlckV4cGVjdGF0aW9ucyBiL1NvdXJjZS9X
ZWJLaXQvU2FmZXJDUFBFeHBlY3RhdGlvbnMvVW5jb3VudGVkQ2FsbEFyZ3NDaGVja2VyRXhwZWN0
YXRpb25zCmluZGV4IGVkYTBjNzNjYjAzYi4uY2ViMWZjM2NmMmI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NhZmVyQ1BQRXhwZWN0YXRpb25zL1VuY291bnRlZENhbGxBcmdzQ2hlY2tlckV4
cGVjdGF0aW9ucworKysgYi9Tb3VyY2UvV2ViS2l0L1NhZmVyQ1BQRXhwZWN0YXRpb25zL1VuY291
bnRlZENhbGxBcmdzQ2hlY2tlckV4cGVjdGF0aW9ucwpAQCAtOCw2ICs4LDcgQEAgUGxhdGZvcm0v
SVBDL0Nvbm5lY3Rpb24uaAogUGxhdGZvcm0vSVBDL1N0cmVhbUNsaWVudENvbm5lY3Rpb24uY3Bw
CiBTaGFyZWQvQ29jb2EvV0tPYmplY3QubW0KIFNoYXJlZC9KYXZhU2NyaXB0RXZhbHVhdGlvblJl
c3VsdC5tbQorU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQogVUlQcm9jZXNzL0FQSS9BUElEYXRhVGFzay5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25E
ZWNpc2lvbkxpc3RlbmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TYWZlckNQUEV4
cGVjdGF0aW9ucy9VbmNvdW50ZWRMb2NhbFZhcnNDaGVja2VyRXhwZWN0YXRpb25zIGIvU291cmNl
L1dlYktpdC9TYWZlckNQUEV4cGVjdGF0aW9ucy9VbmNvdW50ZWRMb2NhbFZhcnNDaGVja2VyRXhw
ZWN0YXRpb25zCmluZGV4IDRkNWJkODAzYTdmNi4uMzI2MDlmMjAzYTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NhZmVyQ1BQRXhwZWN0YXRpb25zL1VuY291bnRlZExvY2FsVmFyc0NoZWNr
ZXJFeHBlY3RhdGlvbnMKKysrIGIvU291cmNlL1dlYktpdC9TYWZlckNQUEV4cGVjdGF0aW9ucy9V
bmNvdW50ZWRMb2NhbFZhcnNDaGVja2VyRXhwZWN0YXRpb25zCkBAIC0xLDMgKzEsNCBAQAorU2hh
cmVkL0phdmFTY3JpcHRFdmFsdWF0aW9uUmVzdWx0Lm1tCiBVSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dE1lbnVMaXN0ZW5lci5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TYWZlckNQ
UEV4cGVjdGF0aW9ucy9VbnJldGFpbmVkTG9jYWxWYXJzQ2hlY2tlckV4cGVjdGF0aW9ucyBiL1Nv
dXJjZS9XZWJLaXQvU2FmZXJDUFBFeHBlY3RhdGlvbnMvVW5yZXRhaW5lZExvY2FsVmFyc0NoZWNr
ZXJFeHBlY3RhdGlvbnMKaW5kZXggNTNhOTY3ZDMwNjE5Li44Mjc3N2FkNWMyMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2FmZXJDUFBFeHBlY3RhdGlvbnMvVW5yZXRhaW5lZExvY2FsVmFy
c0NoZWNrZXJFeHBlY3RhdGlvbnMKKysrIGIvU291cmNlL1dlYktpdC9TYWZlckNQUEV4cGVjdGF0
aW9ucy9VbnJldGFpbmVkTG9jYWxWYXJzQ2hlY2tlckV4cGVjdGF0aW9ucwpAQCAtOCwxNiArOCwy
MyBAQCBQbGF0Zm9ybS9jb2NvYS9XZWJQcml2YWN5SGVscGVycy5tbQogUGxhdGZvcm0vY29jb2Ev
X1dLV2ViVmlld1RleHRJbnB1dE5vdGlmaWNhdGlvbnMubW0KIFBsYXRmb3JtL21hYy9NZW51VXRp
bGl0aWVzLm1tCiBQbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCitTaGFyZWQvQVBJL0Nv
Y29hL1dLUmVtb3RlT2JqZWN0Lm1tCiBTaGFyZWQvQVBJL0NvY29hL1dLUmVtb3RlT2JqZWN0Q29k
ZXIubW0KIFNoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KIFNoYXJlZC9BUEkvQ29j
b2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLm1tCiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5Lm1tCitTaGFyZWQvQXBwbGVQYXkvQXBwbGVQYXlQYXltZW50U2V0dXBG
ZWF0dXJlcy5tbQorU2hhcmVkL0FwcGxlUGF5L2NvY29hL0RlZmVycmVkUGF5bWVudFJlcXVlc3RD
b2NvYS5tbQorU2hhcmVkL0FwcGxlUGF5L2NvY29hL1BheW1lbnRTZXR1cENvbmZpZ3VyYXRpb25D
b2NvYS5tbQorU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Q29jb2EubW0KK1NoYXJlZC9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlN
YWMubW0KIFNoYXJlZC9Db2NvYS9BUElPYmplY3QubW0KIFNoYXJlZC9Db2NvYS9BdXhpbGlhcnlQ
cm9jZXNzQ29jb2EubW0KIFNoYXJlZC9Db2NvYS9Db21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
Lm1tCiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ0VuZHBv
aW50TWVzc2FnZXMubW0KIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZp
Y2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KK1NoYXJlZC9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLm1tCiBTaGFyZWQvY2YvQ29yZUlQQ1NlY0tl
eWNoYWluSXRlbS5oCiBVSVByb2Nlc3MvQVBJL0NvY29hL0FQSUF0dGFjaG1lbnRDb2NvYS5tbQog
VUlQcm9jZXNzL0FQSS9Db2NvYS9BUElDb250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3QubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3QubW0KaW5kZXgg
MDFmZTM2OTI2ZGZlLi4yOGVjNjljYjBlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3QubW0KQEAgLTcyLDkgKzcyLDkgQEAgLSAoTlNNZXRo
b2RTaWduYXR1cmUgKiltZXRob2RTaWduYXR1cmVGb3JTZWxlY3RvcjooU0VMKXNlbGVjdG9yCiAg
ICAgaWYgKCFzZWxlY3RvcikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFJldGFpblB0ciBw
cm90b2NvbCA9IFtfaW50ZXJmYWNlIHByb3RvY29sXTsKKyAgICBQcm90b2NvbCAqcHJvdG9jb2wg
PSBbX2ludGVyZmFjZSBwcm90b2NvbF07CiAKLSAgICBjb25zdCBjaGFyKiB0eXBlcyA9IG1ldGhv
ZEFyZ3VtZW50VHlwZUVuY29kaW5nRm9yU2VsZWN0b3IocHJvdG9jb2wuZ2V0KCksIHNlbGVjdG9y
KTsKKyAgICBjb25zdCBjaGFyKiB0eXBlcyA9IG1ldGhvZEFyZ3VtZW50VHlwZUVuY29kaW5nRm9y
U2VsZWN0b3IocHJvdG9jb2wsIHNlbGVjdG9yKTsKICAgICBpZiAoIXR5cGVzKSB7CiAgICAgICAg
IC8vIFdlIGRpZG4ndCBmaW5kIGFueXRoaW5nIHRoZSBwcm90b2NvbCwgZmFsbCBiYWNrIHRvIHRo
ZSBzdXBlcmNsYXNzLgogICAgICAgICByZXR1cm4gW3N1cGVyIG1ldGhvZFNpZ25hdHVyZUZvclNl
bGVjdG9yOnNlbGVjdG9yXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL1dLUmVtb3RlT2JqZWN0Q29kZXIubW0KaW5kZXggNzIyY2E3YWE0MGY3Li5hMjMyNzdiOTNk
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9i
amVjdENvZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90
ZU9iamVjdENvZGVyLm1tCkBAIC0xNTAsOCArMTUwLDggQEAgc3RhdGljIHZvaWQgZW5jb2RlVG9P
YmplY3RTdHJlYW0oV0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGVyLCBpZCB2YWx1ZSkKIAog
c3RhdGljIHZvaWQgZW5jb2RlSW52b2NhdGlvbkFyZ3VtZW50cyhXS1JlbW90ZU9iamVjdEVuY29k
ZXIgKmVuY29kZXIsIE5TSW52b2NhdGlvbiAqaW52b2NhdGlvbiwgTlNVSW50ZWdlciBmaXJzdEFy
Z3VtZW50KQogewotICAgIFJldGFpblB0cjxOU01ldGhvZFNpZ25hdHVyZT4gbWV0aG9kU2lnbmF0
dXJlID0gaW52b2NhdGlvbi5tZXRob2RTaWduYXR1cmU7Ci0gICAgTlNVSW50ZWdlciBhcmd1bWVu
dENvdW50ID0gbWV0aG9kU2lnbmF0dXJlLmdldCgpLm51bWJlck9mQXJndW1lbnRzOworICAgIE5T
TWV0aG9kU2lnbmF0dXJlICptZXRob2RTaWduYXR1cmUgPSBpbnZvY2F0aW9uLm1ldGhvZFNpZ25h
dHVyZTsKKyAgICBOU1VJbnRlZ2VyIGFyZ3VtZW50Q291bnQgPSBtZXRob2RTaWduYXR1cmUubnVt
YmVyT2ZBcmd1bWVudHM7CiAKICAgICBBU1NFUlQoZmlyc3RBcmd1bWVudCA8PSBhcmd1bWVudENv
dW50KTsKIApAQCAtMzE3LDggKzMxNyw4IEBAIHN0YXRpYyB2b2lkIGVuY29kZUludm9jYXRpb25B
cmd1bWVudHMoV0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGVyLCBOU0ludm9jYXRpCiAKIHN0
YXRpYyB2b2lkIGVuY29kZUludm9jYXRpb24oV0tSZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGVy
LCBOU0ludm9jYXRpb24gKmludm9jYXRpb24pCiB7Ci0gICAgUmV0YWluUHRyPE5TTWV0aG9kU2ln
bmF0dXJlPiBtZXRob2RTaWduYXR1cmUgPSBpbnZvY2F0aW9uLm1ldGhvZFNpZ25hdHVyZTsKLSAg
ICBbZW5jb2RlciBlbmNvZGVPYmplY3Q6bWV0aG9kU2lnbmF0dXJlLmdldCgpLl90eXBlU3RyaW5n
IGZvcktleTp0eXBlU3RyaW5nS2V5XTsKKyAgICBOU01ldGhvZFNpZ25hdHVyZSAqbWV0aG9kU2ln
bmF0dXJlID0gaW52b2NhdGlvbi5tZXRob2RTaWduYXR1cmU7CisgICAgW2VuY29kZXIgZW5jb2Rl
T2JqZWN0Om1ldGhvZFNpZ25hdHVyZS5fdHlwZVN0cmluZyBmb3JLZXk6dHlwZVN0cmluZ0tleV07
CiAKICAgICBpZiAoW2ludm9jYXRpb24gaXNLaW5kT2ZDbGFzczpbTlNCbG9ja0ludm9jYXRpb24g
Y2xhc3NdXSkgewogICAgICAgICBbZW5jb2RlciBlbmNvZGVCb29sOllFUyBmb3JLZXk6aXNSZXBs
eUJsb2NrS2V5XTsKQEAgLTM4OSwxNSArMzg5LDE1IEBAIHN0YXRpYyB2b2lkIGVuY29kZUVycm9y
KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5jb2RlciwgTlNFcnJvciAqZXJyb3IpCiAgICAgICAg
ICAgICBjb3B5ID0gYWRvcHROUyhbZXJyb3IudXNlckluZm8gbXV0YWJsZUNvcHldKTsKICAgICAg
ICAgW2NvcHkgcmVtb3ZlT2JqZWN0Rm9yS2V5OmNsaWVudENlcnRpZmljYXRlS2V5XTsKICAgICB9
Ci0gICAgaWYgKFJldGFpblB0cjxOU0FycmF5PiBjZXJ0aWZpY2F0ZUNoYWluID0gZXJyb3IudXNl
ckluZm9bcGVlckNlcnRpZmljYXRlS2V5XSkgeworICAgIGlmIChOU0FycmF5ICpjZXJ0aWZpY2F0
ZUNoYWluID0gZXJyb3IudXNlckluZm9bcGVlckNlcnRpZmljYXRlS2V5XSkgewogICAgICAgICBp
ZiAoIWNvcHkpCiAgICAgICAgICAgICBjb3B5ID0gYWRvcHROUyhbZXJyb3IudXNlckluZm8gbXV0
YWJsZUNvcHldKTsKLSAgICAgICAgY29weS5nZXQoKVtwZWVyQ2VydGlmaWNhdGVLZXldID0gdHJh
bnNmb3JtQ2VydGlmaWNhdGVzVG9EYXRhKGNlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpLmdldCgpOwor
ICAgICAgICBjb3B5LmdldCgpW3BlZXJDZXJ0aWZpY2F0ZUtleV0gPSB0cmFuc2Zvcm1DZXJ0aWZp
Y2F0ZXNUb0RhdGEoY2VydGlmaWNhdGVDaGFpbikuZ2V0KCk7CiAgICAgfQotICAgIGlmIChSZXRh
aW5QdHI8aWQ+IHRydXN0ID0gZXJyb3IudXNlckluZm9bcGVlclRydXN0S2V5XSkgeworICAgIGlm
IChpZCB0cnVzdCA9IGVycm9yLnVzZXJJbmZvW3BlZXJUcnVzdEtleV0pIHsKICAgICAgICAgaWYg
KCFjb3B5KQogICAgICAgICAgICAgY29weSA9IGFkb3B0TlMoW2Vycm9yLnVzZXJJbmZvIG11dGFi
bGVDb3B5XSk7Ci0gICAgICAgIGNvcHkuZ2V0KClbcGVlclRydXN0S2V5XSA9IGJyaWRnZV9jYXN0
KHRyYW5zZm9ybVRydXN0VG9EYXRhKChTZWNUcnVzdFJlZil0cnVzdC5nZXQoKSkuZ2V0KCkpOwor
ICAgICAgICBjb3B5LmdldCgpW3BlZXJUcnVzdEtleV0gPSBicmlkZ2VfY2FzdCh0cmFuc2Zvcm1U
cnVzdFRvRGF0YSgoU2VjVHJ1c3RSZWYpdHJ1c3QpLmdldCgpKTsKICAgICB9CiAgICAgaWYgKCFj
b3B5KQogICAgICAgICBbZXJyb3IgZW5jb2RlV2l0aENvZGVyOmVuY29kZXJdOwpAQCAtNDM0LDE0
ICs0MzQsMTQgQEAgc3RhdGljIFJldGFpblB0cjxOU0Vycm9yPiBkZWNvZGVFcnJvcihXS1JlbW90
ZU9iamVjdERlY29kZXIgKmRlY29kZXIpCiB7CiAgICAgUmV0YWluUHRyPE5TRXJyb3I+IGVycm9y
ID0gZGVjb2RlT2JqQ09iamVjdChkZWNvZGVyLCBbTlNFcnJvciBjbGFzc10pOwogICAgIFJldGFp
blB0cjxOU011dGFibGVEaWN0aW9uYXJ5PiBjb3B5OwotICAgIGlmIChSZXRhaW5QdHI8TlNBcnJh
eT4gY2VydGlmaWNhdGVDaGFpbiA9IGVycm9yLmdldCgpLnVzZXJJbmZvW3BlZXJDZXJ0aWZpY2F0
ZUtleV0pIHsKKyAgICBpZiAoTlNBcnJheSAqY2VydGlmaWNhdGVDaGFpbiA9IGVycm9yLmdldCgp
LnVzZXJJbmZvW3BlZXJDZXJ0aWZpY2F0ZUtleV0pIHsKICAgICAgICAgY29weSA9IGFkb3B0TlMo
W2Vycm9yLmdldCgpLnVzZXJJbmZvIG11dGFibGVDb3B5XSk7Ci0gICAgICAgIGNvcHkuZ2V0KClb
cGVlckNlcnRpZmljYXRlS2V5XSA9IHRyYW5zZm9ybURhdGFUb0NlcnRpZmljYXRlcyhjZXJ0aWZp
Y2F0ZUNoYWluLmdldCgpKS5nZXQoKTsKKyAgICAgICAgY29weS5nZXQoKVtwZWVyQ2VydGlmaWNh
dGVLZXldID0gdHJhbnNmb3JtRGF0YVRvQ2VydGlmaWNhdGVzKGNlcnRpZmljYXRlQ2hhaW4pLmdl
dCgpOwogICAgIH0KLSAgICBpZiAoUmV0YWluUHRyPE5TRGF0YT4gdHJ1c3QgPSBlcnJvci5nZXQo
KS51c2VySW5mb1twZWVyVHJ1c3RLZXldKSB7CisgICAgaWYgKE5TRGF0YSAqdHJ1c3QgPSBlcnJv
ci5nZXQoKS51c2VySW5mb1twZWVyVHJ1c3RLZXldKSB7CiAgICAgICAgIGlmICghY29weSkKICAg
ICAgICAgICAgIGNvcHkgPSBhZG9wdE5TKFtlcnJvci5nZXQoKS51c2VySW5mbyBtdXRhYmxlQ29w
eV0pOwotICAgICAgICBjb3B5LmdldCgpW3BlZXJUcnVzdEtleV0gPSBicmlkZ2VfaWRfY2FzdCh0
cmFuc2Zvcm1EYXRhVG9UcnVzdCh0cnVzdC5nZXQoKSkuZ2V0KCkpOworICAgICAgICBjb3B5Lmdl
dCgpW3BlZXJUcnVzdEtleV0gPSBicmlkZ2VfaWRfY2FzdCh0cmFuc2Zvcm1EYXRhVG9UcnVzdCh0
cnVzdCkuZ2V0KCkpOwogICAgIH0KICAgICBpZiAoIWNvcHkpCiAgICAgICAgIHJldHVybiBlcnJv
cjsKQEAgLTQ1OCw3ICs0NTgsNyBAQCBzdGF0aWMgdm9pZCBlbmNvZGVPYmplY3QoV0tSZW1vdGVP
YmplY3RFbmNvZGVyICplbmNvZGVyLCBpZCBvYmplY3QpCiAgICAgaWYgKGNsYXNzX2lzTWV0YUNs
YXNzKG9iamVjdF9nZXRDbGFzcyhvYmplY3QpKSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNl
Ok5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIkNsYXNzIG9iamVjdHMgbWF5IG5v
dCBiZSBlbmNvZGVkIl07CiAKLSAgICBSZXRhaW5QdHI8Q2xhc3M+IG9iamVjdENsYXNzID0gW29i
amVjdCBjbGFzc0ZvckNvZGVyXTsKKyAgICBDbGFzcyBvYmplY3RDbGFzcyA9IFtvYmplY3QgY2xh
c3NGb3JDb2Rlcl07CiAgICAgaWYgKCFvYmplY3RDbGFzcykKICAgICAgICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIi1jbGFzc0ZvckNvZGVy
IHJldHVybmVkIG5pbCBmb3IgJUAiLCBvYmplY3RdOwogCkBAIC00NzMsNyArNDczLDcgQEAgc3Rh
dGljIHZvaWQgZW5jb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5jb2RlciwgaWQg
b2JqZWN0KQogICAgICAgICBlbmNvZGVyLT5fb2JqZWN0c0JlaW5nRW5jb2RlZC5yZW1vdmUob2Jq
ZWN0KTsKICAgICB9KTsKIAotICAgIFJlZiB7ICplbmNvZGVyLT5fY3VycmVudERpY3Rpb25hcnkg
fS0+c2V0KGNsYXNzTmFtZUtleSwgQVBJOjpTdHJpbmc6OmNyZWF0ZShTdHJpbmc6OmZyb21MYXRp
bjEoY2xhc3NfZ2V0TmFtZShvYmplY3RDbGFzcy5nZXQoKSkpKSk7CisgICAgUmVmIHsgKmVuY29k
ZXItPl9jdXJyZW50RGljdGlvbmFyeSB9LT5zZXQoY2xhc3NOYW1lS2V5LCBBUEk6OlN0cmluZzo6
Y3JlYXRlKFN0cmluZzo6ZnJvbUxhdGluMShjbGFzc19nZXROYW1lKG9iamVjdENsYXNzKSkpKTsK
IAogICAgIGlmIChbb2JqZWN0IGlzS2luZE9mQ2xhc3M6W05TSW52b2NhdGlvbiBjbGFzc11dKSB7
CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gc3BlY2lhbCBjYXNlIE5TSW52b2NhdGlvbiBzaW5jZSB3
ZSBkb24ndCB3YW50IHRvIGVuY29kZSB0aGUgdGFyZ2V0LgpAQCAtNDgxLDEyICs0ODEsMTIgQEAg
c3RhdGljIHZvaWQgZW5jb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5jb2Rlciwg
aWQgb2JqZWN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG9iamVjdENsYXNz
LmdldCgpID09IFtOU1N0cmluZyBjbGFzc10gfHwgb2JqZWN0Q2xhc3MuZ2V0KCkgPT0gW05TTXV0
YWJsZVN0cmluZyBjbGFzc10pIHsKKyAgICBpZiAob2JqZWN0Q2xhc3MgPT0gW05TU3RyaW5nIGNs
YXNzXSB8fCBvYmplY3RDbGFzcyA9PSBbTlNNdXRhYmxlU3RyaW5nIGNsYXNzXSkgewogICAgICAg
ICBlbmNvZGVTdHJpbmcoZW5jb2Rlciwgb2JqZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChvYmplY3RDbGFzcy5nZXQoKSA9PSBbTlNFcnJvciBjbGFzc10pCisgICAgaWYg
KG9iamVjdENsYXNzID09IFtOU0Vycm9yIGNsYXNzXSkKICAgICAgICAgcmV0dXJuIGVuY29kZUVy
cm9yKGVuY29kZXIsIG9iamVjdCk7CiAgICAgCiAgICAgW29iamVjdCBlbmNvZGVXaXRoQ29kZXI6
ZW5jb2Rlcl07CkBAIC03NjgsOSArNzY4LDkgQEAgLSAoaWQpZGVjb2RlT2JqZWN0Rm9yS2V5OihO
U1N0cmluZyAqKWtleQogICAgIHJldHVybiBbc2VsZiBkZWNvZGVPYmplY3RPZkNsYXNzZXM6bmls
IGZvcktleTprZXldOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPGlkPiBkZWNvZGVPYmplY3QoV0tS
ZW1vdGVPYmplY3REZWNvZGVyICosIGNvbnN0IEFQSTo6RGljdGlvbmFyeSosIGNvbnN0IEhhc2hT
ZXQ8Q0ZUeXBlUmVmPiYgYWxsb3dlZENsYXNzZXMpOworc3RhdGljIGlkIGRlY29kZU9iamVjdChX
S1JlbW90ZU9iamVjdERlY29kZXIgKiwgY29uc3QgQVBJOjpEaWN0aW9uYXJ5KiwgY29uc3QgSGFz
aFNldDxDRlR5cGVSZWY+JiBhbGxvd2VkQ2xhc3Nlcyk7CiAKLXN0YXRpYyBSZXRhaW5QdHI8aWQ+
IGRlY29kZU9iamVjdEZyb21PYmplY3RTdHJlYW0oV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNv
ZGVyLCBjb25zdCBIYXNoU2V0PENGVHlwZVJlZj4mIGFsbG93ZWRDbGFzc2VzKQorc3RhdGljIGlk
IGRlY29kZU9iamVjdEZyb21PYmplY3RTdHJlYW0oV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNv
ZGVyLCBjb25zdCBIYXNoU2V0PENGVHlwZVJlZj4mIGFsbG93ZWRDbGFzc2VzKQogewogICAgIGlm
ICghZGVjb2Rlci0+X29iamVjdFN0cmVhbSkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTg2MSw4
ICs4NjEsOCBAQCBzdGF0aWMgdm9pZCB2YWxpZGF0ZUNsYXNzKFdLUmVtb3RlT2JqZWN0RGVjb2Rl
ciAqZGVjb2RlciwgQ2xhc3Mgb2JqZWN0Q2xhc3MpCiAKIHN0YXRpYyB2b2lkIGRlY29kZUludm9j
YXRpb25Bcmd1bWVudHMoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNvZGVyLCBOU0ludm9jYXRp
b24gKmludm9jYXRpb24sIGNvbnN0IFZlY3RvcjxIYXNoU2V0PENGVHlwZVJlZj4+JiBhbGxvd2Vk
QXJndW1lbnRDbGFzc2VzLCBOU1VJbnRlZ2VyIGZpcnN0QXJndW1lbnQpCiB7Ci0gICAgUmV0YWlu
UHRyPE5TTWV0aG9kU2lnbmF0dXJlPiBtZXRob2RTaWduYXR1cmUgPSBpbnZvY2F0aW9uLm1ldGhv
ZFNpZ25hdHVyZTsKLSAgICBOU1VJbnRlZ2VyIGFyZ3VtZW50Q291bnQgPSBtZXRob2RTaWduYXR1
cmUuZ2V0KCkubnVtYmVyT2ZBcmd1bWVudHM7CisgICAgTlNNZXRob2RTaWduYXR1cmUgKm1ldGhv
ZFNpZ25hdHVyZSA9IGludm9jYXRpb24ubWV0aG9kU2lnbmF0dXJlOworICAgIE5TVUludGVnZXIg
YXJndW1lbnRDb3VudCA9IG1ldGhvZFNpZ25hdHVyZS5udW1iZXJPZkFyZ3VtZW50czsKIAogICAg
IEFTU0VSVChmaXJzdEFyZ3VtZW50IDw9IGFyZ3VtZW50Q291bnQpOwogCkBAIC05NjUsOSArOTY1
LDggQEAgc3RhdGljIHZvaWQgZGVjb2RlSW52b2NhdGlvbkFyZ3VtZW50cyhXS1JlbW90ZU9iamVj
dERlY29kZXIgKmRlY29kZXIsIE5TSW52b2NhdGkKICAgICAgICAgY2FzZSAnQCc6IHsKICAgICAg
ICAgICAgIGF1dG8mIGFsbG93ZWRDbGFzc2VzID0gYWxsb3dlZEFyZ3VtZW50Q2xhc3Nlc1tpIC0g
Zmlyc3RBcmd1bWVudF07CiAKLSAgICAgICAgICAgIFJldGFpblB0ciB2YWx1ZSA9IGRlY29kZU9i
amVjdEZyb21PYmplY3RTdHJlYW0oZGVjb2RlciwgYWxsb3dlZENsYXNzZXMpOwotICAgICAgICAg
ICAgU1VQUFJFU1NfVU5SRVRBSU5FRF9MT0NBTCBpZCB2YWx1ZUlkID0gdmFsdWUuZ2V0KCk7Ci0g
ICAgICAgICAgICBbaW52b2NhdGlvbiBzZXRBcmd1bWVudDomdmFsdWVJZCBhdEluZGV4OmldOwor
ICAgICAgICAgICAgaWQgdmFsdWUgPSBkZWNvZGVPYmplY3RGcm9tT2JqZWN0U3RyZWFtKGRlY29k
ZXIsIGFsbG93ZWRDbGFzc2VzKTsKKyAgICAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3VtZW50
OiZ2YWx1ZSBhdEluZGV4OmldOwogCiAgICAgICAgICAgICAvLyBGSVhNRTogTWFrZSBzdXJlIHRo
ZSBpbnZvY2F0aW9uIGRvZXNuJ3Qgb3V0bGl2ZSB0aGUgdmFsdWUuCiAgICAgICAgICAgICBicmVh
azsKQEAgLTk5NSwxMCArOTk0LDEwIEBAIHN0YXRpYyB2b2lkIGRlY29kZUludm9jYXRpb25Bcmd1
bWVudHMoV0tSZW1vdGVPYmplY3REZWNvZGVyICpkZWNvZGVyLCBOU0ludm9jYXRpCiAgICAgfQog
fQogCi1zdGF0aWMgUmV0YWluUHRyPE5TSW52b2NhdGlvbj4gZGVjb2RlSW52b2NhdGlvbihXS1Jl
bW90ZU9iamVjdERlY29kZXIgKmRlY29kZXIpCitzdGF0aWMgTlNJbnZvY2F0aW9uICpkZWNvZGVJ
bnZvY2F0aW9uKFdLUmVtb3RlT2JqZWN0RGVjb2RlciAqZGVjb2RlcikKIHsKICAgICBTRUwgc2Vs
ZWN0b3IgPSBudWxscHRyOwotICAgIFJldGFpblB0cjxOU0ludm9jYXRpb24+IGludm9jYXRpb247
CisgICAgTlNJbnZvY2F0aW9uKiBpbnZvY2F0aW9uID0gbmlsOwogICAgIEJPT0wgaXNSZXBseUJs
b2NrID0gW2RlY29kZXIgZGVjb2RlQm9vbEZvcktleTppc1JlcGx5QmxvY2tLZXldOwogICAgIGlm
IChpc1JlcGx5QmxvY2spIHsKICAgICAgICAgaWYgKCFkZWNvZGVyLT5fcmVwbHlUb1NlbGVjdG9y
KQpAQCAtMTAwOCwzMiArMTAwNywzMiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSW52b2NhdGlvbj4g
ZGVjb2RlSW52b2NhdGlvbihXS1JlbW90ZU9iamVjdERlY29kZXIgKmRlY29kZXIpCiAgICAgICAg
IGlmICghaW52b2NhdGlvbikKICAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFs
aWRVbmFyY2hpdmVPcGVyYXRpb25FeGNlcHRpb24gZm9ybWF0OkAiUmVwbHkgYmxvY2sgZm9yIHNl
bGVjdG9yIFwiJXNcIiBpcyBub3QgZGVmaW5lZCBpbiB0aGUgbG9jYWwgaW50ZXJmYWNlIiwgc2Vs
X2dldE5hbWUoZGVjb2Rlci0+X3JlcGx5VG9TZWxlY3RvcildOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIFJldGFpblB0cjxOU1N0cmluZz4gc2VsZWN0b3JTdHJpbmcgPSBbZGVjb2RlciBkZWNvZGVP
YmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc10gZm9yS2V5OnNlbGVjdG9yS2V5XTsKKyAgICAg
ICAgTlNTdHJpbmcgKnNlbGVjdG9yU3RyaW5nID0gW2RlY29kZXIgZGVjb2RlT2JqZWN0T2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdIGZvcktleTpzZWxlY3RvcktleV07CiAgICAgICAgIGlmICghc2Vs
ZWN0b3JTdHJpbmcpCiAgICAgICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkVW5h
cmNoaXZlT3BlcmF0aW9uRXhjZXB0aW9uIGZvcm1hdDpAIkludm9jYXRpb24gaGFkIG5vIHNlbGVj
dG9yIl07CiAKLSAgICAgICAgc2VsZWN0b3IgPSBOU1NlbGVjdG9yRnJvbVN0cmluZyhzZWxlY3Rv
clN0cmluZy5nZXQoKSk7CisgICAgICAgIHNlbGVjdG9yID0gTlNTZWxlY3RvckZyb21TdHJpbmco
c2VsZWN0b3JTdHJpbmcpOwogICAgICAgICBBU1NFUlQoc2VsZWN0b3IpOwogCiAgICAgICAgIGlu
dm9jYXRpb24gPSBbZGVjb2Rlci0+X2ludGVyZmFjZSBfaW52b2NhdGlvbkZvclNlbGVjdG9yOnNl
bGVjdG9yXTsKICAgICAgICAgaWYgKCFpbnZvY2F0aW9uKQotICAgICAgICAgICAgW05TRXhjZXB0
aW9uIHJhaXNlOk5TSW52YWxpZFVuYXJjaGl2ZU9wZXJhdGlvbkV4Y2VwdGlvbiBmb3JtYXQ6QCJT
ZWxlY3RvciBcIiVAXCIgaXMgbm90IGRlZmluZWQgaW4gdGhlIGxvY2FsIGludGVyZmFjZSIsIHNl
bGVjdG9yU3RyaW5nLmdldCgpXTsKKyAgICAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dmFsaWRVbmFyY2hpdmVPcGVyYXRpb25FeGNlcHRpb24gZm9ybWF0OkAiU2VsZWN0b3IgXCIlQFwi
IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBsb2NhbCBpbnRlcmZhY2UiLCBzZWxlY3RvclN0cmluZ107
CiAgICAgfQogCi0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiB0eXBlU2lnbmF0dXJlID0gW2RlY29k
ZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdIGZvcktleTp0eXBlU3RyaW5n
S2V5XTsKKyAgICBOU1N0cmluZyAqdHlwZVNpZ25hdHVyZSA9IFtkZWNvZGVyIGRlY29kZU9iamVj
dE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXSBmb3JLZXk6dHlwZVN0cmluZ0tleV07CiAgICAgaWYg
KCF0eXBlU2lnbmF0dXJlKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkVW5h
cmNoaXZlT3BlcmF0aW9uRXhjZXB0aW9uIGZvcm1hdDpAIkludm9jYXRpb24gaGFkIG5vIHR5cGUg
c2lnbmF0dXJlIl07CiAKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGxvY2FsTWV0aG9kU2lnbmF0
dXJlID0gW2ludm9jYXRpb24gbWV0aG9kU2lnbmF0dXJlXS5fdHlwZVN0cmluZzsKLSAgICBpZiAo
IVdlYktpdDo6bWV0aG9kU2lnbmF0dXJlc0FyZUNvbXBhdGlibGUodHlwZVNpZ25hdHVyZS5nZXQo
KSwgbG9jYWxNZXRob2RTaWduYXR1cmUuZ2V0KCkpKQorICAgIE5TU3RyaW5nICpsb2NhbE1ldGhv
ZFNpZ25hdHVyZSA9IFtpbnZvY2F0aW9uIG1ldGhvZFNpZ25hdHVyZV0uX3R5cGVTdHJpbmc7Cisg
ICAgaWYgKCFXZWJLaXQ6Om1ldGhvZFNpZ25hdHVyZXNBcmVDb21wYXRpYmxlKHR5cGVTaWduYXR1
cmUsIGxvY2FsTWV0aG9kU2lnbmF0dXJlKSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZFVuYXJjaGl2ZU9wZXJhdGlvbkV4Y2VwdGlvbiBmb3JtYXQ6QCJMb2NhbCBhbmQgcmVt
b3RlIG1ldGhvZCBzaWduYXR1cmVzIGFyZSBub3QgY29tcGF0aWJsZSBmb3IgbWV0aG9kIFwiJXNc
IiIsIHNlbGVjdG9yID8gc2VsX2dldE5hbWUoc2VsZWN0b3IpIDogIihubyBzZWxlY3RvcikiXTsK
IAogICAgIGlmIChpc1JlcGx5QmxvY2spIHsKICAgICAgICAgY29uc3QgYXV0byYgYWxsb3dlZENs
YXNzZXMgPSBbZGVjb2Rlci0+X2ludGVyZmFjZSBfYWxsb3dlZEFyZ3VtZW50Q2xhc3Nlc0ZvclJl
cGx5QmxvY2tPZlNlbGVjdG9yOmRlY29kZXItPl9yZXBseVRvU2VsZWN0b3JdOwotICAgICAgICBk
ZWNvZGVJbnZvY2F0aW9uQXJndW1lbnRzKGRlY29kZXIsIGludm9jYXRpb24uZ2V0KCksIGFsbG93
ZWRDbGFzc2VzLCAxKTsKKyAgICAgICAgZGVjb2RlSW52b2NhdGlvbkFyZ3VtZW50cyhkZWNvZGVy
LCBpbnZvY2F0aW9uLCBhbGxvd2VkQ2xhc3NlcywgMSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Y29uc3QgYXV0byYgYWxsb3dlZENsYXNzZXMgPSBbZGVjb2Rlci0+X2ludGVyZmFjZSBfYWxsb3dl
ZEFyZ3VtZW50Q2xhc3Nlc0ZvclNlbGVjdG9yOnNlbGVjdG9yXTsKLSAgICAgICAgZGVjb2RlSW52
b2NhdGlvbkFyZ3VtZW50cyhkZWNvZGVyLCBpbnZvY2F0aW9uLmdldCgpLCBhbGxvd2VkQ2xhc3Nl
cywgMik7CisgICAgICAgIGRlY29kZUludm9jYXRpb25Bcmd1bWVudHMoZGVjb2RlciwgaW52b2Nh
dGlvbiwgYWxsb3dlZENsYXNzZXMsIDIpOwogCiAgICAgICAgIFtpbnZvY2F0aW9uIHNldEFyZ3Vt
ZW50OiZzZWxlY3RvciBhdEluZGV4OjFdOwogICAgIH0KQEAgLTEwNTAsNyArMTA0OSw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IGRlY29kZVN0cmluZyhXS1JlbW90ZU9iamVjdERlY29k
ZXIgKmRlY29kZXIpCiAgICAgcmV0dXJuIHN0cmluZy0+c3RyaW5nVmlldygpLmNyZWF0ZU5TU3Ry
aW5nKCk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8aWQ+IGRlY29kZU9iamVjdChXS1JlbW90ZU9i
amVjdERlY29kZXIgKmRlY29kZXIpCitzdGF0aWMgaWQgZGVjb2RlT2JqZWN0KFdLUmVtb3RlT2Jq
ZWN0RGVjb2RlciAqZGVjb2RlcikKIHsKICAgICBSZWZQdHIgY2xhc3NOYW1lU3RyaW5nID0gUmVm
IHsgKmRlY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSB9LT5nZXQ8QVBJOjpTdHJpbmc+KGNsYXNz
TmFtZUtleSk7CiAgICAgaWYgKCFjbGFzc05hbWVTdHJpbmcpCkBAIC0xMDU4LDI4ICsxMDU3LDI4
IEBAIHN0YXRpYyBSZXRhaW5QdHI8aWQ+IGRlY29kZU9iamVjdChXS1JlbW90ZU9iamVjdERlY29k
ZXIgKmRlY29kZXIpCiAKICAgICBDU3RyaW5nIGNsYXNzTmFtZSA9IGNsYXNzTmFtZVN0cmluZy0+
c3RyaW5nKCkudXRmOCgpOwogCi0gICAgUmV0YWluUHRyPENsYXNzPiBvYmplY3RDbGFzcyA9IG9i
amNfbG9va1VwQ2xhc3MoY2xhc3NOYW1lLmRhdGEoKSk7CisgICAgQ2xhc3Mgb2JqZWN0Q2xhc3Mg
PSBvYmpjX2xvb2tVcENsYXNzKGNsYXNzTmFtZS5kYXRhKCkpOwogICAgIGlmICghb2JqZWN0Q2xh
c3MpCiAgICAgICAgIGNyYXNoV2l0aENsYXNzTmFtZShjbGFzc05hbWUuc3BhbigpKTsKIAotICAg
IHZhbGlkYXRlQ2xhc3MoZGVjb2Rlciwgb2JqZWN0Q2xhc3MuZ2V0KCkpOworICAgIHZhbGlkYXRl
Q2xhc3MoZGVjb2Rlciwgb2JqZWN0Q2xhc3MpOwogCi0gICAgaWYgKG9iamVjdENsYXNzLmdldCgp
ID09IFtOU0ludm9jYXRpb24gY2xhc3NdIHx8IG9iamVjdENsYXNzLmdldCgpID09IFtOU0Jsb2Nr
SW52b2NhdGlvbiBjbGFzc10pCisgICAgaWYgKG9iamVjdENsYXNzID09IFtOU0ludm9jYXRpb24g
Y2xhc3NdIHx8IG9iamVjdENsYXNzID09IFtOU0Jsb2NrSW52b2NhdGlvbiBjbGFzc10pCiAgICAg
ICAgIHJldHVybiBkZWNvZGVJbnZvY2F0aW9uKGRlY29kZXIpOwogCi0gICAgaWYgKG9iamVjdENs
YXNzLmdldCgpID09IFtOU1N0cmluZyBjbGFzc10pCi0gICAgICAgIHJldHVybiBkZWNvZGVTdHJp
bmcoZGVjb2Rlcik7CisgICAgaWYgKG9iamVjdENsYXNzID09IFtOU1N0cmluZyBjbGFzc10pCisg
ICAgICAgIHJldHVybiBkZWNvZGVTdHJpbmcoZGVjb2RlcikuYXV0b3JlbGVhc2UoKTsKICAgICAK
LSAgICBpZiAob2JqZWN0Q2xhc3MuZ2V0KCkgPT0gW05TRXJyb3IgY2xhc3NdKQotICAgICAgICBy
ZXR1cm4gZGVjb2RlRXJyb3IoZGVjb2Rlcik7CisgICAgaWYgKG9iamVjdENsYXNzID09IFtOU0Vy
cm9yIGNsYXNzXSkKKyAgICAgICAgcmV0dXJuIGRlY29kZUVycm9yKGRlY29kZXIpLmF1dG9yZWxl
YXNlKCk7CiAKLSAgICBpZiAob2JqZWN0Q2xhc3MuZ2V0KCkgPT0gW05TTXV0YWJsZVN0cmluZyBj
bGFzc10pCi0gICAgICAgIHJldHVybiBhZG9wdE5TKFtbTlNNdXRhYmxlU3RyaW5nIGFsbG9jXSBp
bml0V2l0aFN0cmluZzpkZWNvZGVTdHJpbmcoZGVjb2RlcikuZ2V0KCldKTsKKyAgICBpZiAob2Jq
ZWN0Q2xhc3MgPT0gW05TTXV0YWJsZVN0cmluZyBjbGFzc10pCisgICAgICAgIHJldHVybiBbTlNN
dXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhTdHJpbmc6ZGVjb2RlU3RyaW5nKGRlY29kZXIpLmdldCgp
XTsKIAotICAgIHJldHVybiBkZWNvZGVPYmpDT2JqZWN0KGRlY29kZXIsIG9iamVjdENsYXNzLmdl
dCgpKTsKKyAgICByZXR1cm4gZGVjb2RlT2JqQ09iamVjdChkZWNvZGVyLCBvYmplY3RDbGFzcyku
YXV0b3JlbGVhc2UoKTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxpZD4gZGVjb2RlT2JqZWN0KFdL
UmVtb3RlT2JqZWN0RGVjb2RlciAqZGVjb2RlciwgY29uc3QgQVBJOjpEaWN0aW9uYXJ5KiBkaWN0
aW9uYXJ5LCBjb25zdCBIYXNoU2V0PENGVHlwZVJlZj4mIGFsbG93ZWRDbGFzc2VzKQorc3RhdGlj
IGlkIGRlY29kZU9iamVjdChXS1JlbW90ZU9iamVjdERlY29kZXIgKmRlY29kZXIsIGNvbnN0IEFQ
STo6RGljdGlvbmFyeSogZGljdGlvbmFyeSwgY29uc3QgSGFzaFNldDxDRlR5cGVSZWY+JiBhbGxv
d2VkQ2xhc3NlcykKIHsKICAgICBpZiAoIWRpY3Rpb25hcnkpCiAgICAgICAgIHJldHVybiBuaWw7
CkBAIC0xMTcxLDcgKzExNzAsNyBAQCAtIChpZClkZWNvZGVPYmplY3RPZkNsYXNzZXM6KE5TU2V0
ICopY2xhc3NlcyBmb3JLZXk6KE5TU3RyaW5nICopa2V5CiAgICAgICAgIGFsbG93ZWRDbGFzc2Vz
LmFkZCgoX19icmlkZ2UgQ0ZUeXBlUmVmKWFsbG93ZWRDbGFzcyk7CiAKICAgICBSZWZQdHIgZGlj
dGlvbmFyeSA9IFJlZiB7ICpfY3VycmVudERpY3Rpb25hcnkgfS0+Z2V0PEFQSTo6RGljdGlvbmFy
eT4oZXNjYXBlS2V5KGtleSkpOwotICAgIHJldHVybiBkZWNvZGVPYmplY3Qoc2VsZiwgZGljdGlv
bmFyeS5nZXQoKSwgYWxsb3dlZENsYXNzZXMpLmF1dG9yZWxlYXNlKCk7CisgICAgcmV0dXJuIGRl
Y29kZU9iamVjdChzZWxmLCBkaWN0aW9uYXJ5LmdldCgpLCBhbGxvd2VkQ2xhc3Nlcyk7CiB9CiAK
IC0gKE5TU2V0ICopYWxsb3dlZENsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FwcGxlUGF5L0FwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BcHBsZVBheS9BcHBsZVBheVBheW1lbnRTZXR1cEZlYXR1cmVzLm1tCmluZGV4
IGIxMjgyNDY1NGI4YS4uODYxMWQwMDVjYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BcHBsZVBheS9BcHBsZVBheVBheW1lbnRTZXR1cEZlYXR1cmVzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L0FwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXMubW0K
QEAgLTM3LDkgKzM3LDkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8TlNBcnJheTxQS1BheW1lbnRTZXR1cEZlYXR1cmUgKj4+IHRvUGxhdGZvcm1GZWF0dXJlcyhW
ZWN0b3I8UmVmPFdlYkNvcmU6OkFwcGxlUGF5U2V0dXBGZWF0dXJlPj4mJiBmZWF0dXJlcykKK3N0
YXRpYyBOU0FycmF5PFBLUGF5bWVudFNldHVwRmVhdHVyZSAqPiAqdG9QbGF0Zm9ybUZlYXR1cmVz
KFZlY3RvcjxSZWY8V2ViQ29yZTo6QXBwbGVQYXlTZXR1cEZlYXR1cmU+PiYmIGZlYXR1cmVzKQog
ewotICAgIFJldGFpblB0ciBwbGF0Zm9ybUZlYXR1cmVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFy
cmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OmZlYXR1cmVzLnNpemUoKV0pOworICAgIE5TTXV0
YWJsZUFycmF5ICpwbGF0Zm9ybUZlYXR1cmVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENh
cGFjaXR5OmZlYXR1cmVzLnNpemUoKV07CiAgICAgZm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVy
ZXMpIHsKICAgICAgICAgW3BsYXRmb3JtRmVhdHVyZXMgYWRkT2JqZWN0OmZlYXR1cmUtPnBsYXRm
b3JtRmVhdHVyZSgpXTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9jb2NvYS9EZWZlcnJlZFBheW1lbnRSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9EZWZlcnJlZFBheW1lbnRSZXF1ZXN0Q29jb2EubW0K
aW5kZXggNDRhYjhiMjA5MjQxLi5kM2EzY2Y4OThmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL0RlZmVycmVkUGF5bWVudFJlcXVlc3RDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9EZWZlcnJlZFBheW1lbnRS
ZXF1ZXN0Q29jb2EubW0KQEAgLTQ3LDkgKzQ3LDkgQEAgUmV0YWluUHRyPFBLRGVmZXJyZWRQYXlt
ZW50UmVxdWVzdD4gcGxhdGZvcm1EZWZlcnJlZFBheW1lbnRSZXF1ZXN0KGNvbnN0IEFwcGxlUGEK
ICAgICAgICAgW3BrRGVmZXJyZWRQYXltZW50UmVxdWVzdCBzZXRCaWxsaW5nQWdyZWVtZW50OmJp
bGxpbmdBZ3JlZW1lbnRdOwogICAgIGlmIChhdXRvJiBmcmVlQ2FuY2VsbGF0aW9uRGF0ZSA9IHdl
YkRlZmVycmVkUGF5bWVudFJlcXVlc3QuZnJlZUNhbmNlbGxhdGlvbkRhdGU7ICFmcmVlQ2FuY2Vs
bGF0aW9uRGF0ZS5pc05hTigpKSB7CiAgICAgICAgIGlmIChhdXRvJiBmcmVlQ2FuY2VsbGF0aW9u
RGF0ZVRpbWVab25lID0gd2ViRGVmZXJyZWRQYXltZW50UmVxdWVzdC5mcmVlQ2FuY2VsbGF0aW9u
RGF0ZVRpbWVab25lOyAhZnJlZUNhbmNlbGxhdGlvbkRhdGVUaW1lWm9uZS5pc051bGwoKSkgewot
ICAgICAgICAgICAgaWYgKFJldGFpblB0ciB0aW1lWm9uZSA9IFtOU1RpbWVab25lIHRpbWVab25l
V2l0aE5hbWU6ZnJlZUNhbmNlbGxhdGlvbkRhdGVUaW1lWm9uZV0pIHsKKyAgICAgICAgICAgIGlm
IChhdXRvIHRpbWVab25lID0gW05TVGltZVpvbmUgdGltZVpvbmVXaXRoTmFtZTpmcmVlQ2FuY2Vs
bGF0aW9uRGF0ZVRpbWVab25lXSkgewogICAgICAgICAgICAgICAgIFtwa0RlZmVycmVkUGF5bWVu
dFJlcXVlc3Qgc2V0RnJlZUNhbmNlbGxhdGlvbkRhdGU6W05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRl
cnZhbFNpbmNlMTk3MDpmcmVlQ2FuY2VsbGF0aW9uRGF0ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCldXTsKLSAgICAgICAgICAgICAgICBbcGtEZWZlcnJlZFBheW1lbnRSZXF1ZXN0IHNldEZy
ZWVDYW5jZWxsYXRpb25EYXRlVGltZVpvbmU6dGltZVpvbmUuZ2V0KCldOworICAgICAgICAgICAg
ICAgIFtwa0RlZmVycmVkUGF5bWVudFJlcXVlc3Qgc2V0RnJlZUNhbmNlbGxhdGlvbkRhdGVUaW1l
Wm9uZTp0aW1lWm9uZV07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9QYXltZW50U2V0dXBDb25m
aWd1cmF0aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9Q
YXltZW50U2V0dXBDb25maWd1cmF0aW9uQ29jb2EubW0KaW5kZXggNDNkM2M5OGE3ZWE5Li5jYTc2
OGI2NDk0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29h
L1BheW1lbnRTZXR1cENvbmZpZ3VyYXRpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BcHBsZVBheS9jb2NvYS9QYXltZW50U2V0dXBDb25maWd1cmF0aW9uQ29jb2EubW0KQEAg
LTU4LDEwICs1OCwxMCBAQCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCiBBTExP
V19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogCiAgICAgaWYgKFtjb25maWd1cmF0aW9uIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0U2lnbmVkRmllbGRzOildKSB7Ci0gICAgICAg
IFJldGFpblB0ciBzaWduZWRGaWVsZHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRXaXRoQ2FwYWNpdHk6Y29yZUNvbmZpZ3VyYXRpb24uc2lnbmVkRmllbGRzLnNpemUoKV0p
OworICAgICAgICBOU011dGFibGVBcnJheSAqc2lnbmVkRmllbGRzID0gW05TTXV0YWJsZUFycmF5
IGFycmF5V2l0aENhcGFjaXR5OmNvcmVDb25maWd1cmF0aW9uLnNpZ25lZEZpZWxkcy5zaXplKCld
OwogICAgICAgICBmb3IgKGF1dG8mIHNpZ25lZEZpZWxkIDogY29yZUNvbmZpZ3VyYXRpb24uc2ln
bmVkRmllbGRzKQogICAgICAgICAgICAgW3NpZ25lZEZpZWxkcyBhZGRPYmplY3Q6c2lnbmVkRmll
bGRdOwotICAgICAgICBbY29uZmlndXJhdGlvbiBzZXRTaWduZWRGaWVsZHM6c2lnbmVkRmllbGRz
LmdldCgpXTsKKyAgICAgICAgW2NvbmZpZ3VyYXRpb24gc2V0U2lnbmVkRmllbGRzOnNpZ25lZEZp
ZWxkc107CiAgICAgfQogCiAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eUNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXggYmU2OGZjNmExZjE1Li42NmNjZDcwNTk0
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgKQEAgLTQzLDkg
KzQzLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIEZJWE1FOiBSYXRoZXIgdGhhbiBoYXZp
bmcgdGhlc2UgZnJlZSBmdW5jdGlvbnMgc2NhdHRlcmVkIGFib3V0LCBBcHBsZSBQYXkgZGF0YSB0
eXBlcyBzaG91bGQga25vdwogLy8gaG93IHRvIGNvbnZlcnQgdGhlbXNlbHZlcyB0byBhbmQgZnJv
bSB0aGVpciBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbnMuCi1SZXRhaW5QdHI8UEtTaGlwcGluZ01l
dGhvZD4gdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QmKTsKK1BLU2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJik7CiAjaWYgSEFWRShQQVNTS0lUX0RFRkFVTFRf
U0hJUFBJTkdfTUVUSE9EKQotUmV0YWluUHRyPFBLU2hpcHBpbmdNZXRob2RzPiB0b1BLU2hpcHBp
bmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYp
OworUEtTaGlwcGluZ01ldGhvZHMgKnRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+Jik7CiAjZW5kaWYKIFBLTWVyY2hhbnRDYXBh
YmlsaXR5IHRvUEtNZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KaW5kZXggZDI0YzJkZTE0OGRmLi4zMTI4
MjgwMjU5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29h
L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQpA
QCAtMTg4LDkgKzE4OCw5IEBAIHN0YXRpYyBSZXRhaW5QdHI8UEtEYXRlQ29tcG9uZW50c1Jhbmdl
PiB0b1BLRGF0ZUNvbXBvbmVudHNSYW5nZShjb25zdCBXZWJDb3JlOjpBCiAKICNlbmRpZiAvLyBI
QVZFKFBBU1NLSVRfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9ORU5UU19SQU5HRSkKIAotUmV0
YWluUHRyPFBLU2hpcHBpbmdNZXRob2Q+IHRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3Jl
OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK1BLU2hpcHBpbmdNZXRo
b2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKLSAgICBSZXRhaW5QdHI8UEtTaGlwcGluZ01ldGhvZD4g
cmVzdWx0ID0gW1BBTDo6Z2V0UEtTaGlwcGluZ01ldGhvZENsYXNzKCkgc3VtbWFyeUl0ZW1XaXRo
TGFiZWw6c2hpcHBpbmdNZXRob2QubGFiZWwgYW1vdW50OldlYkNvcmU6OnRvRGVjaW1hbE51bWJl
cihzaGlwcGluZ01ldGhvZC5hbW91bnQpXTsKKyAgICBQS1NoaXBwaW5nTWV0aG9kICpyZXN1bHQg
PSBbUEFMOjpnZXRQS1NoaXBwaW5nTWV0aG9kQ2xhc3MoKSBzdW1tYXJ5SXRlbVdpdGhMYWJlbDpz
aGlwcGluZ01ldGhvZC5sYWJlbCBhbW91bnQ6V2ViQ29yZTo6dG9EZWNpbWFsTnVtYmVyKHNoaXBw
aW5nTWV0aG9kLmFtb3VudCldOwogICAgIFtyZXN1bHQgc2V0SWRlbnRpZmllcjpzaGlwcGluZ01l
dGhvZC5pZGVudGlmaWVyXTsKICAgICBbcmVzdWx0IHNldERldGFpbDpzaGlwcGluZ01ldGhvZC5k
ZXRhaWxdOwogI2lmIEhBVkUoUEFTU0tJVF9TSElQUElOR19NRVRIT0RfREFURV9DT01QT05FTlRT
X1JBTkdFKQpAQCAtMjAyLDE2ICsyMDIsMTYgQEAgUmV0YWluUHRyPFBLU2hpcHBpbmdNZXRob2Q+
IHRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWUKIAog
I2lmIEhBVkUoUEFTU0tJVF9ERUZBVUxUX1NISVBQSU5HX01FVEhPRCkKIAotUmV0YWluUHRyPFBL
U2hpcHBpbmdNZXRob2RzPiB0b1BLU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgd2ViU2hpcHBpbmdNZXRob2RzKQorUEtTaGlwcGlu
Z01ldGhvZHMgKnRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdNZXRob2Q+JiB3ZWJTaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgUmV0YWluUHRy
PFBLU2hpcHBpbmdNZXRob2Q+IGRlZmF1bHRNZXRob2Q7CiAgICAgYXV0byBtZXRob2RzID0gY3Jl
YXRlTlNBcnJheSh3ZWJTaGlwcGluZ01ldGhvZHMsIFsmZGVmYXVsdE1ldGhvZF0gKGNvbnN0IGF1
dG8mIHdlYlNoaXBwaW5nTWV0aG9kKSB7Ci0gICAgICAgIFJldGFpblB0ciBwa1NoaXBwaW5nTWV0
aG9kID0gdG9QS1NoaXBwaW5nTWV0aG9kKHdlYlNoaXBwaW5nTWV0aG9kKTsKKyAgICAgICAgYXV0
byBwa1NoaXBwaW5nTWV0aG9kID0gdG9QS1NoaXBwaW5nTWV0aG9kKHdlYlNoaXBwaW5nTWV0aG9k
KTsKICAgICAgICAgaWYgKHdlYlNoaXBwaW5nTWV0aG9kLnNlbGVjdGVkKQogICAgICAgICAgICAg
ZGVmYXVsdE1ldGhvZCA9IHBrU2hpcHBpbmdNZXRob2Q7CiAgICAgICAgIHJldHVybiBwa1NoaXBw
aW5nTWV0aG9kOwogICAgIH0pOwotICAgIHJldHVybiBhZG9wdE5TKFtQQUw6OmFsbG9jUEtTaGlw
cGluZ01ldGhvZHNJbnN0YW5jZSgpIGluaXRXaXRoTWV0aG9kczptZXRob2RzLmdldCgpIGRlZmF1
bHRNZXRob2Q6ZGVmYXVsdE1ldGhvZC5nZXQoKV0pOworICAgIHJldHVybiBhZG9wdE5TKFtQQUw6
OmFsbG9jUEtTaGlwcGluZ01ldGhvZHNJbnN0YW5jZSgpIGluaXRXaXRoTWV0aG9kczptZXRob2Rz
LmdldCgpIGRlZmF1bHRNZXRob2Q6ZGVmYXVsdE1ldGhvZC5nZXQoKV0pLmF1dG9yZWxlYXNlKCk7
CiB9CiAKICNlbmRpZiAvLyBIQVZFKFBBU1NLSVRfREVGQVVMVF9TSElQUElOR19NRVRIT0QpCkBA
IC0zMTksNyArMzE5LDcgQEAgUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3Q+IFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBheW1lbnRSZXF1ZXN0KGMKICAgICBbcmVzdWx0IHNl
dFNoaXBwaW5nVHlwZTp0b1BLU2hpcHBpbmdUeXBlKHBheW1lbnRSZXF1ZXN0LnNoaXBwaW5nVHlw
ZSgpKV07CiAKICNpZiBIQVZFKFBBU1NLSVRfREVGQVVMVF9TSElQUElOR19NRVRIT0QpCi0gICAg
W3Jlc3VsdCBzZXRBdmFpbGFibGVTaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhw
YXltZW50UmVxdWVzdC5zaGlwcGluZ01ldGhvZHMoKSkuZ2V0KCldOworICAgIFtyZXN1bHQgc2V0
QXZhaWxhYmxlU2hpcHBpbmdNZXRob2RzOnRvUEtTaGlwcGluZ01ldGhvZHMocGF5bWVudFJlcXVl
c3Quc2hpcHBpbmdNZXRob2RzKCkpXTsKICNlbHNlCiAgICAgW3Jlc3VsdCBzZXRTaGlwcGluZ01l
dGhvZHM6Y3JlYXRlTlNBcnJheShwYXltZW50UmVxdWVzdC5zaGlwcGluZ01ldGhvZHMoKSwgW10g
KGF1dG8mIG1ldGhvZCkgewogICAgICAgICByZXR1cm4gdG9QS1NoaXBwaW5nTWV0aG9kKG1ldGhv
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9tYWMvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBh
eS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KaW5kZXggZTk4MTZiYTk2NmY3
Li5jMmM2MWU2NTc3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5
L21hYy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BcHBsZVBheS9tYWMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNYWMubW0KQEAg
LTk5LDcgKzk5LDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1T
aG93UGF5bWVudFVJKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2UKICAgICAgICAgICAgIGlmIChz
aG93UGF5bWVudFVJUmVxdWVzdFNlZWQgIT0gcGF5bWVudENvb3JkaW5hdG9yUHJveHktPm1fc2hv
d1BheW1lbnRVSVJlcXVlc3RTZWVkKQogICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7CiAKLSAgICAgICAgICAgIFJldGFpblB0ciBwcmVzZW50aW5nV2luZG93
ID0gcGF5bWVudENvb3JkaW5hdG9yUHJveHktPmNoZWNrZWRDbGllbnQoKS0+cGF5bWVudENvb3Jk
aW5hdG9yUHJlc2VudGluZ1dpbmRvdygqcGF5bWVudENvb3JkaW5hdG9yUHJveHkpOworICAgICAg
ICAgICAgTlNXaW5kb3cgKnByZXNlbnRpbmdXaW5kb3cgPSBwYXltZW50Q29vcmRpbmF0b3JQcm94
eS0+Y2hlY2tlZENsaWVudCgpLT5wYXltZW50Q29vcmRpbmF0b3JQcmVzZW50aW5nV2luZG93KCpw
YXltZW50Q29vcmRpbmF0b3JQcm94eSk7CiAgICAgICAgICAgICBpZiAoIXByZXNlbnRpbmdXaW5k
b3cpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSmF2YVNjcmlwdEV2YWx1YXRpb25SZXN1
bHQubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9KYXZhU2NyaXB0RXZhbHVhdGlvblJlc3VsdC5t
bQppbmRleCA4MGE4NjViZjkzMmYuLmVkYWUzMjZiNDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvSmF2YVNjcmlwdEV2YWx1YXRpb25SZXN1bHQubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvSmF2YVNjcmlwdEV2YWx1YXRpb25SZXN1bHQubW0KQEAgLTMyNSw4ICszMjUs
OCBAQCBhdXRvIEphdmFTY3JpcHRFdmFsdWF0aW9uUmVzdWx0Ojp0b1ZhcmlhbnQoSlNHbG9iYWxD
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZQogICAgIHNpemVfdCBsZW5ndGggPSBKU1Byb3Bl
cnR5TmFtZUFycmF5R2V0Q291bnQobmFtZXMpOwogICAgIEhhc2hNYXA8SlNPYmplY3RJRCwgSlNP
YmplY3RJRD4gbWFwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsK
LSAgICAgICAgUmV0YWluUHRyIGtleSA9IEpTUHJvcGVydHlOYW1lQXJyYXlHZXROYW1lQXRJbmRl
eChuYW1lcywgaSk7Ci0gICAgICAgIG1hcC5hZGQoYWRkT2JqZWN0VG9NYXAoY29udGV4dCwgSlNW
YWx1ZU1ha2VTdHJpbmcoY29udGV4dCwga2V5LmdldCgpKSksIGFkZE9iamVjdFRvTWFwKGNvbnRl
eHQsIEpTT2JqZWN0R2V0UHJvcGVydHlGb3JLZXkoY29udGV4dCwgb2JqZWN0LCBKU1ZhbHVlTWFr
ZVN0cmluZyhjb250ZXh0LCBrZXkuZ2V0KCkpLCBudWxscHRyKSkpOworICAgICAgICBKU1N0cmlu
Z1JlZiBrZXkgPSBKU1Byb3BlcnR5TmFtZUFycmF5R2V0TmFtZUF0SW5kZXgobmFtZXMsIGkpOwor
ICAgICAgICBtYXAuYWRkKGFkZE9iamVjdFRvTWFwKGNvbnRleHQsIEpTVmFsdWVNYWtlU3RyaW5n
KGNvbnRleHQsIGtleSkpLCBhZGRPYmplY3RUb01hcChjb250ZXh0LCBKU09iamVjdEdldFByb3Bl
cnR5Rm9yS2V5KGNvbnRleHQsIG9iamVjdCwgSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwga2V5
KSwgbnVsbHB0cikpKTsKICAgICB9CiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlbGVhc2UobmFt
ZXMpOwogICAgIHJldHVybiBXVEZNb3ZlKG1hcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUu
bW0KaW5kZXggOGJiMGViZGYwM2Y2Li41ZWZiOTc4NTVlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUubW0KQEAgLTM0NSw5ICszNDUsOCBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjpuZWVkc0Rpc3BsYXkoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgUmVmIGxheWVyID0gbV9sYXllci5nZXQoKTsKLSAgICBpZiAobGF5ZXItPm93bmVyKCkt
PnBsYXRmb3JtQ0FMYXllckRlbGVnYXRlc0Rpc3BsYXkobGF5ZXIucHRyKCkpKSB7Ci0gICAgICAg
IExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllckJ1ZmZlcnMsIHN0cmVhbSA8PCAiUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUgIiA8PCBsYXllci0+bGF5ZXJJRCgpIDw8ICIgbmVlZHNEaXNwbGF5KCkg
LSBkZWxlZ2F0ZXMgZGlzcGxheSIpOworICAgIGlmIChtX2xheWVyLT5vd25lcigpLT5wbGF0Zm9y
bUNBTGF5ZXJEZWxlZ2F0ZXNEaXNwbGF5KG1fbGF5ZXIucHRyKCkpKSB7CisgICAgICAgIExPR19X
SVRIX1NUUkVBTShSZW1vdGVMYXllckJ1ZmZlcnMsIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUgIiA8PCBtX2xheWVyLT5sYXllcklEKCkgPDwgIiBuZWVkc0Rpc3BsYXkoKSAtIGRl
bGVnYXRlcyBkaXNwbGF5Iik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzY0
LDE4ICszNjMsMTcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6bmVlZHNEaXNwbGF5
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGhhc0VtcHR5RGlydHlSZWdpb24oKSA/IEJhY2tpbmdT
dG9yZU5lZWRzRGlzcGxheVJlYXNvbjo6Tm9uZSA6IEJhY2tpbmdTdG9yZU5lZWRzRGlzcGxheVJl
YXNvbjo6SGFzRGlydHlSZWdpb247CiAgICAgfSgpOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFJl
bW90ZUxheWVyQnVmZmVycywgc3RyZWFtIDw8ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZSAiIDw8
IGxheWVyLT5sYXllcklEKCkgPDwgIiBzaXplICIgPDwgc2l6ZSgpIDw8ICIgbmVlZHNEaXNwbGF5
KCkgLSBuZWVkcyBkaXNwbGF5IHJlYXNvbjogIiA8PCBuZWVkc0Rpc3BsYXlSZWFzb24pOworICAg
IExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllckJ1ZmZlcnMsIHN0cmVhbSA8PCAiUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUgIiA8PCBtX2xheWVyLT5sYXllcklEKCkgPDwgIiBzaXplICIgPDwgc2l6
ZSgpIDw8ICIgbmVlZHNEaXNwbGF5KCkgLSBuZWVkcyBkaXNwbGF5IHJlYXNvbjogIiA8PCBuZWVk
c0Rpc3BsYXlSZWFzb24pOwogICAgIHJldHVybiBuZWVkc0Rpc3BsYXlSZWFzb24gIT0gQmFja2lu
Z1N0b3JlTmVlZHNEaXNwbGF5UmVhc29uOjpOb25lOwogfQogCiBib29sIFJlbW90ZUxheWVyQmFj
a2luZ1N0b3JlOjpwZXJmb3JtRGVsZWdhdGVkTGF5ZXJEaXNwbGF5KCkKIHsKLSAgICBSZWYgbGF5
ZXIgPSBtX2xheWVyLmdldCgpOwotICAgIGF1dG8mIGxheWVyT3duZXIgPSAqbGF5ZXItPm93bmVy
KCk7Ci0gICAgaWYgKGxheWVyT3duZXIucGxhdGZvcm1DQUxheWVyRGVsZWdhdGVzRGlzcGxheShs
YXllci5wdHIoKSkpIHsKKyAgICBhdXRvJiBsYXllck93bmVyID0gKm1fbGF5ZXItPm93bmVyKCk7
CisgICAgaWYgKGxheWVyT3duZXIucGxhdGZvcm1DQUxheWVyRGVsZWdhdGVzRGlzcGxheShtX2xh
eWVyLnB0cigpKSkgewogICAgICAgICAvLyBUaGlzIGNhbiBjYWxsIGJhY2sgdG8gc2V0Q29udGVu
dHMoKSwgc2V0dGluZyBtX2NvbnRlbnRzQnVmZmVySGFuZGxlLgotICAgICAgICBsYXllck93bmVy
LnBsYXRmb3JtQ0FMYXllckxheWVyRGlzcGxheShsYXllci5wdHIoKSk7Ci0gICAgICAgIGxheWVy
T3duZXIucGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KGxheWVyLnB0cigpKTsKKyAgICAg
ICAgbGF5ZXJPd25lci5wbGF0Zm9ybUNBTGF5ZXJMYXllckRpc3BsYXkobV9sYXllci5wdHIoKSk7
CisgICAgICAgIGxheWVyT3duZXIucGxhdGZvcm1DQUxheWVyTGF5ZXJEaWREaXNwbGF5KG1fbGF5
ZXIucHRyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0zODQsOCAr
MzgyLDcgQEAgYm9vbCBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6cGVyZm9ybURlbGVnYXRlZExh
eWVyRGlzcGxheSgpCiAKIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRpcnR5UmVwYWlu
dENvdW50ZXJJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgUmVmIGxheWVyID0gbV9sYXllci5nZXQoKTsK
LSAgICBpZiAobGF5ZXItPm93bmVyKCktPnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRl
cihsYXllci5wdHIoKSkpIHsKKyAgICBpZiAobV9sYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxh
eWVyU2hvd1JlcGFpbnRDb3VudGVyKG1fbGF5ZXIucHRyKCkpKSB7CiAgICAgICAgIEludFJlY3Qg
aW5kaWNhdG9yUmVjdCgwLCAwLCA1MiwgMjcpOwogICAgICAgICBtX2RpcnR5UmVnaW9uLnVuaXRl
KGluZGljYXRvclJlY3QpOwogICAgIH0KQEAgLTM5Myw5ICszOTAsOCBAQCB2b2lkIFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpkaXJ0eVJlcGFpbnRDb3VudGVySWZOZWNlc3NhcnkoKQogCiB2b2lk
IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpwYWludENvbnRlbnRzKCkKIHsKLSAgICBSZWYgbGF5
ZXIgPSBtX2xheWVyLmdldCgpOwotICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllckJ1ZmZl
cnMsIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgIiA8PCBsYXllci0+bGF5ZXJJ
RCgpIDw8ICIgcGFpbnRDb250ZW50cygpIC0gaGFzIGRpcnR5IHJlZ2lvbiAiIDw8ICFoYXNFbXB0
eURpcnR5UmVnaW9uKCkpOwotICAgIGlmIChsYXllci0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
RGVsZWdhdGVzRGlzcGxheShsYXllci5wdHIoKSkpCisgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90
ZUxheWVyQnVmZmVycywgc3RyZWFtIDw8ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZSAiIDw8IG1f
bGF5ZXItPmxheWVySUQoKSA8PCAiIHBhaW50Q29udGVudHMoKSAtIGhhcyBkaXJ0eSByZWdpb24g
IiA8PCAhaGFzRW1wdHlEaXJ0eVJlZ2lvbigpKTsKKyAgICBpZiAobV9sYXllci0+b3duZXIoKS0+
cGxhdGZvcm1DQUxheWVyRGVsZWdhdGVzRGlzcGxheShtX2xheWVyLnB0cigpKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKGhhc0VtcHR5RGlydHlSZWdpb24oKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3Bl
cnR5QXBwbGllci5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KaW5kZXggMWJjMWNkNmU1ZWRiLi5lOWNiNGFj
MWU1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQpAQCAt
Mjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBXS0hvc3RlZE1hdGVyaWFsQ29sb3JTY2hlbWUgaG9zdGVk
TWF0ZXJpYWxDb2xvclNjaGVtZUZvckFwcGxlVmlzdWFsRWZmZWN0CiAKIHN0YXRpYyB2b2lkIGFw
cGx5VmlzdWFsU3R5bGluZ1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnN0IEFwcGxlVmlzdWFs
RWZmZWN0RGF0YSYgZWZmZWN0RGF0YSkKIHsKLSAgICBSZXRhaW5QdHIgcmVjaXBlID0gbWF0ZXJp
YWxSZWNpcGVGb3JBcHBsZVZpc3VhbEVmZmVjdChlZmZlY3REYXRhLmNvbnRleHRFZmZlY3QsIGVm
ZmVjdERhdGEuY29sb3JTY2hlbWUpOworICAgIE1UQ29yZU1hdGVyaWFsUmVjaXBlIHJlY2lwZSA9
IG1hdGVyaWFsUmVjaXBlRm9yQXBwbGVWaXN1YWxFZmZlY3QoZWZmZWN0RGF0YS5jb250ZXh0RWZm
ZWN0LCBlZmZlY3REYXRhLmNvbG9yU2NoZW1lKTsKICAgICBpZiAoW3JlY2lwZSBpc0VxdWFsVG9T
dHJpbmc6UEFMOjpnZXRfQ29yZU1hdGVyaWFsX01UQ29yZU1hdGVyaWFsUmVjaXBlTm9uZSgpXSkg
ewogICAgICAgICBib29sIGlzRGFyayA9IGVmZmVjdERhdGEuY29sb3JTY2hlbWUgPT0gQXBwbGVW
aXN1YWxFZmZlY3REYXRhOjpDb2xvclNjaGVtZTo6RGFyazsKICNpZiBQTEFURk9STShWSVNJT04p
CkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIHZvaWQgYXBwbHlWaXN1YWxTdHlsaW5nVG9MYXll
cihDQUxheWVyICpsYXllciwgY29uc3QgQXBwbGVWaXN1YWxFZmZlY3REYXQKICAgICB9CiAKICAg
ICAvLyBEZXNwaXRlIHRoZSBuYW1lLCBNVFZpc3VhbFN0eWxpbmdDcmVhdGVEaWN0aW9uYXJ5UmVw
cmVzZW50YXRpb24gcmV0dXJucyBhbiBhdXRvcmVsZWFzZWQgb2JqZWN0LgotICAgIFJldGFpblB0
ciB2aXN1YWxTdHlsaW5nRGVzY3JpcHRpb24gPSBQQUw6OnNvZnRMaW5rX0NvcmVNYXRlcmlhbF9N
VFZpc3VhbFN0eWxpbmdDcmVhdGVEaWN0aW9uYXJ5UmVwcmVzZW50YXRpb24ocmVjaXBlLmdldCgp
LCBtYXRlcmlhbFZpc3VhbFN0eWxlQ2F0ZWdvcnlGb3JBcHBsZVZpc3VhbEVmZmVjdChlZmZlY3RE
YXRhLmVmZmVjdCksIG1hdGVyaWFsVmlzdWFsU3R5bGVGb3JBcHBsZVZpc3VhbEVmZmVjdChlZmZl
Y3REYXRhLmVmZmVjdCksIG5pbCk7CisgICAgUmV0YWluUHRyIHZpc3VhbFN0eWxpbmdEZXNjcmlw
dGlvbiA9IFBBTDo6c29mdExpbmtfQ29yZU1hdGVyaWFsX01UVmlzdWFsU3R5bGluZ0NyZWF0ZURp
Y3Rpb25hcnlSZXByZXNlbnRhdGlvbihyZWNpcGUsIG1hdGVyaWFsVmlzdWFsU3R5bGVDYXRlZ29y
eUZvckFwcGxlVmlzdWFsRWZmZWN0KGVmZmVjdERhdGEuZWZmZWN0KSwgbWF0ZXJpYWxWaXN1YWxT
dHlsZUZvckFwcGxlVmlzdWFsRWZmZWN0KGVmZmVjdERhdGEuZWZmZWN0KSwgbmlsKTsKIAogICAg
IFJldGFpblB0cjxOU0FycmF5PE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKj4+IGZpbHRl
ckRlc2NyaXB0aW9uc0FycmF5ID0gW3Zpc3VhbFN0eWxpbmdEZXNjcmlwdGlvbiBvYmplY3RGb3JL
ZXk6QCJmaWx0ZXJzIl07CiAgICAgUmV0YWluUHRyIGZpbHRlckRlc2NyaXB0aW9uID0gW2ZpbHRl
ckRlc2NyaXB0aW9uc0FycmF5IGZpcnN0T2JqZWN0XTsKQEAgLTU1MSw4ICs1NTEsOCBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihD
QUxheWVyICpsYXllciwgUmVtbwogCiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRp
ZXMgJiBMYXllckNoYW5nZTo6Q29udGVudHNGb3JtYXRDaGFuZ2VkKSB7CiAgICAgICAgIGF1dG8g
Y29udGVudHNGb3JtYXQgPSBwcm9wZXJ0aWVzLmNvbnRlbnRzRm9ybWF0OwotICAgICAgICBpZiAo
UmV0YWluUHRyIGZvcm1hdFN0cmluZyA9IGNvbnRlbnRzRm9ybWF0U3RyaW5nKGNvbnRlbnRzRm9y
bWF0KSkKLSAgICAgICAgICAgIFtsYXllciBzZXRDb250ZW50c0Zvcm1hdDpmb3JtYXRTdHJpbmcu
Z2V0KCldOworICAgICAgICBpZiAoTlNTdHJpbmcgKmZvcm1hdFN0cmluZyA9IGNvbnRlbnRzRm9y
bWF0U3RyaW5nKGNvbnRlbnRzRm9ybWF0KSkKKyAgICAgICAgICAgIFtsYXllciBzZXRDb250ZW50
c0Zvcm1hdDpmb3JtYXRTdHJpbmddOwogI2lmIEVOQUJMRShQSVhFTF9GT1JNQVRfUkdCQTE2RikK
ICAgICAgICAgaWYgKGNvbnRlbnRzRm9ybWF0ID09IENvbnRlbnRzRm9ybWF0OjpSR0JBMTZGKSB7
CiAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgpAQCAtNjgw
LDEwICs2ODAsMTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OnVwZGF0
ZU1hc2soUmVtb3RlTGF5ZXJUcmVlTm9kZSYgbm9kZSwgY29uc3QKICAgICBpZiAoIXByb3BlcnRp
ZXMuY2hhbmdlZFByb3BlcnRpZXMuY29udGFpbnMoTGF5ZXJDaGFuZ2U6Ok1hc2tMYXllckNoYW5n
ZWQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZXRhaW5QdHIgbWFza093bmVyTGF5ZXIgPSBu
b2RlLmxheWVyKCk7CisgICAgYXV0byBtYXNrT3duZXJMYXllciA9IG5vZGUubGF5ZXIoKTsKIAog
ICAgIGlmICghcHJvcGVydGllcy5tYXNrTGF5ZXJJRCkgewotICAgICAgICBtYXNrT3duZXJMYXll
ci5nZXQoKS5tYXNrID0gbnVsbHB0cjsKKyAgICAgICAgbWFza093bmVyTGF5ZXIubWFzayA9IG51
bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTY5NSw3ICs2OTUsNyBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6dXBkYXRlTWFzayhSZW1vdGVMYXllclRy
ZWVOb2RlJiBub2RlLCBjb25zdAogICAgIFJldGFpblB0ciBtYXNrTGF5ZXIgPSBtYXNrTm9kZS0+
bGF5ZXIoKTsKICAgICBbbWFza0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKIAotICAgIG1h
c2tPd25lckxheWVyLmdldCgpLm1hc2sgPSBtYXNrTGF5ZXIuZ2V0KCk7CisgICAgbWFza093bmVy
TGF5ZXIubWFzayA9IG1hc2tMYXllci5nZXQoKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Db3JlSVBDU2VjS2V5Y2hh
aW5JdGVtLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Db3JlSVBDU2VjS2V5Y2hhaW5JdGVt
LmgKaW5kZXggZmJkMTVjMTBjNWFjLi5kOWYzMmZiMjBkYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2NmL0NvcmVJUENTZWNLZXljaGFpbkl0ZW0uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9jZi9Db3JlSVBDU2VjS2V5Y2hhaW5JdGVtLmgKQEAgLTYxLDEzICs2MSwxNCBA
QCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9wZXJzaXN0ZW50UmVmKQogICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKKyAgICAgICAgQ0ZEYXRhUmVmIGRhdGEgPSBtX3BlcnNpc3RlbnRSZWYu
Z2V0KCk7CiAgICAgICAgIC8vIFNlY0tleWNoYWluSXRlbUNvcHlGcm9tUGVyc2lzdGVudFJlZmVy
ZW5jZSgpIGNhbm5vdCBoYW5kbGUgMC1sZW5ndGggQ0ZEYXRhUmVmcy4KLSAgICAgICAgaWYgKCFD
RkRhdGFHZXRMZW5ndGgobV9wZXJzaXN0ZW50UmVmLmdldCgpKSkKKyAgICAgICAgaWYgKCFDRkRh
dGFHZXRMZW5ndGgoZGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBTZWNLZXljaGFp
bkl0ZW1SZWYga2V5Y2hhaW5JdGVtID0gTlVMTDsKLSAgICAgICAgU2VjS2V5Y2hhaW5JdGVtQ29w
eUZyb21QZXJzaXN0ZW50UmVmZXJlbmNlKG1fcGVyc2lzdGVudFJlZi5nZXQoKSwgJmtleWNoYWlu
SXRlbSk7CisgICAgICAgIFNlY0tleWNoYWluSXRlbUNvcHlGcm9tUGVyc2lzdGVudFJlZmVyZW5j
ZShkYXRhLCAma2V5Y2hhaW5JdGVtKTsKICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgIHJldHVybiBhZG9wdENGKGtleWNoYWluSXRlbSk7CiAgICAgfQpA
QCAtOTUsNyArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gYWRvcHRDRihkYXRhKTsK
ICAgICB9CiAKLSAgICBjb25zdCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBtX3BlcnNpc3RlbnRSZWY7
CisgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gbV9wZXJzaXN0ZW50UmVmOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>