<?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>226910</bug_id>
          
          <creation_ts>2021-06-10 20:13:40 -0700</creation_ts>
          <short_desc>Partition CrossOriginPreflightResultCache by SessionID</short_desc>
          <delta_ts>2021-06-14 12:38:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1768860</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-10 20:13:40 -0700</bug_when>
    <thetext>Partition CrossOriginPreflightResultCache by SessionID</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768861</commentid>
    <comment_count>1</comment_count>
      <attachid>431172</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-10 20:14:32 -0700</bug_when>
    <thetext>Created attachment 431172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768875</commentid>
    <comment_count>2</comment_count>
      <attachid>431179</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-10 21:30:38 -0700</bug_when>
    <thetext>Created attachment 431179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768885</commentid>
    <comment_count>3</comment_count>
      <attachid>431179</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-10 23:43:17 -0700</bug_when>
    <thetext>Comment on attachment 431179
Patch


Can we get an API test for this one?
Something like:
- load a page with a sessionID, trigger a preflight and verify server has received a preflight.
- load another page in same pool but with a different sessionID, trigger the same prefllight and verify again the server has received the preflight.

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

&gt; Source/WebCore/loader/CrossOriginAccessControl.cpp:260
&gt; +Expected&lt;void, String&gt; validatePreflightResponse(const PAL::SessionID&amp; sessionID, const ResourceRequest&amp; request, const ResourceResponse&amp; response, StoredCredentialsPolicy storedCredentialsPolicy, const SecurityOrigin&amp; securityOrigin, const CrossOriginAccessControlCheckDisabler* checkDisabler)

s/const PAL::SessionID&amp;/PAL::SessionID

&gt; Source/WebCore/loader/CrossOriginAccessControl.h:85
&gt; +WEBCORE_EXPORT Expected&lt;void, String&gt; validatePreflightResponse(const PAL::SessionID&amp;, const ResourceRequest&amp;, const ResourceResponse&amp;, StoredCredentialsPolicy, const SecurityOrigin&amp;, const CrossOriginAccessControlCheckDisabler*);

Ditto here and below I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768962</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-11 09:16:29 -0700</bug_when>
    <thetext>That&apos;s a good idea for a test.  Will do.
const PAL::SessionID&amp; is used so we can only forward declare SessionID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768989</commentid>
    <comment_count>5</comment_count>
      <attachid>431210</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-11 10:55:46 -0700</bug_when>
    <thetext>Created attachment 431210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769133</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-11 17:06:28 -0700</bug_when>
    <thetext>Committed r278800 (238757@main): &lt;https://commits.webkit.org/238757@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431210.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769134</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-11 17:07:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/79223523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769294</commentid>
    <comment_count>8</comment_count>
      <attachid>431210</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-13 12:21:45 -0700</bug_when>
    <thetext>Comment on attachment 431210
Patch

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

&gt; Source/WebCore/loader/CrossOriginAccessControl.h:85
&gt; +WEBCORE_EXPORT Expected&lt;void, String&gt; validatePreflightResponse(const PAL::SessionID&amp;, const ResourceRequest&amp;, const ResourceResponse&amp;, StoredCredentialsPolicy, const SecurityOrigin&amp;, const CrossOriginAccessControlCheckDisabler*);

Since a SessionID is just a single 64-bit integer, I suggest we pass it by value, not const&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769501</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-06-14 12:38:15 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 431210 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431210&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/CrossOriginAccessControl.h:85
&gt; &gt; +WEBCORE_EXPORT Expected&lt;void, String&gt; validatePreflightResponse(const PAL::SessionID&amp;, const ResourceRequest&amp;, const ResourceResponse&amp;, StoredCredentialsPolicy, const SecurityOrigin&amp;, const CrossOriginAccessControlCheckDisabler*);
&gt; 
&gt; Since a SessionID is just a single 64-bit integer, I suggest we pass it by
&gt; value, not const&amp;.

I&apos;m doing this in bug 226983</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431172</attachid>
            <date>2021-06-10 20:14:32 -0700</date>
            <delta_ts>2021-06-10 22:06:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226910-20210610201431.patch</filename>
            <type>text/plain</type>
            <size>14219</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MGUzMGUyMGJmZmVk
NDE1ZjgxMWU5OTcwNGU0ZDI0ZWZjNjY3OS4uNGU5NDA1NzE2Njc0MmRmNjMxMjQxNzA5ZmFjNjQ0
MGQwMzRmYjg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFydGl0
aW9uIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lvbklECisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVQcmVmbGln
aHRSZXNwb25zZSk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5o
OgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjp2YWxpZGF0ZVByZWZs
aWdodFJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlOjphcHBlbmRFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KToKKyAgICAgICAgKiBsb2FkZXIvQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KToKKwogMjAyMS0wNi0wOCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFjdG9yIE1hcmtl
ZFRleHQgY29sbGVjdGlvbiBvdXQgb2YgTGVnYWN5SW5saW5lVGV4dEJveApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAx
OWI5ZWRhMWUwMWYxM2ZiMDA4YjlmMzFjYjNhMjA1MjViYWIyM2RkLi4zOTU3Y2RiZWMyYWUzYWEx
OWYzZmYyOGFmNzMwN2E4MTY0OGQ3ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUGFydGl0aW9uIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lv
bklECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkQ29tcGxldGVXaXRoRXJyb3Ip
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVm
bGlnaHQpOgorCiAyMDIxLTA2LTA4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzg2MDkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IGZhMDI0
ZjE2MTgxMTA1ZmI1M2VlMmZiZWNlOGE1NGY2ZjdhNGFmOTMuLmZhMWE2MDQyOTllZWIzMmQwZDA3
ZWUwMjc2NjFmMjQ2MDUzNWNlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgRXhwZWN0ZWQ8
dm9pZCwgU3RyaW5nPiBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UKICAgICByZXR1cm4geyB9OwogfQogCi1FeHBlY3RlZDx2b2lkLCBTdHJp
bmc+IHZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlciog
Y2hlY2tEaXNhYmxlcikKK0V4cGVjdGVkPHZvaWQsIFN0cmluZz4gdmFsaWRhdGVQcmVmbGlnaHRS
ZXNwb25zZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVj
a0Rpc2FibGVyKiBjaGVja0Rpc2FibGVyKQogewogICAgIGlmICghcmVzcG9uc2UuaXNTdWNjZXNz
ZnVsKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiUHJlZmxpZ2h0IHJlc3BvbnNl
IGlzIG5vdCBzdWNjZXNzZnVsIl9zKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBFeHBlY3RlZDx2b2lk
LCBTdHJpbmc+IHZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogCiAgICAgYXV0byBlbnRyeSA9IFdURk1vdmUocmVzdWx0LnZhbHVlKCkpOwog
ICAgIGF1dG8gZXJyb3JEZXNjcmlwdGlvbiA9IGVudHJ5LT52YWxpZGF0ZU1ldGhvZEFuZEhlYWRl
cnMocmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKTsKLSAg
ICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5hcHBlbmRFbnRy
eShzZWN1cml0eU9yaWdpbi50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBlbnRyeS5tb3ZlVG9V
bmlxdWVQdHIoKSk7CisgICAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xl
dG9uKCkuYXBwZW5kRW50cnkoc2Vzc2lvbklELCBzZWN1cml0eU9yaWdpbi50b1N0cmluZygpLCBy
ZXF1ZXN0LnVybCgpLCBlbnRyeS5tb3ZlVG9VbmlxdWVQdHIoKSk7CiAKICAgICBpZiAoZXJyb3JE
ZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUoKmVycm9y
RGVzY3JpcHRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaAppbmRleCAwNTc0ODNmMjlmZGNhNzY1ZTZiNDA5OGI5M2FkMDc2MmE1ZGQ3
YjdmLi5kZGU5ZWE1NGJiZmYxMDg2NWVkY2YxNGI0YjE3YjBlZDY5ODIxZmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oCkBAIC0zMyw2
ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CkBAIC03OCw3ICs4
Miw3IEBAIHByaXZhdGU6CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBFeHBlY3RlZDx2b2lkLCBTdHJp
bmc+IHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlciopOwotV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8dm9pZCwgU3RyaW5nPiB2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xD
aGVja0Rpc2FibGVyKik7CitXRUJDT1JFX0VYUE9SVCBFeHBlY3RlZDx2b2lkLCBTdHJpbmc+IHZh
bGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sQ2hlY2tEaXNhYmxlciopOwogCiBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFJlc291
cmNlRXJyb3I+IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShjb25zdCBTZWN1cml0
eU9yaWdpbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIHN0ZDo6b3B0
aW9uYWw8UmVzb3VyY2VFcnJvcj4gdmFsaWRhdGVSYW5nZVJlcXVlc3RlZEZsYWcoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA1
ODBjZDc5OWQxZDBhYjcwMTllYzNlY2Q5NGMxZDU5ZDMzN2UxOGY5Li4wYWRjYTcwY2ZhMTYyOThh
N2E2YzliM2YyODZmYWEzZGIyY2RiZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjEsMTMgKzYxLDIwIEBA
IENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6fkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
cigpCiB2b2lkIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6dmFsaWRhdGVQcmVmbGlnaHRS
ZXNwb25zZShEb2N1bWVudFRocmVhZGFibGVMb2FkZXImIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKIHsKICAgICBhdXRvKiBmcmFtZSA9IGxvYWRlci5kb2N1bWVudCgpLmZy
YW1lKCk7Ci0gICAgQVNTRVJUKGZyYW1lKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgYXV0byBy
ZXN1bHQgPSBXZWJDb3JlOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKHJlcXVlc3QsIHJlc3Bv
bnNlLCBsb2FkZXIub3B0aW9ucygpLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBsb2FkZXIuc2Vj
dXJpdHlPcmlnaW4oKSwgJkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXI6OnNp
bmdsZXRvbigpKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBpZiAoYXV0byogZG9jdW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgcmVz
dWx0LmVycm9yKCkpOworICAgIGF1dG8qIHBhZ2UgPSBsb2FkZXIuZG9jdW1lbnQoKS5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCisgICAgYXV0byByZXN1bHQgPSBXZWJDb3JlOjp2YWxpZGF0ZVBy
ZWZsaWdodFJlc3BvbnNlKHBhZ2UtPnNlc3Npb25JRCgpLCByZXF1ZXN0LCByZXNwb25zZSwgbG9h
ZGVyLm9wdGlvbnMoKS5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbG9hZGVyLnNlY3VyaXR5T3Jp
Z2luKCksICZDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0Rpc2FibGVyOjpzaW5nbGV0b24o
KSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbG9hZGVyLmRvY3VtZW50KCkuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgbG9hZGVyLnByZWZsaWdodEZhaWx1cmUoaWRlbnRp
ZmllciwgUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXF1ZXN0
LnVybCgpLCByZXN1bHQuZXJyb3IoKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJv
bCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCmluZGV4IDhhMjI2
Mjg3OGMwNmQxMjg5NWU1N2MyMzBmYmZhNjg2MmI2ZmQ1YjcuLmQ0NTlkYjFhMjkxNTQxYzZhOTU1
NzJiMWI1NmQ3NGNiYjQ5NjI4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAKQEAgLTEyMSwxNiArMTIx
LDE2IEBAIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUmIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCi12b2lk
IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmlu
ZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3JpZ2luUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1bHQpCit2b2lkIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OmFwcGVuZEVudHJ5KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgc3RkOjp1bmlx
dWVfcHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1
bHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3ByZWZsaWdodEhhc2hN
YXAuc2V0KHN0ZDo6bWFrZV9wYWlyKG9yaWdpbiwgdXJsKSwgV1RGTW92ZShwcmVmbGlnaHRSZXN1
bHQpKTsKKyAgICBtX3ByZWZsaWdodEhhc2hNYXAuc2V0KHN0ZDo6bWFrZV90dXBsZShzZXNzaW9u
SUQsIG9yaWdpbiwgdXJsKSwgV1RGTW92ZShwcmVmbGlnaHRSZXN1bHQpKTsKIH0KIAotYm9vbCBD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVh
ZGVyTWFwJiByZXF1ZXN0SGVhZGVycykKK2Jvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZTo6Y2FuU2tpcFByZWZsaWdodChjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
SFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICBhdXRvIGl0ID0gbV9wcmVmbGlnaHRIYXNoTWFwLmZpbmQoc3RkOjptYWtlX3Bh
aXIob3JpZ2luLCB1cmwpKTsKKyAgICBhdXRvIGl0ID0gbV9wcmVmbGlnaHRIYXNoTWFwLmZpbmQo
c3RkOjptYWtlX3R1cGxlKHNlc3Npb25JRCwgb3JpZ2luLCB1cmwpKTsKICAgICBpZiAoaXQgPT0g
bV9wcmVmbGlnaHRIYXNoTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5oCmluZGV4IGVkZWRlOWUyYzZmODM4N2U5M2FhMDBmYzNiNGJlNDdkMjlkZmVlYjQuLmMx
MmQzZjhiODI0NTNlOWQxYTc2YmU0NDY3NTA0OTczZThiNTc2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaApA
QCAtMzQsNiArMzQsMTAgQEAKICNpbmNsdWRlIDx3dGYvVVJMSGFzaC5oPgogI2luY2x1ZGUgPHd0
Zi9VbmlxdWVSZWYuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRUUEhlYWRlck1hcDsKQEAgLTY2LDE1ICs3
MCwxNSBAQCBjbGFzcyBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlKTsgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENy
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUmIHNpbmdsZXRvbigpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYXBwZW5kRW50cnkoY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYs
IHN0ZDo6dW5pcXVlX3B0cjxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4pOwot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FuU2tpcFByZWZsaWdodChjb25zdCBTdHJpbmcmIG9y
aWdpbiwgY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFN0cmluZyYg
bWV0aG9kLCBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBhcHBlbmRFbnRyeShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmLCBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZUl0ZW0+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhblNraXBQ
cmVmbGlnaHQoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29u
c3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBj
b25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycyk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxDcm9z
c09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlPjsKICAgICBDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlKCk7CiAKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTdHJpbmcsIFVSTD4sIHN0ZDo6
dW5pcXVlX3B0cjxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4+IG1fcHJlZmxp
Z2h0SGFzaE1hcDsKKyAgICBIYXNoTWFwPHN0ZDo6dHVwbGU8UEFMOjpTZXNzaW9uSUQsIFN0cmlu
ZywgVVJMPiwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJ
dGVtPj4gbV9wcmVmbGlnaHRIYXNoTWFwOwogfTsKIAogaW5saW5lIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGVJdGVtOjpDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbShN
b25vdG9uaWNUaW1lIGFic29sdXRlRXhwaXJ5VGltZSwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBIYXNoU2V0PFN0cmluZz4mJiBtZXRob2RzLCBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYmIGhlYWRlcnMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCmluZGV4
IDc5NzlkOTljODkyNGFlNmY3ZmNiNjFhNWI5NzM5ODFjYjMwMzQ5NjEuLjBkMjBhOTQ3M2E4NTIy
MWY4YjVjN2ZmODVlZGY3OGFjODA1ZDBkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9p
ZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcmUKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX3Np
bXBsZVJlcXVlc3QgPSBmYWxzZTsKLSAgICAgICAgaWYgKENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQoc2VjdXJpdHlPcmlnaW4oKS50
b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIHJlcXVlc3QuaHR0cE1ldGhvZCgpLCByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpCisg
ICAgICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7IHBhZ2UgJiYgQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdodChw
YWdlLT5zZXNzaW9uSUQoKSwgc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCByZXF1ZXN0LnVy
bCgpLCBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHJlcXVlc3QuaHR0cE1ldGhv
ZCgpLCByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpCiAgICAgICAgICAgICBwcmVmbGlnaHRT
dWNjZXNzKFdURk1vdmUocmVxdWVzdCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtYWtl
Q3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodChXVEZNb3ZlKHJlcXVlc3QpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NP
UlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCAzODU0NmU0MDNhNDRkMDAzYmMxYTg3OTM1NjE1
OWFjYjE4NTM1MDZlLi5hZTVmNDBmYTA1ODU5Y2YyMmIyZWJkNTZiNGFhM2ZmMDU1M2EwNDgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgdm9pZCBOZXR3b3Jr
Q09SU1ByZWZsaWdodENoZWNrZXI6OmRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXIKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZENvbXBsZXRlIGh0
dHBfc3RhdHVzX2NvZGU9JWQiLCBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCi0gICAg
YXV0byByZXN1bHQgPSB2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKG1fcGFyYW1ldGVycy5vcmln
aW5hbFJlcXVlc3QsIG1fcmVzcG9uc2UsIG1fcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiwgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Z2V0KCkpOworICAgIGF1dG8gcmVzdWx0ID0gdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShtX3Bh
cmFtZXRlcnMuc2Vzc2lvbklELCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3Jlc3Bv
bnNlLCBtX3BhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIG1fcGFyYW1ldGVycy5z
b3VyY2VPcmlnaW4sIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKTsKICAgICBpZiAoIXJl
c3VsdCkgewogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRDb21wbGV0ZSwgQWNj
ZXNzQ29udHJvbCBlcnJvcjogJXMiLCByZXN1bHQuZXJyb3IoKS51dGY4KCkuZGF0YSgpKTsKICAg
ICAgICAgbV9jb21wbGV0aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2Vi
S2l0SW50ZXJuYWwsIDAsIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksIHJlc3Vs
dC5lcnJvcigpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmlu
ZGV4IDZhMTlhYzQ1ODFkNDY5Zjk0MmQ5NDk3NjA3NmI2OTIwMGM1M2ZiMmYuLmQ3ZmFkOTc4YzMx
MmFhZmExMWQxYThmMDlkZTU0OTFmNmNmNTEyMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTM3MCw4ICszNzAsNyBA
QCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdAogICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnMpOwogCiAgICAgbV9pc1NpbXBsZVJlcXVlc3QgPSBmYWxz
ZTsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IHBhcnRpdGlvbiBwcmVmbGlnaHQg
cmVzdWx0IGNhY2hlIGJ5IHNlc3Npb24gSUQuCi0gICAgaWYgKENyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQobV9vcmlnaW4tPnRvU3Ry
aW5nKCksIHJlcXVlc3QudXJsKCksIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHJlcXVlc3Qu
aHR0cE1ldGhvZCgpLCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKSB7CisgICAgaWYgKENyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGlnaHQo
bV9zZXNzaW9uSUQsIG1fb3JpZ2luLT50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJlcXVl
c3RIZWFkZXJzKSkgewogICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjaGVja0NPUlNS
ZXF1ZXN0V2l0aFByZWZsaWdodCAtIHByZWZsaWdodCBjYW4gYmUgc2tpcHBlZCB0aGFua3MgdG8g
Y2FjaGVkIHJlc3VsdCIpOwogICAgICAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChy
ZXF1ZXN0LCAqbV9vcmlnaW4sIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogICAgICAgICBo
YW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOwo=
</data>
<flag name="commit-queue"
          id="452860"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431179</attachid>
            <date>2021-06-10 21:30:38 -0700</date>
            <delta_ts>2021-06-11 10:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226910-20210610213037.patch</filename>
            <type>text/plain</type>
            <size>14238</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MGUzMGUyMGJmZmVk
NDE1ZjgxMWU5OTcwNGU0ZDI0ZWZjNjY3OS4uNGU5NDA1NzE2Njc0MmRmNjMxMjQxNzA5ZmFjNjQ0
MGQwMzRmYjg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFydGl0
aW9uIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lvbklECisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVQcmVmbGln
aHRSZXNwb25zZSk6CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5o
OgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjp2YWxpZGF0ZVByZWZs
aWdodFJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlOjphcHBlbmRFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KToKKyAgICAgICAgKiBsb2FkZXIvQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVu
dFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjptYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KToKKwogMjAyMS0wNi0wOCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRmFjdG9yIE1hcmtl
ZFRleHQgY29sbGVjdGlvbiBvdXQgb2YgTGVnYWN5SW5saW5lVGV4dEJveApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAx
OWI5ZWRhMWUwMWYxM2ZiMDA4YjlmMzFjYjNhMjA1MjViYWIyM2RkLi4zOTU3Y2RiZWMyYWUzYWEx
OWYzZmYyOGFmNzMwN2E4MTY0OGQ3ZjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIx
LTA2LTEwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUGFydGl0aW9uIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lv
bklECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkQ29tcGxldGVXaXRoRXJyb3Ip
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVm
bGlnaHQpOgorCiAyMDIxLTA2LTA4ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzg2MDkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IGZhMDI0
ZjE2MTgxMTA1ZmI1M2VlMmZiZWNlOGE1NGY2ZjdhNGFmOTMuLmZhMWE2MDQyOTllZWIzMmQwZDA3
ZWUwMjc2NjFmMjQ2MDUzNWNlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgRXhwZWN0ZWQ8
dm9pZCwgU3RyaW5nPiBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UKICAgICByZXR1cm4geyB9OwogfQogCi1FeHBlY3RlZDx2b2lkLCBTdHJp
bmc+IHZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1
cml0eU9yaWdpbiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlciog
Y2hlY2tEaXNhYmxlcikKK0V4cGVjdGVkPHZvaWQsIFN0cmluZz4gdmFsaWRhdGVQcmVmbGlnaHRS
ZXNwb25zZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVj
a0Rpc2FibGVyKiBjaGVja0Rpc2FibGVyKQogewogICAgIGlmICghcmVzcG9uc2UuaXNTdWNjZXNz
ZnVsKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiUHJlZmxpZ2h0IHJlc3BvbnNl
IGlzIG5vdCBzdWNjZXNzZnVsIl9zKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCBFeHBlY3RlZDx2b2lk
LCBTdHJpbmc+IHZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAogCiAgICAgYXV0byBlbnRyeSA9IFdURk1vdmUocmVzdWx0LnZhbHVlKCkpOwog
ICAgIGF1dG8gZXJyb3JEZXNjcmlwdGlvbiA9IGVudHJ5LT52YWxpZGF0ZU1ldGhvZEFuZEhlYWRl
cnMocmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKTsKLSAg
ICBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5hcHBlbmRFbnRy
eShzZWN1cml0eU9yaWdpbi50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBlbnRyeS5tb3ZlVG9V
bmlxdWVQdHIoKSk7CisgICAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xl
dG9uKCkuYXBwZW5kRW50cnkoc2Vzc2lvbklELCBzZWN1cml0eU9yaWdpbi50b1N0cmluZygpLCBy
ZXF1ZXN0LnVybCgpLCBlbnRyeS5tb3ZlVG9VbmlxdWVQdHIoKSk7CiAKICAgICBpZiAoZXJyb3JE
ZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFdURk1vdmUoKmVycm9y
RGVzY3JpcHRpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaAppbmRleCAwNTc0ODNmMjlmZGNhNzY1ZTZiNDA5OGI5M2FkMDc2MmE1ZGQ3
YjdmLi5kZGU5ZWE1NGJiZmYxMDg2NWVkY2YxNGI0YjE3YjBlZDY5ODIxZmE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oCkBAIC0zMyw2
ICszMywxMCBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogCituYW1lc3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CkBAIC03OCw3ICs4
Miw3IEBAIHByaXZhdGU6CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBFeHBlY3RlZDx2b2lkLCBTdHJp
bmc+IHBhc3Nlc0FjY2Vzc0NvbnRyb2xDaGVjayhjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlciopOwotV0VCQ09SRV9FWFBPUlQgRXhwZWN0
ZWQ8dm9pZCwgU3RyaW5nPiB2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xD
aGVja0Rpc2FibGVyKik7CitXRUJDT1JFX0VYUE9SVCBFeHBlY3RlZDx2b2lkLCBTdHJpbmc+IHZh
bGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2UoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250
cm9sQ2hlY2tEaXNhYmxlciopOwogCiBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFJlc291
cmNlRXJyb3I+IHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZXNvdXJjZVBvbGljeShjb25zdCBTZWN1cml0
eU9yaWdpbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKIHN0ZDo6b3B0
aW9uYWw8UmVzb3VyY2VFcnJvcj4gdmFsaWRhdGVSYW5nZVJlcXVlc3RlZEZsYWcoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA1
ODBjZDc5OWQxZDBhYjcwMTllYzNlY2Q5NGMxZDU5ZDMzN2UxOGY5Li4wYWRjYTcwY2ZhMTYyOThh
N2E2YzliM2YyODZmYWEzZGIyY2RiZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtNjEsMTMgKzYxLDIwIEBA
IENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6fkNyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tl
cigpCiB2b2lkIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcjo6dmFsaWRhdGVQcmVmbGlnaHRS
ZXNwb25zZShEb2N1bWVudFRocmVhZGFibGVMb2FkZXImIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKIHsKICAgICBhdXRvKiBmcmFtZSA9IGxvYWRlci5kb2N1bWVudCgpLmZy
YW1lKCk7Ci0gICAgQVNTRVJUKGZyYW1lKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgYXV0byBy
ZXN1bHQgPSBXZWJDb3JlOjp2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKHJlcXVlc3QsIHJlc3Bv
bnNlLCBsb2FkZXIub3B0aW9ucygpLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBsb2FkZXIuc2Vj
dXJpdHlPcmlnaW4oKSwgJkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXI6OnNp
bmdsZXRvbigpKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBpZiAoYXV0byogZG9jdW1l
bnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgcmVz
dWx0LmVycm9yKCkpOworICAgIGF1dG8qIHBhZ2UgPSBsb2FkZXIuZG9jdW1lbnQoKS5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQogCisgICAgYXV0byByZXN1bHQgPSBXZWJDb3JlOjp2YWxpZGF0ZVBy
ZWZsaWdodFJlc3BvbnNlKHBhZ2UtPnNlc3Npb25JRCgpLCByZXF1ZXN0LCByZXNwb25zZSwgbG9h
ZGVyLm9wdGlvbnMoKS5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbG9hZGVyLnNlY3VyaXR5T3Jp
Z2luKCksICZDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0Rpc2FibGVyOjpzaW5nbGV0b24o
KSk7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbG9hZGVyLmRvY3VtZW50KCkuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
IHJlc3VsdC5lcnJvcigpKTsKICAgICAgICAgbG9hZGVyLnByZWZsaWdodEZhaWx1cmUoaWRlbnRp
ZmllciwgUmVzb3VyY2VFcnJvcihlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZXF1ZXN0
LnVybCgpLCByZXN1bHQuZXJyb3IoKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNzQ29udHJv
bCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCmluZGV4IDhhMjI2
Mjg3OGMwNmQxMjg5NWU1N2MyMzBmYmZhNjg2MmI2ZmQ1YjcuLmQ0NTlkYjFhMjkxNTQxYzZhOTU1
NzJiMWI1NmQ3NGNiYjQ5NjI4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAKQEAgLTEyMSwxNiArMTIx
LDE2IEBAIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUmIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGNhY2hlOwogfQogCi12b2lk
IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OmFwcGVuZEVudHJ5KGNvbnN0IFN0cmlu
ZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3JpZ2luUHJl
ZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1bHQpCit2b2lkIENyb3NzT3JpZ2lu
UHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OmFwcGVuZEVudHJ5KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgc3RkOjp1bmlx
dWVfcHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPiBwcmVmbGlnaHRSZXN1
bHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3ByZWZsaWdodEhhc2hN
YXAuc2V0KHN0ZDo6bWFrZV9wYWlyKG9yaWdpbiwgdXJsKSwgV1RGTW92ZShwcmVmbGlnaHRSZXN1
bHQpKTsKKyAgICBtX3ByZWZsaWdodEhhc2hNYXAuc2V0KHN0ZDo6bWFrZV90dXBsZShzZXNzaW9u
SUQsIG9yaWdpbiwgdXJsKSwgV1RGTW92ZShwcmVmbGlnaHRSZXN1bHQpKTsKIH0KIAotYm9vbCBD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpjYW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBIVFRQSGVh
ZGVyTWFwJiByZXF1ZXN0SGVhZGVycykKK2Jvb2wgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZTo6Y2FuU2tpcFByZWZsaWdodChjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBj
b25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
SFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLSAgICBhdXRvIGl0ID0gbV9wcmVmbGlnaHRIYXNoTWFwLmZpbmQoc3RkOjptYWtlX3Bh
aXIob3JpZ2luLCB1cmwpKTsKKyAgICBhdXRvIGl0ID0gbV9wcmVmbGlnaHRIYXNoTWFwLmZpbmQo
c3RkOjptYWtlX3R1cGxlKHNlc3Npb25JRCwgb3JpZ2luLCB1cmwpKTsKICAgICBpZiAoaXQgPT0g
bV9wcmVmbGlnaHRIYXNoTWFwLmVuZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZS5oCmluZGV4IGVkZWRlOWUyYzZmODM4N2U5M2FhMDBmYzNiNGJlNDdkMjlkZmVlYjQuLjgz
Y2Y4ZGNhMzg3OWVjOTFiYWFlZWY3MTYxMzM0MDE5ZmQ0Njc3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaApA
QCAtMjcsNiArMjcsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTdG9yZWRDcmVkZW50
aWFsc1BvbGljeS5oIgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYv
RXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC02NiwxNSArNjcsMTUgQEAgY2xhc3MgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlJiBzaW5nbGV0
b24oKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZEVudHJ5KGNvbnN0IFN0cmluZyYg
b3JpZ2luLCBjb25zdCBVUkwmLCBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NPcmlnaW5QcmVmbGlnaHRS
ZXN1bHRDYWNoZUl0ZW0+KTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhblNraXBQcmVmbGln
aHQoY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhl
YWRlcnMpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kRW50cnkoY29uc3QgUEFMOjpT
ZXNzaW9uSUQmLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiwgc3RkOjp1bmlxdWVf
cHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGVJdGVtPik7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjYW5Ta2lwUHJlZmxpZ2h0KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
U3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25z
dCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRlck1hcCYgcmVxdWVzdEhlYWRlcnMpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQg
TmV2ZXJEZXN0cm95ZWQ8Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZT47CiAgICAgQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZSgpOwogCi0gICAgSGFzaE1hcDxzdGQ6OnBhaXI8
U3RyaW5nLCBVUkw+LCBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRD
YWNoZUl0ZW0+PiBtX3ByZWZsaWdodEhhc2hNYXA7CisgICAgSGFzaE1hcDxzdGQ6OnR1cGxlPFBB
TDo6U2Vzc2lvbklELCBTdHJpbmcsIFVSTD4sIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlSXRlbT4+IG1fcHJlZmxpZ2h0SGFzaE1hcDsKIH07CiAKIGlubGlu
ZSBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbTo6Q3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZUl0ZW0oTW9ub3RvbmljVGltZSBhYnNvbHV0ZUV4cGlyeVRpbWUsIFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5ICBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgSGFzaFNldDxTdHJp
bmc+JiYgbWV0aG9kcywgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
JiBoZWFkZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCA3OTc5ZDk5Yzg5MjRhZTZmN2ZjYjYxYTViOTczOTgxY2IzMDM0
OTYxLi4wZDIwYTk0NzNhODUyMjFmOGI1YzdmZjg1ZWRmNzhhYzgwNWQwZDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
MjIzLDcgKzIyMyw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjptYWtlQ3Jvc3NP
cmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgbV9zaW1wbGVSZXF1ZXN0ID0gZmFsc2U7Ci0gICAgICAgIGlmIChDcm9z
c09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5jYW5Ta2lwUHJlZmxpZ2h0
KHNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgbV9vcHRpb25zLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRw
SGVhZGVyRmllbGRzKCkpKQorICAgICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50KCkucGFn
ZSgpOyBwYWdlICYmIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigp
LmNhblNraXBQcmVmbGlnaHQocGFnZS0+c2Vzc2lvbklEKCksIHNlY3VyaXR5T3JpZ2luKCkudG9T
dHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgbV9vcHRpb25zLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkpKQogICAg
ICAgICAgICAgcHJlZmxpZ2h0U3VjY2VzcyhXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbWFrZUNyb3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQo
V1RGTW92ZShyZXF1ZXN0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggMzg1NDZlNDAz
YTQ0ZDAwM2JjMWE4NzkzNTYxNTlhY2IxODUzNTA2ZS4uYWU1ZjQwZmEwNTg1OWNmMjJiMmViZDU2
YjRhYTNmZjA1NTNhMDQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcApAQCAtMTM5LDcgKzEz
OSw3IEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRDb21wbGV0ZVdpdGhF
cnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVyCiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRDb21wbGV0ZSBodHRwX3N0YXR1c19jb2RlPSVkIiwgbV9yZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25z
ZShtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LCBtX3Jlc3BvbnNlLCBtX3BhcmFtZXRlcnMu
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIG1fcGFyYW1ldGVycy5zb3VyY2VPcmlnaW4sIG1fbmV0
d29ya1Jlc291cmNlTG9hZGVyLmdldCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IHZhbGlkYXRlUHJl
ZmxpZ2h0UmVzcG9uc2UobV9wYXJhbWV0ZXJzLnNlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLm9yaWdp
bmFsUmVxdWVzdCwgbV9yZXNwb25zZSwgbV9wYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlci5n
ZXQoKSk7CiAgICAgaWYgKCFyZXN1bHQpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkQ29tcGxldGUsIEFjY2Vzc0NvbnRyb2wgZXJyb3I6ICVzIiwgcmVzdWx0LmVycm9yKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc291cmNlRXJy
b3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMub3JpZ2luYWxS
ZXF1ZXN0LnVybCgpLCByZXN1bHQuZXJyb3IoKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6QWNjZXNz
Q29udHJvbCB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcAppbmRleCA2YTE5YWM0NTgxZDQ2OWY5NDJkOTQ5NzYwNzZiNjkyMDBj
NTNmYjJmLi5kN2ZhZDk3OGMzMTJhYWZhMTFkMWE4ZjA5ZGU1NDkxZjZjZjUxMjJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3Bw
CkBAIC0zNzAsOCArMzcwLDcgQEAgdm9pZCBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1Jl
cXVlc3RXaXRoUHJlZmxpZ2h0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QKICAgICBBU1NFUlQo
bV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzKTsKIAogICAgIG1faXNT
aW1wbGVSZXF1ZXN0ID0gZmFsc2U7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwcm9iYWJseSBw
YXJ0aXRpb24gcHJlZmxpZ2h0IHJlc3VsdCBjYWNoZSBieSBzZXNzaW9uIElELgotICAgIGlmIChD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5jYW5Ta2lwUHJlZmxp
Z2h0KG1fb3JpZ2luLT50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3N0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJz
KSkgeworICAgIGlmIChDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24o
KS5jYW5Ta2lwUHJlZmxpZ2h0KG1fc2Vzc2lvbklELCBtX29yaWdpbi0+dG9TdHJpbmcoKSwgcmVx
dWVzdC51cmwoKSwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcmVxdWVzdC5odHRwTWV0aG9k
KCksIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykpIHsKICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQgLSBwcmVmbGlnaHQgY2FuIGJl
IHNraXBwZWQgdGhhbmtzIHRvIGNhY2hlZCByZXN1bHQiKTsKICAgICAgICAgdXBkYXRlUmVxdWVz
dEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgKm1fb3JpZ2luLCBtX3N0b3JlZENyZWRlbnRpYWxz
UG9saWN5KTsKICAgICAgICAgaGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431210</attachid>
            <date>2021-06-11 10:55:46 -0700</date>
            <delta_ts>2021-06-11 17:06:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226910-20210611105545.patch</filename>
            <type>text/plain</type>
            <size>18017</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MGUzMGUyMGJmZmVk
NDE1ZjgxMWU5OTcwNGU0ZDI0ZWZjNjY3OS4uN2E1YTliNDkzOGQ4MTYyYjY1YWEzODc2NzZkY2M3
ZWFkN2YwYzQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTEwICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFydGl0
aW9uIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lvbklECisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5MTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVByZWZsaWdo
dFJlc3BvbnNlKToKKyAgICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmg6
CisgICAgICAgICogbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnZhbGlkYXRlUHJlZmxp
Z2h0UmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGU6OmFwcGVuZEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGU6OmNhblNraXBQcmVmbGlnaHQpOgorICAgICAgICAqIGxvYWRlci9Dcm9z
c09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI6Om1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QpOgorCiAyMDIxLTA2LTA4ICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBGYWN0b3IgTWFya2Vk
VGV4dCBjb2xsZWN0aW9uIG91dCBvZiBMZWdhY3lJbmxpbmVUZXh0Qm94CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE5
YjllZGExZTAxZjEzZmIwMDhiOWYzMWNiM2EyMDUyNWJhYjIzZGQuLmY5ZTcyYjIyNTY2ZDYzMmNh
MTc1OWI5N2FmZjM3YTQ1Yjg1ZDhiMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEt
MDYtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBQYXJ0aXRpb24gQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZSBieSBTZXNzaW9u
SUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjkx
MAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZENvbXBsZXRlV2l0aEVycm9yKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxp
Z2h0KToKKwogMjAyMS0wNi0wOCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc4NjA5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAppbmRleCBmYTAyNGYx
NjE4MTEwNWZiNTNlZTJmYmVjZThhNTRmNmY3YTRhZjkzLi5mYTFhNjA0Mjk5ZWViMzJkMGQwN2Vl
MDI3NjYxZjI0NjA1MzVjZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMjU3LDcgKzI1Nyw3IEBAIEV4cGVjdGVkPHZv
aWQsIFN0cmluZz4gcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotRXhwZWN0ZWQ8dm9pZCwgU3RyaW5n
PiB2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXIqIGNo
ZWNrRGlzYWJsZXIpCitFeHBlY3RlZDx2b2lkLCBTdHJpbmc+IHZhbGlkYXRlUHJlZmxpZ2h0UmVz
cG9uc2UoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tE
aXNhYmxlciogY2hlY2tEaXNhYmxlcikKIHsKICAgICBpZiAoIXJlc3BvbnNlLmlzU3VjY2Vzc2Z1
bCgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIlByZWZsaWdodCByZXNwb25zZSBp
cyBub3Qgc3VjY2Vzc2Z1bCJfcyk7CkBAIC0yNzIsNyArMjcyLDcgQEAgRXhwZWN0ZWQ8dm9pZCwg
U3RyaW5nPiB2YWxpZGF0ZVByZWZsaWdodFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwKIAogICAgIGF1dG8gZW50cnkgPSBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKTsKICAg
ICBhdXRvIGVycm9yRGVzY3JpcHRpb24gPSBlbnRyeS0+dmFsaWRhdGVNZXRob2RBbmRIZWFkZXJz
KHJlcXVlc3QuaHR0cE1ldGhvZCgpLCByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSk7Ci0gICAg
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuYXBwZW5kRW50cnko
c2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgZW50cnkubW92ZVRvVW5p
cXVlUHRyKCkpOworICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRv
bigpLmFwcGVuZEVudHJ5KHNlc3Npb25JRCwgc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgcmVx
dWVzdC51cmwoKSwgZW50cnkubW92ZVRvVW5pcXVlUHRyKCkpOwogCiAgICAgaWYgKGVycm9yRGVz
Y3JpcHRpb24pCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChXVEZNb3ZlKCplcnJvckRl
c2NyaXB0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmln
aW5BY2Nlc3NDb250cm9sLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sLmgKaW5kZXggMDU3NDgzZjI5ZmRjYTc2NWU2YjQwOThiOTNhZDA3NjJhNWRkN2I3
Zi4uZGRlOWVhNTRiYmZmMTA4NjVlZGNmMTRiNGIxN2IwZWQ2OTgyMWZhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaApAQCAtMzMsNiAr
MzMsMTAgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25T
ZXQuaD4KIAorbmFtZXNwYWNlIFBBTCB7CitjbGFzcyBTZXNzaW9uSUQ7Cit9CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OwpAQCAtNzgsNyArODIs
NyBAQCBwcml2YXRlOgogfTsKIAogV0VCQ09SRV9FWFBPUlQgRXhwZWN0ZWQ8dm9pZCwgU3RyaW5n
PiBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IENyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbENoZWNrRGlzYWJsZXIqKTsKLVdFQkNPUkVfRVhQT1JUIEV4cGVjdGVk
PHZvaWQsIFN0cmluZz4gdmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hl
Y2tEaXNhYmxlciopOworV0VCQ09SRV9FWFBPUlQgRXhwZWN0ZWQ8dm9pZCwgU3RyaW5nPiB2YWxp
ZGF0ZVByZWZsaWdodFJlc3BvbnNlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IENyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bENoZWNrRGlzYWJsZXIqKTsKIAogV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxSZXNvdXJj
ZUVycm9yPiB2YWxpZGF0ZUNyb3NzT3JpZ2luUmVzb3VyY2VQb2xpY3koY29uc3QgU2VjdXJpdHlP
cmlnaW4mLCBjb25zdCBVUkwmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiBzdGQ6Om9wdGlv
bmFsPFJlc291cmNlRXJyb3I+IHZhbGlkYXRlUmFuZ2VSZXF1ZXN0ZWRGbGFnKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggNTgw
Y2Q3OTlkMWQwYWI3MDE5ZWMzZWNkOTRjMWQ1OWQzMzdlMThmOS4uMGFkY2E3MGNmYTE2Mjk4YTdh
NmM5YjNmMjg2ZmFhM2RiMmNkYmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTYxLDEzICs2MSwyMCBAQCBD
cm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6On5Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIo
KQogdm9pZCBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnZhbGlkYXRlUHJlZmxpZ2h0UmVz
cG9uc2UoRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyJiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpCiB7CiAgICAgYXV0byogZnJhbWUgPSBsb2FkZXIuZG9jdW1lbnQoKS5mcmFt
ZSgpOwotICAgIEFTU0VSVChmcmFtZSk7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIGF1dG8gcmVz
dWx0ID0gV2ViQ29yZTo6dmFsaWRhdGVQcmVmbGlnaHRSZXNwb25zZShyZXF1ZXN0LCByZXNwb25z
ZSwgbG9hZGVyLm9wdGlvbnMoKS5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgbG9hZGVyLnNlY3Vy
aXR5T3JpZ2luKCksICZDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2xDaGVja0Rpc2FibGVyOjpzaW5n
bGV0b24oKSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50
ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIHJlc3Vs
dC5lcnJvcigpKTsKKyAgICBhdXRvKiBwYWdlID0gbG9hZGVyLmRvY3VtZW50KCkucGFnZSgpOwor
ICAgIGlmICghcGFnZSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KIAorICAgIGF1dG8gcmVzdWx0ID0gV2ViQ29yZTo6dmFsaWRhdGVQcmVm
bGlnaHRSZXNwb25zZShwYWdlLT5zZXNzaW9uSUQoKSwgcmVxdWVzdCwgcmVzcG9uc2UsIGxvYWRl
ci5vcHRpb25zKCkuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGxvYWRlci5zZWN1cml0eU9yaWdp
bigpLCAmQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tEaXNhYmxlcjo6c2luZ2xldG9uKCkp
OworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIGxvYWRlci5kb2N1bWVudCgpLmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBy
ZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgIGxvYWRlci5wcmVmbGlnaHRGYWlsdXJlKGlkZW50aWZp
ZXIsIFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgcmVxdWVzdC51
cmwoKSwgcmVzdWx0LmVycm9yKCksIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcAppbmRleCA4YTIyNjI4
NzhjMDZkMTI4OTVlNTdjMjMwZmJmYTY4NjJiNmZkNWI3Li5kNDU5ZGIxYTI5MTU0MWM2YTk1NTcy
YjFiNTZkNzRjYmI0OTYyOGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwCkBAIC0xMjEsMTYgKzEyMSwx
NiBAQCBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlJiBDcm9zc09yaWdpblByZWZsaWdo
dFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKQogICAgIHJldHVybiBjYWNoZTsKIH0KIAotdm9pZCBD
cm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjphcHBlbmRFbnRyeShjb25zdCBTdHJpbmcm
IG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6dW5pcXVlX3B0cjxDcm9zc09yaWdpblByZWZs
aWdodFJlc3VsdENhY2hlSXRlbT4gcHJlZmxpZ2h0UmVzdWx0KQordm9pZCBDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlOjphcHBlbmRFbnRyeShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vz
c2lvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIHN0ZDo6dW5pcXVl
X3B0cjxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4gcHJlZmxpZ2h0UmVzdWx0
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9wcmVmbGlnaHRIYXNoTWFw
LnNldChzdGQ6Om1ha2VfcGFpcihvcmlnaW4sIHVybCksIFdURk1vdmUocHJlZmxpZ2h0UmVzdWx0
KSk7CisgICAgbV9wcmVmbGlnaHRIYXNoTWFwLnNldChzdGQ6Om1ha2VfdHVwbGUoc2Vzc2lvbklE
LCBvcmlnaW4sIHVybCksIFdURk1vdmUocHJlZmxpZ2h0UmVzdWx0KSk7CiB9CiAKLWJvb2wgQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6Y2FuU2tpcFByZWZsaWdodChjb25zdCBTdHJp
bmcmIG9yaWdpbiwgY29uc3QgVVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgSFRUUEhlYWRl
ck1hcCYgcmVxdWVzdEhlYWRlcnMpCitib29sIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGU6OmNhblNraXBQcmVmbGlnaHQoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29u
c3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhU
VFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgYXV0byBpdCA9IG1fcHJlZmxpZ2h0SGFzaE1hcC5maW5kKHN0ZDo6bWFrZV9wYWly
KG9yaWdpbiwgdXJsKSk7CisgICAgYXV0byBpdCA9IG1fcHJlZmxpZ2h0SGFzaE1hcC5maW5kKHN0
ZDo6bWFrZV90dXBsZShzZXNzaW9uSUQsIG9yaWdpbiwgdXJsKSk7CiAgICAgaWYgKGl0ID09IG1f
cHJlZmxpZ2h0SGFzaE1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNo
ZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGUuaAppbmRleCBlZGVkZTllMmM2ZjgzODdlOTNhYTAwZmMzYjRiZTQ3ZDI5ZGZlZWI0Li44M2Nm
OGRjYTM4NzllYzkxYmFhZWVmNzE2MTMzNDAxOWZkNDY3NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmgKQEAg
LTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaCIKKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0V4
cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgpAQCAtNjYsMTUgKzY3LDE1IEBAIGNsYXNzIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0
Q2FjaGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZSYgc2luZ2xldG9u
KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRFbnRyeShjb25zdCBTdHJpbmcmIG9y
aWdpbiwgY29uc3QgVVJMJiwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVz
dWx0Q2FjaGVJdGVtPik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYW5Ta2lwUHJlZmxpZ2h0
KGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFk
ZXJzKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZEVudHJ5KGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFVSTCYsIHN0ZDo6dW5pcXVlX3B0
cjxDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlSXRlbT4pOworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgY2FuU2tpcFByZWZsaWdodChjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgY29uc3Qg
U3RyaW5nJiBtZXRob2QsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIHJlcXVlc3RIZWFkZXJzKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIE5l
dmVyRGVzdHJveWVkPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU+OwogICAgIENyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUoKTsKIAotICAgIEhhc2hNYXA8c3RkOjpwYWlyPFN0
cmluZywgVVJMPiwgc3RkOjp1bmlxdWVfcHRyPENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGVJdGVtPj4gbV9wcmVmbGlnaHRIYXNoTWFwOworICAgIEhhc2hNYXA8c3RkOjp0dXBsZTxQQUw6
OlNlc3Npb25JRCwgU3RyaW5nLCBVUkw+LCBzdGQ6OnVuaXF1ZV9wdHI8Q3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZUl0ZW0+PiBtX3ByZWZsaWdodEhhc2hNYXA7CiB9OwogCiBpbmxpbmUg
Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZUl0ZW06OkNyb3NzT3JpZ2luUHJlZmxpZ2h0
UmVzdWx0Q2FjaGVJdGVtKE1vbm90b25pY1RpbWUgYWJzb2x1dGVFeHBpcnlUaW1lLCBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSAgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIEhhc2hTZXQ8U3RyaW5n
PiYmIG1ldGhvZHMsIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiYg
aGVhZGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKaW5kZXggNzk3OWQ5OWM4OTI0YWU2ZjdmY2I2MWE1Yjk3Mzk4MWNiMzAzNDk2
MS4uMGQyMGE5NDczYTg1MjIxZjhiNWM3ZmY4NWVkZjc4YWM4MDVkMGQ3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTIy
Myw3ICsyMjMsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bWFrZUNyb3NzT3Jp
Z2luQWNjZXNzUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIG1fc2ltcGxlUmVxdWVzdCA9IGZhbHNlOwotICAgICAgICBpZiAoQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdodChz
ZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksIHJlcXVlc3QudXJsKCksIG1fb3B0aW9ucy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgcmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QuaHR0cEhl
YWRlckZpZWxkcygpKSkKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2Uo
KTsgcGFnZSAmJiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaW5nbGV0b24oKS5j
YW5Ta2lwUHJlZmxpZ2h0KHBhZ2UtPnNlc3Npb25JRCgpLCBzZWN1cml0eU9yaWdpbigpLnRvU3Ry
aW5nKCksIHJlcXVlc3QudXJsKCksIG1fb3B0aW9ucy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
cmVxdWVzdC5odHRwTWV0aG9kKCksIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKSkKICAgICAg
ICAgICAgIHByZWZsaWdodFN1Y2Nlc3MoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1ha2VDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFdU
Rk1vdmUocmVxdWVzdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCmluZGV4IDM4NTQ2ZTQwM2E0
NGQwMDNiYzFhODc5MzU2MTU5YWNiMTg1MzUwNmUuLmFlNWY0MGZhMDU4NTljZjIyYjJlYmQ1NmI0
YWEzZmYwNTUzYTA0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTEzOSw3ICsxMzks
NyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkQ29tcGxldGVXaXRoRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcgogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkQ29tcGxldGUgaHR0cF9zdGF0dXNfY29kZT0lZCIsIG1fcmVzcG9uc2UuaHR0cFN0YXR1
c0NvZGUoKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHZhbGlkYXRlUHJlZmxpZ2h0UmVzcG9uc2Uo
bV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdCwgbV9yZXNwb25zZSwgbV9wYXJhbWV0ZXJzLnN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBtX3BhcmFtZXRlcnMuc291cmNlT3JpZ2luLCBtX25ldHdv
cmtSZXNvdXJjZUxvYWRlci5nZXQoKSk7CisgICAgYXV0byByZXN1bHQgPSB2YWxpZGF0ZVByZWZs
aWdodFJlc3BvbnNlKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy5vcmlnaW5h
bFJlcXVlc3QsIG1fcmVzcG9uc2UsIG1fcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiwgbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXIuZ2V0
KCkpOwogICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZENvbXBsZXRlLCBBY2Nlc3NDb250cm9sIGVycm9yOiAlcyIsIHJlc3VsdC5lcnJvcigpLnV0
ZjgoKS5kYXRhKCkpOwogICAgICAgICBtX2NvbXBsZXRpb25DYWxsYmFjayhSZXNvdXJjZUVycm9y
IHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVx
dWVzdC51cmwoKSwgcmVzdWx0LmVycm9yKCksIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0Nv
bnRyb2wgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5jcHAKaW5kZXggNmExOWFjNDU4MWQ0NjlmOTQyZDk0OTc2MDc2YjY5MjAwYzUz
ZmIyZi4uZDdmYWQ5NzhjMzEyYWFmYTExZDFhOGYwOWRlNTQ5MWY2Y2Y1MTIyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApA
QCAtMzcwLDggKzM3MCw3IEBAIHZvaWQgTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja0NPUlNSZXF1
ZXN0V2l0aFByZWZsaWdodChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0CiAgICAgQVNTRVJUKG1f
b3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycyk7CiAKICAgICBtX2lzU2lt
cGxlUmVxdWVzdCA9IGZhbHNlOwotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcHJvYmFibHkgcGFy
dGl0aW9uIHByZWZsaWdodCByZXN1bHQgY2FjaGUgYnkgc2Vzc2lvbiBJRC4KLSAgICBpZiAoQ3Jv
c3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCkuY2FuU2tpcFByZWZsaWdo
dChtX29yaWdpbi0+dG9TdHJpbmcoKSwgcmVxdWVzdC51cmwoKSwgbV9zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgcmVxdWVzdC5odHRwTWV0aG9kKCksIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVycykp
IHsKKyAgICBpZiAoQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2luZ2xldG9uKCku
Y2FuU2tpcFByZWZsaWdodChtX3Nlc3Npb25JRCwgbV9vcmlnaW4tPnRvU3RyaW5nKCksIHJlcXVl
c3QudXJsKCksIG1fc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHJlcXVlc3QuaHR0cE1ldGhvZCgp
LCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnMpKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0IC0gcHJlZmxpZ2h0IGNhbiBiZSBz
a2lwcGVkIHRoYW5rcyB0byBjYWNoZWQgcmVzdWx0Iik7CiAgICAgICAgIHVwZGF0ZVJlcXVlc3RG
b3JBY2Nlc3NDb250cm9sKHJlcXVlc3QsICptX29yaWdpbiwgbV9zdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSk7CiAgICAgICAgIGhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzM1MGFiZDA1NzdjN2Q2NWQ3
MzUxMWQ0YWRjMmJlMzJhYWU1YmJhZS4uZjFlY2IzNzUwN2E1ZTYxZDRhYWZmN2Y3Mzk4M2RiZjYy
Mzk5NjhkMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTExICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFydGl0aW9uIENyb3NzT3JpZ2luUHJlZmxp
Z2h0UmVzdWx0Q2FjaGUgYnkgU2Vzc2lvbklECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5MTAKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4g
RmFibGV0LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3
b3JrUHJvY2Vzcy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTA2LTA4ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBGYWN0b3IgTWFya2VkVGV4dCBjb2xs
ZWN0aW9uIG91dCBvZiBMZWdhY3lJbmxpbmVUZXh0Qm94CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OZXR3b3JrUHJvY2Vzcy5tbQppbmRleCBmNGQx
ZWY4OWIyN2E2ODRiNzUzZmRmM2M5ZTNjYTAwYTZkYWVlNDFmLi5hNzcyMGM1YWM1NGM5ZGRmZjIz
ZTRlMTE1ODRmOWNkMWM1Yzk0MDQ5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05ldHdvcmtQcm9jZXNzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTmV0d29ya1Byb2Nlc3MubW0KQEAgLTE0NSwzICsxNDUsNTAg
QEAgVEVTVChOZXR3b3JrUHJvY2VzcywgVGVybWluYXRlV2hlblVudXNlZCkKICAgICB3aGlsZSAo
W1dLV2Vic2l0ZURhdGFTdG9yZSBfZGVmYXVsdE5ldHdvcmtQcm9jZXNzRXhpc3RzXSkKICAgICAg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKIH0KKworVEVTVChOZXR3b3Jr
UHJvY2VzcywgQ09SU1ByZWZsaWdodENhY2hlUGFydGl0aW9uZWQpCit7CisgICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgc2l6ZV90IHByZWZsaWdodFJlcXVlc3RzUmVjZWl2
ZWQgeyAwIH07CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoWyZdIChDb25uZWN0aW9uIGNvbm5lY3Rp
b24pIHsKKyAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWyYsIGNvbm5lY3Rp
b25dIChWZWN0b3I8Y2hhcj4mJiByZXF1ZXN0KSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBl
eHBlY3RlZFJlcXVlc3RCZWdpbiA9ICJPUFRJT05TIC8gSFRUUC8xLjFcclxuIjsKKyAgICAgICAg
ICAgIEVYUEVDVF9UUlVFKCFtZW1jbXAocmVxdWVzdC5kYXRhKCksIGV4cGVjdGVkUmVxdWVzdEJl
Z2luLCBzdHJsZW4oZXhwZWN0ZWRSZXF1ZXN0QmVnaW4pKSk7CisgICAgICAgICAgICBFWFBFQ1Rf
VFJVRShzdHJuc3RyKHJlcXVlc3QuZGF0YSgpLCAiT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21c
clxuIiwgcmVxdWVzdC5zaXplKCkpKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHN0cm5zdHIo
cmVxdWVzdC5kYXRhKCksICJBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZDogREVMRVRFXHJc
biIsIHJlcXVlc3Quc2l6ZSgpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHJlc3BvbnNlID0KKyAgICAgICAgICAgICJIVFRQLzEuMSAyMDQgTm8gQ29udGVudFxyXG4i
CisgICAgICAgICAgICAiQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiBodHRwOi8vZXhhbXBs
ZS5jb21cclxuIgorICAgICAgICAgICAgIkFjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHM6IE9Q
VElPTlMsIEdFVCwgUE9TVCwgREVMRVRFXHJcbiIKKyAgICAgICAgICAgICJDYWNoZS1Db250cm9s
OiBtYXgtYWdlPTYwNDgwMFxyXG5cclxuIjsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2VuZChy
ZXNwb25zZSwgWyYsIGNvbm5lY3Rpb25dIHsKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnJl
Y2VpdmVIVFRQUmVxdWVzdChbJiwgY29ubmVjdGlvbl0gKFZlY3RvcjxjaGFyPiYmIHJlcXVlc3Qp
IHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXhwZWN0ZWRSZXF1ZXN0QmVnaW4g
PSAiREVMRVRFIC8gSFRUUC8xLjFcclxuIjsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RS
VUUoIW1lbWNtcChyZXF1ZXN0LmRhdGEoKSwgZXhwZWN0ZWRSZXF1ZXN0QmVnaW4sIHN0cmxlbihl
eHBlY3RlZFJlcXVlc3RCZWdpbikpKTsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUo
c3RybnN0cihyZXF1ZXN0LmRhdGEoKSwgIk9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbiIs
IHJlcXVlc3Quc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHJlc3Bv
bnNlID0KKyAgICAgICAgICAgICAgICAgICAgIkhUVFAvMS4xIDIwMCBPS1xyXG4iCisgICAgICAg
ICAgICAgICAgICAgICJDb250ZW50LUxlbmd0aDogMlxyXG5cclxuIgorICAgICAgICAgICAgICAg
ICAgICAiaGkiOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLnNlbmQocmVzcG9uc2Us
IFsmLCBjb25uZWN0aW9uXSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVmbGlnaHRSZXF1
ZXN0c1JlY2VpdmVkKys7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOworICAgIE5TU3RyaW5n
ICpodG1sID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCI8c2NyaXB0PnZhciB4aHIgPSBu
ZXcgWE1MSHR0cFJlcXVlc3QoKTt4aHIub3BlbignREVMRVRFJywgJ2h0dHA6Ly9sb2NhbGhvc3Q6
JWQvJyk7eGhyLnNlbmQoKTwvc2NyaXB0PiIsIHNlcnZlci5wb3J0KCldOworICAgIE5TVVJMICpi
YXNlVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl07Cisg
ICAgYXV0byBmaXJzdFdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgW2Zp
cnN0V2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sIGJhc2VVUkw6YmFzZVVSTF07CisgICAgd2hp
bGUgKHByZWZsaWdodFJlcXVlc3RzUmVjZWl2ZWQgIT0gMSkKKyAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgY29uZmlndXJhdGlvbi5nZXQo
KS53ZWJzaXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0
YVN0b3JlXTsKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRIVE1MU3Ry
aW5nOmh0bWwgYmFzZVVSTDpiYXNlVVJMXTsKKyAgICB3aGlsZSAocHJlZmxpZ2h0UmVxdWVzdHNS
ZWNlaXZlZCAhPSAyKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgp
OworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>