<?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>238402</bug_id>
          
          <creation_ts>2022-03-25 19:02:24 -0700</creation_ts>
          <short_desc>Don&apos;t create directories on iOS if we are only using ephemeral storages</short_desc>
          <delta_ts>2022-03-29 21:07:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855302</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-25 19:02:24 -0700</bug_when>
    <thetext>Don&apos;t create directories on iOS if we are only using ephemeral storages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855305</commentid>
    <comment_count>1</comment_count>
      <attachid>455813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-25 19:05:21 -0700</bug_when>
    <thetext>Created attachment 455813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855417</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-26 13:55:13 -0700</bug_when>
    <thetext>Looks like iOS failures may be real?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855673</commentid>
    <comment_count>3</comment_count>
      <attachid>455813</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-28 10:39:18 -0700</bug_when>
    <thetext>Comment on attachment 455813
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=455813&amp;action=review

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:334
&gt; +    if (!process.sessionID().isEphemeral()) {

This was asserting because when we initialize the web process we don&apos;t always have a session ID yet.  I&apos;m moving this to WebProcess::setWebsiteDataStoreParameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855681</commentid>
    <comment_count>4</comment_count>
      <attachid>455929</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-28 10:52:28 -0700</bug_when>
    <thetext>Created attachment 455929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855751</commentid>
    <comment_count>5</comment_count>
      <attachid>455929</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-28 13:32:48 -0700</bug_when>
    <thetext>Comment on attachment 455929
Patch

r=me assuming the bots are happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855789</commentid>
    <comment_count>6</comment_count>
      <attachid>455929</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-28 14:58:51 -0700</bug_when>
    <thetext>Comment on attachment 455929
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=455929&amp;action=review

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:290
&gt; +        m_cookieStorageDirectory = resolveAndCreateReadWriteDirectoryForSandboxExtension(WebProcessPool::cookieStorageDirectory());

It&apos;s a bit weird that WebsiteDataStore asks WebProcessPool for directory. I
If we think the directory is per WebsiteDataStore, maybe we should move cookieStorageDirectory() to WebsiteDataStore? 
If we don&apos;t think it&apos;s per WebsiteDataStore, maybe we should not send it in WebsiteDataStoreParameters?

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:1905
&gt; +        if (String cookieStorageDirectory = WebProcessPool::cookieStorageDirectory(); !cookieStorageDirectory.isEmpty())

If we already call resolveDirectoriesIfNecessary() above, shouldn&apos;t we just check if (!m_cookieStorageDirectory.isEmpty())?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856138</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 12:30:27 -0700</bug_when>
    <thetext>This is indeed weird code that is quite old so I&apos;m trying to minimize functional changes.  It is taking another step in its transition from process pool to data store.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856177</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 13:57:13 -0700</bug_when>
    <thetext>r292068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856178</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-03-29 13:57:51 -0700</bug_when>
    <thetext>(by the way, I agree with Sihui&apos;s cleanup suggestions and think they should be done, but not right now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856284</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-29 21:06:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/91022750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856285</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2022-03-29 21:07:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/79639418&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455813</attachid>
            <date>2022-03-25 19:05:21 -0700</date>
            <delta_ts>2022-03-28 10:52:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238402-20220325190520.patch</filename>
            <type>text/plain</type>
            <size>21192</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1NGFjZTkyODBmYmE0N2Zk
MWNlYmJkYTg1MTUyODk2YmZiMmJkODAuLmEyYjBjODQ4OTRmY2EwNTE5NTczNzNiZTFhZDE3NTJl
ZDkxZmI3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDMtMjUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEb24ndCBjcmVh
dGUgZGlyZWN0b3JpZXMgb24gaU9TIGlmIHdlIGFyZSBvbmx5IHVzaW5nIGVwaGVtZXJhbCBzdG9y
YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
NDAyCisgICAgICAgIDxyZGFyOi8vNzk2Mzk0MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBiZWVuIGdpdmluZyBhY2Nlc3Mg
dG8gdGhvc2UgZGlyZWN0b3JpZXMgYXMgbG9uZyBhcyBXZWJLaXQyIGhhcyBiZWVuIG9uIGlPUywK
KyAgICAgICAgdGhpcyBpcyBhIGNvbnNlcnZhdGl2ZSBjaGFuZ2UgdG8gb25seSBnaXZlIGFjY2Vz
cyB0byB0aGUgZGlyZWN0b3JpZXMgd2hlbiB1c2luZyBwZXJzaXN0ZW50IHN0b3JhZ2UuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQ
YXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorCiAyMDIyLTAzLTI1ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBQ
R08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1ODlkMTY2MzQx
MmNmMzRlMzBjZTAxNjAzNGViYTNhZjg2NDQyZWFlLi4zMzNkNzBkZTA2ZjRkMGMwMDVjZGIwMTYz
NjI2YzVhMGRmNGFiYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtNDQwLDYgKzQ0MCwxNSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjphZGRTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxk
VXNlVAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBzZXNzaW9uSUQgPSBw
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQ7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIXNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKSB7CisgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmNvb2tp
ZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkocGFyYW1ldGVycy5wYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OworICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy50ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICB9CisjZW5kaWYKKwogICAgIGFk
ZFN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCwgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uLCBwYXJhbWV0ZXJzLnVpUHJvY2Vz
c0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyLCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0
ZW5zaW9uSGFuZGxlKTsKIAogICAgIGF1dG8mIHNlc3Npb24gPSBtX25ldHdvcmtTZXNzaW9ucy5l
bnN1cmUoc2Vzc2lvbklELCBbJl0oKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IGE3Y2Q5MGU3YzIyZmRhM2ViZDE0YzZjYjZkOGMwNGFkYmVhNWNiMzcuLmZhNjhlOTc4
NjEwOGRlOTAxOGZmZjEwNjg4MmU2N2UzN2M1ZTU2MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC00NywxMiArNDcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVu
Y29kZXIgPDwgY2FjaGVNb2RlbDsKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQogICAgIGVuY29kZXIgPDwgdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7
Ci0jZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGVuY29kZXIgPDwgY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNvbnRhaW5l
ckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IHBhcmVudEJ1
bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IHRlbXBEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHNob3VsZFN1cHByZXNz
TWVtb3J5UHJlc3N1cmVIYW5kbGVyOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVy
ZWRGb3JDdXN0b21Qcm90b2NvbHM7CkBAIC04NywzMSArODEsNiBAQCBib29sIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBOZXR3
b3JrUHJvYwogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLSNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb29raWVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gY29va2llU3Rv
cmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQu
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgc3RkOjpvcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBkZWNvZGVyID4+IGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBpZiAoIWNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3VsdC5jb250YWluZXJDYWNoZXNEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOwotCi0gICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IHBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBkZWNvZGVyID4+
IHBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIXBhcmVudEJ1
bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHJlc3VsdC5wYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpw
YXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgc3RkOjpvcHRpb25h
bDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7
Ci0gICAgZGVjb2RlciA+PiB0ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGlmICgh
dGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHJlc3VsdC50ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqdGVtcERpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5zaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlcikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA5YTE3MTM3Y2ZlMGRm
ZjdjMWQ0NzBmNjE4N2QwMGE4ZmZmNTljNThhLi4wNGY4MTY2MTg4NDI2YzA5Y2Y2ZjhiZDYwZGI4
ODkxNmQ0MzIwYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC02MiwxMiAr
NjIsNiBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBWZWN0b3I8dWludDhf
dD4gdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXI7Ci0jZW5kaWYKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBj
b250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgdGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNl
bmRpZgogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxz
ZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtQcm9jZXNzQ29jb2EubW0KaW5kZXggNDg0ODI5NGNiOTY2Mzk2OWRlZWU1YWFmMGNk
ZTllMjIxM2Q1YzdjYy4uMTg4MjM4NDE4YWM3MDhlMTJhNDE0NjJiZDZlNmIwMjQ0ODMyOTA0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJv
Y2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Byb2Nlc3NDb2NvYS5tbQpAQCAtNzMsMTMgKzczLDYgQEAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZU5ldHdvcmtTZXR0aW5ncygpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7Ci0jZW5kaWYKLQogICAgIF9DRk5ldHdvcmtTZXRBVFNDb250ZXh0KHBh
cmFtZXRlcnMubmV0d29ya0FUU0NvbnRleHQuZ2V0KCkpOwogCiAgICAgbV91aVByb2Nlc3NCdW5k
bGVJZGVudGlmaWVyID0gcGFyYW1ldGVycy51aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3Bw
CmluZGV4IDg2MGEwN2RlZTI5ZTY3NmU2N2MzYTk0ZDMyZDE2MGU4OWI0MjgyYTIuLmRkODlmMTBi
NjUzNDhjM2YzYWU2NWZmNTlkODI2ODk0NzIyNTRmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAKQEAgLTM4LDYgKzM4LDEy
IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnM7
CiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBl
bmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgZW5jb2RlciA8PCBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworICAgIGVuY29kZXIgPDwgdGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyNl
bmRpZgogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAg
LTYyLDYgKzY4LDMyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM+
IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUoSVBDCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhh
bmRsZSA9IFdURk1vdmUoKmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGU+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVj
b2RlciA+PiBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKyAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKCpjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb250YWlu
ZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb250YWlu
ZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250YWluZXJDYWNo
ZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgcGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisg
ICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHBhcmVudEJ1bmRsZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IHBhcmVudEJ1bmRsZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIXBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBwYXJhbWV0ZXJz
LnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnBhcmVudEJ1
bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gdGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBk
ZWNvZGVyID4+IHRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCF0ZW1wRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKnRlbXBE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCisKICAgICByZXR1cm4gcGFyYW1ldGVy
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzLmgKaW5kZXggNTkxOTlmNGNlYzBhNTUzOTYyNDUzNTdhMmQyNDUxNmE5ZDFkM2M2OC4u
ZjhlYmI4NmFkMzgwNjRiODU1YTNlZWYwY2YwM2VmYTBiYjhjM2RhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oCkBAIC01Miw2ICs1
MiwxMyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgewogICAgIFZlY3Rvcjx1
aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAgICAgTmV0
d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzOwor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
Y29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAg
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHRlbXBEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5k
ZXggYzAwNjYyNjc4YjgwYzkxZTY3OTI0YjQ3ZjNmMDdlMTY3ZDYzNWNjMC4uYTMyYzA3OTM1Y2Jh
MjRjNWI2NzBmYWVmOGFkODkxMGNiOTJjMTk1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC0yODMsMTIgKzI4Myw2
IEBAIFN0cmluZyBXZWJQcm9jZXNzUG9vbDo6Y29va2llU3RvcmFnZURpcmVjdG9yeSgpCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25z
KCkKIHsKICAgICBtX3Jlc29sdmVkUGF0aHMudWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoID0g
cmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9uKFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcmVz
b3VyY2VQYXRoXSk7Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fcmVzb2x2ZWRQ
YXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURp
cmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnkoKSk7Ci0gICAgbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9y
eSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9u
KFdlYlByb2Nlc3NQb29sOjp3ZWJDb250ZW50Q2FjaGVzRGlyZWN0b3J5KCkpOwotICAgIG1fcmVz
b2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRl
UmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6Y29u
dGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCkpOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMzM3LDE5ICszMzEsMjkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MK
ICAgICBwYXJhbWV0ZXJzLnRocm91Z2hwdXRRT1MgPSB3ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygp
OwogICAgIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKCFtX3Jlc29sdmVkUGF0
aHMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGF1dG8g
aGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1Bh
dGgobV9yZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRXcml0ZSkpCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KKyAg
ICBpZiAoIXByb2Nlc3Muc2Vzc2lvbklEKCkuaXNFcGhlbWVyYWwoKSkgeworICAgICAgICAvLyBG
SVhNRTogRG9lcyB0aGUgd2ViIHByb2Nlc3MgbmVlZCBhY2Nlc3MgdG8gdGhlIGNvb2tpZSBzdG9y
YWdlIGRpcmVjdG9yeSBhbnkgbW9yZT8gUHJvYmFibHkgbm90LgorICAgICAgICBpZiAobV9yZXNv
bHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICAgICAg
bV9yZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRl
UmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6Y29v
a2llU3RvcmFnZURpcmVjdG9yeSgpKTsKKyAgICAgICAgaWYgKG1fcmVzb2x2ZWRQYXRocy5jb250
YWluZXJDYWNoZXNEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9yZXNvbHZlZFBh
dGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVE
aXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nlc3NQb29sOjp3ZWJDb250ZW50Q2Fj
aGVzRGlyZWN0b3J5KCkpOworICAgICAgICBpZiAobV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRl
bXBvcmFyeURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3Jlc29sdmVkUGF0aHMu
Y29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5ID0gcmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURp
cmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2ViUHJvY2Vzc1Bvb2w6OmNvbnRhaW5lclRlbXBv
cmFyeURpcmVjdG9yeSgpKTsKKworICAgICAgICBpZiAoIW1fcmVzb2x2ZWRQYXRocy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8gaGFuZGxl
ID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgobV9y
ZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OlJlYWRXcml0ZSkpCisgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5jb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKKyAgICAgICAgfQog
Ci0gICAgaWYgKCFtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5LmlzRW1w
dHkoKSkgewotICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtX3Jlc29sdmVkUGF0aHMuY29udGFpbmVyQ2Fj
aGVzRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUpKQotICAgICAg
ICAgICAgcGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KKyAgICAgICAgaWYgKCFtX3Jlc29sdmVkUGF0aHMu
Y29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5LmlzRW1wdHkoKSkgeworICAgICAgICAgICAgaWYgKGF1
dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmlu
Z1BhdGgobV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSwgU2FuZGJveEV4
dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlKSkKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLmNv
bnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7
CisgICAgICAgIH0KIAotICAgIGlmICghbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRlbXBvcmFy
eURpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgobV9yZXNvbHZlZFBh
dGhzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6
UmVhZFdyaXRlKSkKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuY29udGFpbmVyVGVtcG9yYXJ5RGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKKyAgICAgICAgaWYgKCFt
X3Jlc29sdmVkUGF0aHMuY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5LmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlV2l0aG91dFJlc29sdmluZ1BhdGgobV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5lclRlbXBvcmFy
eURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlKSkKKyAgICAgICAg
ICAgICAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7CisgICAgICAgIH0KICAgICB9CiAjZW5kaWYKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCAyNGNmMjBkNzMyMDM5NDFkNWNhMzBkOGEzNTUyMTcxMDEyZTEyMWRmLi44YmNmZTUxNzUw
YjU5ZmZjN2ZkNzU3OWE4NmRkM2Q3MDY0ZjljN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE5Miwy
MyArMTkyLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0
ZXJzVG9OZXdQcm9jZXNzKCkKICAgICBwYXJhbWV0ZXJzLmNhY2hlTW9kZWwgPSBMZWdhY3lHbG9i
YWxTZXR0aW5nczo6c2luZ2xldG9uKCkuY2FjaGVNb2RlbCgpOwogICAgIHBhcmFtZXRlcnMudXJs
U2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBXZWJQcm9jZXNzUG9vbDo6dXJs
U2NoZW1lc1dpdGhDdXN0b21Qcm90b2NvbEhhbmRsZXJzKCk7CiAKLSNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIGlmIChTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeSA9IFdlYlByb2Nl
c3NQb29sOjpjb29raWVTdG9yYWdlRGlyZWN0b3J5KCk7ICFjb29raWVTdG9yYWdlRGlyZWN0b3J5
LmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9y
eSkpCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KLSAgICBpZiAoU3RyaW5nIGNvbnRh
aW5lckNhY2hlc0RpcmVjdG9yeSA9IFdlYlByb2Nlc3NQb29sOjpuZXR3b3JraW5nQ2FjaGVzRGly
ZWN0b3J5KCk7ICFjb250YWluZXJDYWNoZXNEaXJlY3RvcnkuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRX
cml0ZURpcmVjdG9yeShjb250YWluZXJDYWNoZXNEaXJlY3RvcnkpKQotICAgICAgICAgICAgcGFy
YW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpoYW5kbGUpOwotICAgIH0KLSAgICBpZiAoU3RyaW5nIHBhcmVudEJ1bmRsZURpcmVjdG9yeSA9
IFdlYlByb2Nlc3NQb29sOjpwYXJlbnRCdW5kbGVEaXJlY3RvcnkoKTsgIXBhcmVudEJ1bmRsZURp
cmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHBhcmVudEJ1bmRsZURpcmVjdG9yeSwgU2FuZGJveEV4dGVu
c2lvbjo6VHlwZTo6UmVhZE9ubHkpKQotICAgICAgICAgICAgcGFyYW1ldGVycy5wYXJlbnRCdW5k
bGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KLSAg
ICBpZiAoYXV0byBoYW5kbGVBbmRGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclRlbXBvcmFyeUZpbGUoZW1wdHlTdHJpbmcoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6UmVhZFdyaXRlKSkKLSAgICAgICAgcGFyYW1ldGVycy50ZW1wRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZShoYW5kbGVBbmRGaWxlUGF0aC0+Zmlyc3QpOwotI2VuZGlmCi0KICNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKSAvLyBHVEsgYW5kIFdQRSBkb24ndCB1
c2UgZGVmYXVsdE5ldHdvcmtQcm9jZXNzCiAgICAgcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyA9IFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdlYnNpdGVE
YXRhU3RvcmUoKTsKICAgICBIYXNoTWFwPFN0cmluZywgUEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25G
b3JEaXJlY3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDcxYWU5MjY1NDhiY2I5MWY1Y2EyMGI5
MDE2MjcwNjIxNzgzN2E3YWMuLjdkNWE1OTJmYzM2NDI4ZWY4ZDE1YWM2M2I4ODQ1MWU5ZDQwMGNm
MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xODkzLDYgKzE4OTMsMjUgQEAgV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiAgICAgcGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudXNlTmV0d29ya0xvYWRlciA9IHVzZU5ldHdv
cmtMb2FkZXIoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAo
aXNQZXJzaXN0ZW50KCkpIHsKKyAgICAgICAgaWYgKFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0
b3J5ID0gV2ViUHJvY2Vzc1Bvb2w6OmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKTsgIWNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBoYW5kbGUg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29v
a2llU3RvcmFnZURpcmVjdG9yeSkpCisgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoU3RyaW5nIGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9IFdlYlBy
b2Nlc3NQb29sOjpuZXR3b3JraW5nQ2FjaGVzRGlyZWN0b3J5KCk7ICFjb250YWluZXJDYWNoZXNE
aXJlY3RvcnkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29udGFpbmVy
Q2FjaGVzRGlyZWN0b3J5KSkKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lckNh
Y2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKFN0cmluZyBwYXJlbnRCdW5kbGVEaXJlY3RvcnkgPSBXZWJQcm9jZXNz
UG9vbDo6cGFyZW50QnVuZGxlRGlyZWN0b3J5KCk7ICFwYXJlbnRCdW5kbGVEaXJlY3RvcnkuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGUocGFyZW50QnVuZGxlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpU
eXBlOjpSZWFkT25seSkpCisgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5wYXJlbnRCdW5kbGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOworICAgICAgICB9Cisg
ICAgICAgIGlmIChhdXRvIGhhbmRsZUFuZEZpbGVQYXRoID0gU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShlbXB0eVN0cmluZygpLCBTYW5kYm94RXh0ZW5zaW9u
OjpUeXBlOjpSZWFkV3JpdGUpKQorICAgICAgICAgICAgcGFyYW1ldGVycy50ZW1wRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGVBbmRGaWxlUGF0aC0+Zmlyc3QpOworICAg
IH0KKyNlbmRpZgorICAgIAogICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWQyODYyNDM5N2I5ZjY1
NDI5YjA1MWQ1ZGFlOTRlZWM2NzQ5ZDkxNy4uZjYyYTBhOTU2ODc0MTFmNDBlMDhlYjM1NzRhMDRk
OWUzYTFkMjNjMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgY3JlYXRlIGRpcmVjdG9yaWVz
IG9uIGlPUyBpZiB3ZSBhcmUgb25seSB1c2luZyBlcGhlbWVyYWwgc3RvcmFnZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW06Cisg
ICAgICAgIChURVNUKToKKwogMjAyMi0wMy0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgUEdPIHdoZW4gYnVpbGRpbmcgZm9yIHJlbGVh
c2UgYW5kIHByb2R1Y3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRB
ZGRpdGlvbnMubW0KaW5kZXggYzJhMDRlMGFhMTU0NmU5OGJkMWU4MjY4YWRiYzJmYWM1NjQyYzUw
ZC4uZjYyYzc5NjA1NjQxYjRiMTJkNDAzNGNkYTMxMjNhYjlmMDUzMjJjNCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdX
ZWJLaXRBZGRpdGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0KQEAgLTUxLDMgKzUxLDIx
IEBAIFRFU1QoTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLCBNdWx0aXBsZVBhcmFn
cmFwaHMpCiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0K
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitURVNUKE5TQXR0cmlidXRlZFN0cmluZ1dlYktp
dEFkZGl0aW9ucywgRGlyZWN0b3JpZXNOb3RDcmVhdGVkKQoreworICAgIE5TU3RyaW5nICpkaXJl
Y3RvcnkgPSBbTlNIb21lRGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIvTGli
cmFyeS9Db29raWVzIl07CisgICAgTlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl07CisgICAgW2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFBh
dGg6ZGlyZWN0b3J5IGVycm9yOm5pbF07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNl
OworICAgIFtOU0F0dHJpYnV0ZWRTdHJpbmcgbG9hZEZyb21IVE1MV2l0aERhdGE6W05TRGF0YSBk
YXRhXSBvcHRpb25zOkB7IH0gY29tcGxldGlvbkhhbmRsZXI6XihOU0F0dHJpYnV0ZWRTdHJpbmcg
KmF0dHJpYnV0ZWRTdHJpbmcsIE5TRGljdGlvbmFyeTxOU0F0dHJpYnV0ZWRTdHJpbmdEb2N1bWVu
dEF0dHJpYnV0ZUtleSwgaWQ+ICphdHRyaWJ1dGVzLCBOU0Vycm9yICplcnJvcikgeworICAgICAg
ICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIAorICAgIGJvb2wgY29va2llRGlyZWN0b3J5RXhpc3RzID0gW1tOU0ZpbGVNYW5h
Z2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmRpcmVjdG9yeV07CisgICAgRVhQ
RUNUX0ZBTFNFKGNvb2tpZURpcmVjdG9yeUV4aXN0cyk7Cit9CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455929</attachid>
            <date>2022-03-28 10:52:28 -0700</date>
            <delta_ts>2022-03-28 20:35:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238402-20220328105227.patch</filename>
            <type>text/plain</type>
            <size>33883</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1NGFjZTkyODBmYmE0N2Zk
MWNlYmJkYTg1MTUyODk2YmZiMmJkODAuLmEyYjBjODQ4OTRmY2EwNTE5NTczNzNiZTFhZDE3NTJl
ZDkxZmI3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDMtMjUgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEb24ndCBjcmVh
dGUgZGlyZWN0b3JpZXMgb24gaU9TIGlmIHdlIGFyZSBvbmx5IHVzaW5nIGVwaGVtZXJhbCBzdG9y
YWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
NDAyCisgICAgICAgIDxyZGFyOi8vNzk2Mzk0MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBiZWVuIGdpdmluZyBhY2Nlc3Mg
dG8gdGhvc2UgZGlyZWN0b3JpZXMgYXMgbG9uZyBhcyBXZWJLaXQyIGhhcyBiZWVuIG9uIGlPUywK
KyAgICAgICAgdGhpcyBpcyBhIGNvbnNlcnZhdGl2ZSBjaGFuZ2UgdG8gb25seSBnaXZlIGFjY2Vz
cyB0byB0aGUgZGlyZWN0b3JpZXMgd2hlbiB1c2luZyBwZXJzaXN0ZW50IHN0b3JhZ2UuCisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKToKKyAgICAgICAgKiBTaGFyZWQvV2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlUGFy
YW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29sdmVQ
YXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMpOgorCiAyMDIyLTAzLTI1ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBQ
R08gd2hlbiBidWlsZGluZyBmb3IgcmVsZWFzZSBhbmQgcHJvZHVjdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA1ODlkMTY2MzQx
MmNmMzRlMzBjZTAxNjAzNGViYTNhZjg2NDQyZWFlLi4yMTUyN2FlN2UyNGI5ZGU0YTFiYmQyMTAy
YzU0Y2ZhY2U3YWE1ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtNDQwLDYgKzQ0MCwxNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjphZGRTdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxk
VXNlVAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CiAgICAgYXV0byBzZXNzaW9uSUQgPSBw
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zZXNzaW9uSUQ7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoYXV0byYgaGFuZGxlID0gcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkoKmhhbmRsZSk7CisgICAgaWYgKGF1dG8mIGhhbmRsZSA9IHBh
cmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKmhhbmRsZSk7CisgICAgaWYg
KGF1dG8mIGhhbmRsZSA9IHBhcmFtZXRlcnMucGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKmhh
bmRsZSk7CisgICAgaWYgKGF1dG8mIGhhbmRsZSA9IHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVu
dGx5KCpoYW5kbGUpOworI2VuZGlmCisKICAgICBhZGRTdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQs
IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbiwgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciwg
cGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBhdXRv
JiBzZXNzaW9uID0gbV9uZXR3b3JrU2Vzc2lvbnMuZW5zdXJlKHNlc3Npb25JRCwgWyZdKCkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBhN2NkOTBlN2MyMmZkYTNlYmQx
NGM2Y2I2ZDhjMDRhZGJlYTVjYjM3Li5mYTY4ZTk3ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdj
NWU1NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNDcsMTIgKzQ3
LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGNhY2hlTW9kZWw7CiAjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBlbmNvZGVyIDw8IHVp
UHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7Ci0gICAgZW5jb2RlciA8PCBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7Ci0gICAgZW5jb2RlciA8PCBwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7Ci0gICAgZW5jb2RlciA8PCB0ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlm
CiAgICAgZW5jb2RlciA8PCBzaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxlcjsKICAg
ICBlbmNvZGVyIDw8IHVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzOwpAQCAt
ODcsMzEgKzgxLDYgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICNpZiBQTEFURk9STShNQUMp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBzdGQ6Om9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBkZWNvZGVyID4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7Ci0gICAgaWYgKCFjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0LmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb250
YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBjb250
YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFjb250YWluZXJD
YWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICByZXN1bHQuY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92
ZSgqY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIHN0ZDo6
b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBwYXJlbnRCdW5kbGVEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGU7Ci0gICAgaWYgKCFwYXJlbnRCdW5kbGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQucGFyZW50QnVuZGxlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqcGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiB0ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gdGVtcERpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIXRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQudGVtcERpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKnRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2Vu
ZGlmCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2hvdWxkU3VwcHJlc3NNZW1vcnlQ
cmVzc3VyZUhhbmRsZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKaW5kZXggOWExNzEzN2NmZTBkZmY3YzFkNDcwZjYxODdkMDBhOGZmZjU5YzU4
YS4uMDRmODE2NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNjIsMTIgKzYyLDYgQEAgc3RydWN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJ
ZGVudGlmaWVyOwotI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
LSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwotICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBwYXJlbnRCdW5kbGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHRl
bXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBib29sIHNob3VsZFN1cHBy
ZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IDQ4NDgyOTRjYjk2NjM5NjlkZWVlNWFhZjBjZGU5ZTIyMTNkNWM3Y2MuLjE4ODIzODQxOGFj
NzA4ZTEyYTQxNDYyYmQ2ZTZiMDI0NDgzMjkwNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0KQEAgLTcz
LDEzICs3Myw2IEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVOZXR3b3JrU2V0dGluZ3MoKQogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29h
KGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewot
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSk7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMu
Y29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5wYXJlbnRCdW5kbGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5l
bnRseShwYXJhbWV0ZXJzLnRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotI2VuZGlmCi0K
ICAgICBfQ0ZOZXR3b3JrU2V0QVRTQ29udGV4dChwYXJhbWV0ZXJzLm5ldHdvcmtBVFNDb250ZXh0
LmdldCgpKTsKIAogICAgIG1fdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllciA9IHBhcmFtZXRlcnMu
dWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNWQzNzZhMWRiOWY5NTVh
NGZiODZjYTE2NmM0MTBhZmI2YjVjYmYyNC4uNTE0MmUyYzYwOTUzMWU1YWY4MDljNDZkYTZmYzQy
NjUwY2U0ZDY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTUyLDExICs1Miw2IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICBlbmNvZGVyIDw8IGluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZTsKICAgICBl
bmNvZGVyIDw8IGFkZGl0aW9uYWxTYW5kYm94RXh0ZW5zaW9uSGFuZGxlczsKICAgICBlbmNvZGVy
IDw8IGluaXRpYWxpemF0aW9uVXNlckRhdGE7Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAg
ZW5jb2RlciA8PCBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAg
ZW5jb2RlciA8PCBjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0j
ZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAg
ICAgZW5jb2RlciA8PCBlbmFibGVSZW1vdGVXZWJJbnNwZWN0b3JFeHRlbnNpb25IYW5kbGU7CiAj
ZW5kaWYKQEAgLTI0MSwyOCArMjM2LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICBw
YXJhbWV0ZXJzLmFkZGl0aW9uYWxTYW5kYm94RXh0ZW5zaW9uSGFuZGxlcyA9IFdURk1vdmUoKmFk
ZGl0aW9uYWxTYW5kYm94RXh0ZW5zaW9uSGFuZGxlcyk7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmluaXRpYWxpemF0aW9uVXNlckRhdGEpKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIAotICAgIHN0ZDo6b3B0aW9uYWw8
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwotICAgIGRlY29kZXIgPj4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBpZiAoIWNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+
PiBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFjb250
YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSA9IFdURk1vdmUoKmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0K
LSAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGFpbmVyVGVt
cG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gY29udGFpbmVy
VGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGlmICghY29udGFpbmVyVGVt
cG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcGFyYW1ldGVycy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUg
PSBXVEZNb3ZlKCpjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwot
Ci0jZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1Ip
CiAgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGVuYWJsZVJlbW90
ZVdlYkluc3BlY3RvckV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNvZGVyID4+IGVuYWJsZVJlbW90
ZVdlYkluc3BlY3RvckV4dGVuc2lvbkhhbmRsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxYWUyYzQ3ODkwYzMzM2Iy
OTJiMDVmOTM5NWMzYjZmN2ZmNGQxNzRiLi44ZDM3MmNiNjYxOWMyODQ5YmQ0NjFmMjQzYTUxYTg2
Nzk0OGQ5NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCkBAIC04NSwxMSArODUsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAKICAgICBVc2VyRGF0YSBpbml0aWFsaXphdGlvblVzZXJEYXRh
OwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwot
ICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7Ci0jZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJF
TU9URV9JTlNQRUNUT1IpCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGVuYWJsZVJlbW90
ZVdlYkluc3BlY3RvckV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggYmExMjE2
NzU4ZjI0NzY1NWI2NWQ5OTE4ODAwNzg2Y2VkOWVjZTkxYS4uYTg2ODQ4Zjg4MmU0OWNlODZiYjNh
NzkyNmJlNjk3NWI2NjY1YzhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycy5oCkBAIC01NCw2ICs1NCwxMSBAQCBzdHJ1Y3Qg
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgewogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVf
UFJFVklFVykKICAgICBTdHJpbmcgbW9kZWxFbGVtZW50Q2FjaGVEaXJlY3Rvcnk7CiAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzdGQ6Om9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
Y29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIHN0ZDo6b3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBjb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkIHsgZmFsc2UgfTsKIApAQCAtODIsNiArODcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzRGF0
YVN0b3JlUGFyYW1ldGVyczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjaWYgRU5B
QkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgIGVuY29kZXIgPDwgbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3Rvcnk7CiAgICAgZW5jb2RlciA8PCBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZW5j
b2RlciA8PCBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgY29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlm
CiAgICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZDsKIH0KQEAgLTE1
MSwxNCArMTYxLDMwIEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRl
cnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAjZW5kaWYKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCi0g
ICAgICAgIFN0cmluZyBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeTsKLSAgICAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeSkpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlPiBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
LSAgICAgICAgZGVjb2RlciA+PiBtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZTsKLSAgICAgICAgaWYgKCFtb2RlbEVsZW1lbnRDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgU3RyaW5nIG1vZGVs
RWxlbWVudENhY2hlRGlyZWN0b3J5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobW9kZWxFbGVt
ZW50Q2FjaGVEaXJlY3RvcnkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG1vZGVsRWxlbWVudENhY2hl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4gbW9kZWxFbGVtZW50Q2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFtb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNl
bmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOworICAgIGlmICghY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBjb250YWluZXJDYWNoZXNE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb250YWluZXJDYWNoZXNE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250YWluZXJDYWNoZXNEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gY29u
dGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGRlY29kZXIgPj4g
Y29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghY29u
dGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogI2VuZGlmCiAKICAgICBib29sIHJlc291cmNlTG9hZFN0YXRpc3RpY3NF
bmFibGVkID0gZmFsc2U7CkBAIC0xODQsNiArMjEwLDExIEBAIHN0ZDo6b3B0aW9uYWw8V2ViUHJv
Y2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM+IFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjpk
ZWNvCiAjaWYgRU5BQkxFKEFSS0lUX0lOTElORV9QUkVWSUVXKQogICAgICAgICBXVEZNb3ZlKG1v
ZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KSwKICAgICAgICAgV1RGTW92ZSgqbW9kZWxFbGVtZW50
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAorI2VuZGlmCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAgICAgV1RGTW92ZSgqY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSksCisgICAgICAgIFdURk1vdmUoKmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSksCisgICAgICAgIFdURk1vdmUoKmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSksCiAjZW5kaWYKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0VuYWJsZWQKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMuY3BwCmluZGV4IDg2MGEwN2RlZTI5ZTY3NmU2N2MzYTk0ZDMyZDE2
MGU4OWI0MjgyYTIuLjI0NDRjMjYyZGIyZTA2OTUwZTI2NmE4NzEyOWQzMWQ2ZWNhMjk2NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5jcHAKQEAgLTM4LDYgKzM4LDEyIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnM7CiAgICAgZW5jb2RlciA8PCB1aVByb2Nlc3NDb29raWVTdG9y
YWdlSWRlbnRpZmllcjsKICAgICBlbmNvZGVyIDw8IGNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9u
SGFuZGxlOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgZW5jb2RlciA8PCBjb29raWVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgY29udGFpbmVy
Q2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgcGFyZW50QnVu
ZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29kZXIgPDwgdGVtcERpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgogfQogCiBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzPiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKQEAgLTYyLDYgKzY4LDMyIEBAIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM+IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOjpkZWNvZGUo
SVBDCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvb2tpZVN0b3JhZ2VQYXRoRXh0
ZW5zaW9uSGFuZGxlKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNvb2tpZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb29raWVTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghY29va2llU3RvcmFnZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBwYXJh
bWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpj
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIHN0ZDo6b3B0aW9u
YWw8c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBjb250YWluZXJDYWNo
ZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBjb250YWluZXJDYWNo
ZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250YWluZXJDYWNoZXNEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
cGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZN
b3ZlKCpjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgc3Rk
OjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IHBhcmVu
dEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IHBhcmVudEJ1
bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIXBhcmVudEJ1bmRsZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBw
YXJhbWV0ZXJzLnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUo
KnBhcmVudEJ1bmRsZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gdGVtcERpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IHRlbXBEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7CisgICAgaWYgKCF0ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSA9IFdURk1vdmUoKnRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworI2VuZGlm
CisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgKaW5kZXggNTkxOTlmNGNlYzBhNTUzOTYy
NDUzNTdhMmQyNDUxNmE5ZDFkM2M2OC4uN2M1NDMzZjQ0YjAxY2Y1NjcwMGM0OGFkZTEzNWNjMjUz
OTFjZmExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycy5oCkBAIC01Miw2ICs1MiwxMyBAQCBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMgewogICAgIFZlY3Rvcjx1aW50OF90PiB1aVByb2Nlc3NDb29raWVTdG9yYWdlSWRl
bnRpZmllcjsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgY29va2llU3RvcmFnZVBhdGhF
eHRlbnNpb25IYW5kbGU7CiAgICAgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBz
dGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIHN0
ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBwYXJlbnRCdW5kbGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGU7CisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IHRlbXBEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggYzAwNjYyNjc4YjgwYzkxZTY3OTI0YjQ3ZjNm
MDdlMTY3ZDYzNWNjMC4uMjhhNTg1MWY1ZWUwYWMwYTM0YmE3NzNkZDYxMzQzN2JmNTQ4NzE3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCkBAIC0yODMsMTIgKzI4Myw2IEBAIFN0cmluZyBXZWJQcm9jZXNzUG9vbDo6Y29v
a2llU3RvcmFnZURpcmVjdG9yeSgpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybVJlc29s
dmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKIHsKICAgICBtX3Jlc29sdmVkUGF0aHMudWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoID0gcmVzb2x2ZVBhdGhGb3JTYW5kYm94RXh0ZW5zaW9u
KFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gcmVzb3VyY2VQYXRoXSk7Ci0KLSNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIG1fcmVzb2x2ZWRQYXRocy5jb29raWVTdG9yYWdlRGlyZWN0b3J5ID0g
cmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oV2Vi
UHJvY2Vzc1Bvb2w6OmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKSk7Ci0gICAgbV9yZXNvbHZlZFBh
dGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVE
aXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nlc3NQb29sOjp3ZWJDb250ZW50Q2Fj
aGVzRGlyZWN0b3J5KCkpOwotICAgIG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3JhcnlE
aXJlY3RvcnkgPSByZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4
dGVuc2lvbihXZWJQcm9jZXNzUG9vbDo6Y29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5KCkpOwot
I2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMzM1LDIzICszMjksNyBA
QCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0
IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogCiAgICAgcGFyYW1ldGVycy5sYXRlbmN5UU9TID0g
d2ViUHJvY2Vzc0xhdGVuY3lRT1MoKTsKICAgICBwYXJhbWV0ZXJzLnRocm91Z2hwdXRRT1MgPSB3
ZWJQcm9jZXNzVGhyb3VnaHB1dFFPUygpOwotICAgIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgaWYgKCFtX3Jlc29sdmVkUGF0aHMuY29va2llU3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5
KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgobV9yZXNvbHZlZFBhdGhzLmNvb2tpZVN0b3JhZ2VE
aXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSkpCi0gICAgICAgICAg
ICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZN
b3ZlKCpoYW5kbGUpOwotICAgIH0KLQotICAgIGlmICghbV9yZXNvbHZlZFBhdGhzLmNvbnRhaW5l
ckNhY2hlc0RpcmVjdG9yeS5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0g
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgobV9yZXNv
bHZlZFBhdGhzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlw
ZTo6UmVhZFdyaXRlKSkKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqaGFuZGxlKTsKLSAgICB9CiAKLSAgICBp
ZiAoIW1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3JhcnlEaXJlY3RvcnkuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1fcmVzb2x2ZWRQYXRocy5jb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSkpCi0gICAgICAg
ICAgICBwYXJhbWV0ZXJzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSA9IFdURk1vdmUoKmhhbmRsZSk7Ci0gICAgfQotI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIGlmIChXZWJQcm9jZXNzUHJveHk6OnNo
b3VsZEVuYWJsZVJlbW90ZUluc3BlY3RvcigpKSB7CiAgICAgICAgIGlmIChhdXRvIGhhbmRsZSA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS53
ZWJpbnNwZWN0b3IiX3MsIHN0ZDo6bnVsbG9wdCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyNGNmMjBk
NzMyMDM5NDFkNWNhMzBkOGEzNTUyMTcxMDEyZTEyMWRmLi44YmNmZTUxNzUwYjU5ZmZjN2ZkNzU3
OWE4NmRkM2Q3MDY0ZjljN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE5MiwyMyArMTkyLDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9j
ZXNzKCkKICAgICBwYXJhbWV0ZXJzLmNhY2hlTW9kZWwgPSBMZWdhY3lHbG9iYWxTZXR0aW5nczo6
c2luZ2xldG9uKCkuY2FjaGVNb2RlbCgpOwogICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lz
dGVyZWRGb3JDdXN0b21Qcm90b2NvbHMgPSBXZWJQcm9jZXNzUG9vbDo6dXJsU2NoZW1lc1dpdGhD
dXN0b21Qcm90b2NvbEhhbmRsZXJzKCk7CiAKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IGlmIChTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeSA9IFdlYlByb2Nlc3NQb29sOjpjb29r
aWVTdG9yYWdlRGlyZWN0b3J5KCk7ICFjb29raWVTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkg
ewotICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5k
bGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoY29va2llU3RvcmFnZURpcmVjdG9yeSkpCi0gICAgICAg
ICAgICBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KLSAgICBpZiAoU3RyaW5nIGNvbnRhaW5lckNhY2hlc0Rp
cmVjdG9yeSA9IFdlYlByb2Nlc3NQb29sOjpuZXR3b3JraW5nQ2FjaGVzRGlyZWN0b3J5KCk7ICFj
b250YWluZXJDYWNoZXNEaXJlY3RvcnkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGhh
bmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9y
eShjb250YWluZXJDYWNoZXNEaXJlY3RvcnkpKQotICAgICAgICAgICAgcGFyYW1ldGVycy5jb250
YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwot
ICAgIH0KLSAgICBpZiAoU3RyaW5nIHBhcmVudEJ1bmRsZURpcmVjdG9yeSA9IFdlYlByb2Nlc3NQ
b29sOjpwYXJlbnRCdW5kbGVEaXJlY3RvcnkoKTsgIXBhcmVudEJ1bmRsZURpcmVjdG9yeS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3Jl
YXRlSGFuZGxlKHBhcmVudEJ1bmRsZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6
UmVhZE9ubHkpKQotICAgICAgICAgICAgcGFyYW1ldGVycy5wYXJlbnRCdW5kbGVEaXJlY3RvcnlF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpoYW5kbGUpOwotICAgIH0KLSAgICBpZiAoYXV0byBo
YW5kbGVBbmRGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBv
cmFyeUZpbGUoZW1wdHlTdHJpbmcoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRl
KSkKLSAgICAgICAgcGFyYW1ldGVycy50ZW1wRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShoYW5kbGVBbmRGaWxlUGF0aC0+Zmlyc3QpOwotI2VuZGlmCi0KICNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oV1BFKSAvLyBHVEsgYW5kIFdQRSBkb24ndCB1c2UgZGVmYXVsdE5l
dHdvcmtQcm9jZXNzCiAgICAgcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyA9
IFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnNGcm9tRWFjaFdlYnNpdGVEYXRhU3RvcmUoKTsK
ICAgICBIYXNoTWFwPFN0cmluZywgUEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25Gb3JEaXJlY3Rvcnk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzkyM2I3
M2RjOWIzNjM4ODRiM2I2ZDU1Y2QzZWM4ODkzMWQ5ZmFhMC4uMmYxNjgxNzQ2NTRmNjU2ODAzOGE5
M2I4YjZhZGI1YjE3NGUzZDI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtNzczLDYgKzc3MywxOCBAQCBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1l
dGVycyBXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUAog
ICAgIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzdGQ6Om9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29va2llU3RvcmFnZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZTsKKyAgICBpZiAoYXV0byYgZGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5j
b29raWVTdG9yYWdlRGlyZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBj
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoZGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5z
aW9uOjpUeXBlOjpSZWFkV3JpdGUpOworICAgIHN0ZDo6b3B0aW9uYWw8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPiBjb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAg
aWYgKGF1dG8mIGRpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUuY29udGFpbmVyQ2FjaGVzRGly
ZWN0b3J5KCk7ICFkaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBjb250YWluZXJDYWNoZXNE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVX
aXRob3V0UmVzb2x2aW5nUGF0aChkaXJlY3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRXcml0ZSk7CisgICAgc3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNv
bnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoYXV0byYg
ZGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5jb250YWluZXJUZW1wb3JhcnlEaXJlY3Rvcnko
KTsgIWRpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIGNvbnRhaW5lclRlbXBvcmFyeURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhv
dXRSZXNvbHZpbmdQYXRoKGRpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdy
aXRlKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJz
IHsKICAgICAgICAgd2Vic2l0ZURhdGFTdG9yZS5zZXNzaW9uSUQoKSwKICAgICAgICAgV1RGTW92
ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSwKQEAgLTc5Miw2ICs4MDQsMTEgQEAgV2ViUHJv
Y2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NEYXRhU3Rv
cmVQYXJhbWV0ZXJzKFdlYlAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCiAgICAg
ICAgIFdURk1vdmUobW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkpLAogICAgICAgICBXVEZNb3Zl
KG1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKKyNlbmRpZgorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFdURk1vdmUoY29va2llU3RvcmFnZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAgICAgIFdURk1vdmUoY29udGFpbmVyQ2FjaGVzRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKKyAgICAgICAgV1RGTW92ZShjb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogI2VuZGlmCiAgICAgICAgIHdlYnNpdGVEYXRh
U3RvcmUucmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKQogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBiY2Y5MjE3ZTRlNjQ0ZTUzNDM2MTNh
ZTQ5Y2E1OGUwMTA5OTk1ZDVhLi40MDlhNzliNTFiNzA1MGQxMDhiZTEzMTBmZTJmMGEyYzBmNzU1
N2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTc0OCwx
MiArNzQ4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgU3RyaW5nIGluamVjdGVkQnVuZGxlUGF0aDsK
ICAgICAgICAgU3RyaW5nIHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aDsKIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgICAgIFN0cmluZyBjb29raWVTdG9yYWdlRGlyZWN0b3J5Owot
ICAgICAgICBTdHJpbmcgY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5OwotICAgICAgICBTdHJpbmcg
Y29udGFpbmVyVGVtcG9yYXJ5RGlyZWN0b3J5OwotI2VuZGlmCi0KICNpZiBQTEFURk9STShQTEFZ
U1RBVElPTikKICAgICAgICAgU3RyaW5nIHdlYlByb2Nlc3NQYXRoOwogICAgICAgICBTdHJpbmcg
bmV0d29ya1Byb2Nlc3NQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA3MWFlOTI2NTQ4YmNiOTFm
NWNhMjBiOTAxNjI3MDYyMTc4MzdhN2FjLi5hN2VlMzgyNjk3MWMzNzYzYjE3M2U4ODlhOWU1MGE0
YjEwODMwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMjg1LDYgKzI4NSwxMyBAQCB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCkKICAgICBpZiAo
IW1fY29uZmlndXJhdGlvbi0+bW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKS5pc0VtcHR5KCkp
CiAgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRNb2RlbEVsZW1lbnRDYWNoZURp
cmVjdG9yeShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVu
c2lvbihtX2NvbmZpZ3VyYXRpb24tPm1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCkpKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKGlzUGVyc2lzdGVudCgpKSB7
CisgICAgICAgIG1fY29va2llU3RvcmFnZURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFk
V3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nlc3NQb29sOjpjb29raWVT
dG9yYWdlRGlyZWN0b3J5KCkpOworICAgICAgICBtX2NvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSA9
IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdl
YlByb2Nlc3NQb29sOjp3ZWJDb250ZW50Q2FjaGVzRGlyZWN0b3J5KCkpOworICAgICAgICBtX2Nv
bnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeSA9IHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJl
Y3RvcnlGb3JTYW5kYm94RXh0ZW5zaW9uKFdlYlByb2Nlc3NQb29sOjpjb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnkoKSk7CisgICAgfQorI2VuZGlmCiAKICAgICAvLyBSZXNvbHZlIGRpcmVjdG9y
aWVzIGZvciBmaWxlIHBhdGhzLgogICAgIGlmICghbV9jb25maWd1cmF0aW9uLT5jb29raWVTdG9y
YWdlRmlsZSgpLmlzRW1wdHkoKSkgewpAQCAtMTg5Myw2ICsxOTAwLDE5IEBAIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnBhcmFtZXRlcnMoKQogICAgIHBhcmFt
ZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnVzZU5ldHdvcmtMb2FkZXIgPSB1c2VOZXR3
b3JrTG9hZGVyKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYg
KGlzUGVyc2lzdGVudCgpKSB7CisgICAgICAgIGlmIChTdHJpbmcgY29va2llU3RvcmFnZURpcmVj
dG9yeSA9IFdlYlByb2Nlc3NQb29sOjpjb29raWVTdG9yYWdlRGlyZWN0b3J5KCk7ICFjb29raWVT
dG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuY29va2ll
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShjb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKKyAg
ICAgICAgaWYgKFN0cmluZyBjb250YWluZXJDYWNoZXNEaXJlY3RvcnkgPSBXZWJQcm9jZXNzUG9v
bDo6bmV0d29ya2luZ0NhY2hlc0RpcmVjdG9yeSgpOyAhY29udGFpbmVyQ2FjaGVzRGlyZWN0b3J5
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuY29udGFpbmVyQ2FjaGVzRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVh
ZFdyaXRlRGlyZWN0b3J5KGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSk7CisgICAgICAgIGlmIChT
dHJpbmcgcGFyZW50QnVuZGxlRGlyZWN0b3J5ID0gV2ViUHJvY2Vzc1Bvb2w6OnBhcmVudEJ1bmRs
ZURpcmVjdG9yeSgpOyAhcGFyZW50QnVuZGxlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHBhcmFtZXRlcnMucGFyZW50QnVuZGxlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gU2Fu
ZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKHBhcmVudEJ1bmRsZURpcmVjdG9yeSwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6UmVhZE9ubHkpOworICAgICAgICBpZiAoYXV0byBoYW5kbGVBbmRG
aWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUo
ZW1wdHlTdHJpbmcoKSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlKSkKKyAgICAg
ICAgICAgIHBhcmFtZXRlcnMudGVtcERpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUo
aGFuZGxlQW5kRmlsZVBhdGgtPmZpcnN0KTsKKyAgICB9CisjZW5kaWYKKyAgICAKICAgICByZXR1
cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDZlZjk1NTAxNzI2NjhmNTY4MTg1
OWJiNzUzMDMyNDM1N2Y3ZTlhZDAuLmM3MzIzM2NhN2YwOWRiMmJiNTI0ZWUyNGMxZThmY2FlNGFj
OTAwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE2MCw2ICsxNjAsMTIgQEAgcHVibGljOgogICAgIHVp
bnQ2NF90IHBlclRoaXJkUGFydHlPcmlnaW5TdG9yYWdlUXVvdGEoKSBjb25zdDsKICAgICBjb25z
dCBTdHJpbmcmIGNhY2hlU3RvcmFnZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2
ZWRDb25maWd1cmF0aW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsgfQogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBjb25zdCBTdHJpbmcmIGNvb2tpZVN0b3JhZ2VEaXJlY3Rvcnko
KSBjb25zdCB7IHJldHVybiBtX2Nvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7IH0KKyAgICBjb25zdCBT
dHJpbmcmIGNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFp
bmVyQ2FjaGVzRGlyZWN0b3J5OyB9CisgICAgY29uc3QgU3RyaW5nJiBjb250YWluZXJUZW1wb3Jh
cnlEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9y
eTsgfQorI2VuZGlmCisKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKICAgICB2b2lkIGNsZWFyUmVzb3VyY2VMb2FkU3RhdGlzdGljc0luV2ViUHJvY2Vzc2VzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKQEAgLTQyNCw4ICs0MzAsMTIgQEAg
cHJpdmF0ZToKICAgICBSZWY8V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24+IG1fcmVzb2x2
ZWRDb25maWd1cmF0aW9uOwogICAgIFJlZjxjb25zdCBXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJh
dGlvbj4gbV9jb25maWd1cmF0aW9uOwogICAgIGJvb2wgbV9oYXNSZXNvbHZlZERpcmVjdG9yaWVz
IHsgZmFsc2UgfTsKLQogICAgIGNvbnN0IFJlZjxEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZT4gbV9k
ZXZpY2VJZEhhc2hTYWx0U3RvcmFnZTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFN0
cmluZyBtX2Nvb2tpZVN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgU3RyaW5nIG1fY29udGFpbmVyQ2Fj
aGVzRGlyZWN0b3J5OworICAgIFN0cmluZyBtX2NvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeTsK
KyNlbmRpZgogCiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCiAg
ICAgYm9vbCBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgeyBmYWxzZSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5k
ZXggNTNlYjI2N2UyNzAzMjdkNWMzNzY0MDc2ZWEwODEwNzI0NzYwMTkyMi4uYzgyMTdkZWU0ZjE4
YmEyYmNiZjdiOTNiYzEyZDg1NTVlODUwMTczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0yNzgsMTEgKzI3OCw2IEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5hdWRpb0NhcHR1cmVF
eHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9y
YWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25z
dW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb250YWluZXJDYWNoZXNEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOwotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0jZW5k
aWYKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAg
SW5zcGVjdG9yOjpSZW1vdGVJbnNwZWN0b3I6OnNldE5lZWRNYWNoU2FuZGJveEV4dGVuc2lvbigh
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZW5hYmxlUmVt
b3RlV2ViSW5zcGVjdG9yRXh0ZW5zaW9uSGFuZGxlKSk7CiAjZW5kaWYKQEAgLTQ3NCw2ICs0Njks
MTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzKFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWUKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BS
RVZJRVcpCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRl
cnMubW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCisj
ZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIEZJWE1FOiBEb2VzIHRoZSB3
ZWIgcHJvY2VzcyBzdGlsbCBuZWVkIGFjY2VzcyB0byB0aGUgY29va2llIHN0b3JhZ2UgZGlyZWN0
b3J5PyBQcm9iYWJseSBub3QuCisgICAgaWYgKGF1dG8mIGhhbmRsZSA9IHBhcmFtZXRlcnMuY29v
a2llU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpoYW5kbGUpOworICAgIGlmIChhdXRvJiBoYW5kbGUg
PSBwYXJhbWV0ZXJzLmNvbnRhaW5lckNhY2hlc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpoYW5kbGUpOworICAg
IGlmIChhdXRvJiBoYW5kbGUgPSBwYXJhbWV0ZXJzLmNvbnRhaW5lclRlbXBvcmFyeURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KCpoYW5kbGUpOwogI2VuZGlmCiAKICAgICBpZiAoIXBhcmFtZXRlcnMuamF2YVNjcmlw
dENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWQyODYyNDM5N2I5ZjY1NDI5YjA1MWQ1
ZGFlOTRlZWM2NzQ5ZDkxNy4uZjYyYTBhOTU2ODc0MTFmNDBlMDhlYjM1NzRhMDRkOWUzYTFkMjNj
MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIyLTAzLTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG9uJ3QgY3JlYXRlIGRpcmVjdG9yaWVzIG9uIGlPUyBp
ZiB3ZSBhcmUgb25seSB1c2luZyBlcGhlbWVyYWwgc3RvcmFnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW06CisgICAgICAgIChU
RVNUKToKKwogMjAyMi0wMy0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbmFibGUgUEdPIHdoZW4gYnVpbGRpbmcgZm9yIHJlbGVhc2UgYW5kIHBy
b2R1Y3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMu
bW0KaW5kZXggYzJhMDRlMGFhMTU0NmU5OGJkMWU4MjY4YWRiYzJmYWM1NjQyYzUwZC4uM2MwOGFj
Y2MyMmYyMGZkMzYyN2Q1MjU0ZjU0OTgzZDY0YjVhZGQ4YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRp
dGlvbnMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OU0F0
dHJpYnV0ZWRTdHJpbmdXZWJLaXRBZGRpdGlvbnMubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogCiAjaW1wb3J0ICJUZXN0Q29jb2EuaCIKKyNpbXBvcnQgIlRlc3RXS1dl
YlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9OU0F0dHJpYnV0ZWRTdHJpbmcuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNTEsMyArNTIsMjcgQEAgVEVTVChOU0F0dHJpYnV0ZWRT
dHJpbmdXZWJLaXRBZGRpdGlvbnMsIE11bHRpcGxlUGFyYWdyYXBocykKICAgICB9XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogfQorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKK1RFU1QoTlNBdHRyaWJ1dGVkU3RyaW5nV2ViS2l0QWRkaXRpb25zLCBEaXJlY3Rvcmll
c05vdENyZWF0ZWQpCit7CisgICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IFtOU0hvbWVEaXJlY3Rv
cnkoKSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpAIi9MaWJyYXJ5L0Nvb2tpZXMiXTsKKyAgICBO
U0ZpbGVNYW5hZ2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2Vy
XTsKKyAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0UGF0aDpkaXJlY3RvcnkgZXJyb3I6bmls
XTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW05TQXR0cmlidXRlZFN0
cmluZyBsb2FkRnJvbUhUTUxXaXRoRGF0YTpbTlNEYXRhIGRhdGFdIG9wdGlvbnM6QHsgfSBjb21w
bGV0aW9uSGFuZGxlcjpeKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN0cmluZywgTlNE
aWN0aW9uYXJ5PE5TQXR0cmlidXRlZFN0cmluZ0RvY3VtZW50QXR0cmlidXRlS2V5LCBpZD4gKmF0
dHJpYnV0ZXMsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBhdXRvIGNvb2tp
ZURpcmVjdG9yeUV4aXN0cyA9IFsmXSB7CisgICAgICAgIHJldHVybiBbW05TRmlsZU1hbmFnZXIg
ZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZGlyZWN0b3J5XTsKKyAgICB9OworICAg
IEVYUEVDVF9GQUxTRShjb29raWVEaXJlY3RvcnlFeGlzdHMoKSk7CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtUZXN0V0tXZWJWaWV3IG5ld10pOworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkSFRNTFN0cmluZzpAImhpIl07CisgICAgRVhQRUNUX1RSVUUoY29va2llRGlyZWN0
b3J5RXhpc3RzKCkpOworfQorI2VuZGlmCg==
</data>
<flag name="review"
          id="484069"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="484136"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>