<?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>208895</bug_id>
          
          <creation_ts>2020-03-10 16:56:42 -0700</creation_ts>
          <short_desc>Introduce ResourceLoadStatisticsParameters and move members from NetworkSessionCreationParameters</short_desc>
          <delta_ts>2020-03-11 12:50:01 -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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1628436</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-10 16:56:42 -0700</bug_when>
    <thetext>Introduce ResourceLoadStatisticsParameters and move members from NetworkSessionCreationParameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628437</commentid>
    <comment_count>1</comment_count>
      <attachid>393187</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-10 16:58:17 -0700</bug_when>
    <thetext>Created attachment 393187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628621</commentid>
    <comment_count>2</comment_count>
      <attachid>393187</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-11 06:54:35 -0700</bug_when>
    <thetext>Comment on attachment 393187
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:1176
&gt; +    setResourceLoadStatisticsEnabled(parameters.resourceLoadStatisticsParameters.enableResourceLoadStatistics);

Since this is a NetworkSessionCreationParameters&amp;&amp;, we could move some of these values, like m_resourceLoadStatisticsDirectory

&gt; Source/WebKit/Shared/ResourceLoadStatisticsParameters.h:36
&gt; +struct ResourceLoadStatisticsParameters {

Given we have ResourceLoadStatistics inside ResourceLoadStatisticsParameters, could we remove ResourceLoadStatistics from the parameter names.
For instance s/resourceLoadStatisticsDirectory/directoy and s/resourceLoadStatisticsDirectoryExtensionHandle/directoryExtensionHandle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628689</commentid>
    <comment_count>3</comment_count>
      <attachid>393255</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-11 09:44:12 -0700</bug_when>
    <thetext>Created attachment 393255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628702</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2020-03-11 10:04:51 -0700</bug_when>
    <thetext>It looks good to me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628733</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-11 10:42:03 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 393255:

imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html bug 206554 (authors: shvaikalesh@gmail.com and youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628735</commentid>
    <comment_count>6</comment_count>
      <attachid>393255</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-11 10:42:43 -0700</bug_when>
    <thetext>Comment on attachment 393255
Patch

Clearing flags on attachment: 393255

Committed r258269: &lt;https://trac.webkit.org/changeset/258269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628736</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-11 10:42:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628737</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-11 10:43:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/60330048&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628796</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-03-11 12:45:28 -0700</bug_when>
    <thetext>I think this patch is breaking Apple&apos;s internal builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1628800</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-11 12:50:01 -0700</bug_when>
    <thetext>I believe I fixed that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393187</attachid>
            <date>2020-03-10 16:58:17 -0700</date>
            <delta_ts>2020-03-11 09:44:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208895-20200310165816.patch</filename>
            <type>text/plain</type>
            <size>33956</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgyMzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTEwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIGFuZCBtb3ZlIG1lbWJlcnMgZnJvbSBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yIHlldCwgYnV0IHRoaXMg
d2lsbCBoZWxwIHVzIG9yZ2FuaXplIHRoaW5ncyBiZXR0ZXIuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb246Ok5l
dHdvcmtTZXNzaW9uKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNy
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOgorICAgICAgICAqIFNo
YXJlZC9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICog
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDMtMTAgIEFuZHJlcyBH
b256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBhY2Nlc3Np
YmlsaXR5IElzb2xhdGVkVHJlZSBpbiBXZWJLaXQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkocmV2aXNpb24gMjU4MTQ2KQorKysg
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMzMyw3ICszMzMsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXpl
TmV0d29ya1ByCiAKICAgICBXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZUVuYWJsZWQocGFyYW1ldGVy
cy5lbmFibGVBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUpOwogCi0gICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFt
ZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJt
YW5lbnRseShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIGF1dG8gc2Vzc2lv
bklEID0gcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMuc2Vzc2lvbklEOwogICAgIHNldFNlc3Npb24oc2Vzc2lvbklELCBOZXR3b3Jr
U2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBXVEZNb3ZlKHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9y
ZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKSkpOwpJbmRleDogU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAJKHJldmlzaW9uIDI1
ODE0NikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIE5ldHdvcmtTZXNzaW9uOjpOZXR3b3Jr
U2Vzc2lvbihOZXR3b3JrUHIKICAgICA6IG1fc2Vzc2lvbklEKHBhcmFtZXRlcnMuc2Vzc2lvbklE
KQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgICwgbV9lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTG9nVGVzdGluZ0V2ZW50KHBhcmFtZXRlcnMuZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0xvZ1Rlc3RpbmdFdmVudCkKKyAgICAsIG1fZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xv
Z1Rlc3RpbmdFdmVudChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
LmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQpCiAjZW5kaWYKICAg
ICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlcj4ocGFyYW1ldGVycy5zZXNzaW9uSUQpKQogICAgICwgbV90ZXN0U3BlZWRNdWx0aXBs
aWVyKHBhcmFtZXRlcnMudGVzdFNwZWVkTXVsdGlwbGllcikKQEAgLTEwNSw4ICsxMDUsOCBAQCBO
ZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1ByCiAgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGluaXRpYWxpemUgdGhl
IFdlYktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICgh
cGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgICAg
ICBpZiAoIXBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKICAgICB9CiAKICAgICBtX2lzU3RhbGVXaGlsZVJldmFsaWRhdGVFbmFibGVkID0g
cGFyYW1ldGVycy5zdGFsZVdoaWxlUmV2YWxpZGF0ZUVuYWJsZWQ7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjU4MTQ2KQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY0LDE5ICs2NCw2IEBAIHZvaWQgTmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmls
ZTsKICAgICBlbmNvZGVyIDw8IHByb3h5U2V0dGluZ3M7CiAjZW5kaWYKLSAgICBlbmNvZGVyIDw8
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7Ci0gICAgZW5jb2RlciA8PCByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAgIGVuY29kZXIgPDwg
ZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAgICBlbmNvZGVyIDw8IGlzSXRwU3RhdGVF
eHBsaWNpdGx5U2V0OwotICAgIGVuY29kZXIgPDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0xvZ1Rlc3RpbmdFdmVudDsKLSAgICBlbmNvZGVyIDw8IHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJ
blJlc291cmNlTG9hZFN0YXRpc3RpY3M7Ci0gICAgZW5jb2RlciA8PCBlbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWdNb2RlOwotICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlz
dGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwotI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCi0gICAgZW5jb2RlciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOwot
I2VuZGlmCi0gICAgZW5jb2RlciA8PCBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsK
LQogICAgIGVuY29kZXIgPDwgbmV0d29ya0NhY2hlRGlyZWN0b3J5IDw8IG5ldHdvcmtDYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKIAogICAgIGVuY29kZXIgPDwgZGV2aWNlTWFuYWdlbWVu
dFJlc3RyaWN0aW9uc0VuYWJsZWQ7CkBAIC05MCw2ICs3Nyw3IEBAIHZvaWQgTmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcnM6OmUKICAgICBlbmNvZGVyIDw8IHN1cHByZXNzZXNDb25uZWN0
aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZTsKICAgICBlbmNvZGVyIDw8IGFsbG93c1NlcnZl
clByZWNvbm5lY3Q7CiAgICAgZW5jb2RlciA8PCBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVk
OworICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9CiAK
IE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzPiBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKQEAgLTE4
MSw1OCArMTY5LDYgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcgog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCiAKLSAgICBPcHRpb25hbDxTdHJp
bmc+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7Ci0gICAgZGVjb2RlciA+PiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwotICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZTsKLSAgICBkZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAg
ICBkZWNvZGVyID4+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7Ci0gICAgaWYgKCFlbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
Ci0gICAgT3B0aW9uYWw8Ym9vbD4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7Ci0gICAgZGVjb2Rl
ciA+PiBpc0l0cFN0YXRlRXhwbGljaXRseVNldDsKLSAgICBpZiAoIWlzSXRwU3RhdGVFeHBsaWNp
dGx5U2V0KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9v
bD4gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudDsKLSAgICBkZWNv
ZGVyID4+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQ7Ci0gICAg
aWYgKCFlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50KQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljczsKLSAgICBkZWNvZGVyID4+IHNob3Vs
ZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3M7Ci0gICAgaWYgKCFzaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8Ym9vbD4gZW5hYmxlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZTsKLSAgICBkZWNvZGVyID4+IGVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGU7Ci0gICAgaWYgKCFlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGVidWdNb2RlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgT3B0aW9uYWw8
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQ
cmV2YWxlbnRSZXNvdXJjZTsKLSAgICBkZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKLSAgICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NN
YW51YWxQcmV2YWxlbnRSZXNvdXJjZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgT3B0aW9uYWw8V2ViQ29y
ZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
TW9kZTsKLSAgICBkZWNvZGVyID4+IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7Ci0gICAg
aWYgKCF0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotI2VuZGlmCi0KLSAgICBPcHRpb25hbDxXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZT4gZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7Ci0gICAg
ZGVjb2RlciA+PiBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKLSAgICBpZiAoIWZp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotCiAgICAgT3B0aW9uYWw8U3RyaW5nPiBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CiAgICAg
ZGVjb2RlciA+PiBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CiAgICAgaWYgKCFuZXR3b3JrQ2FjaGVE
aXJlY3RvcnkpCkBAIC0yOTgsNiArMjM0LDExIEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXIKICAgICBpZiAoIWlzSW5BcHBCcm93c2VyUHJpdmFjeUVuYWJsZWQpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVycz4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7Cisg
ICAgZGVjb2RlciA+PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczsKKyAgICBpZiAo
IXJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIAogICAgIHJldHVybiB7ewogICAgICAgICAqc2Vzc2lvbklECiAgICAgICAg
ICwgV1RGTW92ZSgqYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKQpAQCAtMzIzLDIwICsyNjQsOCBA
QCBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyCiAgICAgICAgICwgV1RG
TW92ZSgqY29va2llUGVyc2lzdGVudFN0b3JhZ2VGaWxlKQogICAgICAgICAsIFdURk1vdmUoKnBy
b3h5U2V0dGluZ3MpCiAjZW5kaWYKLSAgICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGlyZWN0b3J5KQotICAgICAgICAsIFdURk1vdmUoKnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgICwgV1RGTW92ZSgqZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljcykKLSAgICAgICAgLCBXVEZNb3ZlKCppc0l0cFN0YXRlRXhwbGlj
aXRseVNldCkKLSAgICAgICAgLCBXVEZNb3ZlKCplbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TG9nVGVzdGluZ0V2ZW50KQotICAgICAgICAsIFdURk1vdmUoKnNob3VsZEluY2x1ZGVMb2NhbGhv
c3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MpCi0gICAgICAgICwgV1RGTW92ZSgqZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSkKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQotICAgICAgICAsIFdURk1vdmUoKnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUpCi0jZW5kaWYKLSAgICAgICAgLCBXVEZNb3ZlKCpmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSkKICAgICAgICAgLCBXVEZNb3ZlKCpkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25z
RW5hYmxlZCkKICAgICAgICAgLCBXVEZNb3ZlKCphbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFn
ZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nKQotICAgICAgICAsIFdURk1vdmUoKnJlc291cmNl
TG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSkKICAgICAgICAgLCBXVEZNb3Zl
KCpuZXR3b3JrQ2FjaGVEaXJlY3RvcnkpCiAgICAgICAgICwgV1RGTW92ZSgqbmV0d29ya0NhY2hl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICAsIFdURk1vdmUoKmRhdGFDb25uZWN0
aW9uU2VydmljZVR5cGUpCkBAIC0zNDgsNiArMjc3LDcgQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Np
b25DcmVhdGlvblBhcmFtZXRlcgogICAgICAgICAsIFdURk1vdmUoKnN1cHByZXNzZXNDb25uZWN0
aW9uVGVybWluYXRpb25PblN5c3RlbUNoYW5nZSkKICAgICAgICAgLCBXVEZNb3ZlKCphbGxvd3NT
ZXJ2ZXJQcmVjb25uZWN0KQogICAgICAgICAsIFdURk1vdmUoKmlzSW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWQpCisgICAgICAgICwgV1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMpCiAgICAgfX07CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgJ
KHJldmlzaW9uIDI1ODE0NikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTMgKzI1
LDExIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lz
dHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCiAjaWYgVVNFKFNPVVApCiAjaW5jbHVkZSAiU291cENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlVHlwZS5oIgpAQCAtNDEsMTEgKzM5LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0N1
cmxQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYKIAotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBFbmNv
ZGVyOwotY2xhc3MgRGVjb2RlcjsKLX0KLQogI2lmIFBMQVRGT1JNKENPQ09BKQogZXh0ZXJuICJD
IiBDRlN0cmluZ1JlZiBjb25zdCBXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXk7CiBleHRlcm4g
IkMiIENGU3RyaW5nUmVmIGNvbnN0IFdlYktpdDJIVFRQU1Byb3h5RGVmYXVsdHNLZXk7CkBAIC04
MywyMCArNzYsOCBAQCBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgCiAg
ICAgU3RyaW5nIGNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmlsZTsKICAgICBXZWJDb3JlOjpDdXJs
UHJveHlTZXR0aW5ncyBwcm94eVNldHRpbmdzOwogI2VuZGlmCi0gICAgU3RyaW5nIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7Ci0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgYm9vbCBl
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgZmFsc2UgfTsKLSAgICBib29sIGlzSXRwU3Rh
dGVFeHBsaWNpdGx5U2V0IHsgZmFsc2UgfTsKLSAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQgeyBmYWxzZSB9OwotICAgIGJvb2wgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IHRydWUgfTsKLSAgICBib29sIGVu
YWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgeyBmYWxzZSB9OwotI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHsgV2ViQ29yZTo6VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTo6QWxsIH07Ci0jZW5kaWYKLSAgICBXZWJDb3JlOjpG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSB7IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOjpBbGxC
dXRDb29raWVzIH07CiAgICAgYm9vbCBkZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nIHsgZmFsc2UgfTsKLSAgICBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9
OwogCiAgICAgU3RyaW5nIG5ldHdvcmtDYWNoZURpcmVjdG9yeTsKICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgbmV0d29ya0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTA5
LDYgKzkwLDggQEAgc3RydWN0IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIAogICAg
IGJvb2wgc3VwcHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIHsgZmFs
c2UgfTsKICAgICBib29sIGFsbG93c1NlcnZlclByZWNvbm5lY3QgeyB0cnVlIH07CiAgICAgYm9v
bCBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkIHsgZmFsc2UgfTsKKyAgICAKKyAgICBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5t
bQkocmV2aXNpb24gMjU4MTQ2KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTY3LDEzICsxMTY3
LDEzIEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EKICAgICBtX2Fs
bExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcgPSBw
YXJhbWV0ZXJzLmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0Zv
clRlc3Rpbmc7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIG1f
cmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RpcmVjdG9yeTsKLSAgICBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBwYXJhbWV0ZXJzLnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgOiBTaG91
bGRJbmNsdWRlTG9jYWxob3N0OjpObzsKLSAgICBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUgPSBwYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
Z01vZGUgPyBFbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObzsKLSAgICBtX3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOwotICAgIG1fdGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZSA9IHBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTsKLSAgICBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gcGFyYW1ldGVycy5m
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKLSAgICBzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpOwor
ICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IHBhcmFtZXRlcnMucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eTsKKyAgICBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnNob3VsZEluY2x1
ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPyBTaG91bGRJbmNsdWRlTG9jYWxo
b3N0OjpZZXMgOiBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpObzsKKyAgICBtX2VuYWJsZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPyBF
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpZZXMgOiBFbmFibGVSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOjpObzsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291
cmNlOworICAgIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSA9IHBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTsKKyAgICBtX2ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0gcGFyYW1ldGVycy5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZTsKKyAgICBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3MpOwogI2VuZGlmCiAKICNpZiBIQVZFKFNFU1NJT05fQ0xFQU5VUCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTM4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4u
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycyB7CisKKyAgICBTdHJp
bmcgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsK
KyAgICBib29sIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MgeyBmYWxzZSB9OworICAgIGJv
b2wgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQgeyBmYWxzZSB9OworICAgIGJvb2wgZW5hYmxlUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudCB7IGZhbHNlIH07CisgICAgYm9vbCBz
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSB7IGZhbHNlIH07
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBXZWJDb3JlOjpUaGly
ZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgeyBX
ZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpBbGwgfTsKKyNlbmRpZgorICAg
IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIGZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlIHsgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGU6OkFsbEJ1dENvb2tpZXMgfTsKKyAgICBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgeyB9OworICAgIAor
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAg
ICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICAgICAg
ZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
OworICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAg
ICAgIGVuY29kZXIgPDwgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7CisgICAgICAgIGVuY29kZXIg
PDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudDsKKyAgICAgICAg
ZW5jb2RlciA8PCBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OworICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01v
ZGU7CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICAgICAgZW5jb2Rl
ciA8PCB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOworI2VuZGlmCisgICAgICAgIGVuY29k
ZXIgPDwgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7CisgICAgICAgIGVuY29kZXIg
PDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlOworICAgIH0K
KworICAgIHN0YXRpYyBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycz4g
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPFN0
cmluZz4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICAgICAgZGVjb2RlciA+
PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OworICAgICAgICBpZiAoIXJlc291cmNl
TG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworICAgICAgICAKKyAgICAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBk
ZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7
CisgICAgICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIAorICAgICAg
ICBPcHRpb25hbDxib29sPiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgICAgICBk
ZWNvZGVyID4+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAgICAgIGlmICghZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7CisgICAgICAgIGlmICgh
aXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OworCisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NM
b2dUZXN0aW5nRXZlbnQ7CisgICAgICAgIGRlY29kZXIgPj4gZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0xvZ1Rlc3RpbmdFdmVudDsKKyAgICAgICAgaWYgKCFlbmFibGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgICAgICBPcHRpb25hbDxib29sPiBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOworICAgICAgICBkZWNvZGVyID4+IHNob3VsZEluY2x1ZGVMb2Nh
bGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAgICAgIGlmICghc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKKyAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gZW5hYmxlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZTsKKyAgICAgICAgZGVjb2RlciA+PiBlbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWdNb2RlOworICAgICAgICBpZiAoIWVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZTsKKyAgICAgICAgZGVjb2RlciA+PiB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
OworICAgICAgICBpZiAoIXRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUpCisgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmCisKKyAgICAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU+IGZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxNb2RlOworICAgICAgICBkZWNvZGVyID4+IGZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlOworICAgICAgICBpZiAoIWZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFBy
ZXZhbGVudFJlc291cmNlOworICAgICAgICBkZWNvZGVyID4+IHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCisgICAgICAgICAgICBXVEZNb3ZlKCpyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKKyAgICAgICAgICAgIFdU
Rk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpLAorICAgICAgICAgICAgV1RGTW92
ZSgqaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQpLAorICAgICAgICAgICAgV1RGTW92ZSgqZW5hYmxl
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudCksCisgICAgICAgICAgICBXVEZN
b3ZlKCpzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSwKKyAg
ICAgICAgICAgIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUp
LAorI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgICAgICAgICBXVEZN
b3ZlKCp0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKSwKKyNlbmRpZgorICAgICAgICAgICAg
V1RGTW92ZSgqZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpLAorICAgICAgICAgICAg
V1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwK
KyAgICAgICAgfX07CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCShyZXZpc2lvbiAyNTgx
NDYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3NywxMyArNTc3LDE1IEBAIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlBy
b2Nlc3NQb29sOjplbnMKICAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1l
dGVycy5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkgPSBXVEZNb3ZlKGNhY2hlU3RvcmFnZURpcmVjdG9y
eSk7CiAgICAgfQogCisgICAgU3RyaW5nIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7
CisgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKG1fd2Vic2l0ZURhdGFTdG9yZSkKLSAgICAg
ICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBh
cmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IG1fd2Vic2l0ZURhdGFT
dG9yZS0+cmVzb2x2ZWRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCk7CisgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPnJl
c29sdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgpOwogICAgIGVsc2UgaWYgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUV4aXN0cygpKQotICAgICAg
ICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gV2ViS2l0OjpXZWJzaXRl
RGF0YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCktPnBhcmFtZXRlcnMoKS5uZXR3b3JrU2Vzc2lv
blBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKKyAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSA9IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
ZGVmYXVsdERhdGFTdG9yZSgpLT5wYXJhbWV0ZXJzKCkubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
LnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NE
aXJlY3Rvcnk7CiAgICAgCi0gICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJh
bWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxl
Rm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnksIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUp
OworICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9y
eShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyA9IGZhbHNlOwogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0xvZ1Rlc3RpbmdFdmVudCA9IGZhbHNlOwpAQCAtNjAyLDEzICs2MDQsMTMgQEAgTmV0d29ya1By
b2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVucwogI2VuZGlmCiAgICAgICAgIGlmIChlbmFi
bGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSB7CiAgICAgICAgICAgICBhdXRvIG5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycyA9IHdpdGhXZWJzaXRlRGF0YVN0b3JlLT5wYXJhbWV0ZXJzKCkubmV0d29y
a1Nlc3Npb25QYXJhbWV0ZXJzOwotICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9
IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzOwotICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGVidWdNb2RlOworICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9
IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzOworICAgICAg
ICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IG5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCi0gICAgICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gbmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7CisgICAg
ICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnRoaXJkUGFydHlDb29raWVC
bG9ja2luZ01vZGU7CiAjZW5kaWYKLSAgICAgICAgICAgIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxNb2RlOwotICAgICAgICAgICAgbWFudWFsUHJldmFsZW50UmVzb3VyY2UgPSBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVu
dFJlc291cmNlOworICAgICAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUg
PSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7CisgICAgICAgICAgICBtYW51YWxQ
cmV2YWxlbnRSZXNvdXJjZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50
UmVzb3VyY2U7CiAgICAgICAgIH0KIAogICAgICAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3Rv
cmVQYXJhbWV0ZXJzLnBlck9yaWdpblN0b3JhZ2VRdW90YSA9IHdpdGhXZWJzaXRlRGF0YVN0b3Jl
LT5wZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKQEAgLTYyNiwxMyArNjI4LDEzIEBAIE5ldHdvcmtQ
cm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnMKICNlbmRpZgogICAgICAgICBpZiAoZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykgewogICAgICAgICAgICAgYXV0byBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPnBhcmFtZXRlcnMoKS5uZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnM7Ci0gICAgICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0ID0g
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNl
TG9hZFN0YXRpc3RpY3M7Ci0gICAgICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGVidWdNb2RlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3NEZWJ1Z01vZGU7CisgICAgICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0ID0g
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
LnNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3M7CisgICAgICAg
ICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gbmV0d29ya1Nlc3Np
b25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmVuYWJsZVJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGU7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLSAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3
b3JrU2Vzc2lvblBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAg
ICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZTsKICNlbmRpZgotICAgICAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGU7Ci0gICAgICAgICAgICBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IG5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50
UmVzb3VyY2U7CisgICAgICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9
IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICAgICAgICAgIG1hbnVhbFBy
ZXZhbGVudFJlc291cmNlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0
YXRpc3RpY3NQYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRS
ZXNvdXJjZTsKICAgICAgICAgfQogCiAgICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9y
ZVBhcmFtZXRlcnMucGVyT3JpZ2luU3RvcmFnZVF1b3RhID0gbV93ZWJzaXRlRGF0YVN0b3JlLT5w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEoKTsKQEAgLTY1NSwxNiArNjU3LDIxIEBAIE5ldHdvcmtQcm9j
ZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnMKICAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRh
U3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZp
Y2VEaXJlY3RvcnkgPSBXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0QWx0ZXJuYXRpdmVTZXJ2aWNl
c0RpcmVjdG9yeSgpOwogICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRX
cml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5hbHRlcm5hdGl2ZVNlcnZpY2VEaXJlY3RvcnksIHBhcmFtZXRl
cnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFs
dGVybmF0aXZlU2VydmljZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKLSAgICBw
YXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljczsKLSAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVzdGlu
Z0V2ZW50ID0gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudDsKLSAg
ICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFy
YW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
c2hvdWxkSW5jbHVkZUxvY2FsaG9zdDsKLSAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQ
YXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlID0gZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTsK
KyAgICBib29sIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0ID0gZmFsc2U7CisgICAgcGFyYW1ldGVy
cy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgPSBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycyB7CisgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSksCisgICAgICAgIFdURk1vdmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVu
c2lvbkhhbmRsZSksCisgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MsCisgICAg
ICAgIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0LAorICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50LAorICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0
LAorICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0
YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSA9IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7CisgICAgICAgIHRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUsCiAjZW5kaWYKLSAgICBwYXJhbWV0ZXJzLmRlZmF1
bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5maXJzdFBhcnR5
V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
OwotCi0gICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291
cmNlID0gbWFudWFsUHJldmFsZW50UmVzb3VyY2U7CisgICAgICAgIGZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlLAorICAgICAgICBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZSwKKyAgICB9
OwogCiAgICAgLy8gQWRkIGFueSBwbGF0Zm9ybSBzcGVjaWZpYyBwYXJhbWV0ZXJzCiAgICAgcGxh
dGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29j
b2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCShyZXZpc2lvbiAyNTgxNDYpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsMjAgQEAgV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMgV2Vic2l0ZURhdGFTdAogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5h
YmxlZCA9IFtkZWZhdWx0cyBib29sRm9yS2V5OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
SW50ZXJuYWxEZWJ1ZyVAIiwgV2ViUHJlZmVyZW5jZXNLZXk6OmlzSW5BcHBCcm93c2VyUHJpdmFj
eUVuYWJsZWRLZXkoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpXV07CiAgICAgCiAgICAgV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKworICAgIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKKyAgICAg
ICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RG
TW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFuZGxlKSwKKyAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSwKKyAgICAgICAgaXNJdHBTdGF0ZUV4cGxpY2l0
bHlTZXQoKSwKKyAgICAgICAgaGFzU3RhdGlzdGljc1Rlc3RpbmdDYWxsYmFjaygpLAorICAgICAg
ICBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLAorICAgICAg
ICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlLAorICAgICAgICB0aGlyZFBh
cnR5Q29va2llQmxvY2tpbmdNb2RlKCksCisgICAgICAgIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQ
cmV2YWxlbnRSZXNvdXJjZSksCisgICAgfTsKKyAgICAKICAgICBwYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycyA9IE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICAgICAgbV9zZXNzaW9uSUQsCiAgICAgICAgIGNvbmZpZ3VyYXRpb24oKS5ib3VuZEludGVyZmFj
ZUlkZW50aWZpZXIoKSwKQEAgLTE4NSwxOCArMTk5LDggQEAgV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMgV2Vic2l0ZURhdGFTdAogICAgICAgICBXVEZNb3ZlKGFsdGVybmF0aXZlU2VydmljZVN0
b3JhZ2VEaXJlY3RvcnkpLAogICAgICAgICBXVEZNb3ZlKGFsdGVybmF0aXZlU2VydmljZVN0b3Jh
Z2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAogI2VuZGlmCi0gICAgICAgIFdURk1vdmUocmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSksCi0gICAgICAgIFdURk1vdmUocmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RpcmVjdG9yeUhhbmRsZSksCi0gICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKCksCi0gICAgICAgIGlzSXRwU3RhdGVFeHBsaWNpdGx5U2V0KCksCi0gICAg
ICAgIGhhc1N0YXRpc3RpY3NUZXN0aW5nQ2FsbGJhY2soKSwKLSAgICAgICAgc2hvdWxkSW5jbHVk
ZUxvY2FsaG9zdEluUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKLSAgICAgICAgZW5hYmxlUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSwKLSAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZSgpLAotICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSwKICAg
ICAgICAgbV9jb25maWd1cmF0aW9uLT5kZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRW5hYmxl
ZCgpLAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmFsbExvYWRzQmxvY2tlZEJ5RGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0ZvclRlc3RpbmcoKSwKLSAgICAgICAgV1RGTW92ZShyZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpLAogICAgICAgICBXVEZNb3Zl
KG5ldHdvcmtDYWNoZURpcmVjdG9yeSksCiAgICAgICAgIFdURk1vdmUobmV0d29ya0NhY2hlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKICAgICAgICAgbV9jb25maWd1cmF0aW9uLT5kYXRhQ29u
bmVjdGlvblNlcnZpY2VUeXBlKCksCkBAIC0yMDcsNyArMjExLDggQEAgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnMgV2Vic2l0ZURhdGFTdAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPnRlc3RT
cGVlZE11bHRpcGxpZXIoKSwKICAgICAgICAgbV9jb25maWd1cmF0aW9uLT5zdXBwcmVzc2VzQ29u
bmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UoKSwKICAgICAgICAgbV9jb25maWd1cmF0
aW9uLT5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KCksCi0gICAgICAgIGlzSW5BcHBCcm93c2VyUHJp
dmFjeUVuYWJsZWQKKyAgICAgICAgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCwKKyAgICAg
ICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycykKICAgICB9OwogCiAg
ICAgYXV0byBjb29raWVGaWxlID0gcmVzb2x2ZWRDb29raWVTdG9yYWdlRmlsZSgpOwpJbmRleDog
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyNTgxNDYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTUyLDYgKzM5NTIsNyBAQAogCQk1ODc3NDNBNDIx
QzMwQUQ4MDBBRTkwODQgLyogSFRUUFNVcGdyYWRlTGlzdC5kYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBIVFRQU1VwZ3JhZGVM
aXN0LmRiOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9IVFRQU1VwZ3JhZGVMaXN0LmRi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1OEU5NzdEQzIxQzQ5OUZF
MDA1RDkyQTYgLyogTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OEU5NzdERDIxQzQ5QTAwMDA1RDkyQTYgLyog
TmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmV0d29ya0hUVFBTVXBncmFkZUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUMwMDk5M0IyNDE3RkI3RTAwRDUzQzI1IC8qIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDMEExMEMxMjM1MjQxQTMwMDUzRTJDQSAvKiBOZXR3b3JrU2NoZW1lUmVnaXN0cnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya1NjaGVtZVJlZ2lzdHJ5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQjE3NzQxRTdDODc5QzAwRTkx
MjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQk1QzBCMTc3NTFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbU1lc3Nh
Z2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU29ja2V0
U3RyZWFtTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAg
LTYwMDYsNiArNjAwNyw3IEBACiAJCQkJOUIxMjI5RDAyM0ZGMkE1RTAwOENBNzUxIC8qIFJlbW90
ZUF1ZGlvRGVzdGluYXRpb25JZGVudGlmaWVyLmggKi8sCiAJCQkJRjZBMEMxM0YxMzI4MUU2RTAw
NzA0MzBGIC8qIFJlc291cmNlQ2FjaGVzVG9DbGVhci5oICovLAogCQkJCTVDQjdBRkU2MjNDNjgx
QjAwMEU0OUNGMyAvKiBSZXNvdXJjZUxvYWRJbmZvLmggKi8sCisJCQkJNUMwMDk5M0IyNDE3RkI3
RTAwRDUzQzI1IC8qIFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmggKi8sCiAJCQkJ
NDEwNDgyQ0IxREREMkZCNTAwRjAwNkQwIC8qIFJUQ05ldHdvcmsuY3BwICovLAogCQkJCTQxMDQ4
MkNDMURERDJGQjUwMEYwMDZEMCAvKiBSVENOZXR3b3JrLmggKi8sCiAJCQkJNDFCMjhCMDkxRjgz
QUQzRTAwRkI1MkFDIC8qIFJUQ1BhY2tldE9wdGlvbnMuY3BwICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393255</attachid>
            <date>2020-03-11 09:44:12 -0700</date>
            <delta_ts>2020-03-11 10:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208895-20200311094412.patch</filename>
            <type>text/plain</type>
            <size>32677</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTgyMzkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTEwICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIGFuZCBtb3ZlIG1lbWJlcnMgZnJvbSBOZXR3
b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4ODk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IgeWV0LCBidXQgdGhpcyB3
aWxsIGhlbHAgdXMgb3JnYW5pemUgdGhpbmdzIGJldHRlci4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2Vzc2lvbjo6TmV0
d29ya1Nlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogU2hh
cmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwYXJhbWV0ZXJzKToKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0wMy0xMCAgQW5kcmVzIEdv
bnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGFjY2Vzc2li
aWxpdHkgSXNvbGF0ZWRUcmVlIGluIFdlYktpdC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAyNTgxNDYpCisrKyBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMzLDcgKzMzMyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVO
ZXR3b3JrUHIKIAogICAgIFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0QWRDbGlja0F0dHJpYnV0aW9uRGVidWdNb2RlRW5hYmxlZChwYXJhbWV0ZXJz
LmVuYWJsZUFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZSk7CiAKLSAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVj
dG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Np
b25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmRpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7CiAKICAgICBhdXRvIHNlc3Npb25JRCA9IHBhcmFtZXRlcnMuZGVmYXVs
dERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNlc3Npb25JRDsK
ICAgICBzZXRTZXNzaW9uKHNlc3Npb25JRCwgTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywg
V1RGTW92ZShwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNz
aW9uUGFyYW1ldGVycykpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uY3BwCShyZXZpc2lvbiAyNTgxNDYpCisrKyBTb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAs
NyArODAsNyBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1ByCiAgICAg
OiBtX3Nlc3Npb25JRChwYXJhbWV0ZXJzLnNlc3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nl
c3MobmV0d29ya1Byb2Nlc3MpCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
LSAgICAsIG1fZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChwYXJh
bWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQpCisgICAg
LCBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQocGFyYW1ldGVy
cy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVMb2dUZXN0aW5nRXZlbnQp
CiAjZW5kaWYKICAgICAsIG1fYWRDbGlja0F0dHJpYnV0aW9uKG1ha2VVbmlxdWVSZWY8QWRDbGlj
a0F0dHJpYnV0aW9uTWFuYWdlcj4ocGFyYW1ldGVycy5zZXNzaW9uSUQpKQogICAgICwgbV90ZXN0
U3BlZWRNdWx0aXBsaWVyKHBhcmFtZXRlcnMudGVzdFNwZWVkTXVsdGlwbGllcikKQEAgLTEwNSw4
ICsxMDUsOCBAQCBOZXR3b3JrU2Vzc2lvbjo6TmV0d29ya1Nlc3Npb24oTmV0d29ya1ByCiAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29ya0NhY2hlLCAiRmFpbGVkIHRvIGlu
aXRpYWxpemUgdGhlIFdlYktpdCBuZXR3b3JrIGRpc2sgY2FjaGUiKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmICghcGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5Lmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRs
eShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGUpOworICAgICAgICBpZiAoIXBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFt
ZXRlcnMuZGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJh
bWV0ZXJzLmRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAgICAgfQogCiAgICAgbV9pc1N0YWxl
V2hpbGVSZXZhbGlkYXRlRW5hYmxlZCA9IHBhcmFtZXRlcnMuc3RhbGVXaGlsZVJldmFsaWRhdGVF
bmFibGVkOwpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9u
IDI1ODE0NikKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCwxOSArNjQsNiBAQCB2
b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5jb2RlciA8PCBj
b29raWVQZXJzaXN0ZW50U3RvcmFnZUZpbGU7CiAgICAgZW5jb2RlciA8PCBwcm94eVNldHRpbmdz
OwogI2VuZGlmCi0gICAgZW5jb2RlciA8PCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5
OwotICAgIGVuY29kZXIgPDwgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3M7Ci0g
ICAgZW5jb2RlciA8PCBpc0l0cFN0YXRlRXhwbGljaXRseVNldDsKLSAgICBlbmNvZGVyIDw8IGVu
YWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQ7Ci0gICAgZW5jb2RlciA8
PCBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwotICAgIGVu
Y29kZXIgPDwgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZTsKLSAgICBlbmNv
ZGVyIDw8IHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNvdXJjZTsKLSNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIGVuY29kZXIgPDwgdGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKLSNlbmRpZgotICAgIGVuY29kZXIgPDwgZmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7Ci0KICAgICBlbmNvZGVyIDw8IG5ldHdvcmtDYWNoZURp
cmVjdG9yeSA8PCBuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAKICAgICBl
bmNvZGVyIDw8IGRldmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkOwpAQCAtOTAsNiAr
NzcsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzOjplCiAgICAgZW5j
b2RlciA8PCBzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2U7CiAg
ICAgZW5jb2RlciA8PCBhbGxvd3NTZXJ2ZXJQcmVjb25uZWN0OwogICAgIGVuY29kZXIgPDwgaXNJ
bkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZDsKKyAgICBlbmNvZGVyIDw8IHJlc291cmNlTG9hZFN0
YXRpc3RpY3NQYXJhbWV0ZXJzOwogfQogCiBPcHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9u
UGFyYW1ldGVycz4gTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIpCkBAIC0xODEsNTggKzE2OSw2IEBAIE9wdGlvbmFsPE5ldHdvcmtT
ZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXIKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNl
bmRpZgogCi0gICAgT3B0aW9uYWw8U3RyaW5nPiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5OwotICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeTsKLSAg
ICBpZiAoIXJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0KLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IHJl
c291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2Rl
ciA+PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwotICAg
IGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPGJvb2w+IGVuYWJsZVJl
c291cmNlTG9hZFN0YXRpc3RpY3M7Ci0gICAgZGVjb2RlciA+PiBlbmFibGVSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOwotICAgIGlmICghZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcykKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPGJvb2w+IGlzSXRwU3RhdGVF
eHBsaWNpdGx5U2V0OwotICAgIGRlY29kZXIgPj4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7Ci0g
ICAgaWYgKCFpc0l0cFN0YXRlRXhwbGljaXRseVNldCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLQotICAgIE9wdGlvbmFsPGJvb2w+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NM
b2dUZXN0aW5nRXZlbnQ7Ci0gICAgZGVjb2RlciA+PiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTG9nVGVzdGluZ0V2ZW50OwotICAgIGlmICghZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0xvZ1Rlc3RpbmdFdmVudCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9w
dGlvbmFsPGJvb2w+IHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M7Ci0gICAgZGVjb2RlciA+PiBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzOwotICAgIGlmICghc2hvdWxkSW5jbHVkZUxvY2FsaG9zdEluUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIE9wdGlvbmFs
PGJvb2w+IGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGU7Ci0gICAgZGVjb2Rl
ciA+PiBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOwotICAgIGlmICghZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSkKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2U7Ci0gICAgZGVjb2RlciA+
PiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2U7Ci0gICAgaWYg
KCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UpCi0gICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU+
IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7Ci0gICAgZGVjb2RlciA+PiB0aGlyZFBhcnR5
Q29va2llQmxvY2tpbmdNb2RlOwotICAgIGlmICghdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSNlbmRpZgotCi0gICAgT3B0aW9uYWw8
V2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU+IGZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlOwotICAgIGRlY29kZXIgPj4gZmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGU7Ci0gICAgaWYgKCFmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQogICAgIE9wdGlvbmFsPFN0cmluZz4gbmV0
d29ya0NhY2hlRGlyZWN0b3J5OwogICAgIGRlY29kZXIgPj4gbmV0d29ya0NhY2hlRGlyZWN0b3J5
OwogICAgIGlmICghbmV0d29ya0NhY2hlRGlyZWN0b3J5KQpAQCAtMjk4LDYgKzIzNCwxMSBAQCBP
cHRpb25hbDxOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVyCiAgICAgaWYgKCFpc0luQXBw
QnJvd3NlclByaXZhY3lFbmFibGVkKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCisg
ICAgT3B0aW9uYWw8UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM+IHJlc291cmNlTG9h
ZFN0YXRpc3RpY3NQYXJhbWV0ZXJzOworICAgIGRlY29kZXIgPj4gcmVzb3VyY2VMb2FkU3RhdGlz
dGljc1BhcmFtZXRlcnM7CisgICAgaWYgKCFyZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVy
cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAKICAgICByZXR1cm4ge3sKICAg
ICAgICAgKnNlc3Npb25JRAogICAgICAgICAsIFdURk1vdmUoKmJvdW5kSW50ZXJmYWNlSWRlbnRp
ZmllcikKQEAgLTMyMywyMCArMjY0LDggQEAgT3B0aW9uYWw8TmV0d29ya1Nlc3Npb25DcmVhdGlv
blBhcmFtZXRlcgogICAgICAgICAsIFdURk1vdmUoKmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlRmls
ZSkKICAgICAgICAgLCBXVEZNb3ZlKCpwcm94eVNldHRpbmdzKQogI2VuZGlmCi0gICAgICAgICwg
V1RGTW92ZSgqcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSkKLSAgICAgICAgLCBXVEZN
b3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKQotICAg
ICAgICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3MpCi0gICAgICAgICwg
V1RGTW92ZSgqaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQpCi0gICAgICAgICwgV1RGTW92ZSgqZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudCkKLSAgICAgICAgLCBXVEZN
b3ZlKCpzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzKQotICAg
ICAgICAsIFdURk1vdmUoKmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpCi0j
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICAgICAgLCBXVEZNb3ZlKCp0
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKQotI2VuZGlmCi0gICAgICAgICwgV1RGTW92ZSgq
Zmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUpCiAgICAgICAgICwgV1RGTW92ZSgqZGV2
aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQpCiAgICAgICAgICwgV1RGTW92ZSgqYWxs
TG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZykKLSAg
ICAgICAgLCBXVEZNb3ZlKCpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVz
b3VyY2UpCiAgICAgICAgICwgV1RGTW92ZSgqbmV0d29ya0NhY2hlRGlyZWN0b3J5KQogICAgICAg
ICAsIFdURk1vdmUoKm5ldHdvcmtDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkKICAgICAg
ICAgLCBXVEZNb3ZlKCpkYXRhQ29ubmVjdGlvblNlcnZpY2VUeXBlKQpAQCAtMzQ4LDYgKzI3Nyw3
IEBAIE9wdGlvbmFsPE5ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXIKICAgICAgICAgLCBX
VEZNb3ZlKCpzdXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UpCiAg
ICAgICAgICwgV1RGTW92ZSgqYWxsb3dzU2VydmVyUHJlY29ubmVjdCkKICAgICAgICAgLCBXVEZN
b3ZlKCppc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkKQorICAgICAgICAsIFdURk1vdmUoKnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH19OwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbkNyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZpc2lvbiAyNTgxNDYpCisrKyBTb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDEzICsyNSwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShTT1VQKQogI2lu
Y2x1ZGUgIlNvdXBDb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUuaCIKQEAgLTQxLDExICszOSw2
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJsUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKLW5h
bWVzcGFjZSBJUEMgewotY2xhc3MgRW5jb2RlcjsKLWNsYXNzIERlY29kZXI7Ci19Ci0KICNpZiBQ
TEFURk9STShDT0NPQSkKIGV4dGVybiAiQyIgQ0ZTdHJpbmdSZWYgY29uc3QgV2ViS2l0MkhUVFBQ
cm94eURlZmF1bHRzS2V5OwogZXh0ZXJuICJDIiBDRlN0cmluZ1JlZiBjb25zdCBXZWJLaXQySFRU
UFNQcm94eURlZmF1bHRzS2V5OwpAQCAtODMsMjAgKzc2LDggQEAgc3RydWN0IE5ldHdvcmtTZXNz
aW9uQ3JlYXRpb25QYXJhbWV0ZXJzIAogICAgIFN0cmluZyBjb29raWVQZXJzaXN0ZW50U3RvcmFn
ZUZpbGU7CiAgICAgV2ViQ29yZTo6Q3VybFByb3h5U2V0dGluZ3MgcHJveHlTZXR0aW5nczsKICNl
bmRpZgotICAgIFN0cmluZyByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5OwotICAgIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlOwotICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcyB7IGZh
bHNlIH07Ci0gICAgYm9vbCBpc0l0cFN0YXRlRXhwbGljaXRseVNldCB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50IHsgZmFsc2Ug
fTsKLSAgICBib29sIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgeyB0cnVlIH07Ci0gICAgYm9vbCBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdN
b2RlIHsgZmFsc2UgfTsKLSNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAg
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgdGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9
OwotI2VuZGlmCi0gICAgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUg
Zmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgeyBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZTo6QWxsQnV0Q29va2llcyB9OwogICAgIGJvb2wgZGV2aWNlTWFu
YWdlbWVudFJlc3RyaWN0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYWxsTG9hZHNC
bG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVzdGluZyB7IGZhbHNlIH07
Ci0gICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VMb2FkU3RhdGlzdGljc01h
bnVhbFByZXZhbGVudFJlc291cmNlIHsgfTsKIAogICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJl
Y3Rvcnk7CiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG5ldHdvcmtDYWNoZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZTsKQEAgLTEwOSw2ICs5MCw4IEBAIHN0cnVjdCBOZXR3b3JrU2Vzc2lv
bkNyZWF0aW9uUGFyYW1ldGVycyAKICAgICBib29sIHN1cHByZXNzZXNDb25uZWN0aW9uVGVybWlu
YXRpb25PblN5c3RlbUNoYW5nZSB7IGZhbHNlIH07CiAgICAgYm9vbCBhbGxvd3NTZXJ2ZXJQcmVj
b25uZWN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZCB7
IGZhbHNlIH07CisgICAgCisgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVz
b3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0JKHJldmlzaW9uIDI1ODE0NikKKysrIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTE2NywxMyArMTE2NywxMyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpOZXR3
b3JrU2Vzc2lvbkNvY29hCiAgICAgbV9hbGxMb2Fkc0Jsb2NrZWRCeURldmljZU1hbmFnZW1lbnRS
ZXN0cmljdGlvbnNGb3JUZXN0aW5nID0gcGFyYW1ldGVycy5hbGxMb2Fkc0Jsb2NrZWRCeURldmlj
ZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNGb3JUZXN0aW5nOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnkg
PSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnk7Ci0gICAgbV9zaG91
bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gcGFyYW1ldGVycy5z
aG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzID8gU2hvdWxkSW5j
bHVkZUxvY2FsaG9zdDo6WWVzIDogU2hvdWxkSW5jbHVkZUxvY2FsaG9zdDo6Tm87Ci0gICAgbV9l
bmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID0gcGFyYW1ldGVycy5lbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlID8gRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZTo6WWVzIDogRW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9k
ZTo6Tm87Ci0gICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3Vy
Y2UgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2YWxlbnRSZXNv
dXJjZTsKLSAgICBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBwYXJhbWV0ZXJzLnRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU7Ci0gICAgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZSA9IHBhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7
Ci0gICAgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQocGFyYW1ldGVycy5lbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTsKKyAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3RvcnkgPSBXVEZNb3ZlKHBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuZGlyZWN0b3J5KTsKKyAgICBtX3Nob3VsZEluY2x1ZGVMb2NhbGhvc3RJblJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJz
LnNob3VsZEluY2x1ZGVMb2NhbGhvc3QgPyBTaG91bGRJbmNsdWRlTG9jYWxob3N0OjpZZXMgOiBT
aG91bGRJbmNsdWRlTG9jYWxob3N0OjpObzsKKyAgICBtX2VuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGUgPSBwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0
ZXJzLmVuYWJsZURlYnVnTW9kZSA/IEVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01v
ZGU6OlllcyA6IEVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGU6Ok5vOworICAg
IG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlID0gcGFyYW1l
dGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5tYW51YWxQcmV2YWxlbnRSZXNv
dXJjZTsKKyAgICBtX3RoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBwYXJhbWV0ZXJzLnJl
c291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLnRoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGU7CisgICAgbV9maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IHBhcmFtZXRlcnMu
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGU7CisgICAgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQocGFyYW1ldGVy
cy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVkKTsKICNlbmRpZgogCiAj
aWYgSEFWRShTRVNTSU9OX0NMRUFOVVApCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRl
cnMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJTYW5kYm94
RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgeworCisgICAgU3RyaW5nIGRpcmVjdG9yeTsKKyAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOworICAgIGJv
b2wgZW5hYmxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBpc0l0cFN0YXRlRXhwbGljaXRseVNldCB7
IGZhbHNlIH07CisgICAgYm9vbCBlbmFibGVMb2dUZXN0aW5nRXZlbnQgeyBmYWxzZSB9OworICAg
IGJvb2wgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCB7IHRydWUgfTsKKyAgICBib29sIGVuYWJsZURl
YnVnTW9kZSB7IGZhbHNlIH07CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
KyAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIHRoaXJkUGFydHlDb29r
aWVCbG9ja2luZ01vZGUgeyBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlOjpB
bGwgfTsKKyNlbmRpZgorICAgIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlIGZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIHsgV2ViQ29yZTo6Rmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU6OkFsbEJ1dENvb2tpZXMgfTsKKyAgICBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZSB7IH07CisgICAgCisgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
ZW5jb2RlciA8PCBkaXJlY3Rvcnk7CisgICAgICAgIGVuY29kZXIgPDwgZGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOworICAgICAgICBlbmNvZGVyIDw8IGVuYWJsZWQ7CisgICAgICAgIGVuY29kZXIg
PDwgaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7CisgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlTG9n
VGVzdGluZ0V2ZW50OworICAgICAgICBlbmNvZGVyIDw8IHNob3VsZEluY2x1ZGVMb2NhbGhvc3Q7
CisgICAgICAgIGVuY29kZXIgPDwgZW5hYmxlRGVidWdNb2RlOworI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCisgICAgICAgIGVuY29kZXIgPDwgdGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nTW9kZTsKKyNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IGZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlOworICAgICAgICBlbmNvZGVyIDw8IG1hbnVhbFByZXZhbGVudFJlc291
cmNlOworICAgIH0KKworICAgIHN0YXRpYyBPcHRpb25hbDxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAg
IE9wdGlvbmFsPFN0cmluZz4gZGlyZWN0b3J5OworICAgICAgICBkZWNvZGVyID4+IGRpcmVjdG9y
eTsKKyAgICAgICAgaWYgKCFkaXJlY3RvcnkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworICAgICAgICAKKyAgICAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBkaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4gZGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBpZiAoIWRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIAorICAgICAgICBPcHRp
b25hbDxib29sPiBlbmFibGVkOworICAgICAgICBkZWNvZGVyID4+IGVuYWJsZWQ7CisgICAgICAg
IGlmICghZW5hYmxlZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAg
ICAgT3B0aW9uYWw8Ym9vbD4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7CisgICAgICAgIGRlY29k
ZXIgPj4gaXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7CisgICAgICAgIGlmICghaXNJdHBTdGF0ZUV4
cGxpY2l0bHlTZXQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAg
IE9wdGlvbmFsPGJvb2w+IGVuYWJsZUxvZ1Rlc3RpbmdFdmVudDsKKyAgICAgICAgZGVjb2RlciA+
PiBlbmFibGVMb2dUZXN0aW5nRXZlbnQ7CisgICAgICAgIGlmICghZW5hYmxlTG9nVGVzdGluZ0V2
ZW50KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxib29sPiBzaG91bGRJbmNsdWRlTG9jYWxob3N0OworICAgICAgICBkZWNvZGVyID4+IHNob3Vs
ZEluY2x1ZGVMb2NhbGhvc3Q7CisgICAgICAgIGlmICghc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8Ym9v
bD4gZW5hYmxlRGVidWdNb2RlOworICAgICAgICBkZWNvZGVyID4+IGVuYWJsZURlYnVnTW9kZTsK
KyAgICAgICAgaWYgKCFlbmFibGVEZWJ1Z01vZGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICAgICAg
T3B0aW9uYWw8V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZT4gdGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgZGVjb2RlciA+PiB0aGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlOworICAgICAgICBpZiAoIXRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmCisKKyAgICAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU+IGZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlOworICAgICAgICBkZWNvZGVyID4+IGZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlOworICAgICAgICBpZiAoIWZpcnN0UGFydHlXZWJzaXRlRGF0
YVJlbW92YWxNb2RlKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gbWFudWFsUHJldmFsZW50UmVz
b3VyY2U7CisgICAgICAgIGRlY29kZXIgPj4gbWFudWFsUHJldmFsZW50UmVzb3VyY2U7CisgICAg
ICAgIGlmICghbWFudWFsUHJldmFsZW50UmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgV1RGTW92ZSgqZGly
ZWN0b3J5KSwKKyAgICAgICAgICAgIFdURk1vdmUoKmRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSks
CisgICAgICAgICAgICBXVEZNb3ZlKCplbmFibGVkKSwKKyAgICAgICAgICAgIFdURk1vdmUoKmlz
SXRwU3RhdGVFeHBsaWNpdGx5U2V0KSwKKyAgICAgICAgICAgIFdURk1vdmUoKmVuYWJsZUxvZ1Rl
c3RpbmdFdmVudCksCisgICAgICAgICAgICBXVEZNb3ZlKCpzaG91bGRJbmNsdWRlTG9jYWxob3N0
KSwKKyAgICAgICAgICAgIFdURk1vdmUoKmVuYWJsZURlYnVnTW9kZSksCisjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICAgICAgICAgIFdURk1vdmUoKnRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUpLAorI2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCpmaXJzdFBh
cnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSksCisgICAgICAgICAgICBXVEZNb3ZlKCptYW51YWxQ
cmV2YWxlbnRSZXNvdXJjZSksCisgICAgICAgIH19OworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcAkocmV2aXNpb24gMjU4MTQ2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzcsMTMgKzU3NywxNSBAQCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6ZW5zCiAgICAgICAgIHBhcmFtZXRlcnMuZGVm
YXVsdERhdGFTdG9yZVBhcmFtZXRlcnMuY2FjaGVTdG9yYWdlRGlyZWN0b3J5ID0gV1RGTW92ZShj
YWNoZVN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIH0KIAorICAgIFN0cmluZyByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGlyZWN0b3J5OworICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogICAgIGlmIChtX3dlYnNp
dGVEYXRhU3RvcmUpCi0gICAgICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRl
cnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rv
cnkgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlc29sdmVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rp
cmVjdG9yeSgpOworICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5ID0gbV93
ZWJzaXRlRGF0YVN0b3JlLT5yZXNvbHZlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnko
KTsKICAgICBlbHNlIGlmIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3Rv
cmVFeGlzdHMoKSkKLSAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVy
cy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9y
eSA9IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT5wYXJhbWV0
ZXJzKCkubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJl
Y3Rvcnk7CisgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnkgPSBXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS0+cGFyYW1ldGVycygpLm5ldHdv
cmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5kaXJl
Y3Rvcnk7CiAgICAgCi0gICAgaWYgKCFwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
UmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMu
bmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3Rvcnks
IHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJh
bWV0ZXJzLnJlc291cmNlTG9hZFN0YXRpc3RpY3NEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwor
ICAgIGlmICghcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAg
ICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IGZhbHNlOwogICAgIGJvb2wgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0xv
Z1Rlc3RpbmdFdmVudCA9IGZhbHNlOwpAQCAtNjAyLDEzICs2MDQsMTMgQEAgTmV0d29ya1Byb2Nl
c3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmVucwogI2VuZGlmCiAgICAgICAgIGlmIChlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKSB7CiAgICAgICAgICAgICBhdXRvIG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycyA9IHdpdGhXZWJzaXRlRGF0YVN0b3JlLT5wYXJhbWV0ZXJzKCkubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzOwotICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOwotICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlOworICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5z
aG91bGRJbmNsdWRlTG9jYWxob3N0OworICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGFyYW1ldGVycy5lbmFibGVEZWJ1Z01vZGU7CiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01v
ZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTsKKyAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKICNlbmRpZgotICAgICAgICAgICAgZmlyc3RQYXJ0eVdlYnNp
dGVEYXRhUmVtb3ZhbE1vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGU7Ci0gICAgICAgICAgICBtYW51YWxQcmV2YWxlbnRSZXNvdXJj
ZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFs
UHJldmFsZW50UmVzb3VyY2U7CisgICAgICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGFyYW1ldGVycy5maXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICAgICAgICAg
IG1hbnVhbFByZXZhbGVudFJlc291cmNlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291
cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNlOwogICAg
ICAgICB9CiAKICAgICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5w
ZXJPcmlnaW5TdG9yYWdlUXVvdGEgPSB3aXRoV2Vic2l0ZURhdGFTdG9yZS0+cGVyT3JpZ2luU3Rv
cmFnZVF1b3RhKCk7CkBAIC02MjYsMTMgKzYyOCwxMyBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBX
ZWJQcm9jZXNzUG9vbDo6ZW5zCiAjZW5kaWYKICAgICAgICAgaWYgKGVuYWJsZVJlc291cmNlTG9h
ZFN0YXRpc3RpY3MpIHsKICAgICAgICAgICAgIGF1dG8gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJz
ID0gbV93ZWJzaXRlRGF0YVN0b3JlLT5wYXJhbWV0ZXJzKCkubmV0d29ya1Nlc3Npb25QYXJhbWV0
ZXJzOwotICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5zaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OwotICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSA9IG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5lbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdN
b2RlOworICAgICAgICAgICAgc2hvdWxkSW5jbHVkZUxvY2FsaG9zdCA9IG5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5zaG91bGRJbmNsdWRl
TG9jYWxob3N0OworICAgICAgICAgICAgZW5hYmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSA9IG5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFy
YW1ldGVycy5lbmFibGVEZWJ1Z01vZGU7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLSAgICAgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3Jr
U2Vzc2lvblBhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAg
ICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRl
cnMucmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMudGhpcmRQYXJ0eUNvb2tpZUJsb2Nr
aW5nTW9kZTsKICNlbmRpZgotICAgICAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3Zh
bE1vZGUgPSBuZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGU7Ci0gICAgICAgICAgICBtYW51YWxQcmV2YWxlbnRSZXNvdXJjZSA9IG5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVz
b3VyY2U7CisgICAgICAgICAgICBmaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSA9IG5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1ldGVycy5m
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZTsKKyAgICAgICAgICAgIG1hbnVhbFByZXZh
bGVudFJlc291cmNlID0gbmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NQYXJhbWV0ZXJzLm1hbnVhbFByZXZhbGVudFJlc291cmNlOwogICAgICAgICB9CiAKICAg
ICAgICAgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1ldGVycy5wZXJPcmlnaW5TdG9y
YWdlUXVvdGEgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPnBlck9yaWdpblN0b3JhZ2VRdW90YSgpOwpA
QCAtNjU1LDE2ICs2NTcsMjEgQEAgTmV0d29ya1Byb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6
OmVucwogICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nl
c3Npb25QYXJhbWV0ZXJzLmFsdGVybmF0aXZlU2VydmljZURpcmVjdG9yeSA9IFdlYnNpdGVEYXRh
U3RvcmU6OmRlZmF1bHRBbHRlcm5hdGl2ZVNlcnZpY2VzRGlyZWN0b3J5KCk7CiAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMu
ZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmFsdGVy
bmF0aXZlU2VydmljZURpcmVjdG9yeSwgcGFyYW1ldGVycy5kZWZhdWx0RGF0YVN0b3JlUGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMuYWx0ZXJuYXRpdmVTZXJ2aWNlRGlyZWN0b3J5
RXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgotICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9y
ZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwotICAgIHBhcmFtZXRlcnMu
ZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmVuYWJs
ZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQgPSBlbmFibGVSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50OwotICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFT
dG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzLnNob3VsZEluY2x1ZGVMb2Nh
bGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzaG91bGRJbmNsdWRlTG9jYWxob3N0Owot
ICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUgPSBlbmFibGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlOworICAgIGJvb2wgaXNJdHBTdGF0ZUV4cGxp
Y2l0bHlTZXQgPSBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0
ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzUGFyYW1l
dGVycyA9IFJlc291cmNlTG9hZFN0YXRpc3RpY3NQYXJhbWV0ZXJzIHsKKyAgICAgICAgV1RGTW92
ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KSwKKyAgICAgICAgV1RGTW92ZShyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSwKKyAgICAgICAgZW5h
YmxlUmVzb3VyY2VMb2FkU3RhdGlzdGljcywKKyAgICAgICAgaXNJdHBTdGF0ZUV4cGxpY2l0bHlT
ZXQsCisgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQs
CisgICAgICAgIHNob3VsZEluY2x1ZGVMb2NhbGhvc3QsCisgICAgICAgIGVuYWJsZVJlc291cmNl
TG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUsCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLSAgICBwYXJhbWV0ZXJzLmRlZmF1bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtT
ZXNzaW9uUGFyYW1ldGVycy50aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlID0gdGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nTW9kZTsKKyAgICAgICAgdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSwKICNlbmRpZgotICAgIHBhcmFtZXRlcnMuZGVmYXVsdERhdGFTdG9yZVBhcmFtZXRlcnMubmV0
d29ya1Nlc3Npb25QYXJhbWV0ZXJzLmZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlID0g
Zmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGU7Ci0KLSAgICBwYXJhbWV0ZXJzLmRlZmF1
bHREYXRhU3RvcmVQYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycy5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWFudWFsUHJldmFsZW50UmVzb3VyY2UgPSBtYW51YWxQcmV2YWxlbnRSZXNv
dXJjZTsKKyAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCisgICAgICAg
IG1hbnVhbFByZXZhbGVudFJlc291cmNlLAorICAgIH07CiAKICAgICAvLyBBZGQgYW55IHBsYXRm
b3JtIHNwZWNpZmljIHBhcmFtZXRlcnMKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJv
Y2VzcyhwYXJhbWV0ZXJzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0JKHJldmlzaW9uIDI1ODE0NikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcw
LDYgKzE3MCwyMCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAg
ICAgYm9vbCBpc0luQXBwQnJvd3NlclByaXZhY3lFbmFibGVkID0gW2RlZmF1bHRzIGJvb2xGb3JL
ZXk6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJJbnRlcm5hbERlYnVnJUAiLCBXZWJQcmVm
ZXJlbmNlc0tleTo6aXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZEtleSgpLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCldXTsKICAgICAKICAgICBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJh
bWV0ZXJzOworCisgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgcmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BhcmFtZXRlcnMgeworICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0
YXRpc3RpY3NEaXJlY3RvcnkpLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEaXJlY3RvcnlIYW5kbGUpLAorICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpLAorICAgICAgICBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpLAorICAgICAgICBoYXNTdGF0
aXN0aWNzVGVzdGluZ0NhbGxiYWNrKCksCisgICAgICAgIHNob3VsZEluY2x1ZGVMb2NhbGhvc3RJ
blJlc291cmNlTG9hZFN0YXRpc3RpY3MsCisgICAgICAgIGVuYWJsZVJlc291cmNlTG9hZFN0YXRp
c3RpY3NEZWJ1Z01vZGUsCisgICAgICAgIHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoKSwK
KyAgICAgICAgZmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsCisgICAgICAgIFdURk1v
dmUocmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbnVhbFByZXZhbGVudFJlc291cmNlKSwKKyAgICB9
OworICAgIAogICAgIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzID0gTmV0d29y
a1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMgewogICAgICAgICBtX3Nlc3Npb25JRCwKICAgICAg
ICAgY29uZmlndXJhdGlvbigpLmJvdW5kSW50ZXJmYWNlSWRlbnRpZmllcigpLApAQCAtMTg1LDE4
ICsxOTksOCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0CiAgICAg
ICAgIFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeSksCiAgICAgICAg
IFdURk1vdmUoYWx0ZXJuYXRpdmVTZXJ2aWNlU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRs
ZSksCiAjZW5kaWYKLSAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0
b3J5KSwKLSAgICAgICAgV1RGTW92ZShyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5SGFu
ZGxlKSwKLSAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSwKLSAgICAgICAg
aXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQoKSwKLSAgICAgICAgaGFzU3RhdGlzdGljc1Rlc3RpbmdD
YWxsYmFjaygpLAotICAgICAgICBzaG91bGRJbmNsdWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLAotICAgICAgICBlbmFibGVSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2Rl
LAotICAgICAgICB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCksCi0gICAgICAgIGZpcnN0
UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmRl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnNFbmFibGVkKCksCiAgICAgICAgIG1fY29uZmlndXJh
dGlvbi0+YWxsTG9hZHNCbG9ja2VkQnlEZXZpY2VNYW5hZ2VtZW50UmVzdHJpY3Rpb25zRm9yVGVz
dGluZygpLAotICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW51YWxQcmV2
YWxlbnRSZXNvdXJjZSksCiAgICAgICAgIFdURk1vdmUobmV0d29ya0NhY2hlRGlyZWN0b3J5KSwK
ICAgICAgICAgV1RGTW92ZShuZXR3b3JrQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpLAog
ICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmRhdGFDb25uZWN0aW9uU2VydmljZVR5cGUoKSwKQEAg
LTIwNyw3ICsyMTEsOCBAQCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0
CiAgICAgICAgIG1fY29uZmlndXJhdGlvbi0+dGVzdFNwZWVkTXVsdGlwbGllcigpLAogICAgICAg
ICBtX2NvbmZpZ3VyYXRpb24tPnN1cHByZXNzZXNDb25uZWN0aW9uVGVybWluYXRpb25PblN5c3Rl
bUNoYW5nZSgpLAogICAgICAgICBtX2NvbmZpZ3VyYXRpb24tPmFsbG93c1NlcnZlclByZWNvbm5l
Y3QoKSwKLSAgICAgICAgaXNJbkFwcEJyb3dzZXJQcml2YWN5RW5hYmxlZAorICAgICAgICBpc0lu
QXBwQnJvd3NlclByaXZhY3lFbmFibGVkLAorICAgICAgICBXVEZNb3ZlKHJlc291cmNlTG9hZFN0
YXRpc3RpY3NQYXJhbWV0ZXJzKQogICAgIH07CiAKICAgICBhdXRvIGNvb2tpZUZpbGUgPSByZXNv
bHZlZENvb2tpZVN0b3JhZ2VGaWxlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1ODE0NikKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTM5NTIsNiArMzk1Miw3IEBACiAJCTU4Nzc0M0E0MjFDMzBBRDgwMEFFOTA4NCAvKiBIVFRQU1Vw
Z3JhZGVMaXN0LmRiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9IEhUVFBTVXBncmFkZUxpc3QuZGI7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL0hUVFBTVXBncmFkZUxpc3QuZGI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTU4RTk3N0RDMjFDNDk5RkUwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNV
cGdyYWRlQ2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBO
ZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU4RTk3N0REMjFDNDlBMDAwMDVEOTJBNiAvKiBOZXR3b3JrSFRUUFNVcGdyYWRlQ2hlY2tl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrSFRUUFNVcGdyYWRl
Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzAwOTkzQjI0MTdGQjdF
MDBENTNDMjUgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BhcmFtZXRlcnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQTEwQzEyMzUyNDFBMzAwNTNFMkNB
IC8qIE5ldHdvcmtTY2hlbWVSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrU2NoZW1lUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1QzBCMTc3NDFFN0M4NzlDMDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVh
bU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVDMEIxNzc1MUU3Qzg3OUMwMEU5
MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNjAwNiw2ICs2MDA3LDcgQEAKIAkJCQk5
QjEyMjlEMDIzRkYyQTVFMDA4Q0E3NTEgLyogUmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZp
ZXIuaCAqLywKIAkJCQlGNkEwQzEzRjEzMjgxRTZFMDA3MDQzMEYgLyogUmVzb3VyY2VDYWNoZXNU
b0NsZWFyLmggKi8sCiAJCQkJNUNCN0FGRTYyM0M2ODFCMDAwRTQ5Q0YzIC8qIFJlc291cmNlTG9h
ZEluZm8uaCAqLywKKwkJCQk1QzAwOTkzQjI0MTdGQjdFMDBENTNDMjUgLyogUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1BhcmFtZXRlcnMuaCAqLywKIAkJCQk0MTA0ODJDQjFEREQyRkI1MDBGMDA2RDAg
LyogUlRDTmV0d29yay5jcHAgKi8sCiAJCQkJNDEwNDgyQ0MxREREMkZCNTAwRjAwNkQwIC8qIFJU
Q05ldHdvcmsuaCAqLywKIAkJCQk0MUIyOEIwOTFGODNBRDNFMDBGQjUyQUMgLyogUlRDUGFja2V0
T3B0aW9ucy5jcHAgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>