<?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>201730</bug_id>
          
          <creation_ts>2019-09-12 11:42:39 -0700</creation_ts>
          <short_desc>Pass sessionID to WebProcess with other WebProcessDataStoreParameters</short_desc>
          <delta_ts>2019-09-12 15:47:19 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201546</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=201643</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570313</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 11:42:39 -0700</bug_when>
    <thetext>Pass sessionID to WebProcess with other WebProcessDataStoreParameters and store it on the WebProcess object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570314</commentid>
    <comment_count>1</comment_count>
      <attachid>378664</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 11:44:44 -0700</bug_when>
    <thetext>Created attachment 378664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570368</commentid>
    <comment_count>2</comment_count>
      <attachid>378664</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-12 14:10:09 -0700</bug_when>
    <thetext>Comment on attachment 378664
Patch

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

&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:199
&gt; +    Optional&lt;WebProcessDataStoreParameters&gt; websiteDataStoreParameters;

Why Optional?  Won&apos;t we always have a WebsiteDataStore when making a WebProcess?

&gt; Source/WebKit/Shared/WebProcessDataStoreParameters.h:131
&gt; +    return WebProcessDataStoreParameters { WTFMove(*sessionID), WTFMove(applicationCacheDirectory), WTFMove(*applicationCacheDirectoryExtensionHandle), WTFMove(applicationCacheFlatFileSubdirectoryName), WTFMove(webSQLDatabaseDirectory), WTFMove(*webSQLDatabaseDirectoryExtensionHandle), WTFMove(mediaCacheDirectory), WTFMove(*mediaCacheDirectoryExtensionHandle), WTFMove(mediaKeyStorageDirectory), WTFMove(*mediaKeyStorageDirectoryExtensionHandle), WTFMove(javaScriptConfigurationDirectory), WTFMove(*javaScriptConfigurationDirectoryExtensionHandle), resourceLoadStatisticsEnabled };

Please put these each on their own line so we can add to them and see the version history.

&gt; Source/WebKit/WebProcess/WebProcess.h:166
&gt; +    // Prewarmed WebProcesses do not have an associated sessionID yet, which is why this is an optional.
&gt; +    // By the time the WebProcess gets a WebPage, it is guaranteed to have a sessionID.

Why don&apos;t we just prewarm processes for use with a particular website data store?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570371</commentid>
    <comment_count>3</comment_count>
      <attachid>378664</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 14:16:24 -0700</bug_when>
    <thetext>Comment on attachment 378664
Patch

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

&gt;&gt; Source/WebKit/Shared/WebProcessCreationParameters.h:199
&gt;&gt; +    Optional&lt;WebProcessDataStoreParameters&gt; websiteDataStoreParameters;
&gt; 
&gt; Why Optional?  Won&apos;t we always have a WebsiteDataStore when making a WebProcess?

I guess you know now since you saw my comment below.

&gt;&gt; Source/WebKit/Shared/WebProcessDataStoreParameters.h:131
&gt;&gt; +    return WebProcessDataStoreParameters { WTFMove(*sessionID), WTFMove(applicationCacheDirectory), WTFMove(*applicationCacheDirectoryExtensionHandle), WTFMove(applicationCacheFlatFileSubdirectoryName), WTFMove(webSQLDatabaseDirectory), WTFMove(*webSQLDatabaseDirectoryExtensionHandle), WTFMove(mediaCacheDirectory), WTFMove(*mediaCacheDirectoryExtensionHandle), WTFMove(mediaKeyStorageDirectory), WTFMove(*mediaKeyStorageDirectoryExtensionHandle), WTFMove(javaScriptConfigurationDirectory), WTFMove(*javaScriptConfigurationDirectoryExtensionHandle), resourceLoadStatisticsEnabled };
&gt; 
&gt; Please put these each on their own line so we can add to them and see the version history.

Ok.

&gt;&gt; Source/WebKit/WebProcess/WebProcess.h:166
&gt;&gt; +    // By the time the WebProcess gets a WebPage, it is guaranteed to have a sessionID.
&gt; 
&gt; Why don&apos;t we just prewarm processes for use with a particular website data store?

We don&apos;t know for which datastore we&apos;re going to need a process next at the time of pre-warming. We used to prewarm for the default session and then not use the pre-warmed process if the data store was not the default one but this was wasteful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570378</commentid>
    <comment_count>4</comment_count>
      <attachid>378680</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 14:44:08 -0700</bug_when>
    <thetext>Created attachment 378680
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570383</commentid>
    <comment_count>5</comment_count>
      <attachid>378680</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-09-12 14:53:39 -0700</bug_when>
    <thetext>Comment on attachment 378680
Patch

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

&gt; Source/WebKit/WebProcess/WebProcess.h:167
&gt; +    const Optional&lt;PAL::SessionID&gt;&amp; sessionID() const { return m_sessionID; }

Not that the only code that runs in a pre-warmed process is the initialization function so we could easily return an SessionID here instead of an Optional&lt;SessionID&gt; and ASSERT(m_sessionID).
Let me know if you&apos;d prefer that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570408</commentid>
    <comment_count>6</comment_count>
      <attachid>378680</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-12 15:46:26 -0700</bug_when>
    <thetext>Comment on attachment 378680
Patch

Clearing flags on attachment: 378680

Committed r249818: &lt;https://trac.webkit.org/changeset/249818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570409</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-12 15:46:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570410</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-12 15:47:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/55320799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570411</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-12 15:47:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55320800&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378664</attachid>
            <date>2019-09-12 11:44:44 -0700</date>
            <delta_ts>2019-09-12 14:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201730-20190912114443.patch</filename>
            <type>text/plain</type>
            <size>21773</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlMmM3NGNlY2NjMTFiY2Nh
ZDk1ZjNlYWVlZWNmNmI5MmI1YTI0ZTEuLjJmNjk0ZTE3NTAzMmY0YTZkYTYxZmFiMmJlNDdlYmQ4
YjZiMzI5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMDktMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHNlc3Npb25JRCB0byBXZWJQ
cm9jZXNzIHdpdGggb3RoZXIgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTczMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3Mgc2Vzc2lvbklEIHRv
IFdlYlByb2Nlc3Mgd2l0aCBvdGhlciBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyBhbmQg
c3RvcmUKKyAgICAgICAgaXQgb24gdGhlIFdlYlByb2Nlc3Mgb2JqZWN0LiBJbiBmb2xsb3ctdXAg
cGF0Y2hlcywgSSB3aWxsIHVzZSB0aGlzIHNlc3Npb25JRAorICAgICAgICBtb3JlIGFuZCBsZXZl
cmFnZSB0aGUgZmFjdCB0aGF0IHdlIGhhdmUgb25lIHNlc3Npb25JRCBwZXIgV2VicHJvY2VzcyB0
byBzaW1wbGlmeQorICAgICAgICB0aGUgV2ViS2l0Mi1sYXllciBjb2RlLgorCisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6dHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpzZXRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2Vzc2lvbklEIGNvbnN0KToKKwogMjAxOS0wOS0xMiAgQWRy
aWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dQRV0gd2Via2l0X3NldHRpbmdzX3NldF91c2VyX2FnZW50KCkgYWxsb3dzIGNvbnRlbnQgZm9y
YmlkZGVuIGluIEhUVFAgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA0MTcwZDZjMzg5MzgzMWIwYzE4
ZmYwMGVhODA1MGVkZGZhYmYzNGYxLi4zODcwMzliMDIyZjU4NTY0NDNkYjI5ZTVhODljOWU4NDdj
MmFlNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTU2LDYgKzE1Niw4IEBAIHZvaWQgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvcjsKICAgICBlbmNvZGVyIDw8IGlt
cGxlbWVudGF0aW9uTGlicmFyeU5hbWU7CiAjZW5kaWYKKworICAgIGVuY29kZXIgPDwgd2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiB9CiAKIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTM4MCw2ICszODIsMTIgQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9j
ZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKKyAgICBPcHRpb25hbDxP
cHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzOworICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7Cisg
ICAgaWYgKCF3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXVEZNb3ZlKCp3
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDQ5MWI5MWRiOTE5YTUwMzExZDRmYWUyNzg0NjdkNmEzY2ZjODY3ZmUuLjQyZWMzZDY4
MGI5ZGExZDc0MDhmN2ZiYjcyYmE1YWFmNzk3MDAyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CkBAIC0xOTQsNiArMTk1
LDggQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIElQQzo6QXR0
YWNobWVudCBob3N0Q2xpZW50RmlsZURlc2NyaXB0b3I7CiAgICAgQ1N0cmluZyBpbXBsZW1lbnRh
dGlvbkxpYnJhcnlOYW1lOwogI2VuZGlmCisKKyAgICBPcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycz4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycy5oCmluZGV4IGQ2ZTVjNzA0YWM1NWI0NDMyYmU1MzU0ZTA3NzJk
MjcwM2Q2NTc3NTUuLjc4MDUyMjZhY2EzMTNjNGU4ZmFjZjI5YzRkMzM2MjVlMmM2MmFlZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMuaApAQCAtMjYsMTAgKzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgeworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZUZsYXRG
aWxlU3ViZGlyZWN0b3J5TmFtZTsKQEAgLTUwLDYgKzUyLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NE
YXRhU3RvcmVQYXJhbWV0ZXJzIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKICAgICBlbmNvZGVyIDw8IGFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3Rvcnk7CiAgICAgZW5jb2RlciA8PCBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxl
U3ViZGlyZWN0b3J5TmFtZTsKQEAgLTY3LDYwICs3MCw2NSBAQCB2b2lkIFdlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+CiBPcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycz4g
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgT3B0
aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRDsKKyAgICBkZWNvZGVyID4+IHNlc3Npb25J
RDsKKyAgICBpZiAoIXNlc3Npb25JRCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5KSkKKyAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBh
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4g
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIWFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZSgqYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25D
YWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSkpCisgICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2Fj
aGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcHBs
aWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKSkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSkpCisgICAgU3RyaW5nIHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlPiB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNv
ZGVyID4+IHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmICgh
d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKndlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYUNhY2hlRGly
ZWN0b3J5KSkKKyAgICBTdHJpbmcgbWVkaWFDYWNoZURpcmVjdG9yeTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lZGlhQ2FjaGVEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBtZWRpYUNhY2hl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWVkaWFDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIW1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5t
ZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbWVkaWFDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5KSkKKyAgICBTdHJpbmcgbWVkaWFLZXlTdG9y
YWdlRGlyZWN0b3J5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwogICAgIGlmICghbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHBhcmFtZXRlcnMubWVkaWFLZXlT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSkpCisgICAgU3RyaW5nIGph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
amF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBqYXZhU2Ny
aXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNvZGVyID4+
IGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlm
ICghamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCkpCisgICAgYm9v
bCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHBhcmFtZXRlcnM7CisgICAgcmV0dXJuIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHsgV1RGTW92ZSgqc2Vzc2lvbklEKSwgV1RGTW92ZShh
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSwgV1RGTW92ZSgqYXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSksIFdURk1vdmUoYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3Vi
ZGlyZWN0b3J5TmFtZSksIFdURk1vdmUod2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpLCBXVEZNb3Zl
KCp3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksIFdURk1vdmUobWVkaWFD
YWNoZURpcmVjdG9yeSksIFdURk1vdmUoKm1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpLCBXVEZNb3ZlKG1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeSksIFdURk1vdmUoKm1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksIFdURk1vdmUoamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25EaXJlY3RvcnkpLCBXVEZNb3ZlKCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSksIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkIH07CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCmluZGV4IDZlYzgzZThmNjgxYmZjOTYzMzMxYThiZjU5OTc4ZTVmNjIxNDc3
Y2YuLjU5MzA0NjQ3OTcxNDIwMmQ2ZGVhNmEyMTI2NjA3NWI0ZmM1NzVhMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTg0MSw5ICs4NDEsNyBAQCBS
ZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBXZWJQcm9jZXNzUG9vbDo6dHJ5VGFrZVByZXdhcm1lZFBy
b2Nlc3MoV2Vic2l0ZURhdGFTdG9yZQogCiAgICAgQVNTRVJUKG1fcHJld2FybWVkUHJvY2Vzcy0+
aXNQcmV3YXJtZWQoKSk7CiAgICAgbV9wcmV3YXJtZWRQcm9jZXNzLT5tYXJrSXNOb0xvbmdlcklu
UHJld2FybWVkUG9vbCgpOwotCiAgICAgbV9wcmV3YXJtZWRQcm9jZXNzLT5zZXRXZWJzaXRlRGF0
YVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUpOwotICAgIHNlbmRXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycygqbV9wcmV3YXJtZWRQcm9jZXNzLCB3ZWJzaXRlRGF0YVN0b3JlKTsKIAogICAgIHJl
dHVybiBzdGQ6OmV4Y2hhbmdlKG1fcHJld2FybWVkUHJvY2VzcywgbnVsbHB0cik7CiB9CkBAIC04
NzEsNTAgKzg2OSw1NyBAQCBzdGF0aWMgdm9pZCByZWdpc3RlckRpc3BsYXlDb25maWd1cmF0aW9u
Q2FsbGJhY2soKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRXZWJQcm9j
ZXNzRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVE
YXRhU3RvcmUmIHdlYnNpdGVEYXRhU3RvcmUpCitXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVy
cyBXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGF0YVN0b3JlJiB3ZWJzaXRlRGF0YVN0b3JlKQogewot
ICAgIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0KICAgICB3ZWJz
aXRlRGF0YVN0b3JlLnJlc29sdmVEaXJlY3Rvcmllc0lmTmVjZXNzYXJ5KCk7CiAKLSAgICBwYXJh
bWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29s
dmVkQXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpOwotICAgIGlmIChwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMuYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeTsKLSAgICBpZiAoIXBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5p
c0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhvdXRS
ZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNo
ZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IHdlYnNpdGVEYXRhU3RvcmUuYXBwbGljYXRpb25D
YWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpOwotICAgIGlmIChwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUuaXNFbXB0eSgpKQotICAgICAgICBw
YXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgPSBtX2Nv
bmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoKTsK
LQotICAgIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0
b3JlLnJlc29sdmVkRGF0YWJhc2VEaXJlY3RvcnkoKTsKLSAgICBpZiAocGFyYW1ldGVycy53ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHBhcmFtZXRlcnMud2ViU1FM
RGF0YWJhc2VEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMud2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHko
KSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmlu
Z1BhdGgocGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lv
bjo6VHlwZTo6UmVhZFdyaXRlLCBwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLQotICAgIHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeSA9IHdl
YnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKHBh
cmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHBhcmFtZXRl
cnMubWVkaWFDYWNoZURpcmVjdG9yeSA9IG1fcmVzb2x2ZWRQYXRocy5tZWRpYUNhY2hlRGlyZWN0
b3J5OwotICAgIGlmICghcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkK
LSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1Bh
dGgocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBl
OjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSk7Ci0KLSAgICBwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeSA9IHdlYnNpdGVE
YXRhU3RvcmUucmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKTsKLSAgICBpZiAocGFyYW1ldGVy
cy5tZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnkuaXNFbXB0eSgpKQotICAgICAgICBwYXJhbWV0ZXJz
Lm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeSA9IG1fcmVzb2x2ZWRQYXRocy5tZWRpYUtleVN0b3Jh
Z2VEaXJlY3Rvcnk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9y
eS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdpdGhv
dXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5LCBTYW5k
Ym94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5KCk7CisgICAgaWYgKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAg
ICAgICBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLmFwcGxpY2F0
aW9uQ2FjaGVEaXJlY3Rvcnk7CisgICAgICAgIAorICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKGFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgYXBwbGljYXRpb25DYWNo
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICAKKyAgICBTdHJpbmcgYXBwbGljYXRp
b25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IHdlYnNpdGVEYXRhU3RvcmUuYXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpOworICAgIGlmIChhcHBsaWNhdGlv
bkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgYXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IG1fY29uZmlndXJhdGlvbi0+YXBw
bGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpOworCisgICAgU3RyaW5nIHdl
YlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZERhdGFiYXNl
RGlyZWN0b3J5KCk7CisgICAgaWYgKHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkK
KyAgICAgICAgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMud2ViU1FM
RGF0YWJhc2VEaXJlY3Rvcnk7CisgICAgICAgIAorICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIXdlYlNR
TERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgod2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnks
IFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgd2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgU3RyaW5nIG1lZGlhQ2FjaGVEaXJlY3RvcnkgPSB3
ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkTWVkaWFDYWNoZURpcmVjdG9yeSgpOworICAgIGlmICht
ZWRpYUNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgbWVkaWFDYWNoZURpcmVjdG9y
eSA9IG1fcmVzb2x2ZWRQYXRocy5tZWRpYUNhY2hlRGlyZWN0b3J5OworICAgICAgICAKKyAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBpZiAoIW1lZGlhQ2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtZWRpYUNhY2hl
RGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIG1lZGlhQ2FjaGVE
aXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgU3RyaW5nIG1lZGlhS2V5U3RvcmFnZURp
cmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRNZWRpYUtleXNEaXJlY3RvcnkoKTsK
KyAgICBpZiAobWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgbWVk
aWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLm1lZGlhS2V5U3RvcmFnZURp
cmVjdG9yeTsKKyAgICAgICAgCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW1lZGlhS2V5U3RvcmFn
ZURpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZVdpdGhvdXRSZXNvbHZpbmdQYXRoKG1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeSwgU2FuZGJv
eEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpOworCisgICAgU3RyaW5nIGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0
b3J5OwogICAgIGlmICghbV9qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0VtcHR5
KCkpCi0gICAgICAgIHBhcmFtZXRlcnMuamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnkg
PSBtX2phdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OworICAgICAgICBqYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeSA9IG1famF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rv
cnk7CiAgICAgZWxzZSBpZiAoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25GaWxlRW5hYmxlZCgpKQot
ICAgICAgICBwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5ID0gd2Vi
c2l0ZURhdGFTdG9yZS5yZXNvbHZlZEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCk7
Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLmphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5Lmlz
RW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJl
c29sdmluZ1BhdGgocGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSwg
U2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBwYXJhbWV0ZXJzLmphdmFTY3JpcHRD
b25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIHBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCk7CisgICAgICAgIGphdmFTY3JpcHRDb25maWd1cmF0aW9u
RGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZEphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5KCk7CisgICAgCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGphdmFT
Y3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghamF2
YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChqYXZhU2NyaXB0Q29u
ZmlndXJhdGlvbkRpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBq
YXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICBw
cm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzKHBhcmFtZXRlcnMpLCAwKTsKKyAgICByZXR1cm4gV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMgeyB3ZWJzaXRlRGF0YVN0b3JlLnNlc3Npb25JRCgpLCBXVEZNb3ZlKGFwcGxpY2F0
aW9uQ2FjaGVEaXJlY3RvcnkpLCBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRl
bnNpb25IYW5kbGUpLCBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9y
eU5hbWUpLCBXVEZNb3ZlKHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KSwgV1RGTW92ZSh3ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksIFdURk1vdmUobWVkaWFDYWNoZURpcmVj
dG9yeSksIFdURk1vdmUobWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksIFdURk1v
dmUobWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5KSwgV1RGTW92ZShtZWRpYUtleVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpLCBXVEZNb3ZlKGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGly
ZWN0b3J5KSwgV1RGTW92ZShqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSksIHdlYnNpdGVEYXRhU3RvcmUucmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQo
KSB9OzsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0
b3JlLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkIGlzUHJld2FybWVkKQpAQCAtMTAxMiw2
ICsxMDE3LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKICAgICBpZiAoIWluamVjdGVkQnVu
ZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkKICAgICAgICAgaW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhID0gbV9pbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGE7
CiAgICAgcGFyYW1ldGVycy5pbml0aWFsaXphdGlvblVzZXJEYXRhID0gVXNlckRhdGEocHJvY2Vz
cy50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25V
c2VyRGF0YS5nZXQoKSkpOworICAgIAorICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlKQorICAgICAg
ICBwYXJhbWV0ZXJzLndlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzID0gd2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnMocHJvY2VzcywgKndlYnNpdGVEYXRhU3RvcmUpOwogCiAgICAgcHJvY2Vz
cy5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpJbml0aWFsaXplV2ViUHJvY2VzcyhwYXJhbWV0
ZXJzKSwgMCk7CiAKQEAgLTEwMTksOSArMTAyNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Omlu
aXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2Vic2l0ZURh
CiAgICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRRT1Mod2ViUHJvY2Vz
c0xhdGVuY3lRT1MoKSwgd2ViUHJvY2Vzc1Rocm91Z2hwdXRRT1MoKSksIDApOwogI2VuZGlmCiAK
LSAgICBpZiAod2Vic2l0ZURhdGFTdG9yZSkKLSAgICAgICAgc2VuZFdlYlByb2Nlc3NEYXRhU3Rv
cmVQYXJhbWV0ZXJzKHByb2Nlc3MsICp3ZWJzaXRlRGF0YVN0b3JlKTsKLQogICAgIGlmIChtX2F1
dG9tYXRpb25TZXNzaW9uKQogICAgICAgICBwcm9jZXNzLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OkVuc3VyZUF1dG9tYXRpb25TZXNzaW9uUHJveHkobV9hdXRvbWF0aW9uU2Vzc2lvbi0+c2Vz
c2lvbklkZW50aWZpZXIoKSksIDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA4YTE4N2NlYTU4ZDcwN2RlYmY4ZGM0YTgxZjI0MzIxYjgxOWU4NTkyLi4y
MTQyNWQyZTRlN2YyMDNhNTBkOGU0YzcwYmVlMjEyNTFkM2Q2NDZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTUyOCw2ICs1MjgsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeShTdHJpbmcmJiBkaXJl
Y3RvcnkpIHsgbV9qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSA9IGRpcmVjdG9yeTsg
fQogICAgIGNvbnN0IFN0cmluZyYgamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkoKSBj
b25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OyB9CiAgICAg
CisgICAgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgd2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiwgV2Vic2l0ZURhdGFTdG9yZSYpOworCiBwcml2YXRl
OgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTU0MCw3ICs1NDIsNiBAQCBw
cml2YXRlOgogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNp
dGVEYXRhU3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1By
b3h5OjpJc1ByZXdhcm1lZDo6Tm8pOwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Mo
V2ViUHJvY2Vzc1Byb3h5JiwgV2Vic2l0ZURhdGFTdG9yZSosIFdlYlByb2Nlc3NQcm94eTo6SXNQ
cmV3YXJtZWQgPSBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkOjpObyk7Ci0gICAgdm9pZCBz
ZW5kV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiwgV2Vic2l0
ZURhdGFTdG9yZSYpOwogCiAgICAgdm9pZCByZXF1ZXN0V2ViQ29udGVudFN0YXRpc3RpY3MoU3Rh
dGlzdGljc1JlcXVlc3QmKTsKICAgICB2b2lkIHJlcXVlc3ROZXR3b3JraW5nU3RhdGlzdGljcyhT
dGF0aXN0aWNzUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMzFmZWU1OWI2YTEwNzZmMDlkMjNjOGI1N2MyYzA2YjllMjVkODU0MS4u
ZDNjODJmMDQ2ODQ4YzhjZDA1OWJjMjU2OWJmNGNhMjkzYTRmZjE0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yMjgsNiArMjI4LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnNldFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYg
ZGF0YVN0b3JlKQogICAgIEFTU0VSVCghbV93ZWJzaXRlRGF0YVN0b3JlKTsKICAgICBtX3dlYnNp
dGVEYXRhU3RvcmUgPSAmZGF0YVN0b3JlOwogICAgIHVwZGF0ZVJlZ2lzdHJhdGlvbldpdGhEYXRh
U3RvcmUoKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRXZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycyhwcm9jZXNzUG9vbCgpLndlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJz
KCp0aGlzLCBkYXRhU3RvcmUpKSwgMCk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRh
dGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCBkZDBhNjAwYWU1MWIyODY0YWM2YWJjNjdkMjMwYTViOWViMGMyYmFh
Li44NjA0NmVlNDMwZmZjMTcyYzFiNDMyMjBmNzk2Yjk1ZGU3NzEwYTNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0yNzUsNiArMjc1LDkgQEAgdm9pZCBXZWJQ
cm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKIAogICAgIEFTU0VSVChtX3BhZ2VNYXAuaXNFbXB0eSgpKTsKIAorICAg
IGlmIChwYXJhbWV0ZXJzLndlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKQorICAgICAgICBzZXRX
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXVEZNb3ZlKCpwYXJhbWV0ZXJzLndlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzKSk7CisKICAgICBXZWJDb3JlOjpzZXRQcmVzZW50aW5nQXBwbGljYXRp
b25QSUQocGFyYW1ldGVycy5wcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOwogCiAjaWYgT1MoTElO
VVgpCkBAIC00MzYsNiArNDM5LDkgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJv
Y2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAogdm9pZCBX
ZWJQcm9jZXNzOjpzZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CisgICAgQVNTRVJUKCFtX3Nlc3Npb25JRCk7
CisgICAgbV9zZXNzaW9uSUQgPSBwYXJhbWV0ZXJzLnNlc3Npb25JRDsKKyAgICAKICAgICBhdXRv
JiBkYXRhYmFzZU1hbmFnZXIgPSBEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpOwogICAgIGRh
dGFiYXNlTWFuYWdlci5pbml0aWFsaXplKHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBiZTcxMzAxNTg4
NDA3OGIzODQ1ZGEyYmMxOWMyOTA1NGUzNzI0ZGIzLi45ODU0YjM2YjM4ZjM1MjViMjg3ZTA2NTcy
NGQzNjJkYzQ3OTBhODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTE2MSw2ICsxNjEsMTAgQEAgcHVibGljOgogICAgIFdlYlBhZ2UqIGZvY3VzZWRXZWJQYWdlKCkg
Y29uc3Q7CiAKICAgICBJbmplY3RlZEJ1bmRsZSogaW5qZWN0ZWRCdW5kbGUoKSBjb25zdCB7IHJl
dHVybiBtX2luamVjdGVkQnVuZGxlLmdldCgpOyB9CisgICAgCisgICAgLy8gUHJld2FybWVkIFdl
YlByb2Nlc3NlcyBkbyBub3QgaGF2ZSBhbiBhc3NvY2lhdGVkIHNlc3Npb25JRCB5ZXQsIHdoaWNo
IGlzIHdoeSB0aGlzIGlzIGFuIG9wdGlvbmFsLgorICAgIC8vIEJ5IHRoZSB0aW1lIHRoZSBXZWJQ
cm9jZXNzIGdldHMgYSBXZWJQYWdlLCBpdCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYSBzZXNzaW9u
SUQuCisgICAgY29uc3QgT3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+JiBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgY29u
c3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBjb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQoKSBjb25z
dCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVuZGVyU2VydmVyUG9ydDsgfQpAQCAtNTcyLDYgKzU3
Niw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RvcmFnZUFyZWFJZGVudGlm
aWVyLCBTdG9yYWdlQXJlYU1hcCo+IG1fc3RvcmFnZUFyZWFNYXBzOworICAgIE9wdGlvbmFsPFBB
TDo6U2Vzc2lvbklEPiBtX3Nlc3Npb25JRDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378680</attachid>
            <date>2019-09-12 14:44:08 -0700</date>
            <delta_ts>2019-09-12 15:46:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201730-20190912144407.patch</filename>
            <type>text/plain</type>
            <size>22086</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhNjIxOGRhNzQ3YzhlMWVl
Yzk5NjhmNmM0ZjczMmQ5ZTkwMWY4ZDMuLjIwZDA0ZGI4MjRlZTM2ZTU4ZDgzZGMzYzI3ZTk3NDEz
NDYzNzI2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMDktMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQYXNzIHNlc3Npb25JRCB0byBXZWJQ
cm9jZXNzIHdpdGggb3RoZXIgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTczMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhc3Mgc2Vzc2lvbklEIHRv
IFdlYlByb2Nlc3Mgd2l0aCBvdGhlciBXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyBhbmQg
c3RvcmUKKyAgICAgICAgaXQgb24gdGhlIFdlYlByb2Nlc3Mgb2JqZWN0LiBJbiBmb2xsb3ctdXAg
cGF0Y2hlcywgSSB3aWxsIHVzZSB0aGlzIHNlc3Npb25JRAorICAgICAgICBtb3JlIGFuZCBsZXZl
cmFnZSB0aGUgZmFjdCB0aGF0IHdlIGhhdmUgb25lIHNlc3Npb25JRCBwZXIgV2VicHJvY2VzcyB0
byBzaW1wbGlmeQorICAgICAgICB0aGUgV2ViS2l0Mi1sYXllciBjb2RlLgorCisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVk
L1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6dHJ5VGFrZVByZXdhcm1lZFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6c2VuZFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpzZXRXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6c2Vzc2lvbklEIGNvbnN0KToKKwogMjAxOS0wOS0xMiAgQWRy
aWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtd
W1dQRV0gd2Via2l0X3NldHRpbmdzX3NldF91c2VyX2FnZW50KCkgYWxsb3dzIGNvbnRlbnQgZm9y
YmlkZGVuIGluIEhUVFAgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA0MTcwZDZjMzg5MzgzMWIwYzE4
ZmYwMGVhODA1MGVkZGZhYmYzNGYxLi4zODcwMzliMDIyZjU4NTY0NDNkYjI5ZTVhODljOWU4NDdj
MmFlNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTU2LDYgKzE1Niw4IEBAIHZvaWQgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvcjsKICAgICBlbmNvZGVyIDw8IGlt
cGxlbWVudGF0aW9uTGlicmFyeU5hbWU7CiAjZW5kaWYKKworICAgIGVuY29kZXIgPDwgd2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiB9CiAKIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTM4MCw2ICszODIsMTIgQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9j
ZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAKKyAgICBPcHRpb25hbDxP
cHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdlYnNpdGVEYXRhU3RvcmVQ
YXJhbWV0ZXJzOworICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7Cisg
ICAgaWYgKCF3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHBhcmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXVEZNb3ZlKCp3
ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDQ5MWI5MWRiOTE5YTUwMzExZDRmYWUyNzg0NjdkNmEzY2ZjODY3ZmUuLjQyZWMzZDY4
MGI5ZGExZDc0MDhmN2ZiYjcyYmE1YWFmNzk3MDAyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJT
dGF0ZS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CkBAIC0xOTQsNiArMTk1
LDggQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIElQQzo6QXR0
YWNobWVudCBob3N0Q2xpZW50RmlsZURlc2NyaXB0b3I7CiAgICAgQ1N0cmluZyBpbXBsZW1lbnRh
dGlvbkxpYnJhcnlOYW1lOwogI2VuZGlmCisKKyAgICBPcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0
b3JlUGFyYW1ldGVycz4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
RGF0YVN0b3JlUGFyYW1ldGVycy5oCmluZGV4IGQ2ZTVjNzA0YWM1NWI0NDMyYmU1MzU0ZTA3NzJk
MjcwM2Q2NTc3NTUuLjljN2U4MjljODZjNDRhZWNkOTY1NTBmM2U2MmExOTRjNzkwMTljNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMuaApAQCAtMjYsMTAgKzI2LDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgeworICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZUZsYXRG
aWxlU3ViZGlyZWN0b3J5TmFtZTsKQEAgLTUwLDYgKzUyLDcgQEAgc3RydWN0IFdlYlByb2Nlc3NE
YXRhU3RvcmVQYXJhbWV0ZXJzIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKKyAgICBlbmNvZGVyIDw8IHNlc3Npb25JRDsKICAgICBlbmNvZGVyIDw8IGFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3Rvcnk7CiAgICAgZW5jb2RlciA8PCBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxl
U3ViZGlyZWN0b3J5TmFtZTsKQEAgLTY3LDYwICs3MCw3OSBAQCB2b2lkIFdlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+CiBPcHRpb25hbDxXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycz4g
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgT3B0
aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRDsKKyAgICBkZWNvZGVyID4+IHNlc3Npb25J
RDsKKyAgICBpZiAoIXNlc3Npb25JRCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5KSkKKyAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBh
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4g
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIWFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZSgqYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGljYXRpb25D
YWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSkpCisgICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2Fj
aGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShhcHBs
aWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKSkKICAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy53ZWJTUUxE
YXRhYmFzZURpcmVjdG9yeSkpCisgICAgU3RyaW5nIHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5Owor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUod2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlPiB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNv
ZGVyID4+IHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmICgh
d2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKndlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYUNhY2hlRGly
ZWN0b3J5KSkKKyAgICBTdHJpbmcgbWVkaWFDYWNoZURpcmVjdG9yeTsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKG1lZGlhQ2FjaGVEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBtZWRpYUNhY2hl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWVkaWFDYWNoZURpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIW1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5t
ZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbWVkaWFDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5KSkKKyAgICBTdHJpbmcgbWVkaWFLZXlTdG9y
YWdlRGlyZWN0b3J5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWVkaWFLZXlTdG9yYWdlRGly
ZWN0b3J5KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlOwogICAgIGlmICghbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHBhcmFtZXRlcnMubWVkaWFLZXlT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSkpCisgICAgU3RyaW5nIGph
dmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
amF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBqYXZhU2Ny
aXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBkZWNvZGVyID4+
IGphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlm
ICghamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCiAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmln
dXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmphdmFTY3JpcHRDb25m
aWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCkpCisgICAgYm9v
bCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHBhcmFtZXRlcnM7CisgICAgcmV0dXJuIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzIHsKKyAgICAgICAgV1RGTW92ZSgqc2Vzc2lvbklEKSwK
KyAgICAgICAgV1RGTW92ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSwKKyAgICAgICAgV1RG
TW92ZSgqYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAgICAg
IFdURk1vdmUoYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSksCisgICAg
ICAgIFdURk1vdmUod2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKCp3
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAgICAgIFdURk1vdmUo
bWVkaWFDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUoKm1lZGlhQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpLAorICAgICAgICBXVEZNb3ZlKG1lZGlhS2V5U3RvcmFnZURpcmVj
dG9yeSksCisgICAgICAgIFdURk1vdmUoKm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSksCisgICAgICAgIFdURk1vdmUoamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rv
cnkpLAorICAgICAgICBXVEZNb3ZlKCpqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSksCisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkCisg
ICAgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggNmVjODNlOGY2ODFiZmM5NjMzMzFhOGJmNTk5Nzhl
NWY2MjE0NzdjZi4uMDAxMmFiYmQ3ZGRmYzhlMjg1ZGMxNjVjMjVhYjA5N2RhNzMzMjUyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODQxLDkgKzg0
MSw3IEBAIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IFdlYlByb2Nlc3NQb29sOjp0cnlUYWtlUHJl
d2FybWVkUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlCiAKICAgICBBU1NFUlQobV9wcmV3YXJtZWRQ
cm9jZXNzLT5pc1ByZXdhcm1lZCgpKTsKICAgICBtX3ByZXdhcm1lZFByb2Nlc3MtPm1hcmtJc05v
TG9uZ2VySW5QcmV3YXJtZWRQb29sKCk7Ci0KICAgICBtX3ByZXdhcm1lZFByb2Nlc3MtPnNldFdl
YnNpdGVEYXRhU3RvcmUod2Vic2l0ZURhdGFTdG9yZSk7Ci0gICAgc2VuZFdlYlByb2Nlc3NEYXRh
U3RvcmVQYXJhbWV0ZXJzKCptX3ByZXdhcm1lZFByb2Nlc3MsIHdlYnNpdGVEYXRhU3RvcmUpOwog
CiAgICAgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9wcmV3YXJtZWRQcm9jZXNzLCBudWxscHRyKTsK
IH0KQEAgLTg3MSw1MCArODY5LDcxIEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRGlzcGxheUNvbmZp
Z3VyYXRpb25DYWxsYmFjaygpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2Vu
ZFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vzcywg
V2Vic2l0ZURhdGFTdG9yZSYgd2Vic2l0ZURhdGFTdG9yZSkKK1dlYlByb2Nlc3NEYXRhU3RvcmVQ
YXJhbWV0ZXJzIFdlYlByb2Nlc3NQb29sOjp3ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyhX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYXRhU3RvcmUmIHdlYnNpdGVEYXRhU3Rv
cmUpCiB7Ci0gICAgV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLQog
ICAgIHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKIAot
ICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3Rv
cmUucmVzb2x2ZWRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7Ci0gICAgaWYgKHBhcmFtZXRl
cnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHBhcmFtZXRl
cnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSA9IG1fcmVzb2x2ZWRQYXRocy5hcHBsaWNhdGlv
bkNhY2hlRGlyZWN0b3J5OwotICAgIGlmICghcGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGly
ZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
V2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
LCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMuYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgcGFyYW1ldGVycy5hcHBsaWNh
dGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lID0gd2Vic2l0ZURhdGFTdG9yZS5hcHBs
aWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCk7Ci0gICAgaWYgKHBhcmFtZXRl
cnMuYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZS5pc0VtcHR5KCkpCi0g
ICAgICAgIHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFt
ZSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5
TmFtZSgpOwotCi0gICAgcGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IHdlYnNp
dGVEYXRhU3RvcmUucmVzb2x2ZWREYXRhYmFzZURpcmVjdG9yeSgpOwotICAgIGlmIChwYXJhbWV0
ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgcGFyYW1ldGVy
cy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IG1fcmVzb2x2ZWRQYXRocy53ZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeTsKLSAgICBpZiAoIXBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnku
aXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0
UmVzb2x2aW5nUGF0aChwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5LCBTYW5kYm94
RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHBhcmFtZXRlcnMud2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0
b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZE1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsKLSAg
ICBpZiAocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAg
cGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLm1lZGlhQ2Fj
aGVEaXJlY3Rvcnk7Ci0gICAgaWYgKCFwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnkuaXNF
bXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVz
b2x2aW5nUGF0aChwYXJhbWV0ZXJzLm1lZGlhQ2FjaGVEaXJlY3RvcnksIFNhbmRib3hFeHRlbnNp
b246OlR5cGU6OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKLQotICAgIHBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0g
d2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZE1lZGlhS2V5c0RpcmVjdG9yeSgpOwotICAgIGlmIChw
YXJhbWV0ZXJzLm1lZGlhS2V5U3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHBh
cmFtZXRlcnMubWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLm1lZGlh
S2V5U3RvcmFnZURpcmVjdG9yeTsKLSAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFLZXlTdG9yYWdl
RGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFu
ZGxlV2l0aG91dFJlc29sdmluZ1BhdGgocGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5tZWRpYUtl
eVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIFN0cmluZyBhcHBsaWNhdGlv
bkNhY2hlRGlyZWN0b3J5ID0gd2Vic2l0ZURhdGFTdG9yZS5yZXNvbHZlZEFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnkoKTsKKyAgICBpZiAoYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5
KCkpCisgICAgICAgIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX3Jlc29sdmVkUGF0aHMu
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeTsKIAotICAgIAotICAgIGlmICghbV9qYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIHBhcmFtZXRlcnMuamF2
YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkgPSBtX2phdmFTY3JpcHRDb25maWd1cmF0aW9u
RGlyZWN0b3J5OwotICAgIGVsc2UgaWYgKGphdmFTY3JpcHRDb25maWd1cmF0aW9uRmlsZUVuYWJs
ZWQoKSkKLSAgICAgICAgcGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9y
eSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRKYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5qYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZVdp
dGhvdXRSZXNvbHZpbmdQYXRoKHBhcmFtZXRlcnMuamF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJl
Y3RvcnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgcGFyYW1ldGVycy5qYXZh
U2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7CisgICAgaWYgKCFhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgoYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRl
LCBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKworICAgIFN0cmlu
ZyBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lID0gd2Vic2l0ZURhdGFT
dG9yZS5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCk7CisgICAgaWYg
KGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUuaXNFbXB0eSgpKQorICAg
ICAgICBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lID0gbV9jb25maWd1
cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCk7CisKKyAg
ICBTdHJpbmcgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkgPSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29s
dmVkRGF0YWJhc2VEaXJlY3RvcnkoKTsKKyAgICBpZiAod2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnku
aXNFbXB0eSgpKQorICAgICAgICB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeSA9IG1fcmVzb2x2ZWRQ
YXRocy53ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsKKworICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIXdl
YlNRTERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlV2l0aG91dFJlc29sdmluZ1BhdGgod2ViU1FMRGF0YWJhc2VEaXJlY3Rv
cnksIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgd2ViU1FMRGF0YWJhc2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOworCisgICAgU3RyaW5nIG1lZGlhQ2FjaGVEaXJlY3Rvcnkg
PSB3ZWJzaXRlRGF0YVN0b3JlLnJlc29sdmVkTWVkaWFDYWNoZURpcmVjdG9yeSgpOworICAgIGlm
IChtZWRpYUNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgbWVkaWFDYWNoZURpcmVj
dG9yeSA9IG1fcmVzb2x2ZWRQYXRocy5tZWRpYUNhY2hlRGlyZWN0b3J5OwogCi0gICAgcGFyYW1l
dGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCA9IHdlYnNpdGVEYXRhU3RvcmUucmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKTsKKyAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW1lZGlhQ2Fj
aGVEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtZWRpYUNhY2hlRGlyZWN0b3J5LCBTYW5kYm94RXh0
ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIG1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOwogCi0gICAgcHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycyhwYXJhbWV0ZXJzKSwgMCk7CisgICAgU3RyaW5nIG1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRNZWRpYUtleXNEaXJl
Y3RvcnkoKTsKKyAgICBpZiAobWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAg
ICAgICAgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5ID0gbV9yZXNvbHZlZFBhdGhzLm1lZGlhS2V5
U3RvcmFnZURpcmVjdG9yeTsKKworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtZWRpYUtl
eVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFtZWRpYUtleVN0b3Jh
Z2VEaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChtZWRpYUtleVN0b3JhZ2VEaXJlY3RvcnksIFNhbmRi
b3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgbWVkaWFLZXlTdG9yYWdlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKKworICAgIFN0cmluZyBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVj
dG9yeTsKKyAgICBpZiAoIW1famF2YVNjcmlwdENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0
eSgpKQorICAgICAgICBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeSA9IG1famF2YVNj
cmlwdENvbmZpZ3VyYXRpb25EaXJlY3Rvcnk7CisgICAgZWxzZSBpZiAoamF2YVNjcmlwdENvbmZp
Z3VyYXRpb25GaWxlRW5hYmxlZCgpKQorICAgICAgICBqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRp
cmVjdG9yeSA9IHdlYnNpdGVEYXRhU3RvcmUucmVzb2x2ZWRKYXZhU2NyaXB0Q29uZmlndXJhdGlv
bkRpcmVjdG9yeSgpOworCisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGphdmFTY3JpcHRD
b25maWd1cmF0aW9uRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghamF2YVNjcmlw
dENvbmZpZ3VyYXRpb25EaXJlY3RvcnkuaXNFbXB0eSgpKQorICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVXaXRob3V0UmVzb2x2aW5nUGF0aChqYXZhU2NyaXB0Q29uZmlndXJh
dGlvbkRpcmVjdG9yeSwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBqYXZhU2Ny
aXB0Q29uZmlndXJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICByZXR1cm4g
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgeworICAgICAgICB3ZWJzaXRlRGF0YVN0b3Jl
LnNlc3Npb25JRCgpLAorICAgICAgICBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnkp
LAorICAgICAgICBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpLAorICAgICAgICBXVEZNb3ZlKGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9y
eU5hbWUpLAorICAgICAgICBXVEZNb3ZlKHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KSwKKyAgICAg
ICAgV1RGTW92ZSh3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAg
ICAgIFdURk1vdmUobWVkaWFDYWNoZURpcmVjdG9yeSksCisgICAgICAgIFdURk1vdmUobWVkaWFD
YWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAgICAgIFdURk1vdmUobWVkaWFLZXlT
dG9yYWdlRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShtZWRpYUtleVN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpLAorICAgICAgICBXVEZNb3ZlKGphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShqYXZhU2NyaXB0Q29uZmlndXJhdGlvbkRp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSksCisgICAgICAgIHdlYnNpdGVEYXRhU3RvcmUucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKQorICAgIH07CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2Vi
c2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSwgV2ViUHJvY2Vzc1Byb3h5OjpJc1ByZXdh
cm1lZCBpc1ByZXdhcm1lZCkKQEAgLTEwMTIsNiArMTAzMSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgV2Vi
c2l0ZURhCiAgICAgaWYgKCFpbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEpCiAg
ICAgICAgIGluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YSA9IG1faW5qZWN0ZWRC
dW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhOwogICAgIHBhcmFtZXRlcnMuaW5pdGlhbGl6YXRp
b25Vc2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyhp
bmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEuZ2V0KCkpKTsKKyAgICAKKyAgICBp
ZiAod2Vic2l0ZURhdGFTdG9yZSkKKyAgICAgICAgcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3Jl
UGFyYW1ldGVycyA9IHdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKHByb2Nlc3MsICp3ZWJz
aXRlRGF0YVN0b3JlKTsKIAogICAgIHByb2Nlc3Muc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
SW5pdGlhbGl6ZVdlYlByb2Nlc3MocGFyYW1ldGVycyksIDApOwogCkBAIC0xMDE5LDkgKzEwNDEs
NiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjppbml0aWFsaXplTmV3V2ViUHJvY2VzcyhXZWJQcm9j
ZXNzUHJveHkmIHByb2Nlc3MsIFdlYnNpdGVEYQogICAgIHByb2Nlc3Muc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6U2V0UU9TKHdlYlByb2Nlc3NMYXRlbmN5UU9TKCksIHdlYlByb2Nlc3NUaHJv
dWdocHV0UU9TKCkpLCAwKTsKICNlbmRpZgogCi0gICAgaWYgKHdlYnNpdGVEYXRhU3RvcmUpCi0g
ICAgICAgIHNlbmRXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyhwcm9jZXNzLCAqd2Vic2l0
ZURhdGFTdG9yZSk7Ci0KICAgICBpZiAobV9hdXRvbWF0aW9uU2Vzc2lvbikKICAgICAgICAgcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFbnN1cmVBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5KG1fYXV0b21hdGlvblNlc3Npb24tPnNlc3Npb25JZGVudGlmaWVyKCkpLCAwKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggOGExODdjZWE1OGQ3MDdk
ZWJmOGRjNGE4MWYyNDMyMWI4MTllODU5Mi4uMjE0MjVkMmU0ZTdmMjAzYTUwZDhlNGM3MGJlZTIx
MjUxZDNkNjQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBA
IC01MjgsNiArNTI4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SmF2YVNjcmlwdENvbmZpZ3Vy
YXRpb25EaXJlY3RvcnkoU3RyaW5nJiYgZGlyZWN0b3J5KSB7IG1famF2YVNjcmlwdENvbmZpZ3Vy
YXRpb25EaXJlY3RvcnkgPSBkaXJlY3Rvcnk7IH0KICAgICBjb25zdCBTdHJpbmcmIGphdmFTY3Jp
cHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0Q29u
ZmlndXJhdGlvbkRpcmVjdG9yeTsgfQogICAgIAorICAgIFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJh
bWV0ZXJzIHdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIFdl
YnNpdGVEYXRhU3RvcmUmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwogCkBAIC01NDAsNyArNTQyLDYgQEAgcHJpdmF0ZToKIAogICAgIFdlYlByb2Nlc3NQcm94
eSYgY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiwgV2ViUHJvY2Vzc1Byb3h5
OjpJc1ByZXdhcm1lZCA9IFdlYlByb2Nlc3NQcm94eTo6SXNQcmV3YXJtZWQ6Ok5vKTsKICAgICB2
b2lkIGluaXRpYWxpemVOZXdXZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRh
U3RvcmUqLCBXZWJQcm9jZXNzUHJveHk6OklzUHJld2FybWVkID0gV2ViUHJvY2Vzc1Byb3h5OjpJ
c1ByZXdhcm1lZDo6Tm8pOwotICAgIHZvaWQgc2VuZFdlYlByb2Nlc3NEYXRhU3RvcmVQYXJhbWV0
ZXJzKFdlYlByb2Nlc3NQcm94eSYsIFdlYnNpdGVEYXRhU3RvcmUmKTsKIAogICAgIHZvaWQgcmVx
dWVzdFdlYkNvbnRlbnRTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Jik7CiAgICAgdm9pZCBy
ZXF1ZXN0TmV0d29ya2luZ1N0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDMxZmVlNTliNmExMDc2
ZjA5ZDIzYzhiNTdjMmMwNmI5ZTI1ZDg1NDEuLmQzYzgyZjA0Njg0OGM4Y2QwNTliYzI1NjliZjRj
YTI5M2E0ZmYxNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMjI4LDYgKzIyOCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRXZWJzaXRl
RGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkKICAgICBBU1NFUlQoIW1fd2Vi
c2l0ZURhdGFTdG9yZSk7CiAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gJmRhdGFTdG9yZTsKICAg
ICB1cGRhdGVSZWdpc3RyYXRpb25XaXRoRGF0YVN0b3JlKCk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6U2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMocHJvY2Vzc1Bvb2woKS53
ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycygqdGhpcywgZGF0YVN0b3JlKSksIDApOwogfQog
CiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRlUmVnaXN0cmF0aW9uV2l0aERhdGFTdG9yZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZGQwYTYwMGFlNTFi
Mjg2NGFjNmFiYzY3ZDIzMGE1YjllYjBjMmJhYS4uODYwNDZlZTQzMGZmYzE3MmMxYjQzMjIwZjc5
NmI5NWRlNzcxMGEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMjc1LDYgKzI3NSw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBBU1NFUlQo
bV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAKKyAgICBpZiAocGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVycykKKyAgICAgICAgc2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV1RG
TW92ZSgqcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycykpOworCiAgICAgV2Vi
Q29yZTo6c2V0UHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKHBhcmFtZXRlcnMucHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElEKTsKIAogI2lmIE9TKExJTlVYKQpAQCAtNDM2LDYgKzQzOSw5IEBAIHZvaWQg
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0V2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQog
eworICAgIEFTU0VSVCghbV9zZXNzaW9uSUQpOworICAgIG1fc2Vzc2lvbklEID0gcGFyYW1ldGVy
cy5zZXNzaW9uSUQ7CisgICAgCiAgICAgYXV0byYgZGF0YWJhc2VNYW5hZ2VyID0gRGF0YWJhc2VN
YW5hZ2VyOjpzaW5nbGV0b24oKTsKICAgICBkYXRhYmFzZU1hbmFnZXIuaW5pdGlhbGl6ZShwYXJh
bWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKaW5kZXggYmU3MTMwMTU4ODQwNzhiMzg0NWRhMmJjMTljMjkwNTRlMzcyNGRi
My4uOTg1NGIzNmIzOGYzNTI1YjI4N2UwNjU3MjRkMzYyZGM0NzkwYTg1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xNjEsNiArMTYxLDEwIEBAIHB1YmxpYzoKICAg
ICBXZWJQYWdlKiBmb2N1c2VkV2ViUGFnZSgpIGNvbnN0OwogCiAgICAgSW5qZWN0ZWRCdW5kbGUq
IGluamVjdGVkQnVuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9pbmplY3RlZEJ1bmRsZS5nZXQoKTsg
fQorICAgIAorICAgIC8vIFByZXdhcm1lZCBXZWJQcm9jZXNzZXMgZG8gbm90IGhhdmUgYW4gYXNz
b2NpYXRlZCBzZXNzaW9uSUQgeWV0LCB3aGljaCBpcyB3aHkgdGhpcyBpcyBhbiBvcHRpb25hbC4K
KyAgICAvLyBCeSB0aGUgdGltZSB0aGUgV2ViUHJvY2VzcyBnZXRzIGEgV2ViUGFnZSwgaXQgaXMg
Z3VhcmFudGVlZCB0byBoYXZlIGEgc2Vzc2lvbklELgorICAgIGNvbnN0IE9wdGlvbmFsPFBBTDo6
U2Vzc2lvbklEPiYgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGNvbnN0IFdURjo6TWFjaFNlbmRSaWdodCYgY29tcG9z
aXRpbmdSZW5kZXJTZXJ2ZXJQb3J0KCkgY29uc3QgeyByZXR1cm4gbV9jb21wb3NpdGluZ1JlbmRl
clNlcnZlclBvcnQ7IH0KQEAgLTU3Miw2ICs1NzYsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICBIYXNoTWFwPFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgU3RvcmFnZUFyZWFNYXAqPiBtX3N0b3Jh
Z2VBcmVhTWFwczsKKyAgICBPcHRpb25hbDxQQUw6OlNlc3Npb25JRD4gbV9zZXNzaW9uSUQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>