<?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>310651</bug_id>
          
          <creation_ts>2026-03-24 13:13:58 -0700</creation_ts>
          <short_desc>REGRESSION(309775@main): Broke extensions that had empty user scripts or user styles.</short_desc>
          <delta_ts>2026-03-24 13:18:22 -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>310393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2193224</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-24 13:13:58 -0700</bug_when>
    <thetext>https://commits.webkit.org/309775@main introduced a regression:
Broke extensions that had empty user scripts or user styles.

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>2193226</commentid>
    <comment_count>1</comment_count>
      <attachid>478779</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-03-24 13:14:05 -0700</bug_when>
    <thetext>Created attachment 478779
REVERT of 309775@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>2193229</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2026-03-24 13:17:02 -0700</bug_when>
    <thetext>rdar://173243765</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2193230</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-03-24 13:18:20 -0700</bug_when>
    <thetext>Committed 309860@main (4fc55e459107): &lt;https://commits.webkit.org/309860@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478779.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478779</attachid>
            <date>2026-03-24 13:14:05 -0700</date>
            <delta_ts>2026-03-24 13:18:21 -0700</delta_ts>
            <desc>REVERT of 309775@main</desc>
            <filename>bug-310651-20260324201404.patch</filename>
            <type>text/plain</type>
            <size>39208</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA2Njc3OTRlNDMzZGY0MTY0OTIzNDM5MzcwOTc0MWU5YjFhNTg2ODY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUdWUsIDI0IE1hciAyMDI2IDIwOjE0OjAyICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMwOTc3NUBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxMDY1MQoKQnJva2UgZXh0ZW5zaW9ucyB0aGF0IGhhZCBlbXB0
eSB1c2VyIHNjcmlwdHMgb3IgdXNlciBzdHlsZXMuCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiUmVk
dWNlIG1lbW9yeSBvdmVyaGVhZCBvZiB1c2VyIHNjcmlwdHMgYW5kIHVzZXIgc3R5bGVzIGluIGV4
dGVuc2lvbnMgd2l0aCBtYW55IGRpc3RpbmN0IG1hdGNoIHBhdHRlcm5zIgpodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzEwMzkzCmh0dHBzOi8vY29tbWl0cy53ZWJraXQu
b3JnLzMwOTc3NUBtYWluCi0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmNwcCAg
ICAgICAgICAgIHwgMjEgKy0tLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0Lmgg
ICAgICAgICAgICAgIHwgIDEgLQogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVldC5j
cHAgICAgICAgIHwgMjEgKy0tLS0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVl
dC5oICAgICAgICAgIHwgIDEgLQogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvVHJhbnNmZXJT
dHJpbmcuY3BwIHwgMzkgLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
VHJhbnNmZXJTdHJpbmcuaCAgIHwgIDUgLS0KIC4uLi9QbGF0Zm9ybS9JUEMvY29jb2EvVHJhbnNm
ZXJTdHJpbmdDb2NvYS5tbSB8IDExICsrKy0KIFNvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgICAgICB8ICAyIC0KIC4uLi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRh
VHlwZXMuaCAgICAgICB8IDI2ICstLS0tLS0tLQogLi4ub250ZW50Q29udHJvbGxlckRhdGFUeXBl
cy5zZXJpYWxpemF0aW9uLmluIHwgMjUgKy0tLS0tLS0KIC4uLi9FeHRlbnNpb25zL0NvY29hL1dl
YkV4dGVuc2lvbkNvY29hLm1tICAgICB8IDIyICsrKy0tLS0KIC4uLi9VSVByb2Nlc3MvRXh0ZW5z
aW9ucy9XZWJFeHRlbnNpb24uY3BwICAgICB8IDU1ICsrKysrLS0tLS0tLS0tLS0tLQogLi4uL1VJ
UHJvY2Vzcy9FeHRlbnNpb25zL1dlYkV4dGVuc2lvbi5oICAgICAgIHwgIDggKy0tCiAuLi4vRXh0
ZW5zaW9ucy9nbGliL1dlYkV4dGVuc2lvbkdMaWIuY3BwICAgICAgfCAyMiArKystLS0tCiAuLi4v
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwICAgICAgICAgfCA0NyArKy0tLS0tLS0t
LS0tLS0KIC4uLi9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oICAgICAgICAgICB8ICA4
IC0tLQogLi4uL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAgIHwgMjIg
KystLS0tLQogLi4uL1dlYktpdENvY29hL1dLV2ViRXh0ZW5zaW9uQVBJU2NyaXB0aW5nLm1tIHwg
NTggLS0tLS0tLS0tLS0tLS0tLS0tLQogMTggZmlsZXMgY2hhbmdlZCwgNjIgaW5zZXJ0aW9ucygr
KSwgMzMyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
clNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTY3JpcHQuY3BwCmluZGV4IDgw
NzhkNjkzNjc5Yy4uYWM2MTc2MmQwOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1VzZXJTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5jcHAK
QEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJVc2VyU2Ny
aXB0LmgiCiAKLSNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvVFpvbmVNYWxsb2NJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvTWFrZVN0cmluZy5oPgogCkBAIC00MiwyMCArNDAsOCBAQCBzdGF0
aWMgV1RGOjpVUkwgZ2VuZXJhdGVVc2VyU2NyaXB0VW5pcXVlVVJMKCkKICAgICByZXR1cm4geyB7
IH0sIG1ha2VTdHJpbmcoInVzZXItc2NyaXB0OiJfcywgKytpZGVudGlmaWVyKSB9OwogfQogCi1z
dGF0aWMgSGFzaENvdW50ZWRTZXQ8U3RyaW5nPiYgc291cmNlU3RyaW5ncygpCi17Ci0gICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hDb3VudGVkU2V0PFN0cmluZz4+IHNldDsKLSAgICByZXR1
cm4gc2V0OwotfQotCi1zdGF0aWMgU3RyaW5nIGludGVybmVkU291cmNlU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQotewotICAgIGF1dG8gcmVzdWx0ID0gc291cmNlU3RyaW5ncygpLmFkZChz
dHJpbmcpOwotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPmtleTsKLX0KLQogVXNlclNjcmlw
dDo6VXNlclNjcmlwdChTdHJpbmcmJiBzb3VyY2UsIFVSTCYmIHVybCwgVmVjdG9yPFN0cmluZz4m
JiBhbGxvd2xpc3QsIFZlY3RvcjxTdHJpbmc+JiYgYmxvY2tsaXN0LCBVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZSBpbmplY3Rpb25UaW1lLCBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzLCBVc2VyQ29udGVudE1hdGNoUGFyZW50RnJhbWUgbWF0Y2hQYXJlbnRGcmFtZSkKLSAg
ICA6IG1fc291cmNlKGludGVybmVkU291cmNlU3RyaW5nKHNvdXJjZSkpCisgICAgOiBtX3NvdXJj
ZShXVEY6Om1vdmUoc291cmNlKSkKICAgICAsIG1fdXJsKHVybC5pc0VtcHR5KCkgPyBnZW5lcmF0
ZVVzZXJTY3JpcHRVbmlxdWVVUkwoKSA6IFdURjo6bW92ZSh1cmwpKQogICAgICwgbV9hbGxvd2xp
c3QoV1RGOjptb3ZlKGFsbG93bGlzdCkpCiAgICAgLCBtX2Jsb2NrbGlzdChXVEY6Om1vdmUoYmxv
Y2tsaXN0KSkKQEAgLTY1LDExICs1MSw2IEBAIFVzZXJTY3JpcHQ6OlVzZXJTY3JpcHQoU3RyaW5n
JiYgc291cmNlLCBVUkwmJiB1cmwsIFZlY3RvcjxTdHJpbmc+JiYgYWxsb3dsaXN0LCBWCiB7CiB9
CiAKLVVzZXJTY3JpcHQ6On5Vc2VyU2NyaXB0KCkKLXsKLSAgICBzb3VyY2VTdHJpbmdzKCkucmVt
b3ZlKG1fc291cmNlKTsKLX0KLQogU3RyaW5nIFVzZXJTY3JpcHQ6OmRlYnVnRGVzY3JpcHRpb24o
KSBjb25zdAogewogICAgIFN0cmluZyB1cmxTdHJpbmcgPSBtX3VybC5zdHJpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Vc2VyU2NyaXB0LmgKaW5kZXggMWUzNjZjZjAwODg1Li5jMGNkOGM0YjFkMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlclNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvVXNlclNjcmlwdC5oCkBAIC0zNyw3ICszNyw2IEBAIGNsYXNzIFVzZXJTY3JpcHQg
ewogICAgIFdURl9NQUtFX1RaT05FX0FMTE9DQVRFRF9FWFBPUlQoVXNlclNjcmlwdCwgV0VCQ09S
RV9FWFBPUlQpOwogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFVzZXJTY3JpcHQoU3RyaW5n
JiYgc291cmNlLCBVUkwmJiA9IHsgfSwgVmVjdG9yPFN0cmluZz4mJiBhbGxvd2xpc3QgPSB7IH0s
IFZlY3RvcjxTdHJpbmc+JiYgYmxvY2tsaXN0ID0geyB9LCBVc2VyU2NyaXB0SW5qZWN0aW9uVGlt
ZSA9IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVudFN0YXJ0LCBVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzID0gVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFt
ZXMsIFVzZXJDb250ZW50TWF0Y2hQYXJlbnRGcmFtZSA9IFVzZXJDb250ZW50TWF0Y2hQYXJlbnRG
cmFtZTo6TmV2ZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5Vc2VyU2NyaXB0KCk7CiAKICAgICBj
b25zdCBTdHJpbmcmIHNvdXJjZSgpIGNvbnN0IExJRkVUSU1FX0JPVU5EIHsgcmV0dXJuIG1fc291
cmNlOyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCBMSUZFVElNRV9CT1VORCB7IHJldHVy
biBtX3VybDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmNwcAppbmRleCA4MTVl
NGMwNGI1NTcuLmM2MGU3YTlmMGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9V
c2VyU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU3R5bGVTaGVl
dC5jcHAKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJV
c2VyU3R5bGVTaGVldC5oIgogCi0jaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+Ci0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Rab25lTWFsbG9jSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L01ha2VTdHJpbmcuaD4KIApAQCAtNDIsMjAgKzQw
LDggQEAgc3RhdGljIFdURjo6VVJMIGdlbmVyYXRlVXNlclN0eWxlVW5pcXVlVVJMKCkKICAgICBy
ZXR1cm4geyB7IH0sIG1ha2VTdHJpbmcoInVzZXItc3R5bGU6Il9zLCArK2lkZW50aWZpZXIpIH07
CiB9CiAKLXN0YXRpYyBIYXNoQ291bnRlZFNldDxTdHJpbmc+JiBzdHlsZVN0cmluZ3MoKQotewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoQ291bnRlZFNldDxTdHJpbmc+PiBzZXQ7Ci0g
ICAgcmV0dXJuIHNldDsKLX0KLQotc3RhdGljIFN0cmluZyBpbnRlcm5lZFN0eWxlU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIGF1dG8gcmVzdWx0ID0gc3R5bGVTdHJpbmdzKCku
YWRkKHN0cmluZyk7Ci0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+a2V5OwotfQotCiBVc2Vy
U3R5bGVTaGVldDo6VXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFVS
TCYgdXJsLCBWZWN0b3I8U3RyaW5nPiYmIGFsbG93bGlzdCwgVmVjdG9yPFN0cmluZz4mJiBibG9j
a2xpc3QsIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMsIFVzZXJDb250
ZW50TWF0Y2hQYXJlbnRGcmFtZSBtYXRjaFBhcmVudEZyYW1lLCBVc2VyU3R5bGVMZXZlbCBsZXZl
bCwgc3RkOjpvcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKQotICAgIDogbV9zb3VyY2Uo
aW50ZXJuZWRTdHlsZVN0cmluZyhzb3VyY2UpKQorICAgIDogbV9zb3VyY2Uoc291cmNlKQogICAg
ICwgbV91cmwodXJsLmlzRW1wdHkoKSA/IGdlbmVyYXRlVXNlclN0eWxlVW5pcXVlVVJMKCkgOiB1
cmwpCiAgICAgLCBtX2FsbG93bGlzdChXVEY6Om1vdmUoYWxsb3dsaXN0KSkKICAgICAsIG1fYmxv
Y2tsaXN0KFdURjo6bW92ZShibG9ja2xpc3QpKQpAQCAtNjYsOSArNTIsNCBAQCBVc2VyU3R5bGVT
aGVldDo6VXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IFVSTCYgdXJs
LCBWZWN0b3I8U3RyaQogewogfQogCi1Vc2VyU3R5bGVTaGVldDo6flVzZXJTdHlsZVNoZWV0KCkK
LXsKLSAgICBzdHlsZVN0cmluZ3MoKS5yZW1vdmUobV9zb3VyY2UpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNo
ZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmgKaW5kZXggNmYzMDBj
OTg2MjljLi4zZDZiMjJhYWY2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNl
clN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0LmgK
QEAgLTQ0LDcgKzQ0LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFVz
ZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYsIGNvbnN0IFVSTCYsIFZlY3RvcjxTdHJpbmc+JiYg
PSB7IH0sIFZlY3RvcjxTdHJpbmc+JiYgPSB7IH0sIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMg
PSBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcywgVXNlckNvbnRl
bnRNYXRjaFBhcmVudEZyYW1lID0gVXNlckNvbnRlbnRNYXRjaFBhcmVudEZyYW1lOjpOZXZlciwg
VXNlclN0eWxlTGV2ZWwgPSBVc2VyU3R5bGVMZXZlbDo6VXNlciwgc3RkOjpvcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gPSBzdGQ6Om51bGxvcHQpOwotICAgIFdFQkNPUkVfRVhQT1JUIH5Vc2VyU3R5
bGVTaGVldCgpOwogCiAgICAgY29uc3QgU3RyaW5nJiBzb3VyY2UoKSBjb25zdCBMSUZFVElNRV9C
T1VORCB7IHJldHVybiBtX3NvdXJjZTsgfQogICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgTElG
RVRJTUVfQk9VTkQgeyByZXR1cm4gbV91cmw7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL1RyYW5zZmVyU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
SVBDL1RyYW5zZmVyU3RyaW5nLmNwcAppbmRleCBkY2UzYzE1NDg2MzcuLjc4NjhlMDllYTYwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvVHJhbnNmZXJTdHJpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1RyYW5zZmVyU3RyaW5nLmNwcApAQCAt
MTUyLDQzICsxNTIsNCBAQCBUcmFuc2ZlclN0cmluZzo6SVBDRGF0YSBUcmFuc2ZlclN0cmluZzo6
dG9JUENEYXRhKCkgY29uc3QgTElGRVRJTUVfQk9VTkQKICAgICApOwogfQogCi1UcmFuc2ZlclN0
cmluZzo6VHJhbnNmZXJTdHJpbmcoY29uc3QgVHJhbnNmZXJTdHJpbmcmIG90aGVyKQotewotICAg
IFdURjo6c3dpdGNoT24ob3RoZXIubV9zdG9yYWdlLAotICAgICAgICBbJl0oY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsKLSAgICAgICAgICAgIG1fc3RvcmFnZSA9IHN0cmluZzsKLSAgICAgICAgfSwK
LSNpZiBVU0UoQ0YpCi0gICAgICAgIFsmXShjb25zdCBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+JiBz
dHJpbmcpIHsKLSAgICAgICAgICAgIG1fc3RvcmFnZSA9IHN0cmluZzsKLSAgICAgICAgfSwKLSNl
bmRpZgotICAgICAgICBbJl0oY29uc3QgU2hhcmVkU3BhbjgmIGhhbmRsZSkgewotICAgICAgICAg
ICAgbV9zdG9yYWdlID0gU2hhcmVkU3BhbjggeyBXZWJDb3JlOjpTaGFyZWRNZW1vcnlIYW5kbGUg
eyBoYW5kbGUuZGF0YUhhbmRsZSB9IH07Ci0gICAgICAgIH0sCi0gICAgICAgIFsmXShjb25zdCBT
aGFyZWRTcGFuMTYmIGhhbmRsZSkgewotICAgICAgICAgICAgbV9zdG9yYWdlID0gU2hhcmVkU3Bh
bjE2IHsgV2ViQ29yZTo6U2hhcmVkTWVtb3J5SGFuZGxlIHsgaGFuZGxlLmRhdGFIYW5kbGUgfSB9
OwotICAgICAgICB9Ci0gICAgKTsKLX0KLQotVHJhbnNmZXJTdHJpbmcmIFRyYW5zZmVyU3RyaW5n
OjpvcGVyYXRvcj0oY29uc3QgVHJhbnNmZXJTdHJpbmcmIG90aGVyKQotewotICAgIGlmICh0aGlz
ICE9ICZvdGhlcikKLSAgICAgICAgKnRoaXMgPSBUcmFuc2ZlclN0cmluZyB7IG90aGVyIH07Ci0g
ICAgcmV0dXJuICp0aGlzOwotfQotCi1ib29sIFRyYW5zZmVyU3RyaW5nOjpzaG91bGRDYWNoZSgp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9zdG9yYWdlLAotICAgICAgICBb
XShjb25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfSwKLSNpZiBVU0UoQ0YpCi0gICAgICAg
IFtdKGNvbnN0IFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHN0cmluZykgeyByZXR1cm4gZmFsc2U7
IH0sCi0jZW5kaWYKLSAgICAgICAgW10oY29uc3QgU2hhcmVkU3BhbjgmIGhhbmRsZSkgeyByZXR1
cm4gdHJ1ZTsgfSwKLSAgICAgICAgW10oY29uc3QgU2hhcmVkU3BhbjE2JiBoYW5kbGUpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICApOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9UcmFuc2ZlclN0cmluZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
VHJhbnNmZXJTdHJpbmcuaAppbmRleCAwM2Q2Y2ZiZDQ4MmQuLmU1MjcxYWNjMTM4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvVHJhbnNmZXJTdHJpbmcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UcmFuc2ZlclN0cmluZy5oCkBAIC02NCw4ICs2NCw2
IEBAIHB1YmxpYzoKICAgICBUcmFuc2ZlclN0cmluZyhTaGFyZWRTcGFuMTYmJik7CiAKICAgICBU
cmFuc2ZlclN0cmluZyhJUENEYXRhJiYpOwotICAgIFRyYW5zZmVyU3RyaW5nKGNvbnN0IFRyYW5z
ZmVyU3RyaW5nJik7Ci0gICAgVHJhbnNmZXJTdHJpbmcmIG9wZXJhdG9yPShjb25zdCBUcmFuc2Zl
clN0cmluZyYpOwogICAgIFRyYW5zZmVyU3RyaW5nKFRyYW5zZmVyU3RyaW5nJiYpID0gZGVmYXVs
dDsKICAgICBUcmFuc2ZlclN0cmluZyYgb3BlcmF0b3I9KFRyYW5zZmVyU3RyaW5nJiYpID0gZGVm
YXVsdDsKIApAQCAtODIsOSArODAsNiBAQCBwdWJsaWM6CiAKICAgICBJUENEYXRhIHRvSVBDRGF0
YSgpIGNvbnN0IExJRkVUSU1FX0JPVU5EOwogCi0gICAgLy8gQ2FjaGluZyBvbmx5IG1ha2VzIHNl
bnNlIGlmIHdlIGNhbiByZS1zZW5kIGEgcHJldmlvdXNseSBjcmVhdGVkIHNoYXJlZCBtZW1vcnkg
aGFuZGxlLgotICAgIGJvb2wgc2hvdWxkQ2FjaGUoKSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxUcmFuc2ZlclN0cmluZz4gY3JlYXRlQ29weShzdGQ6OnNwYW48
Y29uc3QgTGF0aW4xQ2hhcmFjdGVyPik7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VHJhbnNm
ZXJTdHJpbmc+IGNyZWF0ZUNvcHkoc3RkOjpzcGFuPGNvbnN0IGNoYXIxNl90Pik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9UcmFuc2ZlclN0cmluZ0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvVHJhbnNmZXJTdHJpbmdDb2Nv
YS5tbQppbmRleCBlZmE2ZmI3NjRhNzIuLjRjYWM1YTFmOTU0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvVHJhbnNmZXJTdHJpbmdDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9UcmFuc2ZlclN0cmluZ0NvY29hLm1tCkBA
IC02OCwxNCArNjgsMjEgQEAgc3RkOjpvcHRpb25hbDxUcmFuc2ZlclN0cmluZz4gVHJhbnNmZXJT
dHJpbmc6OmNyZWF0ZUNhY2hlZChOU1N0cmluZyAqc3RyaW5nKQogICAgICAgICBpZiAoIXJlc3Vs
dCkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICAgICAgaWYgKCFyZXN1
bHQtPnNob3VsZENhY2hlKCkpCisgICAgICAgIC8vIENhY2hpbmcgb25seSBtYWtlcyBzZW5zZSBp
ZiB3ZSBjYW4gcmUtc2VuZCBhIHByZXZpb3VzbHkgY3JlYXRlZCBzaGFyZWQgbWVtb3J5IGhhbmRs
ZS4KKyAgICAgICAgYm9vbCBzaG91bGRDYWNoZSA9IFdURjo6c3dpdGNoT24ocmVzdWx0LT5tX3N0
b3JhZ2UsCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfSwK
KyAgICAgICAgICAgIFtdKGNvbnN0IFJldGFpblB0cjxDRlN0cmluZ1JlZj4mIHN0cmluZykgeyBy
ZXR1cm4gZmFsc2U7IH0sCisgICAgICAgICAgICBbXShjb25zdCBTaGFyZWRTcGFuOCYgaGFuZGxl
KSB7IHJldHVybiB0cnVlOyB9LAorICAgICAgICAgICAgW10oY29uc3QgU2hhcmVkU3BhbjE2JiBo
YW5kbGUpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgKTsKKyAgICAgICAgaWYgKCFzaG91bGRD
YWNoZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAgICAgd3JhcHBlciA9IGFk
b3B0TlMoW1tfV0tUcmFuc2ZlclN0cmluZ1dyYXBwZXIgYWxsb2NdIGluaXRXaXRoU3RyaW5nOldU
Rjo6bW92ZSgqcmVzdWx0KV0pOwogICAgICAgICBvYmpjX3NldEFzc29jaWF0ZWRPYmplY3Qoc3Ry
aW5nLCB0cmFuc2ZlclN0cmluZ1dyYXBwZXJLZXksIHdyYXBwZXIuZ2V0KCksIE9CSkNfQVNTT0NJ
QVRJT05fUkVUQUlOX05PTkFUT01JQyk7CiAgICAgfQogCi0gICAgcmV0dXJuIFt3cmFwcGVyIHN0
cmluZ107CisgICAgcmV0dXJuIFRyYW5zZmVyU3RyaW5nIHsgW3dyYXBwZXIgc3RyaW5nXS50b0lQ
Q0RhdGEoKSB9OwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQppbmRleCBlMTFlZmQzYTE5ZWYuLmY1OTVkZmYyMmVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0xNjM2LDggKzE2MzYsNiBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlLCBmb3JfaW1wbGVtZW50YXRpb25fZmlsZT1GYWxzZSk6CiAgICAgICAgICdX
ZWJLaXQ6OldlYlB1c2hEOjpXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24nOiBb
JyJXZWJQdXNoRGFlbW9uQ29ubmVjdGlvbkNvbmZpZ3VyYXRpb24uaCInXSwKICAgICAgICAgJ1dl
YktpdDo6V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhJzogWyciV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyRGF0YVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OldlYlRyYW5zcG9ydFNlc3Np
b25JZGVudGlmaWVyJzogWyciV2ViVHJhbnNwb3J0U2Vzc2lvbi5oIiddLAotICAgICAgICAnV2Vi
S2l0OjpXZWJDb3JlVXNlclNjcmlwdERhdGEnOiBbJyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuaCInXSwKLSAgICAgICAgJ1dlYktpdDo6V2ViQ29yZVVzZXJTdHlsZVNoZWV0RGF0
YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIiddLAogICAgICAgICAn
V2ViS2l0OjpXZWJVc2VyU2NyaXB0RGF0YSc6IFsnIldlYlVzZXJDb250ZW50Q29udHJvbGxlckRh
dGFUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGEnOiBb
JyJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCInXSwKICAgICAgICAgJ1dURjo6
VW5peEZpbGVEZXNjcmlwdG9yJzogWyc8d3RmL3VuaXgvVW5peEZpbGVEZXNjcmlwdG9yLmg+J10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJEYXRhVHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJv
bGxlckRhdGFUeXBlcy5oCmluZGV4IDg5OTYzMmUyYTliNS4uMzg5ZDc0NTA2ODI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlw
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkNvbnRlbnRXb3JsZERhdGEu
aCIKICNpbmNsdWRlICJDb250ZW50V29ybGRTaGFyZWQuaCIKICNpbmNsdWRlICJTY3JpcHRNZXNz
YWdlSGFuZGxlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJUcmFuc2ZlclN0cmluZy5oIgogI2lu
Y2x1ZGUgIlVzZXJTY3JpcHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVXNlclN0eWxlU2hlZXRJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU2NyaXB0Lmg+CkBAIC00MSwzNyAr
NDAsMTYgQEAgY2xhc3MgU2hhcmVkTWVtb3J5SGFuZGxlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotc3RydWN0IFdlYkNvcmVVc2VyU2NyaXB0RGF0YSB7Ci0gICAgSVBDOjpUcmFuc2ZlclN0cmlu
ZyBzb3VyY2U7Ci0gICAgVVJMIHVybDsKLSAgICBWZWN0b3I8U3RyaW5nPiBhbGxvd2xpc3Q7Ci0g
ICAgVmVjdG9yPFN0cmluZz4gYmxvY2tsaXN0OwotICAgIFdlYkNvcmU6OlVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lIGluamVjdGlvblRpbWU7Ci0gICAgV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcyBpbmplY3RlZEZyYW1lczsKLSAgICBXZWJDb3JlOjpVc2VyQ29udGVudE1hdGNoUGFy
ZW50RnJhbWUgbWF0Y2hQYXJlbnRGcmFtZTsKLX07Ci0KIHN0cnVjdCBXZWJVc2VyU2NyaXB0RGF0
YSB7CiAgICAgVXNlclNjcmlwdElkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBDb250ZW50V29y
bGREYXRhIHdvcmxkRGF0YTsKLSAgICBXZWJDb3JlVXNlclNjcmlwdERhdGEgdXNlclNjcmlwdDsK
LX07Ci0KLXN0cnVjdCBXZWJDb3JlVXNlclN0eWxlU2hlZXREYXRhIHsKLSAgICBJUEM6OlRyYW5z
ZmVyU3RyaW5nIHNvdXJjZTsKLSAgICBVUkwgdXJsOwotICAgIFZlY3RvcjxTdHJpbmc+IGFsbG93
bGlzdDsKLSAgICBWZWN0b3I8U3RyaW5nPiBibG9ja2xpc3Q7Ci0gICAgV2ViQ29yZTo6VXNlckNv
bnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lczsKLSAgICBXZWJDb3JlOjpVc2VyQ29u
dGVudE1hdGNoUGFyZW50RnJhbWUgbWF0Y2hQYXJlbnRGcmFtZTsKLSAgICBXZWJDb3JlOjpVc2Vy
U3R5bGVMZXZlbCBsZXZlbDsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQ7CisgICAgV2ViQ29yZTo6VXNlclNjcmlwdCB1c2VyU2NyaXB0OwogfTsKIAog
c3RydWN0IFdlYlVzZXJTdHlsZVNoZWV0RGF0YSB7CiAgICAgVXNlclN0eWxlU2hlZXRJZGVudGlm
aWVyIGlkZW50aWZpZXI7CiAgICAgQ29udGVudFdvcmxkRGF0YSB3b3JsZERhdGE7Ci0gICAgV2Vi
Q29yZVVzZXJTdHlsZVNoZWV0RGF0YSB1c2VyU3R5bGVTaGVldDsKKyAgICBXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldCB1c2VyU3R5bGVTaGVldDsKIH07CiAKIHN0cnVjdCBXZWJTY3JpcHRNZXNzYWdl
SGFuZGxlckRhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLnNlcmlhbGl6YXRpb24uaW4gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuc2VyaWFsaXphdGlvbi5p
bgppbmRleCAzZmM0MTQ0MmE2YzkuLjVlZWY1ODRhNmM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLnNlcmlhbGl6YXRp
b24uaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
RGF0YVR5cGVzLnNlcmlhbGl6YXRpb24uaW4KQEAgLTIxLDM3ICsyMSwxNiBAQAogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCiBoZWFkZXI6ICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIKLVtD
dXN0b21IZWFkZXIsIERlYnVnRGVjb2RpbmdGYWlsdXJlXSBzdHJ1Y3QgV2ViS2l0OjpXZWJDb3Jl
VXNlclNjcmlwdERhdGEgewotICAgIElQQzo6VHJhbnNmZXJTdHJpbmcgc291cmNlOwotICAgIFVS
TCB1cmw7Ci0gICAgVmVjdG9yPFN0cmluZz4gYWxsb3dsaXN0OwotICAgIFZlY3RvcjxTdHJpbmc+
IGJsb2NrbGlzdDsKLSAgICBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rp
b25UaW1lOwotICAgIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRG
cmFtZXM7Ci0gICAgV2ViQ29yZTo6VXNlckNvbnRlbnRNYXRjaFBhcmVudEZyYW1lIG1hdGNoUGFy
ZW50RnJhbWU7Ci19Ci0KIFtDdXN0b21IZWFkZXIsIERlYnVnRGVjb2RpbmdGYWlsdXJlXSBzdHJ1
Y3QgV2ViS2l0OjpXZWJVc2VyU2NyaXB0RGF0YSB7CiAgICAgV2ViS2l0OjpVc2VyU2NyaXB0SWRl
bnRpZmllciBpZGVudGlmaWVyOwogICAgIFdlYktpdDo6Q29udGVudFdvcmxkRGF0YSB3b3JsZERh
dGE7Ci0gICAgV2ViS2l0OjpXZWJDb3JlVXNlclNjcmlwdERhdGEgdXNlclNjcmlwdDsKLX0KLQot
W0N1c3RvbUhlYWRlciwgRGVidWdEZWNvZGluZ0ZhaWx1cmVdIHN0cnVjdCBXZWJLaXQ6OldlYkNv
cmVVc2VyU3R5bGVTaGVldERhdGEgewotICAgIElQQzo6VHJhbnNmZXJTdHJpbmcgc291cmNlOwot
ICAgIFVSTCB1cmw7Ci0gICAgVmVjdG9yPFN0cmluZz4gYWxsb3dsaXN0OwotICAgIFZlY3RvcjxT
dHJpbmc+IGJsb2NrbGlzdDsKLSAgICBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
IGluamVjdGVkRnJhbWVzOwotICAgIFdlYkNvcmU6OlVzZXJDb250ZW50TWF0Y2hQYXJlbnRGcmFt
ZSBtYXRjaFBhcmVudEZyYW1lOwotICAgIFdlYkNvcmU6OlVzZXJTdHlsZUxldmVsIGxldmVsOwot
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKKyAgICBX
ZWJDb3JlOjpVc2VyU2NyaXB0IHVzZXJTY3JpcHQ7CiB9CiAKIFtDdXN0b21IZWFkZXIsIERlYnVn
RGVjb2RpbmdGYWlsdXJlXSBzdHJ1Y3QgV2ViS2l0OjpXZWJVc2VyU3R5bGVTaGVldERhdGEgewog
ICAgIFdlYktpdDo6VXNlclN0eWxlU2hlZXRJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgV2Vi
S2l0OjpDb250ZW50V29ybGREYXRhIHdvcmxkRGF0YTsKLSAgICBXZWJLaXQ6OldlYkNvcmVVc2Vy
U3R5bGVTaGVldERhdGEgdXNlclN0eWxlU2hlZXQ7CisgICAgV2ViQ29yZTo6VXNlclN0eWxlU2hl
ZXQgdXNlclN0eWxlU2hlZXQ7CiB9CiAKIFtDdXN0b21IZWFkZXIsIERlYnVnRGVjb2RpbmdGYWls
dXJlXSBzdHJ1Y3QgV2ViS2l0OjpXZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGEgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9Db2NvYS9XZWJFeHRlbnNp
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvQ29jb2EvV2Vi
RXh0ZW5zaW9uQ29jb2EubW0KaW5kZXggYWJlYWM4M2UxNTJhLi5kM2RlNWM1ZDU3OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvQ29jb2EvV2ViRXh0ZW5z
aW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9Db2Nv
YS9XZWJFeHRlbnNpb25Db2NvYS5tbQpAQCAtMTE5LDE1ICsxMTksMTQgQEAgV2ViRXh0ZW5zaW9u
OjpXZWJFeHRlbnNpb24oTlNCdW5kbGUgKmFwcEV4dGVuc2lvbkJ1bmRsZSwgTlNVUkwgKnJlc291
cmNlVVJMLCBSZWYKIAogV2ViRXh0ZW5zaW9uOjpXZWJFeHRlbnNpb24oTlNEaWN0aW9uYXJ5ICpt
YW5pZmVzdCwgUmVzb3VyY2VzJiYgcmVzb3VyY2VzKQogICAgIDogbV9tYW5pZmVzdEpTT04oSlNP
Tjo6VmFsdWU6Om51bGwoKSkKLSAgICAsIG1fZGF0YVJlc291cmNlcyh0b0RhdGFSZXNvdXJjZXMo
cmVzb3VyY2VzKSkKLSAgICAsIG1fc3RyaW5nUmVzb3VyY2VzKHRvU3RyaW5nUmVzb3VyY2VzKHJl
c291cmNlcykpCisgICAgLCBtX3Jlc291cmNlcyhXVEY6Om1vdmUocmVzb3VyY2VzKSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVChtYW5pZmVzdCk7CiAKICAgICBhdXRvICptYW5pZmVzdFN0cmluZyA9
IGVuY29kZUpTT05TdHJpbmcobWFuaWZlc3QpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1hbmlmZXN0
U3RyaW5nKTsKIAotICAgIG1fc3RyaW5nUmVzb3VyY2VzLnNldCgibWFuaWZlc3QuanNvbiJfcywg
bWFuaWZlc3RTdHJpbmcpOworICAgIG1fcmVzb3VyY2VzLnNldCgibWFuaWZlc3QuanNvbiJfcywg
bWFuaWZlc3RTdHJpbmcpOwogfQogCiBOU0RpY3Rpb25hcnkgKldlYkV4dGVuc2lvbjo6bWFuaWZl
c3REaWN0aW9uYXJ5KCkKQEAgLTIzOSwxMyArMjM4LDE0IEBAIEV4cGVjdGVkPFJlZjxBUEk6OkRh
dGE+LCBSZWZQdHI8QVBJOjpFcnJvcj4+IFdlYkV4dGVuc2lvbjo6cmVzb3VyY2VEYXRhRm9yUGF0
aChjCiAgICAgaWYgKFtjb2NvYVBhdGggaXNFcXVhbFRvU3RyaW5nOmdlbmVyYXRlZEJhY2tncm91
bmRQYWdlRmlsZW5hbWVdIHx8IFtjb2NvYVBhdGggaXNFcXVhbFRvU3RyaW5nOmdlbmVyYXRlZEJh
Y2tncm91bmRTZXJ2aWNlV29ya2VyRmlsZW5hbWVdKQogICAgICAgICByZXR1cm4gQVBJOjpEYXRh
OjpjcmVhdGUoZ2VuZXJhdGVkQmFja2dyb3VuZENvbnRlbnQoKS51dGY4KCkuc3BhbigpKTsKIAot
ICAgIGlmIChhdXRvIG1heWJlRGF0YSA9IG1fZGF0YVJlc291cmNlcy5nZXRPcHRpb25hbChwYXRo
KSkKLSAgICAgICAgcmV0dXJuICptYXliZURhdGE7Ci0KLSAgICBpZiAoYXV0byBtYXliZVN0cmlu
ZyA9IG1fc3RyaW5nUmVzb3VyY2VzLmdldE9wdGlvbmFsKHBhdGgpKSB7Ci0gICAgICAgIGF1dG8g
ZGF0YSA9IEFQSTo6RGF0YTo6Y3JlYXRlKG1heWJlU3RyaW5nLT51dGY4KCkuc3BhbigpKTsKLSAg
ICAgICAgbV9kYXRhUmVzb3VyY2VzLnNldChwYXRoLCBkYXRhKTsKLSAgICAgICAgcmV0dXJuIGRh
dGE7CisgICAgaWYgKGF1dG8gZW50cnkgPSBtX3Jlc291cmNlcy5maW5kKHBhdGgpOyBlbnRyeSAh
PSBtX3Jlc291cmNlcy5lbmQoKSkgeworICAgICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihlbnRy
eS0+dmFsdWUsCisgICAgICAgICAgICBbXShjb25zdCBSZWY8QVBJOjpEYXRhPiYgZGF0YSkgewor
ICAgICAgICAgICAgICAgIHJldHVybiBkYXRhOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IFtdKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIEFQSTo6
RGF0YTo6Y3JlYXRlKHN0cmluZy51dGY4KCkuc3BhbigpKTsKKyAgICAgICAgICAgIH0pOwogICAg
IH0KIAogICAgIGF1dG8gKnJlc291cmNlVVJMID0gcmVzb3VyY2VGaWxlVVJMRm9yUGF0aChwYXRo
KS5jcmVhdGVOU1VSTCgpLmdldCgpOwpAQCAtMjcyLDcgKzI3Miw3IEBAIEV4cGVjdGVkPFJlZjxB
UEk6OkRhdGE+LCBSZWZQdHI8QVBJOjpFcnJvcj4+IFdlYkV4dGVuc2lvbjo6cmVzb3VyY2VEYXRh
Rm9yUGF0aChjCiAKICAgICBSZWYgZGF0YSA9IEFQSTo6RGF0YTo6Y3JlYXRlV2l0aG91dENvcHlp
bmcocmVzdWx0RGF0YSk7CiAgICAgaWYgKGNhY2hlUmVzdWx0ID09IENhY2hlUmVzdWx0OjpZZXMp
Ci0gICAgICAgIG1fZGF0YVJlc291cmNlcy5zZXQocGF0aCwgZGF0YSk7CisgICAgICAgIG1fcmVz
b3VyY2VzLnNldChwYXRoLCBkYXRhKTsKIAogICAgIHJldHVybiBkYXRhOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9XZWJFeHRlbnNpb24uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9XZWJFeHRlbnNpb24uY3BwCmluZGV4
IDE5N2Q0NTcyNDAzMS4uMmYwOGU4ODVhOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9FeHRlbnNpb25zL1dlYkV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRXh0ZW5zaW9ucy9XZWJFeHRlbnNpb24uY3BwCkBAIC0xNjAsMzAgKzE2MCw5IEBA
IHN0YXRpYyBjb25zdGV4cHIgYXV0byBzaWRlUGFuZWxQYXRoTWFuaWZlc3RLZXkgPSAiZGVmYXVs
dF9wYXRoIl9zOwogCiBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heGltdW1OdW1iZXJPZlNob3J0Y3V0
Q29tbWFuZHMgPSA0OwogCi1XZWJFeHRlbnNpb246OkRhdGFSZXNvdXJjZXMgV2ViRXh0ZW5zaW9u
Ojp0b0RhdGFSZXNvdXJjZXMoY29uc3QgV2ViRXh0ZW5zaW9uOjpSZXNvdXJjZXMmIHJlc291cmNl
cykKLXsKLSAgICBEYXRhUmVzb3VyY2VzIHJlc3VsdDsKLSAgICBmb3IgKGF1dG8mIFtrZXksIHZh
bHVlXSA6IHJlc291cmNlcykgewotICAgICAgICBpZiAoYXV0byogZGF0YSA9IHN0ZDo6Z2V0X2lm
PFJlZjxBUEk6OkRhdGE+PigmdmFsdWUpKQotICAgICAgICAgICAgcmVzdWx0LnNldChrZXksICpk
YXRhKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotV2ViRXh0ZW5zaW9uOjpTdHJp
bmdSZXNvdXJjZXMgV2ViRXh0ZW5zaW9uOjp0b1N0cmluZ1Jlc291cmNlcyhjb25zdCBXZWJFeHRl
bnNpb246OlJlc291cmNlcyYgcmVzb3VyY2VzKQotewotICAgIFN0cmluZ1Jlc291cmNlcyByZXN1
bHQ7Ci0gICAgZm9yIChhdXRvJiBba2V5LCB2YWx1ZV0gOiByZXNvdXJjZXMpIHsKLSAgICAgICAg
aWYgKGF1dG8qIHN0cmluZyA9IHN0ZDo6Z2V0X2lmPFN0cmluZz4oJnZhbHVlKSkKLSAgICAgICAg
ICAgIHJlc3VsdC5zZXQoa2V5LCAqc3RyaW5nKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQogV2ViRXh0ZW5zaW9uOjpXZWJFeHRlbnNpb24oUmVzb3VyY2VzJiYgcmVzb3VyY2VzKQog
ICAgIDogbV9tYW5pZmVzdEpTT04oSlNPTjo6VmFsdWU6Om51bGwoKSkKLSAgICAsIG1fZGF0YVJl
c291cmNlcyh0b0RhdGFSZXNvdXJjZXMocmVzb3VyY2VzKSkKLSAgICAsIG1fc3RyaW5nUmVzb3Vy
Y2VzKHRvU3RyaW5nUmVzb3VyY2VzKHJlc291cmNlcykpCisgICAgLCBtX3Jlc291cmNlcyhXVEY6
Om1vdmUocmVzb3VyY2VzKSkKIHsKIH0KIApAQCAtNTY5LDEzICs1NDgsMTQgQEAgRXhwZWN0ZWQ8
U3RyaW5nLCBSZWZQdHI8QVBJOjpFcnJvcj4+IFdlYkV4dGVuc2lvbjo6cmVzb3VyY2VTdHJpbmdG
b3JQYXRoKGNvbnN0IFMKICAgICBpZiAocGF0aCA9PSBnZW5lcmF0ZWRCYWNrZ3JvdW5kUGFnZUZp
bGVuYW1lIHx8IHBhdGggPT0gZ2VuZXJhdGVkQmFja2dyb3VuZFNlcnZpY2VXb3JrZXJGaWxlbmFt
ZSkKICAgICAgICAgcmV0dXJuIGdlbmVyYXRlZEJhY2tncm91bmRDb250ZW50KCk7CiAKLSAgICBp
ZiAoYXV0byBtYXliZVN0cmluZyA9IG1fc3RyaW5nUmVzb3VyY2VzLmdldE9wdGlvbmFsKHBhdGgp
KQotICAgICAgICByZXR1cm4gKm1heWJlU3RyaW5nOwotCi0gICAgaWYgKGF1dG8gbWF5YmVEYXRh
ID0gbV9kYXRhUmVzb3VyY2VzLmdldE9wdGlvbmFsKHBhdGgpKSB7Ci0gICAgICAgIGF1dG8gc3Ry
aW5nID0gU3RyaW5nOjpmcm9tVVRGOChtYXliZURhdGEtPmdldCgpLnNwYW4oKSk7Ci0gICAgICAg
IG1fc3RyaW5nUmVzb3VyY2VzLnNldChwYXRoLCBzdHJpbmcpOwotICAgICAgICByZXR1cm4gc3Ry
aW5nOworICAgIGlmIChhdXRvIGVudHJ5ID0gbV9yZXNvdXJjZXMuZmluZChwYXRoKTsgZW50cnkg
IT0gbV9yZXNvdXJjZXMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZW50
cnktPnZhbHVlLAorICAgICAgICAgICAgW10oY29uc3QgUmVmPEFQSTo6RGF0YT4mIGRhdGEpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChkYXRhLT5zcGFuKCkpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIFtdKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICAgICAgICAgIH0pOwogICAgIH0KIAog
ICAgIGF1dG8gZGF0YVJlc3VsdCA9IHJlc291cmNlRGF0YUZvclBhdGgocGF0aCwgY2FjaGVSZXN1
bHQsIHN1cHByZXNzRXJyb3JzKTsKQEAgLTU5Miw3ICs1NzIsNyBAQCBFeHBlY3RlZDxTdHJpbmcs
IFJlZlB0cjxBUEk6OkVycm9yPj4gV2ViRXh0ZW5zaW9uOjpyZXNvdXJjZVN0cmluZ0ZvclBhdGgo
Y29uc3QgUwogCiAgICAgYXV0byByZXN1bHQgPSBkZWNvZGVyLT5kZWNvZGUoZGF0YS0+c3Bhbigp
KTsKICAgICBpZiAoY2FjaGVSZXN1bHQgPT0gQ2FjaGVSZXN1bHQ6OlllcykKLSAgICAgICAgbV9z
dHJpbmdSZXNvdXJjZXMuc2V0KHBhdGgsIHJlc3VsdCk7CisgICAgICAgIG1fcmVzb3VyY2VzLnNl
dChwYXRoLCByZXN1bHQpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTgxMywyNCArNzkz
LDE5IEBAIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBXZWJFeHRlbnNpb246OnN1cHBvcnRlZExvY2Fs
ZXMoKQogCiAgICAgLy8gRm9yIHRlc3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIGZpbGUgc3lzdGVtIGxv
Y2F0aW9uLCBjaGVjayB0aGUgcmVzb3VyY2UgY2FjaGUuCiAgICAgYXV0byBwcmVmaXhMZW5ndGgg
PSBsb2NhbGVzU3RyaW5nLmxlbmd0aCgpOwotICAgIGF1dG8gcGF0aEZ1bmN0b3IgPSBbJl0oY29u
c3QgU3RyaW5nJiBwYXRoKSB7CisgICAgZm9yIChjb25zdCBhdXRvJiByZXNvdXJjZUVudHJ5IDog
bV9yZXNvdXJjZXMpIHsKKyAgICAgICAgYXV0byBwYXRoID0gcmVzb3VyY2VFbnRyeS5rZXk7CiAg
ICAgICAgIGlmICghcGF0aC5zdGFydHNXaXRoKGxvY2FsZXNTdHJpbmcpKQotICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYXV0byBsb2NhbGVFbmQg
PSBwYXRoLmZpbmQoJy8nLCBwcmVmaXhMZW5ndGgpOwogICAgICAgICBpZiAobG9jYWxlRW5kID09
IG5vdEZvdW5kKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgYXV0byBsb2NhbGUgPSBwYXRoLnN1YnN0cmluZyhwcmVmaXhMZW5ndGgsIGxvY2Fs
ZUVuZCAtIHByZWZpeExlbmd0aCk7CiAgICAgICAgIGlmICghbV9zdXBwb3J0ZWRMb2NhbGVzLmNv
bnRhaW5zKGxvY2FsZSkpCiAgICAgICAgICAgICBtX3N1cHBvcnRlZExvY2FsZXMuYXBwZW5kKGxv
Y2FsZSk7Ci0gICAgfTsKLQotICAgIGZvciAoYXV0byYgcGF0aCA6IG1fZGF0YVJlc291cmNlcy5r
ZXlzKCkpCi0gICAgICAgIHBhdGhGdW5jdG9yKHBhdGgpOwotCi0gICAgZm9yIChhdXRvJiBwYXRo
IDogbV9zdHJpbmdSZXNvdXJjZXMua2V5cygpKQotICAgICAgICBwYXRoRnVuY3RvcihwYXRoKTsK
KyAgICB9CiAKICAgICByZXR1cm4gbV9zdXBwb3J0ZWRMb2NhbGVzOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9XZWJFeHRlbnNpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvV2ViRXh0ZW5zaW9uLmgKaW5kZXggYTI0Y2Y1
NjU5OGU3Li5kZmYyOTA2ZWEyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0V4dGVuc2lvbnMvV2ViRXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RXh0ZW5zaW9ucy9XZWJFeHRlbnNpb24uaApAQCAtNjMsOCArNjMsNiBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgSWNvbkNhY2hlRW50cnkgPSBWYXJpYW50PFJlZlB0cjxXZWJDb3JlOjpJY29uPiwgVmVj
dG9yPGRvdWJsZT4+OwogICAgIHVzaW5nIEljb25zQ2FjaGUgPSBIYXNoTWFwPFN0cmluZywgSWNv
bkNhY2hlRW50cnk+OwogICAgIHVzaW5nIFJlc291cmNlcyA9IEhhc2hNYXA8U3RyaW5nLCBWYXJp
YW50PFN0cmluZywgUmVmPEFQSTo6RGF0YT4+PjsKLSAgICB1c2luZyBEYXRhUmVzb3VyY2VzID0g
SGFzaE1hcDxTdHJpbmcsIFJlZjxBUEk6OkRhdGE+PjsKLSAgICB1c2luZyBTdHJpbmdSZXNvdXJj
ZXMgPSBIYXNoTWFwPFN0cmluZywgU3RyaW5nPjsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3M+CiAgICAgc3RhdGljIFJlZjxXZWJFeHRlbnNpb24+IGNyZWF0ZShBcmdzJiYuLi4gYXJn
cykKQEAgLTM1OSw5ICszNTcsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgRGF0YVJlc291cmNlcyB0b0RhdGFSZXNvdXJjZXMoY29uc3QgUmVzb3VyY2VzJik7Ci0g
ICAgc3RhdGljIFN0cmluZ1Jlc291cmNlcyB0b1N0cmluZ1Jlc291cmNlcyhjb25zdCBSZXNvdXJj
ZXMmKTsKLQogICAgIHN0YXRpYyBTdHJpbmcgcHJvY2Vzc0ZpbGVBbmRFeHRyYWN0WmlwQXJjaGl2
ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIGJvb2wgcGFyc2VNYW5pZmVzdChTdHJpbmdWaWV3KTsK
QEAgLTQxMiw4ICs0MDcsNyBAQCBwcml2YXRlOgogICAgIFVSTCBtX3Jlc291cmNlQmFzZVVSTDsK
ICAgICBib29sIG1fcmVzb3VyY2VzQXJlVGVtcG9yYXJ5IHsgZmFsc2UgfTsKICAgICBSZWY8Y29u
c3QgSlNPTjo6VmFsdWU+IG1fbWFuaWZlc3RKU09OOwotICAgIERhdGFSZXNvdXJjZXMgbV9kYXRh
UmVzb3VyY2VzOwotICAgIFN0cmluZ1Jlc291cmNlcyBtX3N0cmluZ1Jlc291cmNlczsKKyAgICBS
ZXNvdXJjZXMgbV9yZXNvdXJjZXM7CiAKICAgICBTdHJpbmcgbV9kZWZhdWx0TG9jYWxlOwogICAg
IFZlY3RvcjxTdHJpbmc+IG1fc3VwcG9ydGVkTG9jYWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvZ2xpYi9XZWJFeHRlbnNpb25HTGliLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvZ2xpYi9XZWJFeHRlbnNpb25HTGliLmNw
cAppbmRleCA1MTg5MjExOGQ2ZjYuLjg3MTQ2NzFhMWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRXh0ZW5zaW9ucy9nbGliL1dlYkV4dGVuc2lvbkdMaWIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0V4dGVuc2lvbnMvZ2xpYi9XZWJFeHRlbnNpb25HTGli
LmNwcApAQCAtNjUsMTMgKzY1LDEyIEBAIFdlYkV4dGVuc2lvbjo6V2ViRXh0ZW5zaW9uKEdGaWxl
KiByZXNvdXJjZXNGaWxlLCBSZWZQdHI8QVBJOjpFcnJvcj4mIG91dEVycm9yKQogCiBXZWJFeHRl
bnNpb246OldlYkV4dGVuc2lvbihjb25zdCBKU09OOjpWYWx1ZSYgbWFuaWZlc3QsIFJlc291cmNl
cyYmIHJlc291cmNlcykKICAgICA6IG1fbWFuaWZlc3RKU09OKG1hbmlmZXN0KQotICAgICwgbV9k
YXRhUmVzb3VyY2VzKHRvRGF0YVJlc291cmNlcyhyZXNvdXJjZXMpKQotICAgICwgbV9zdHJpbmdS
ZXNvdXJjZXModG9TdHJpbmdSZXNvdXJjZXMocmVzb3VyY2VzKSkKKyAgICAsIG1fcmVzb3VyY2Vz
KFdURjo6bW92ZShyZXNvdXJjZXMpKQogewogICAgIGF1dG8gbWFuaWZlc3RTdHJpbmcgPSBtYW5p
ZmVzdC50b0pTT05TdHJpbmcoKTsKICAgICBSRUxFQVNFX0FTU0VSVChtYW5pZmVzdFN0cmluZyk7
CiAKLSAgICBtX3N0cmluZ1Jlc291cmNlcy5zZXQoIm1hbmlmZXN0Lmpzb24iX3MsIG1hbmlmZXN0
U3RyaW5nKTsKKyAgICBtX3Jlc291cmNlcy5zZXQoIm1hbmlmZXN0Lmpzb24iX3MsIG1hbmlmZXN0
U3RyaW5nKTsKIH0KIAogRXhwZWN0ZWQ8UmVmPEFQSTo6RGF0YT4sIFJlZlB0cjxBUEk6OkVycm9y
Pj4gV2ViRXh0ZW5zaW9uOjpyZXNvdXJjZURhdGFGb3JQYXRoKGNvbnN0IFN0cmluZyYgb3JpZ2lu
YWxQYXRoLCBDYWNoZVJlc3VsdCBjYWNoZVJlc3VsdCwgU3VwcHJlc3NOb3RGb3VuZEVycm9ycyBz
dXBwcmVzc0Vycm9ycykKQEAgLTk0LDEzICs5MywxNCBAQCBFeHBlY3RlZDxSZWY8QVBJOjpEYXRh
PiwgUmVmUHRyPEFQSTo6RXJyb3I+PiBXZWJFeHRlbnNpb246OnJlc291cmNlRGF0YUZvclBhdGgo
YwogICAgIGlmIChwYXRoID09IGdlbmVyYXRlZEJhY2tncm91bmRQYWdlRmlsZW5hbWUgfHwgcGF0
aCAgPT0gZ2VuZXJhdGVkQmFja2dyb3VuZFNlcnZpY2VXb3JrZXJGaWxlbmFtZSkKICAgICAgICAg
cmV0dXJuIEFQSTo6RGF0YTo6Y3JlYXRlKGdlbmVyYXRlZEJhY2tncm91bmRDb250ZW50KCkudXRm
OCgpLnNwYW4oKSk7CiAKLSAgICBpZiAoYXV0byBtYXliZURhdGEgPSBtX2RhdGFSZXNvdXJjZXMu
Z2V0T3B0aW9uYWwocGF0aCkpCi0gICAgICAgIHJldHVybiAqbWF5YmVEYXRhOwotCi0gICAgaWYg
KGF1dG8gbWF5YmVTdHJpbmcgPSBtX3N0cmluZ1Jlc291cmNlcy5nZXRPcHRpb25hbChwYXRoKSkg
ewotICAgICAgICBhdXRvIGRhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZShtYXliZVN0cmluZy0+dXRm
OCgpLnNwYW4oKSk7Ci0gICAgICAgIG1fZGF0YVJlc291cmNlcy5zZXQocGF0aCwgZGF0YSk7Ci0g
ICAgICAgIHJldHVybiBkYXRhOworICAgIGlmIChhdXRvIGVudHJ5ID0gbV9yZXNvdXJjZXMuZmlu
ZChwYXRoKTsgZW50cnkgIT0gbV9yZXNvdXJjZXMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIFdU
Rjo6c3dpdGNoT24oZW50cnktPnZhbHVlLAorICAgICAgICAgICAgW10oY29uc3QgUmVmPEFQSTo6
RGF0YT4mIGRhdGEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgICAg
IH0sCisgICAgICAgICAgICBbXShjb25zdCBTdHJpbmcmIHN0cmluZykgeworICAgICAgICAgICAg
ICAgIHJldHVybiBBUEk6OkRhdGE6OmNyZWF0ZShzdHJpbmcudXRmOCgpLnNwYW4oKSk7CisgICAg
ICAgICAgICB9KTsKICAgICB9CiAKICAgICBhdXRvIHJlc291cmNlVVJMID0gcmVzb3VyY2VGaWxl
VVJMRm9yUGF0aChwYXRoKTsKQEAgLTExOSw3ICsxMTksNyBAQCBFeHBlY3RlZDxSZWY8QVBJOjpE
YXRhPiwgUmVmUHRyPEFQSTo6RXJyb3I+PiBXZWJFeHRlbnNpb246OnJlc291cmNlRGF0YUZvclBh
dGgoYwogCiAgICAgUmVmIGRhdGEgPSBBUEk6OkRhdGE6OmNyZWF0ZSgqcmF3RGF0YSk7CiAgICAg
aWYgKGNhY2hlUmVzdWx0ID09IENhY2hlUmVzdWx0OjpZZXMpCi0gICAgICAgIG1fZGF0YVJlc291
cmNlcy5zZXQocGF0aCwgZGF0YSk7CisgICAgICAgIG1fcmVzb3VyY2VzLnNldChwYXRoLCBkYXRh
KTsKIAogICAgIHJldHVybiBkYXRhOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkuY3BwCmluZGV4IGE1YjdlOTEwNDBjMi4uOWEyMDZhYTk1MjY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViU2NyaXB0TWVzc2FnZUhhbmRsZXIuaCIKKyNpbmNsdWRlICJXZWJVc2VyQ29udGVudENv
bnRyb2xsZXJEYXRhVHlwZXMuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRNZW1vcnkuaD4KQEAgLTk2LDQ5ICs5NywxNyBAQCB2b2lk
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc1Byb3h5JiBwcgogfQogI2VuZGlmCiAKLUlQQzo6VHJhbnNmZXJTdHJpbmcgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmNhY2hlZFRyYW5zZmVyU3RyaW5nKGNvbnN0IFN0
cmluZyYgc3RyaW5nKSBjb25zdAotewotICAgIGlmIChhdXRvIG1heWJlVHJhbnNmZXJTdHJpbmcg
PSBtX3RyYW5zZmVyU3RyaW5nQ2FjaGUuZ2V0T3B0aW9uYWwoc3RyaW5nKSkKLSAgICAgICAgcmV0
dXJuICptYXliZVRyYW5zZmVyU3RyaW5nOwotCi0gICAgYXV0byByZXN1bHQgPSBJUEM6OlRyYW5z
ZmVyU3RyaW5nOjpjcmVhdGUoc3RyaW5nKTsKLSAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQpOwot
Ci0gICAgaWYgKHJlc3VsdC0+c2hvdWxkQ2FjaGUoKSkKLSAgICAgICAgbV90cmFuc2ZlclN0cmlu
Z0NhY2hlLnNldChzdHJpbmcsICpyZXN1bHQpOwotCi0gICAgcmV0dXJuICpyZXN1bHQ7Ci19Ci0K
LXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlc2V0VHJhbnNmZXJTdHJpbmdD
YWNoZSgpCi17Ci0gICAgLy8gV2UgY291bGQgYmUgbW9yZSBncmFudWxhciBhYm91dCBjbGVhcmlu
ZyB0aGUgY2FjaGUgd2hlbiB1c2VyIHNjcmlwdHMgb3IgdXNlciBzdHlsZSBzaGVldHMgYXJlCi0g
ICAgLy8gcmVtb3ZlZC4gQnV0IHNpbmNlIHRoYXQgaXMgYSByYXJlIG9wZXJhdGlvbiwgYW5kIHRo
aXMgaXMganVzdCBhIGNhY2hlLCBqdXN0IGNsZWFyaW5nIHRoZQotICAgIC8vIGVudGlyZSBjYWNo
ZSBvbiBhbnkgcmVtb3ZhbCBzZWVtcyBmaW5lLgotICAgIG1fdHJhbnNmZXJTdHJpbmdDYWNoZS5j
bGVhcigpOwotfQotCi1XZWJDb3JlVXNlclNjcmlwdERhdGEgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk6OmRhdGFGcm9tVXNlclNjcmlwdChjb25zdCBXZWJDb3JlOjpVc2VyU2NyaXB0JiBz
Y3JpcHQpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHsgY2FjaGVkVHJhbnNmZXJTdHJpbmcoc2NyaXB0
LnNvdXJjZSgpKSwgc2NyaXB0LnVybCgpLCBzY3JpcHQuYWxsb3dsaXN0KCksIHNjcmlwdC5ibG9j
a2xpc3QoKSwgc2NyaXB0LmluamVjdGlvblRpbWUoKSwgc2NyaXB0LmluamVjdGVkRnJhbWVzKCks
IHNjcmlwdC5tYXRjaFBhcmVudEZyYW1lKCkgfTsKLX0KLQotV2ViQ29yZVVzZXJTdHlsZVNoZWV0
RGF0YSBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6ZGF0YUZyb21Vc2VyU3R5bGVTaGVl
dChjb25zdCBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCYgc2hlZXQpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIHsgY2FjaGVkVHJhbnNmZXJTdHJpbmcoc2hlZXQuc291cmNlKCkpLCBzaGVldC51cmwoKSwg
c2hlZXQuYWxsb3dsaXN0KCksIHNoZWV0LmJsb2NrbGlzdCgpLCBzaGVldC5pbmplY3RlZEZyYW1l
cygpLCBzaGVldC5tYXRjaFBhcmVudEZyYW1lKCksIHNoZWV0LmxldmVsKCksIHNoZWV0LnBhZ2VJ
RCgpIH07Ci19Ci0KIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMgV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyUHJveHk6OnBhcmFtZXRlcnNGb3JQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcykgY29uc3QKIHsKICAgICBtX3Byb2Nlc3Nlcy5hZGQocHJvY2Vzcyk7CiAKICAgICBW
ZWN0b3I8V2ViVXNlclNjcmlwdERhdGE+IHVzZXJTY3JpcHRzOwogICAgIGZvciAoUmVmUHRyIHVz
ZXJTY3JpcHQgOiBtX3VzZXJTY3JpcHRzLT5lbGVtZW50c09mVHlwZTxBUEk6OlVzZXJTY3JpcHQ+
KCkpCi0gICAgICAgIHVzZXJTY3JpcHRzLmFwcGVuZCh7IHVzZXJTY3JpcHQtPmlkZW50aWZpZXIo
KSwgUmVmIHsgdXNlclNjcmlwdC0+Y29udGVudFdvcmxkKCkgfS0+d29ybGREYXRhRm9yUHJvY2Vz
cyhwcm9jZXNzKSwgZGF0YUZyb21Vc2VyU2NyaXB0KHVzZXJTY3JpcHQtPnVzZXJTY3JpcHQoKSkg
fSk7CisgICAgICAgIHVzZXJTY3JpcHRzLmFwcGVuZCh7IHVzZXJTY3JpcHQtPmlkZW50aWZpZXIo
KSwgUmVmIHsgdXNlclNjcmlwdC0+Y29udGVudFdvcmxkKCkgfS0+d29ybGREYXRhRm9yUHJvY2Vz
cyhwcm9jZXNzKSwgdXNlclNjcmlwdC0+dXNlclNjcmlwdCgpIH0pOwogCiAgICAgVmVjdG9yPFdl
YlVzZXJTdHlsZVNoZWV0RGF0YT4gdXNlclN0eWxlU2hlZXRzOwogICAgIGZvciAoUmVmUHRyIHVz
ZXJTdHlsZVNoZWV0IDogbV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzT2ZUeXBlPEFQSTo6VXNl
clN0eWxlU2hlZXQ+KCkpCi0gICAgICAgIHVzZXJTdHlsZVNoZWV0cy5hcHBlbmQoeyB1c2VyU3R5
bGVTaGVldC0+aWRlbnRpZmllcigpLCBSZWYgeyB1c2VyU3R5bGVTaGVldC0+Y29udGVudFdvcmxk
KCkgfS0+d29ybGREYXRhRm9yUHJvY2Vzcyhwcm9jZXNzKSwgZGF0YUZyb21Vc2VyU3R5bGVTaGVl
dCh1c2VyU3R5bGVTaGVldC0+dXNlclN0eWxlU2hlZXQoKSkgfSk7CisgICAgICAgIHVzZXJTdHls
ZVNoZWV0cy5hcHBlbmQoeyB1c2VyU3R5bGVTaGVldC0+aWRlbnRpZmllcigpLCBSZWYgeyB1c2Vy
U3R5bGVTaGVldC0+Y29udGVudFdvcmxkKCkgfS0+d29ybGREYXRhRm9yUHJvY2Vzcyhwcm9jZXNz
KSwgdXNlclN0eWxlU2hlZXQtPnVzZXJTdHlsZVNoZWV0KCkgfSk7CiAKICAgICBWZWN0b3I8V2Vi
SlNCdWZmZXJEYXRhPiBidWZmZXJzOwogICAgIGZvciAoYXV0byYgW3BhaXIsIGJ1ZmZlcl0gOiBt
X2J1ZmZlcnMpIHsKQEAgLTE3OCw3ICsxNDcsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjphZGRVc2VyU2NyaXB0KEFQSTo6VXNlclNjcmlwdCYgdXNlclNjcmlwdCwgSQog
ICAgIG1fdXNlclNjcmlwdHMtPmVsZW1lbnRzKCkuYXBwZW5kKCZ1c2VyU2NyaXB0KTsKIAogICAg
IGZvciAoUmVmIHByb2Nlc3MgOiBtX3Byb2Nlc3NlcykKLSAgICAgICAgcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpBZGRVc2VyU2NyaXB0cyh7IHsgdXNl
clNjcmlwdC5pZGVudGlmaWVyKCksIHdvcmxkLT53b3JsZERhdGFGb3JQcm9jZXNzKHByb2Nlc3Mp
LCBkYXRhRnJvbVVzZXJTY3JpcHQodXNlclNjcmlwdC51c2VyU2NyaXB0KCkpIH0gfSwgaW1tZWRp
YXRlbHkpLCBpZGVudGlmaWVyKCkpOworICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OkFkZFVzZXJTY3JpcHRzKHsgeyB1c2VyU2NyaXB0Lmlk
ZW50aWZpZXIoKSwgd29ybGQtPndvcmxkRGF0YUZvclByb2Nlc3MocHJvY2VzcyksIHVzZXJTY3Jp
cHQudXNlclNjcmlwdCgpIH0gfSwgaW1tZWRpYXRlbHkpLCBpZGVudGlmaWVyKCkpOwogfQogCiB2
b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVVc2VyU2NyaXB0KEFQSTo6
VXNlclNjcmlwdCYgdXNlclNjcmlwdCkKQEAgLTE4OSw3ICsxNTgsNiBAQCB2b2lkIFdlYlVzZXJD
b250ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVVc2VyU2NyaXB0KEFQSTo6VXNlclNjcmlwdCYg
dXNlclNjcmlwdAogICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI6OlJlbW92ZVVzZXJTY3JpcHQod29ybGQtPmlkZW50aWZpZXIoKSwgdXNlclNj
cmlwdC5pZGVudGlmaWVyKCkpLCBpZGVudGlmaWVyKCkpOwogCiAgICAgbV91c2VyU2NyaXB0cy0+
ZWxlbWVudHMoKS5yZW1vdmVBbGwoJnVzZXJTY3JpcHQpOwotICAgIHJlc2V0VHJhbnNmZXJTdHJp
bmdDYWNoZSgpOwogfQogCiB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OjpyZW1v
dmVBbGxVc2VyU2NyaXB0cyhBUEk6OkNvbnRlbnRXb3JsZCYgd29ybGQpCkBAIC0yMDAsNyArMTY4
LDYgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eTo6cmVtb3ZlQWxsVXNlclNj
cmlwdHMoQVBJOjpDb250ZW50V29ybGQmIHdvcmwKICAgICBtX3VzZXJTY3JpcHRzLT5yZW1vdmVB
bGxPZlR5cGVNYXRjaGluZzxBUEk6OlVzZXJTY3JpcHQ+KFsmXShjb25zdCBhdXRvJiB1c2VyU2Ny
aXB0KSB7CiAgICAgICAgIHJldHVybiAmdXNlclNjcmlwdC0+Y29udGVudFdvcmxkKCkgPT0gJndv
cmxkOwogICAgIH0pOwotICAgIHJlc2V0VHJhbnNmZXJTdHJpbmdDYWNoZSgpOwogfQogCiAjaWYg
RU5BQkxFKFdLX1dFQl9FWFRFTlNJT05TKQpAQCAtMjI1LDcgKzE5Miw2IEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTY3JpcHRzKCkKICAgICAgICAg
ICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6UmVt
b3ZlQWxsVXNlclNjcmlwdHMod29ybGRJZGVudGlmaWVycyksIGlkZW50aWZpZXIoKSk7CiAKICAg
ICAgICAgbV91c2VyU2NyaXB0cy0+ZWxlbWVudHMoKS5jbGVhcigpOwotICAgICAgICByZXNldFRy
YW5zZmVyU3RyaW5nQ2FjaGUoKTsKIAogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjUyLDcg
KzIxOCw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OmFkZFVzZXJTdHls
ZVNoZWV0KEFQSTo6VXNlclN0eWxlU2hlZXQmIHVzZXJTCiAgICAgbV91c2VyU3R5bGVTaGVldHMt
PmVsZW1lbnRzKCkuYXBwZW5kKCZ1c2VyU3R5bGVTaGVldCk7CiAKICAgICBmb3IgKFJlZiBwcm9j
ZXNzIDogbV9wcm9jZXNzZXMpCi0gICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6QWRkVXNlclN0eWxlU2hlZXRzKHsgeyB1c2VyU3R5bGVTaGVl
dC5pZGVudGlmaWVyKCksIHdvcmxkLT53b3JsZERhdGFGb3JQcm9jZXNzKHByb2Nlc3MpLCBkYXRh
RnJvbVVzZXJTdHlsZVNoZWV0KHVzZXJTdHlsZVNoZWV0LnVzZXJTdHlsZVNoZWV0KCkpIH0gfSks
IGlkZW50aWZpZXIoKSk7CisgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVzZXJD
b250ZW50Q29udHJvbGxlcjo6QWRkVXNlclN0eWxlU2hlZXRzKHsgeyB1c2VyU3R5bGVTaGVldC5p
ZGVudGlmaWVyKCksIHdvcmxkLT53b3JsZERhdGFGb3JQcm9jZXNzKHByb2Nlc3MpLCB1c2VyU3R5
bGVTaGVldC51c2VyU3R5bGVTaGVldCgpIH0gfSksIGlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0KEFQSTo6
VXNlclN0eWxlU2hlZXQmIHVzZXJTdHlsZVNoZWV0KQpAQCAtMjYzLDcgKzIyOSw2IEBAIHZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk6OnJlbW92ZVVzZXJTdHlsZVNoZWV0KEFQSTo6
VXNlclN0eWxlU2hlZXQmIHVzCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlVz
ZXJDb250ZW50Q29udHJvbGxlcjo6UmVtb3ZlVXNlclN0eWxlU2hlZXQod29ybGQtPmlkZW50aWZp
ZXIoKSwgdXNlclN0eWxlU2hlZXQuaWRlbnRpZmllcigpKSwgaWRlbnRpZmllcigpKTsKIAogICAg
IG1fdXNlclN0eWxlU2hlZXRzLT5lbGVtZW50cygpLnJlbW92ZUFsbCgmdXNlclN0eWxlU2hlZXQp
OwotICAgIHJlc2V0VHJhbnNmZXJTdHJpbmdDYWNoZSgpOwogfQogCiB2b2lkIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoQVBJOjpDb250ZW50
V29ybGQmIHdvcmxkKQpAQCAtMjc0LDcgKzIzOSw2IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHk6OnJlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyhBUEk6OkNvbnRlbnRXb3JsZCYK
ICAgICBtX3VzZXJTdHlsZVNoZWV0cy0+cmVtb3ZlQWxsT2ZUeXBlTWF0Y2hpbmc8QVBJOjpVc2Vy
U3R5bGVTaGVldD4oWyZdKGNvbnN0IGF1dG8mIHVzZXJTdHlsZVNoZWV0KSB7CiAgICAgICAgIHJl
dHVybiAmdXNlclN0eWxlU2hlZXQtPmNvbnRlbnRXb3JsZCgpID09ICZ3b3JsZDsKICAgICB9KTsK
LSAgICByZXNldFRyYW5zZmVyU3RyaW5nQ2FjaGUoKTsKIH0KIAogI2lmIEVOQUJMRShXS19XRUJf
RVhURU5TSU9OUykKQEAgLTI5OSw3ICsyNjMsNiBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5OjpyZW1vdmVBbGxVc2VyU3R5bGVTaGVldHMoKQogICAgICAgICAgICAgcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpSZW1vdmVBbGxVc2Vy
U3R5bGVTaGVldHMod29ybGRJZGVudGlmaWVycyksIGlkZW50aWZpZXIoKSk7CiAKICAgICAgICAg
bV91c2VyU3R5bGVTaGVldHMtPmVsZW1lbnRzKCkuY2xlYXIoKTsKLSAgICAgICAgcmVzZXRUcmFu
c2ZlclN0cmluZ0NhY2hlKCk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5oCmluZGV4IDhkYTE5NjQ3ZTRkYi4uYmQ2NDIzNzVkMDc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgKQEAgLTI4LDkgKzI4LDcg
QEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb250ZW50V29ybGRTaGFyZWQu
aCIKICNpbmNsdWRlICJTY3JpcHRNZXNzYWdlSGFuZGxlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRl
ICJUcmFuc2ZlclN0cmluZy5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlcklkZW50
aWZpZXIuaCIKLSNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuaCIK
ICNpbmNsdWRlIDx3dGYvQ2hlY2tlZFJlZi5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CkBAIC04OCw5ICs4Niw2IEBAIHB1YmxpYzoK
IAogICAgIFVzZXJDb250ZW50Q29udHJvbGxlclBhcmFtZXRlcnMgcGFyYW1ldGVyc0ZvclByb2Nl
c3MoV2ViUHJvY2Vzc1Byb3h5JikgY29uc3Q7CiAKLSAgICBJUEM6OlRyYW5zZmVyU3RyaW5nIGNh
Y2hlZFRyYW5zZmVyU3RyaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgIHZvaWQgcmVzZXRU
cmFuc2ZlclN0cmluZ0NhY2hlKCk7Ci0KICAgICBBUEk6OkFycmF5JiB1c2VyU2NyaXB0cygpIHsg
cmV0dXJuIG1fdXNlclNjcmlwdHMuZ2V0KCk7IH0KICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoQVBJ
OjpVc2VyU2NyaXB0JiwgSW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KTsKICAgICB2b2lkIHJl
bW92ZVVzZXJTY3JpcHQoQVBJOjpVc2VyU2NyaXB0Jik7CkBAIC0xMDAsNyArOTUsNiBAQCBwdWJs
aWM6CiAjZWxzZQogICAgIHZvaWQgcmVtb3ZlQWxsVXNlclNjcmlwdHMoKTsKICNlbmRpZgotICAg
IFdlYkNvcmVVc2VyU2NyaXB0RGF0YSBkYXRhRnJvbVVzZXJTY3JpcHQoY29uc3QgV2ViQ29yZTo6
VXNlclNjcmlwdCYpIGNvbnN0OwogCiAgICAgQVBJOjpBcnJheSYgdXNlclN0eWxlU2hlZXRzKCkg
eyByZXR1cm4gbV91c2VyU3R5bGVTaGVldHMuZ2V0KCk7IH0KICAgICB2b2lkIGFkZFVzZXJTdHls
ZVNoZWV0KEFQSTo6VXNlclN0eWxlU2hlZXQmKTsKQEAgLTExMSw3ICsxMDUsNiBAQCBwdWJsaWM6
CiAjZWxzZQogICAgIHZvaWQgcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzKCk7CiAjZW5kaWYKLSAg
ICBXZWJDb3JlVXNlclN0eWxlU2hlZXREYXRhIGRhdGFGcm9tVXNlclN0eWxlU2hlZXQoY29uc3Qg
V2ViQ29yZTo6VXNlclN0eWxlU2hlZXQmKSBjb25zdDsKIAogICAgIHZvaWQgYWRkSlNCdWZmZXIo
QVBJOjpKU0J1ZmZlciYsIEFQSTo6Q29udGVudFdvcmxkJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCByZW1vdmVKU0J1ZmZlcihBUEk6OkNvbnRlbnRXb3JsZCYsIGNvbnN0IFN0cmluZyYpOwpA
QCAtMTQ4LDcgKzE0MSw2IEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVmPEFQSTo6QXJyYXk+IG1f
dXNlclN0eWxlU2hlZXRzOwogICAgIEhhc2hNYXA8U2NyaXB0TWVzc2FnZUhhbmRsZXJJZGVudGlm
aWVyLCBSZWY8V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI+PiBtX3NjcmlwdE1lc3NhZ2VIYW5kbGVy
czsKICAgICBIYXNoTWFwPHN0ZDo6cGFpcjxXZWJLaXQ6OkNvbnRlbnRXb3JsZElkZW50aWZpZXIs
IFN0cmluZz4sIFJlZjxBUEk6OkpTQnVmZmVyPj4gbV9idWZmZXJzOwotICAgIG11dGFibGUgSGFz
aE1hcDxTdHJpbmcsIElQQzo6VHJhbnNmZXJTdHJpbmc+IG1fdHJhbnNmZXJTdHJpbmdDYWNoZTsK
IAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgV2Vha0hhc2hTZXQ8TmV0d29y
a1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmNwcAppbmRleCBlYjA2MGRlMDVlZDguLjU1ZGYyOWVmZmYzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5jcHAKQEAgLTc3LDIwICs3Nyw2IEBAIHN0YXRpYyBXb3JsZE1h
cCYgd29ybGRNYXAoKQogICAgIHJldHVybiBtYXA7CiB9CiAKLXN0YXRpYyBXZWJDb3JlOjpVc2Vy
U2NyaXB0IHVzZXJTY3JpcHRGcm9tRGF0YShXZWJDb3JlVXNlclNjcmlwdERhdGEmJiBkYXRhKQot
ewotICAgIGF1dG8gbWF5YmVTb3VyY2UgPSBXVEY6Om1vdmUoZGF0YS5zb3VyY2UpLnJlbGVhc2Uo
KTsKLSAgICBSRUxFQVNFX0FTU0VSVChtYXliZVNvdXJjZSk7Ci0gICAgcmV0dXJuIHsgV1RGOjpt
b3ZlKCptYXliZVNvdXJjZSksIFdURjo6bW92ZShkYXRhLnVybCksIFdURjo6bW92ZShkYXRhLmFs
bG93bGlzdCksIFdURjo6bW92ZShkYXRhLmJsb2NrbGlzdCksIGRhdGEuaW5qZWN0aW9uVGltZSwg
ZGF0YS5pbmplY3RlZEZyYW1lcywgZGF0YS5tYXRjaFBhcmVudEZyYW1lIH07Ci19Ci0KLXN0YXRp
YyBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCB1c2VyU3R5bGVTaGVldEZyb21EYXRhKFdlYkNvcmVV
c2VyU3R5bGVTaGVldERhdGEmJiBkYXRhKQotewotICAgIGF1dG8gbWF5YmVTb3VyY2UgPSBXVEY6
Om1vdmUoZGF0YS5zb3VyY2UpLnJlbGVhc2UoKTsKLSAgICBSRUxFQVNFX0FTU0VSVChtYXliZVNv
dXJjZSk7Ci0gICAgcmV0dXJuIHsgV1RGOjptb3ZlKCptYXliZVNvdXJjZSksIFdURjo6bW92ZShk
YXRhLnVybCksIFdURjo6bW92ZShkYXRhLmFsbG93bGlzdCksIFdURjo6bW92ZShkYXRhLmJsb2Nr
bGlzdCksIGRhdGEuaW5qZWN0ZWRGcmFtZXMsIGRhdGEubWF0Y2hQYXJlbnRGcmFtZSwgZGF0YS5s
ZXZlbCwgZGF0YS5wYWdlSUQgfTsKLX0KLQogUmVmPFdlYlVzZXJDb250ZW50Q29udHJvbGxlcj4g
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpnZXRPckNyZWF0ZShVc2VyQ29udGVudENvbnRyb2xs
ZXJQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBwYXJh
bWV0ZXJzLmlkZW50aWZpZXI7CkBAIC0yMDQsNyArMTkwLDcgQEAgdm9pZCBXZWJVc2VyQ29udGVu
dENvbnRyb2xsZXI6OnJlbW92ZUNvbnRlbnRXb3JsZChDb250ZW50V29ybGRJZGVudGlmaWVyIHdv
cmxkSWQKIAogdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHRzKFZl
Y3RvcjxXZWJVc2VyU2NyaXB0RGF0YT4mJiB1c2VyU2NyaXB0cywgSW5qZWN0VXNlclNjcmlwdElt
bWVkaWF0ZWx5IGltbWVkaWF0ZWx5KQogewotICAgIGZvciAoYXV0byYgdXNlclNjcmlwdERhdGEg
OiB1c2VyU2NyaXB0cykgeworICAgIGZvciAoY29uc3QgYXV0byYgdXNlclNjcmlwdERhdGEgOiB1
c2VyU2NyaXB0cykgewogICAgICAgICBhZGRDb250ZW50V29ybGRJZk5lY2Vzc2FyeSh1c2VyU2Ny
aXB0RGF0YS53b3JsZERhdGEpOwogICAgICAgICBSZWZQdHIgd29ybGQgPSB3b3JsZE1hcCgpLmdl
dCh1c2VyU2NyaXB0RGF0YS53b3JsZERhdGEuaWRlbnRpZmllcik7CiAgICAgICAgIGlmICghd29y
bGQpIHsKQEAgLTIxMiw3ICsxOTgsNyBAQCB2b2lkIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjo6
YWRkVXNlclNjcmlwdHMoVmVjdG9yPFdlYlVzZXJTY3JpcHREYXRhPiYmIHVzZXJTYwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBVc2VyU2NyaXB0IHNjcmlwdCA9
IHVzZXJTY3JpcHRGcm9tRGF0YShXVEY6Om1vdmUodXNlclNjcmlwdERhdGEudXNlclNjcmlwdCkp
OworICAgICAgICBVc2VyU2NyaXB0IHNjcmlwdCA9IHVzZXJTY3JpcHREYXRhLnVzZXJTY3JpcHQ7
CiAgICAgICAgIGFkZFVzZXJTY3JpcHRJbnRlcm5hbCgqd29ybGQsIHVzZXJTY3JpcHREYXRhLmlk
ZW50aWZpZXIsIFdURjo6bW92ZShzY3JpcHQpLCBpbW1lZGlhdGVseSk7CiAgICAgfQogfQpAQCAt
MjQzLDcgKzIyOSw3IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVBbGxV
c2VyU2NyaXB0cyhjb25zdCBWZWN0b3I8Q29udGVudFdvcmxkSWRlCiAKIHZvaWQgV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdlYlVzZXJTdHlsZVNo
ZWV0RGF0YT4mJiB1c2VyU3R5bGVTaGVldHMpCiB7Ci0gICAgZm9yIChhdXRvJiB1c2VyU3R5bGVT
aGVldERhdGEgOiB1c2VyU3R5bGVTaGVldHMpIHsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIHVzZXJT
dHlsZVNoZWV0RGF0YSA6IHVzZXJTdHlsZVNoZWV0cykgewogICAgICAgICBhZGRDb250ZW50V29y
bGRJZk5lY2Vzc2FyeSh1c2VyU3R5bGVTaGVldERhdGEud29ybGREYXRhKTsKICAgICAgICAgUmVm
UHRyIHdvcmxkID0gd29ybGRNYXAoKS5nZXQodXNlclN0eWxlU2hlZXREYXRhLndvcmxkRGF0YS5p
ZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCF3b3JsZCkgewpAQCAtMjUxLDcgKzIzNyw3IEBAIHZv
aWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldHMoVmVjdG9yPFdl
YlVzZXJTdHlsZVNoZWV0RGF0YT4mCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
ICAgICAgICAKLSAgICAgICAgVXNlclN0eWxlU2hlZXQgc2hlZXQgPSB1c2VyU3R5bGVTaGVldEZy
b21EYXRhKFdURjo6bW92ZSh1c2VyU3R5bGVTaGVldERhdGEudXNlclN0eWxlU2hlZXQpKTsKKyAg
ICAgICAgVXNlclN0eWxlU2hlZXQgc2hlZXQgPSB1c2VyU3R5bGVTaGVldERhdGEudXNlclN0eWxl
U2hlZXQ7CiAgICAgICAgIGFkZFVzZXJTdHlsZVNoZWV0SW50ZXJuYWwoKndvcmxkLCB1c2VyU3R5
bGVTaGVldERhdGEuaWRlbnRpZmllciwgV1RGOjptb3ZlKHNoZWV0KSk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViRXh0ZW5z
aW9uQVBJU2NyaXB0aW5nLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYkV4dGVuc2lvbkFQSVNjcmlwdGluZy5tbQppbmRleCA0MzVmMjQzYmJhMmQuLmM5ZDNh
NWU1NWM4MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYkV4dGVuc2lvbkFQSVNjcmlwdGluZy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLV2ViRXh0ZW5zaW9uQVBJU2NyaXB0aW5nLm1tCkBAIC0yOSw3
ICsyOSw2IEBACiAKICNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIldlYkV4dGVuc2lv
blV0aWxpdGllcy5oIgotI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmg+CiAKIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKQEAgLTE4ODgsNjMgKzE4ODcsNiBAQCBURVNUKFdLV2ViRXh0
ZW5zaW9uQVBJU2NyaXB0aW5nLCBNaWdyYXRlU2NyaXB0RGF0YVRvTmV3Rm9ybWF0KQogICAgIFtt
YW5hZ2VyIHJ1bl07CiB9CiAKLVRFU1QoV0tXZWJFeHRlbnNpb25BUElTY3JpcHRpbmcsIENvbnRl
bnRTY3JpcHRzQW5kU3R5bGVTaGVldHNXaXRoTWFueU1hdGNoUGF0dGVybnMpCi17Ci0gICAgVGVz
dFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoewotICAgICAgICB7ICIvIl9zLCB7IHsgeyAi
Q29udGVudC1UeXBlIl9zLCAidGV4dC9odG1sIl9zIH0gfSwgIjxkaXYgaWQ9J3Rlc3QnPlRlc3Q8
L2Rpdj4iX3MgfSB9Ci0gICAgfSwgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlcjo6UHJvdG9jb2w6
Okh0dHApOwotCi0gICAgTlNNdXRhYmxlQXJyYXkgKm1hdGNoUGF0dGVybnMgPSBbTlNNdXRhYmxl
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OkAiKjovL2xvY2FsaG9zdC8qIl07Ci0gICAgZm9yICh1bnNp
Z25lZCBpID0gMTsgaSA8PSA1MDsgKytpKQotICAgICAgICBbbWF0Y2hQYXR0ZXJucyBhZGRPYmpl
Y3Q6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIqOi8vZm9vJXUvKiIsIGldXTsKLQotICAg
IGF1dG8gKmNvbnRlbnRTY3JpcHRzTWFuaWZlc3QgPSBAewotICAgICAgICBAIm1hbmlmZXN0X3Zl
cnNpb24iOiBAMywKLQotICAgICAgICBAIm5hbWUiOiBAIlNjcmlwdGluZyBUZXN0IiwKLSAgICAg
ICAgQCJkZXNjcmlwdGlvbiI6IEAiU2NyaXB0aW5nIFRlc3QiLAotICAgICAgICBAInZlcnNpb24i
OiBAIjEuMCIsCi0KLSAgICAgICAgQCJjb250ZW50X3NjcmlwdHMiOiBAWyBAewotICAgICAgICAg
ICAgQCJtYXRjaGVzIjogbWF0Y2hQYXR0ZXJucywKLSAgICAgICAgICAgIEAiY3NzIjogQFsgQCJj
b250ZW50LmNzcyIgXSwKLSAgICAgICAgICAgIEAianMiOiBAWyBAImNvbnRlbnQuanMiIF0KLSAg
ICAgICAgfSBdCi0gICAgfTsKLQotICAgIE5TU3RyaW5nICp1c2VyU3R5bGUgPSBAIiN0ZXN0IHsg
Y29sb3I6IHJlZDsgZm9udC1zaXplOiA1NTVweDsgfSI7Ci0gICAgTlNTdHJpbmcgKnVzZXJTY3Jp
cHQgPSBVdGlsOjpjb25zdHJ1Y3RTY3JpcHQoQFsKLSAgICAgICAgQCJjb25zdCB0ZXN0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykiLAotICAgICAgICBAImNvbnN0IHN0
eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQpIiwKLSAgICAgICAgQCJi
cm93c2VyLnRlc3QuYXNzZXJ0RXEoc3R5bGUuY29sb3IsICdyZ2IoMjU1LCAwLCAwKScsICdDU1Mg
c2hvdWxkIGFwcGx5JykiLAotICAgICAgICBAImJyb3dzZXIudGVzdC5hc3NlcnRFcShzdHlsZS5m
b250U2l6ZSwgJzU1NXB4JywgJ0ZvbnQgc2l6ZSBzaG91bGQgYXBwbHknKSIsCi0KLSAgICAgICAg
QCJicm93c2VyLnRlc3Qubm90aWZ5UGFzcygpIgotICAgIF0pOwotCi0gICAgYXV0byAqb25lTUIg
PSBbQCIiIHN0cmluZ0J5UGFkZGluZ1RvTGVuZ3RoOigxIDw8IDIwKSB3aXRoU3RyaW5nOkAiICIg
c3RhcnRpbmdBdEluZGV4OjBdOwotICAgIGF1dG8gKnJlc291cmNlcyA9IEB7Ci0gICAgICAgIEAi
Y29udGVudC5jc3MiOiBbdXNlclN0eWxlIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOm9uZU1CXSwK
LSAgICAgICAgQCJjb250ZW50LmpzIjogW3VzZXJTY3JpcHQgc3RyaW5nQnlBcHBlbmRpbmdTdHJp
bmc6b25lTUJdCi0gICAgfTsKLQotICAgIGF1dG8gbWFuYWdlciA9IFV0aWw6OmxvYWRFeHRlbnNp
b24oY29udGVudFNjcmlwdHNNYW5pZmVzdCwgcmVzb3VyY2VzKTsKLQotICAgIGF1dG8gKnVybFJl
cXVlc3QgPSBzZXJ2ZXIucmVxdWVzdFdpdGhMb2NhbGhvc3QoKTsKLSAgICBbbWFuYWdlci5nZXQo
KS5jb250ZXh0IHNldFBlcm1pc3Npb25TdGF0dXM6V0tXZWJFeHRlbnNpb25Db250ZXh0UGVybWlz
c2lvblN0YXR1c0dyYW50ZWRFeHBsaWNpdGx5IGZvclVSTDp1cmxSZXF1ZXN0LlVSTF07Ci0KLSAg
ICBbbWFuYWdlci5nZXQoKS5kZWZhdWx0VGFiLndlYlZpZXcgbG9hZFJlcXVlc3Q6dXJsUmVxdWVz
dF07Ci0KLSAgICBbbWFuYWdlciBydW5dOwotCi0gICAgc2l6ZV90IHRvdGFsRm9vdHByaW50ID0g
MDsKLSAgICBmb3IgKF9XS1dlYkNvbnRlbnRQcm9jZXNzSW5mbyAqaW5mbyBpbiBbV0tQcm9jZXNz
UG9vbCBfd2ViQ29udGVudFByb2Nlc3NJbmZvXSkKLSAgICAgICAgdG90YWxGb290cHJpbnQgKz0g
W2luZm8gcGh5c2ljYWxGb290cHJpbnRdOwotCi0gICAgY29uc3RleHByIHNpemVfdCBtYXhFeHBl
Y3RlZEZvb3RwcmludCA9IDEwMCAqIDEwMjQgKiAxMDI0OwotICAgIEVYUEVDVF9MVCh0b3RhbEZv
b3RwcmludCwgbWF4RXhwZWN0ZWRGb290cHJpbnQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoV0tfV0VCX0VYVEVOU0lPTlMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>