<?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>169797</bug_id>
          
          <creation_ts>2017-03-16 16:29:01 -0700</creation_ts>
          <short_desc>Make HTTPCookieStorage operate in the UIProcess in absence of a WebProcessPool</short_desc>
          <delta_ts>2017-03-17 16:23:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288831</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-16 16:29:01 -0700</bug_when>
    <thetext>Make HTTPCookieStorage operate in the UIProcess in absence of a WebProcessPool

Currently it creates transient process pools, just to create networking processes, just for cookie operations.

That&apos;s nuts - It should operate in the UIProcess and then just flush cookies if an associated WebProcessPool comes into existence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288832</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-16 16:29:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/31102330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289137</commentid>
    <comment_count>2</comment_count>
      <attachid>304819</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-17 13:48:13 -0700</bug_when>
    <thetext>Created attachment 304819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289146</commentid>
    <comment_count>3</comment_count>
      <attachid>304819</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-17 14:04:03 -0700</bug_when>
    <thetext>Comment on attachment 304819
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (No behavior change).

I&apos;m not entirely convinced.

&gt; Source/WebKit2/UIProcess/API/APIHTTPCookieStore.cpp:63
&gt; +        callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies = WTFMove(allCookies)]() {

Cookies contain a lot of Strings.  Should we do an isolated copy here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289147</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-17 14:09:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 304819 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=304819&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests (No behavior change).
&gt; 
&gt; I&apos;m not entirely convinced.

I assure you - &quot;Setting cookies without a process pool&quot; didn&apos;t work before, and still doesn&apos;t work after this patch. :)

It just gets us closer. We can chat in person about what&apos;s left.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/APIHTTPCookieStore.cpp:63
&gt; &gt; +        callOnMainThread([completionHandler = WTFMove(completionHandler), allCookies = WTFMove(allCookies)]() {
&gt; 
&gt; Cookies contain a lot of Strings.  Should we do an isolated copy here?

I think that&apos;d be more expensive, right?

(I&apos;m unsure why you&apos;re making the request)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289177</commentid>
    <comment_count>5</comment_count>
      <attachid>304829</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-03-17 15:42:18 -0700</bug_when>
    <thetext>Created attachment 304829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289191</commentid>
    <comment_count>6</comment_count>
      <attachid>304829</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-17 16:23:42 -0700</bug_when>
    <thetext>Comment on attachment 304829
Patch

Clearing flags on attachment: 304829

Committed r214127: &lt;http://trac.webkit.org/changeset/214127&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289192</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-17 16:23:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304819</attachid>
            <date>2017-03-17 13:48:13 -0700</date>
            <delta_ts>2017-03-17 15:42:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169797-20170317134844.patch</filename>
            <type>text/plain</type>
            <size>17640</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY5ZmZmNzg3MTQ4OTQ2
M2U4NzEzMjU3M2UyNzc4YzA4YzA5NjIyMy4uMTYyNjQyODI4ZDE2MzRiYTc5ZmEyMDgwODkyODBk
NWU4YmUzMWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAzLTE3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEhUVFBDb29raWVT
dG9yYWdlIG9wZXJhdGUgaW4gdGhlIFVJUHJvY2VzcyBpbiBhYnNlbmNlIG9mIGEgV2ViUHJvY2Vz
c1Bvb2wuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEwMjMzMD4gYW5kIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk3OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE5vIGJlaGF2aW9yIGNo
YW5nZSkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmZs
dXNoQ29va2llU3RvcmUpOgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdv
cmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpmbHVzaENvb2tpZVN0b3JlKToKKwogMjAxNy0wMy0xNyAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgU29ja2V0U3Ry
ZWFtRXJyb3IgYSBwcml2YXRlIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwMDNjNmQ2ZjZkMzRiNDU1
MTdkYmVjYWZjYTU4N2QwMTdkOTM2YTdjLi40OTU3Y2VjYWM4NzFlMGQzMWQ5NTk3MjU4MDY2YjFk
MTY3NDA2N2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTctMDMtMTcgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgSFRUUENvb2tpZVN0
b3JhZ2Ugb3BlcmF0ZSBpbiB0aGUgVUlQcm9jZXNzIGluIGFic2VuY2Ugb2YgYSBXZWJQcm9jZXNz
UG9vbC4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMTAyMzMwPiBhbmQgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTc5NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2ll
U3RvcmUuY3BwOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6On5IVFRQQ29va2llU3Rv
cmUpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OmNvb2tpZXMpOgorICAgICAgICAo
QVBJOjpIVFRQQ29va2llU3RvcmU6OnNldENvb2tpZSk6CisgICAgICAgIChBUEk6OkhUVFBDb29r
aWVTdG9yZTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpy
ZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjp1bnJlZ2lz
dGVyT2JzZXJ2ZXIpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OmNvb2tpZU1hbmFn
ZXJEZXN0cm95ZWQpOgorICAgICAgICAoQVBJOjpIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyRm9y
TmV3UHJvY2Vzc1Bvb2xOb3RpZmljYXRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SUhUVFBDb29raWVTdG9yZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVh
dGVkKToKKyAgICAgICAgKFdlYktpdDo6bV9oaWRkZW5QYWdlVGhyb3R0bGluZ1RpbWVyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnByb2Nlc3NQb29sRm9yQ29va2llU3Rv
cmFnZU5vdGlmaWNhdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisKIDIwMTctMDMtMTcgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHJlbG9hZCBwb2xpY3kgd2hlcmUgb25s
eSBleHBpcmVkIHN1YnJlc291cmNlcyBhcmUgcmV2YWxpZGF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4
IGJmYTU3ZDUxZDRhZGZiMmE2Y2U0OTE0OGQ4OWMwZDUyNGViYTAzYjYuLmFhN2FmNzRjOTMzMmM0
ZDU4NTUwMmZlYWQ1ZmE5ZGM2ODZkMTExNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMTA1LDYgKzEw
NSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25z
dCBDb29raWUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRBbGxDb29r
aWVzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0Q29va2llcyhjb25z
dCBVUkwmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3RvcmUoKTsKIAog
cHJpdmF0ZToKICAgICBzdGF0aWMgSGFzaE1hcDxTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrU3RvcmFnZVNlc3Npb24+PiYgZ2xvYmFsU2Vzc2lvbk1hcCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggNGM5NTY3ZTljNjdhMGE0NzY3NmE4ZmM3Zjhl
ZDRhZjRkZTE1NTI5Zi4uOTU3ZGNjODFhMzI4YjkxYzU0MGU1ZDcxMmNlNDNkZWJiODQ1YTVkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIk5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIgog
CisjaW1wb3J0ICJDRk5ldHdvcmtTUEkuaCIKICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAi
VVJMLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgpAQCAtNzUsNiArNzYs
MTEgQEAgVmVjdG9yPENvb2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRDb29raWVzKGNv
bnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBuc0Nvb2tpZXNUb0Nvb2tpZVZlY3RvcihbbnNDb29r
aWVTdG9yYWdlKCkgY29va2llc0ZvclVSTDooTlNVUkwgKil1cmxdKTsKIH0KIAordm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmZsdXNoQ29va2llU3RvcmUoKQoreworICAgIFtuc0Nvb2tpZVN0
b3JhZ2UoKSBfc2F2ZUNvb2tpZXNdOworfQorCiBOU0hUVFBDb29raWVTdG9yYWdlICpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246Om5zQ29va2llU3RvcmFnZSgpIGNvbnN0CiB7CiAgICAgYXV0byBjZkNv
b2tpZVN0b3JhZ2UgPSBjb29raWVTdG9yYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
U291cC5jcHAKaW5kZXggZmE4OGFhOTJjYzMyMjM1OTYwMzBjZDkwODgyMDA4MTViZGVjNmYxYy4u
N2IzZmY4N2UwMTdhZjNlNmE3ZjAxMmFhZmU3MTZiMzg1YzhjYTEwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzI2LDYgKzMyNiwxMSBAQCBWZWN0b3I8Q29va2ll
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldENvb2tpZXMoY29uc3QgVVJMJikKICAgICByZXR1
cm4geyB9OwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Zmx1c2hDb29raWVTdG9y
ZSgpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgV0syIHRvIHVzZS4KK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVVNFKFNPVVApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKaW5kZXggMDM3
MmY1NzQ0Y2VlNDBiNGI3NmM1ZDM1MTdkMTU1NWJkNjQ5MDZlNy4uYjlmNDBiM2YzYTFkMDFkNzdh
Mzg4YjhkODE1YTg1OGUxYWVlMjU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1
ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZVN0
b3JhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC00NSw2ICs0Nyw3IEBAIEhUVFBDb29raWVTdG9y
ZTo6fkhUVFBDb29raWVTdG9yZSgpCiAgICAgQVNTRVJUKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSk7
CiAgICAgQVNTRVJUKCFtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5KTsKICAgICBBU1NFUlQo
IW1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOworICAgIEFTU0VSVCghbV9vYnNlcnZpbmdV
SVByb2Nlc3NDb29raWVzKTsKIAogICAgIHVucmVnaXN0ZXJGb3JOZXdQcm9jZXNzUG9vbE5vdGlm
aWNhdGlvbnMoKTsKIH0KQEAgLTUyLDkgKzU1LDE5IEBAIEhUVFBDb29raWVTdG9yZTo6fkhUVFBD
b29raWVTdG9yZSgpCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llcyhGdW5jdGlvbjx2b2lk
IChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGF1dG8mIGRhdGFTdG9yZSA9IG1fb3duaW5nRGF0YVN0b3JlLndlYnNpdGVEYXRhU3Rv
cmUoKTsKLSAgICBhdXRvIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9y
YWdlT3BlcmF0aW9ucygpOwotICAgIGF1dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVt
ZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOworICAgIGF1dG8qIHBvb2wgPSBk
YXRhU3RvcmUucHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOworICAgIGlm
ICghcG9vbCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhl
IHJpZ2h0IHN0b3JhZ2Ugc2Vzc2lvbiwgYnV0IGl0J3MgY3VycmVudGx5CisgICAgICAgIC8vIHRo
ZSBiZXN0IHdlIGNhbiBkbyBpbiB0aGUgYWJzZW5jZSBvZiBhIHByb2Nlc3MgcG9vbC4KKyAgICAg
ICAgYXV0byBhbGxDb29raWVzID0gV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZh
dWx0U3RvcmFnZVNlc3Npb24oKS5nZXRBbGxDb29raWVzKCk7CisgICAgICAgIGNhbGxPbk1haW5U
aHJlYWQoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGFs
bENvb2tpZXMgPSBXVEZNb3ZlKGFsbENvb2tpZXMpXSgpIHsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGFsbENvb2tpZXMpOworICAgICAgICB9KTsKKworICAgICAgICByZXR1cm47Cisg
ICAgfQogCisgICAgYXV0byogY29va2llTWFuYWdlciA9IHBvb2wtPnN1cHBsZW1lbnQ8V2ViS2l0
OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+KCk7CiAgICAgY29va2llTWFuYWdlci0+Z2V0QWxsQ29v
a2llcyhkYXRhU3RvcmUuc2Vzc2lvbklEKCksIFtwb29sID0gV1RGTW92ZShwb29sKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mIGNvb2tpZXMsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoY29va2llcyk7CiAgICAgfSk7CkBAIC02Myw5ICs3Niwx
OSBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29va2llcyhGdW5jdGlvbjx2b2lkIChjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpPiYmCiB2b2lkIEhUVFBDb29raWVTdG9yZTo6c2V0Q29v
a2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIGRhdGFTdG9yZSA9IG1fb3duaW5nRGF0YVN0
b3JlLndlYnNpdGVEYXRhU3RvcmUoKTsKLSAgICBhdXRvIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vz
c1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwotICAgIGF1dG8qIGNvb2tpZU1hbmFn
ZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOwor
ICAgIGF1dG8qIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3Bl
cmF0aW9ucygpOworICAgIGlmICghcG9vbCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBu
b3QgbmVjZXNzYXJpbHkgdGhlIHJpZ2h0IHN0b3JhZ2Ugc2Vzc2lvbiwgYnV0IGl0J3MgY3VycmVu
dGx5CisgICAgICAgIC8vIHRoZSBiZXN0IHdlIGNhbiBkbyBpbiB0aGUgYWJzZW5jZSBvZiBhIHBy
b2Nlc3MgcG9vbC4KKyAgICAgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZh
dWx0U3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWUoY29va2llKTsKKyAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKKworICAg
ICAgICByZXR1cm47CisgICAgfQogCisgICAgYXV0byogY29va2llTWFuYWdlciA9IHBvb2wtPnN1
cHBsZW1lbnQ8V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+KCk7CiAgICAgY29va2llTWFu
YWdlci0+c2V0Q29va2llKGRhdGFTdG9yZS5zZXNzaW9uSUQoKSwgY29va2llLCBbcG9vbCA9IFdU
Rk1vdmUocG9vbCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKICAgICB9KTsKQEAgLTc0LDkgKzk3LDE5IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpz
ZXRDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJiBjb29raWUsIEZ1bmN0aW9uPHZvaWQgKCk+
CiB2b2lkIEhUVFBDb29raWVTdG9yZTo6ZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tp
ZSYgY29va2llLCBGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8mIGRhdGFTdG9yZSA9IG1fb3duaW5nRGF0YVN0b3JlLndlYnNpdGVEYXRhU3RvcmUoKTsK
LSAgICBhdXRvIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3Bl
cmF0aW9ucygpOwotICAgIGF1dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOworICAgIGF1dG8qIHBvb2wgPSBkYXRhU3Rv
cmUucHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOworICAgIGlmICghcG9v
bCkgeworICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIHJpZ2h0
IHN0b3JhZ2Ugc2Vzc2lvbiwgYnV0IGl0J3MgY3VycmVudGx5CisgICAgICAgIC8vIHRoZSBiZXN0
IHdlIGNhbiBkbyBpbiB0aGUgYWJzZW5jZSBvZiBhIHByb2Nlc3MgcG9vbC4KKyAgICAgICAgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKS5kZWxl
dGVDb29raWUoY29va2llKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKKworICAgICAgICByZXR1cm47CisgICAgfQog
CisgICAgYXV0byogY29va2llTWFuYWdlciA9IHBvb2wtPnN1cHBsZW1lbnQ8V2ViS2l0OjpXZWJD
b29raWVNYW5hZ2VyUHJveHk+KCk7CiAgICAgY29va2llTWFuYWdlci0+ZGVsZXRlQ29va2llKGRh
dGFTdG9yZS5zZXNzaW9uSUQoKSwgY29va2llLCBbcG9vbCA9IFdURk1vdmUocG9vbCksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKENhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKQEAg
LTExNSwxMCArMTQ4LDE5IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpyZWdpc3Rlck9ic2VydmVy
KE9ic2VydmVyJiBvYnNlcnZlcikKICAgICBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyID0g
c3RkOjptYWtlX3VuaXF1ZTxBUElXZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4oKnRoaXMp
OwogCiAgICAgYXV0byYgZGF0YVN0b3JlID0gbV9vd25pbmdEYXRhU3RvcmUud2Vic2l0ZURhdGFT
dG9yZSgpOwotICAgIGF1dG8qIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vzc1Bvb2xGb3JDb29raWVT
dG9yYWdlTm90aWZpY2F0aW9ucygpOworICAgIGF1dG8qIHBvb2wgPSBkYXRhU3RvcmUucHJvY2Vz
c1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9ucygpOwogCiAgICAgaWYgKCFwb29sKSB7CiAg
ICAgICAgIHJlZ2lzdGVyRm9yTmV3UHJvY2Vzc1Bvb2xOb3RpZmljYXRpb25zKCk7CisgICAgICAg
IEFTU0VSVCghbV9vYnNlcnZpbmdVSVByb2Nlc3NDb29raWVzKTsKKworICAgICAgICAvLyBMaXN0
ZW4gZm9yIGNvb2tpZSBub3RpZmljYXRpb25zIGluIHRoZSBVSVByb2Nlc3MgaW4gdGhlIG1lYW50
aW1lLgorICAgICAgICBXZWJDb3JlOjpzdGFydE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0U3RvcmFnZVNlc3Npb24oKSwgW3RoaXNd
ICgpIHsKKyAgICAgICAgICAgIGNvb2tpZXNEaWRDaGFuZ2UoKTsKKyAgICAgICAgfSk7CisKKyAg
ICAgICAgbV9vYnNlcnZpbmdVSVByb2Nlc3NDb29raWVzID0gdHJ1ZTsKKwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0xMzYsMTIgKzE3OCwxNiBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6
dW5yZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICBpZiAobV9vYnNlcnZl
ZENvb2tpZU1hbmFnZXJQcm94eSkKICAgICAgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94
eS0+dW5yZWdpc3Rlck9ic2VydmVyKG1fb3duaW5nRGF0YVN0b3JlLndlYnNpdGVEYXRhU3RvcmUo
KS5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXIpOwogCisgICAgaWYg
KG1fb2JzZXJ2aW5nVUlQcm9jZXNzQ29va2llcykKKyAgICAgICAgV2ViQ29yZTo6c3RvcE9ic2Vy
dmluZ0Nvb2tpZUNoYW5nZXMoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWZhdWx0
U3RvcmFnZVNlc3Npb24oKSk7CisKICAgICBpZiAobV9wcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVu
ZXJJZGVudGlmaWVyKQogICAgICAgICBXZWJQcm9jZXNzUG9vbDo6dW5yZWdpc3RlclByb2Nlc3NQ
b29sQ3JlYXRpb25MaXN0ZW5lcihtX3Byb2Nlc3NQb29sQ3JlYXRpb25MaXN0ZW5lcklkZW50aWZp
ZXIpOwogCiAgICAgbV9wcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXJJZGVudGlmaWVyID0gMDsK
ICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5ID0gbnVsbHB0cjsKICAgICBtX2Nvb2tp
ZU1hbmFnZXJQcm94eU9ic2VydmVyID0gbnVsbHB0cjsKKyAgICBtX29ic2VydmluZ1VJUHJvY2Vz
c0Nvb2tpZXMgPSBmYWxzZTsKIH0KIAogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXNEaWRD
aGFuZ2UoKQpAQCAtMTU3LDcgKzIwMyw3IEBAIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpjb29raWVN
YW5hZ2VyRGVzdHJveWVkKCkKICAgICBtX29ic2VydmVkQ29va2llTWFuYWdlclByb3h5LT51bnJl
Z2lzdGVyT2JzZXJ2ZXIoZGF0YVN0b3JlLnNlc3Npb25JRCgpLCAqbV9jb29raWVNYW5hZ2VyUHJv
eHlPYnNlcnZlcik7CiAgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9IG51bGxwdHI7
CiAKLSAgICBhdXRvKiBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFn
ZU5vdGlmaWNhdGlvbnMoKTsKKyAgICBhdXRvKiBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29s
Rm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKIAogICAgIGlmICghcG9vbCkgewogICAgICAg
ICByZWdpc3RlckZvck5ld1Byb2Nlc3NQb29sTm90aWZpY2F0aW9ucygpOwpAQCAtMTc4LDYgKzIy
NCwxMiBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJGb3JOZXdQcm9jZXNzUG9vbE5v
dGlmaWNhdGlvbnMoKQogICAgICAgICBpZiAoIW1fb3duaW5nRGF0YVN0b3JlLndlYnNpdGVEYXRh
U3RvcmUoKS5pc0Fzc29jaWF0ZWRQcm9jZXNzUG9vbChuZXdQcm9jZXNzUG9vbCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgLy8gTm93IHRoYXQgYW4gYXNzb2NpYXRlZCBwcm9jZXNz
IHBvb2wgZXhpc3RzLCB3ZSBuZWVkIHRvIGZsdXNoIHRoZSBVSSBwcm9jZXNzIGNvb2tpZSBzdG9y
ZQorICAgICAgICAvLyB0byBtYWtlIHN1cmUgYW55IGNoYW5nZXMgYXJlIHJlZmxlY3RlZCB3aXRo
aW4gdGhlIG5ldyBwcm9jZXNzIHBvb2wuCisgICAgICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuZmx1c2hDb29raWVTdG9yZSgpOworICAg
ICAgICBuZXdQcm9jZXNzUG9vbC5lbnN1cmVOZXR3b3JrUHJvY2VzcygpOworCisKICAgICAgICAg
bV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9IG5ld1Byb2Nlc3NQb29sLnN1cHBsZW1lbnQ8
V2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHk+KCk7CiAgICAgICAgIG1fb2JzZXJ2ZWRDb29r
aWVNYW5hZ2VyUHJveHktPnJlZ2lzdGVyT2JzZXJ2ZXIobV9vd25pbmdEYXRhU3RvcmUud2Vic2l0
ZURhdGFTdG9yZSgpLnNlc3Npb25JRCgpLCAqbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcik7
CiAgICAgICAgIHVucmVnaXN0ZXJGb3JOZXdQcm9jZXNzUG9vbE5vdGlmaWNhdGlvbnMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCmlu
ZGV4IDZmOWY0NzZlODAxOGFiMWRmMTE4NjI4Y2RjMDcyNTMxMGU2MjM2NjUuLmRmYzA1NmZkMTZh
MjUyY2Q3ODhhZTQ4OGRlYzQ3YzMyMzNhOGE1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuaApAQCAtODEsNiArODEsNyBAQCBwcml2
YXRlOgogCiAgICAgV2ViS2l0OjpXZWJDb29raWVNYW5hZ2VyUHJveHkqIG1fb2JzZXJ2ZWRDb29r
aWVNYW5hZ2VyUHJveHkgeyBudWxscHRyIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFQSVdlYkNv
b2tpZU1hbmFnZXJQcm94eU9ic2VydmVyPiBtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyOwor
ICAgIGJvb2wgbV9vYnNlcnZpbmdVSVByb2Nlc3NDb29raWVzIHsgZmFsc2UgfTsKIAogICAgIHVp
bnQ2NF90IG1fcHJvY2Vzc1Bvb2xDcmVhdGlvbkxpc3RlbmVySWRlbnRpZmllciB7IDAgfTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBkMzE4
YWFlZDAyMzY2M2FlZWEyNzM1YjgyMWExOGFmZjJiMWZiZWE2Li5mN2M0ZTJkMDBjOGZmZTBmNjc2
NWQ3MWI3ZDZmODQzYTBmNWNkOTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKQEAgLTE0NCw4ICsxNDQsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
dW5yZWdpc3RlclByb2Nlc3NQb29sQ3JlYXRpb25MaXN0ZW5lcih1aW50NjRfdCBpZGVudGlmaWVy
KQogUmVmPFdlYlByb2Nlc3NQb29sPiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlKEFQSTo6UHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewogICAgIEluaXRpYWxpemVXZWJL
aXQyKCk7Ci0gICAgYXV0byBuZXdQb29sID0gYWRvcHRSZWYoKm5ldyBXZWJQcm9jZXNzUG9vbChj
b25maWd1cmF0aW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Bvb2wo
Y29uZmlndXJhdGlvbikpOworfQogCit2b2lkIFdlYlByb2Nlc3NQb29sOjpub3RpZnlUaGlzV2Vi
UHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCkKK3sKICAgICBhdXRvJiBsaXN0ZW5lck1hcCA9IHByb2Nl
c3NQb29sQ3JlYXRpb25MaXN0ZW5lckZ1bmN0aW9uTWFwKCk7CiAKICAgICBWZWN0b3I8dWludDY0
X3Q+IGlkZW50aWZpZXJzOwpAQCAtMTY0LDcgKzE2Nyw3IEBAIFJlZjxXZWJQcm9jZXNzUG9vbD4g
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29u
ZmlnCiAgICAgICAgIC8vIHJlbW92aW5nIGl0c2VsZiBmcm9tIHRoZSBtYXAgb2YgbGlzdGVuZXJz
LgogICAgICAgICAvLyBJZiB0aGUgaWRlbnRpZmllciBzdGlsbCBleGlzdHMgaW4gdGhlIG1hcCBs
YXRlciwgd2UgbW92ZSBpdCBiYWNrIGluLgogICAgICAgICBGdW5jdGlvbjx2b2lkKFdlYlByb2Nl
c3NQb29sJik+IGZ1bmN0aW9uID0gV1RGTW92ZShpdGVyYXRvci0+dmFsdWUpOwotICAgICAgICBm
dW5jdGlvbihuZXdQb29sLmdldCgpKTsKKyAgICAgICAgZnVuY3Rpb24oKnRoaXMpOwogCiAgICAg
ICAgIGl0ZXJhdG9yID0gbGlzdGVuZXJNYXAuZmluZChpZGVudGlmaWVyKTsKICAgICAgICAgaWYg
KGl0ZXJhdG9yICE9IGxpc3RlbmVyTWFwLmVuZCgpKSB7CkBAIC0xNzIsOCArMTc1LDYgQEAgUmVm
PFdlYlByb2Nlc3NQb29sPiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlKEFQSTo6UHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uJiBjb25maWcKICAgICAgICAgICAgIGl0ZXJhdG9yLT52YWx1ZSA9IFdURk1v
dmUoZnVuY3Rpb24pOwogICAgICAgICB9CiAgICAgfQotCi0gICAgcmV0dXJuIG5ld1Bvb2w7CiB9
CiAKIHN0YXRpYyBWZWN0b3I8V2ViUHJvY2Vzc1Bvb2wqPiYgcHJvY2Vzc1Bvb2xzKCkKQEAgLTI3
OCw2ICsyNzksOCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAjaWZuZGVmIE5ERUJVRwogICAgIHBy
b2Nlc3NQb29sQ291bnRlci5pbmNyZW1lbnQoKTsKICNlbmRpZgorCisgICAgbm90aWZ5VGhpc1dl
YlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA3MjNlODliNDhlNTAz
MGQ3NmZmNmY1NjViNThlYWNhZmU0NzFkODhmLi4zNjY0YWZlZWI0YjYwYzBiOTkyOGE5ZjllMGFh
MzQzYTcyOGI1ZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXZWJQcm9jZXNzUG9v
bChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYpOyAgICAgICAgCiAgICAgdmlydHVhbCB+
V2ViUHJvY2Vzc1Bvb2woKTsKIAorICAgIHZvaWQgbm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2Fz
Q3JlYXRlZCgpOworCiAgICAgQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24oKSB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uZ2V0KCk7IH0KIAogICAgIHN0YXRpYyBj
b25zdCBWZWN0b3I8V2ViUHJvY2Vzc1Bvb2wqPiYgYWxsUHJvY2Vzc1Bvb2xzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKaW5kZXggN2FjZjkxZjY0NTE4MDUyMzdiYTNhYmMzNjkxNzQ4ZWUyODQxNjkyMC4u
MWZjMzUzODA3NDU4MDA1MTNlZGZjZDYzZTU3MGNkMjg4ZjU4NzhlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcApAQCAtMTA2LDI4ICsxMDYsNyBAQCBXZWJzaXRlRGF0YVN0b3JlOjp+V2Vic2l0ZURhdGFT
dG9yZSgpCiAgICAgfQogfQogCi1SZWY8V2ViUHJvY2Vzc1Bvb2w+IFdlYnNpdGVEYXRhU3RvcmU6
OnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKQotewotICAgIC8vIE91ciBj
b25jZXB0cyBvZiBXZWJQcm9jZXNzLCBXZWJQcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSwg
YW5kIFNlc3Npb25JRHMgaGF2ZSBhbGwgc3RhcnRlZCB0byBvdmVybGFwCi0gICAgLy8gd2l0aG91
dCBjbGVhciBkaXZpc2lvbnMgb2YgcmVzcG9uc2liaWxpdGllcy4KLSAgICAvLyBJbiBwcmFjdGlj
ZSwgbXVsdGlwbGUgV2ViUHJvY2Vzc1Bvb2xzIGNhbiBjb250YWluICJ0aGUgc2FtZSBzZXNzaW9u
IiwgZXNwZWNpYWxseSBzaW5jZSB0aGVyZSBpcyBjdXJyZW50bHkKLSAgICAvLyBvbmx5IGEgc2lu
Z2xlIGRlZmF1bHQgZ2xvYmFsIFNlc3Npb25JRC4KLSAgICAvLwotICAgIC8vIFRoaXMgbWVhbnMg
dGhhdCBtdWx0aXBsZSBOZXR3b3JrUHJvY2Vzc2VzIGNhbiBiZSB1c2luZyB0aGUgc2FtZSBzZXNz
aW9uLCB3aGljaCBtZWFucyB0aGF0IG11bHRpcGxlCi0gICAgLy8gTmV0d29ya1Byb2Nlc3NlcyBj
YW4gYmUgcmVmZXJyaW5nIHRvIHRoZSBzYW1lIHBsYXRmb3JtIGNvb2tpZSBzdG9yYWdlLgotICAg
IC8vCi0gICAgLy8gV2hpbGUgdGhpcyBtYXkgY2F1c2UgY29tcGxpY2F0aW9ucyB3aXRoIGZ1dHVy
ZSBBUElzIGl0IGlzIGFjdHVhbGx5IGZpbmUgZm9yIGltcGxlbWVudGluZyB0aGUgV0tIVFRQQ29v
a2llU3RvcmUgQVBJCi0gICAgLy8gYmVjYXVzZSB3ZSBvbmx5IG5lZWQgb25lIE5ldHdvcmtQcm9j
ZXNzIHRvIHN1Y2Nlc3NmdWxseSBtYWtlIGEgcmVxdWVzdGVkIHBsYXRmb3JtIGNvb2tpZSBzdG9y
YWdlIGNoYW5nZS4KLSAgICAvLwotICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIHN0YXJ0IHRvIHVu
cmF2ZWwgdGhpcyBtZXNzIGdvaW5nIGZvcndhcmQuCi0KLSAgICBhdXRvIHBvb2xzID0gcHJvY2Vz
c1Bvb2xzKDEpOwotICAgIEFTU0VSVCghcG9vbHMuaXNFbXB0eSgpKTsKLQotICAgIHJldHVybiAq
KnBvb2xzLmJlZ2luKCk7Ci19Ci0KLVdlYlByb2Nlc3NQb29sKiBXZWJzaXRlRGF0YVN0b3JlOjpw
cm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VOb3RpZmljYXRpb25zKCkKK1dlYlByb2Nlc3NQb29s
KiBXZWJzaXRlRGF0YVN0b3JlOjpwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25z
KCkKIHsKICAgICBhdXRvIHBvb2xzID0gcHJvY2Vzc1Bvb2xzKDEsIGZhbHNlKTsKICAgICByZXR1
cm4gcG9vbHMuaXNFbXB0eSgpID8gbnVsbHB0ciA6IHBvb2xzLmJlZ2luKCktPmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKaW5kZXggMzVjNjEwMDY5YWRiYjc0MTQ2Y2Y4NWQwMDc4NGZmNjBhYTNmZGNlNy4u
NzExNjQ2MGYxNWQyNzg1YWEzODY5NzgyOWMzYzBiMGI4MDM4NWRhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CkBAIC0xMDMsOCArMTAzLDcgQEAgcHVibGljOgogCiAgICAgU3RvcmFnZU1hbmFnZXIqIHN0b3Jh
Z2VNYW5hZ2VyKCkgeyByZXR1cm4gbV9zdG9yYWdlTWFuYWdlci5nZXQoKTsgfQogCi0gICAgUmVm
PFdlYlByb2Nlc3NQb29sPiBwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7
Ci0gICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU5vdGlmaWNh
dGlvbnMoKTsKKyAgICBXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdl
T3BlcmF0aW9ucygpOwogICAgIGJvb2wgaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2woV2ViUHJvY2Vz
c1Bvb2wmKSBjb25zdDsKIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304829</attachid>
            <date>2017-03-17 15:42:18 -0700</date>
            <delta_ts>2017-03-17 16:23:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169797-20170317154249.patch</filename>
            <type>text/plain</type>
            <size>17644</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTY5ZmZmNzg3MTQ4OTQ2
M2U4NzEzMjU3M2UyNzc4YzA4YzA5NjIyMy4uZjkwYWQzMDhhMmE1ZmQxMzcwNmNhNGM2ZTQwZmUy
YTNiMzBhMjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTAzLTE3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEhUVFBDb29raWVT
dG9yYWdlIG9wZXJhdGUgaW4gdGhlIFVJUHJvY2VzcyBpbiBhYnNlbmNlIG9mIGEgV2ViUHJvY2Vz
c1Bvb2wuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTEwMjMzMD4gYW5kIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk3OTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoTm8gYmVoYXZpb3Ig
Y2hhbmdlKS4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Zmx1c2hDb29raWVTdG9yZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmZsdXNoQ29va2llU3RvcmUpOgorCiAyMDE3LTAzLTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBTb2NrZXRT
dHJlYW1FcnJvciBhIHByaXZhdGUgaGVhZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDAwM2M2ZDZmNmQzNGI0
NTUxN2RiZWNhZmNhNTg3ZDAxN2Q5MzZhN2MuLjNiZjUxNzQxNWVhYzJlNWNkYTA1YzUxNWU5NGE0
OWJhNjNhMWM5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNy0wMy0xNyAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBIVFRQQ29va2ll
U3RvcmFnZSBvcGVyYXRlIGluIHRoZSBVSVByb2Nlc3MgaW4gYWJzZW5jZSBvZiBhIFdlYlByb2Nl
c3NQb29sLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzExMDIzMzA+IGFuZCBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSFRUUENv
b2tpZVN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjp+SFRUUENvb2tp
ZVN0b3JlKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpjb29raWVzKToKKyAgICAg
ICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpzZXRDb29raWUpOgorICAgICAgICAoQVBJOjpIVFRQ
Q29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9y
ZTo6cmVnaXN0ZXJPYnNlcnZlcik6CisgICAgICAgIChBUEk6OkhUVFBDb29raWVTdG9yZTo6dW5y
ZWdpc3Rlck9ic2VydmVyKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpjb29raWVN
YW5hZ2VyRGVzdHJveWVkKToKKyAgICAgICAgKEFQSTo6SFRUUENvb2tpZVN0b3JlOjpyZWdpc3Rl
ckZvck5ld1Byb2Nlc3NQb29sTm90aWZpY2F0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElIVFRQQ29va2llU3RvcmUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2Fz
Q3JlYXRlZCk6CisgICAgICAgIChXZWJLaXQ6Om1faGlkZGVuUGFnZVRocm90dGxpbmdUaW1lcik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpwcm9jZXNzUG9vbEZvckNvb2tp
ZVN0b3JhZ2VOb3RpZmljYXRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAyMDE3LTAzLTE3ICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSByZWxvYWQgcG9saWN5IHdoZXJl
IG9ubHkgZXhwaXJlZCBzdWJyZXNvdXJjZXMgYXJlIHJldmFsaWRhdGVkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApp
bmRleCBiZmE1N2Q1MWQ0YWRmYjJhNmNlNDkxNDhkODljMGQ1MjRlYmEwM2I2Li5hYTdhZjc0Yzkz
MzJjNGQ1ODU1MDJmZWFkNWZhOWRjNjg2ZDExMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTEwNSw2
ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUo
Y29uc3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0QWxs
Q29va2llcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+IGdldENvb2tpZXMo
Y29uc3QgVVJMJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmbHVzaENvb2tpZVN0b3JlKCk7
CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIEhhc2hNYXA8U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPj4mIGdsb2JhbFNlc3Npb25NYXAoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDRjOTU2N2U5YzY3YTBhNDc2NzZhOGZj
N2Y4ZWQ0YWY0ZGUxNTUyOWYuLjk1N2RjYzgxYTMyOGI5MWM1NDBlNWQ3MTJjZTQzZGViYjg0NWE1
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtMjYsNiArMjYs
NyBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJOZXR3b3JrU3RvcmFnZVNlc3Npb24u
aCIKIAorI2ltcG9ydCAiQ0ZOZXR3b3JrU1BJLmgiCiAjaW1wb3J0ICJDb29raWUuaCIKICNpbXBv
cnQgIlVSTC5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KQEAgLTc1LDYg
Kzc2LDExIEBAIFZlY3RvcjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0Q29va2ll
cyhjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gbnNDb29raWVzVG9Db29raWVWZWN0b3IoW25z
Q29va2llU3RvcmFnZSgpIGNvb2tpZXNGb3JVUkw6KE5TVVJMICopdXJsXSk7CiB9CiAKK3ZvaWQg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmbHVzaENvb2tpZVN0b3JlKCkKK3sKKyAgICBbbnNDb29r
aWVTdG9yYWdlKCkgX3NhdmVDb29raWVzXTsKK30KKwogTlNIVFRQQ29va2llU3RvcmFnZSAqTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpuc0Nvb2tpZVN0b3JhZ2UoKSBjb25zdAogewogICAgIGF1dG8g
Y2ZDb29raWVTdG9yYWdlID0gY29va2llU3RvcmFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCmluZGV4IGZhODhhYTkyY2MzMjIzNTk2MDMwY2Q5MDg4MjAwODE1YmRlYzZm
MWMuLjdiM2ZmODdlMDE3YWYzZTZhN2YwMTJhYWZlNzE2YjM4NWM4Y2ExMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTMyNiw2ICszMjYsMTEgQEAgVmVjdG9yPENv
b2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRDb29raWVzKGNvbnN0IFVSTCYpCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmZsdXNoQ29va2ll
U3RvcmUoKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIFdLMiB0byB1c2UuCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShTT1VQKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCmluZGV4
IDAzNzJmNTc0NGNlZTQwYjRiNzZjNWQzNTE3ZDE1NTViZDY0OTA2ZTcuLmI5ZjQwYjNmM2ExZDAx
ZDc3YTM4OGI4ZDgxNWE4NThlMWFlZTI1NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNp
bmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db29r
aWVTdG9yYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIApAQCAtNDUsNiArNDcsNyBAQCBIVFRQQ29va2ll
U3RvcmU6On5IVFRQQ29va2llU3RvcmUoKQogICAgIEFTU0VSVChtX29ic2VydmVycy5pc0VtcHR5
KCkpOwogICAgIEFTU0VSVCghbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSk7CiAgICAgQVNT
RVJUKCFtX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyKTsKKyAgICBBU1NFUlQoIW1fb2JzZXJ2
aW5nVUlQcm9jZXNzQ29va2llcyk7CiAKICAgICB1bnJlZ2lzdGVyRm9yTmV3UHJvY2Vzc1Bvb2xO
b3RpZmljYXRpb25zKCk7CiB9CkBAIC01Miw5ICs1NSwxOSBAQCBIVFRQQ29va2llU3RvcmU6On5I
VFRQQ29va2llU3RvcmUoKQogdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXMoRnVuY3Rpb248
dm9pZCAoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBhdXRvJiBkYXRhU3RvcmUgPSBtX293bmluZ0RhdGFTdG9yZS53ZWJzaXRlRGF0
YVN0b3JlKCk7Ci0gICAgYXV0byBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2ll
U3RvcmFnZU9wZXJhdGlvbnMoKTsKLSAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3Vw
cGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBhdXRvKiBwb29s
ID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKKyAg
ICBpZiAoIXBvb2wpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5
IHRoZSByaWdodCBzdG9yYWdlIHNlc3Npb24sIGJ1dCBpdCdzIGN1cnJlbnRseQorICAgICAgICAv
LyB0aGUgYmVzdCB3ZSBjYW4gZG8gaW4gdGhlIGFic2VuY2Ugb2YgYSBwcm9jZXNzIHBvb2wuCisg
ICAgICAgIGF1dG8gYWxsQ29va2llcyA9IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuZ2V0QWxsQ29va2llcygpOworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBhbGxDb29raWVzID0gV1RGTW92ZShhbGxDb29raWVzKV0oKSB7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihhbGxDb29raWVzKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJu
OworICAgIH0KIAorICAgIGF1dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdl
YktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOwogICAgIGNvb2tpZU1hbmFnZXItPmdldEFs
bENvb2tpZXMoZGF0YVN0b3JlLnNlc3Npb25JRCgpLCBbcG9vbCA9IFdURk1vdmUocG9vbCksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+JiBjb29raWVzLCBDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7
CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvb2tpZXMpOwogICAgIH0pOwpAQCAtNjMsOSAr
NzYsMTkgQEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OmNvb2tpZXMoRnVuY3Rpb248dm9pZCAoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKT4mJgogdm9pZCBIVFRQQ29va2llU3RvcmU6OnNl
dENvb2tpZShjb25zdCBXZWJDb3JlOjpDb29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiBkYXRhU3RvcmUgPSBtX293bmluZ0Rh
dGFTdG9yZS53ZWJzaXRlRGF0YVN0b3JlKCk7Ci0gICAgYXV0byBwb29sID0gZGF0YVN0b3JlLnBy
b2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKLSAgICBhdXRvKiBjb29raWVN
YW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVudDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4o
KTsKKyAgICBhdXRvKiBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFn
ZU9wZXJhdGlvbnMoKTsKKyAgICBpZiAoIXBvb2wpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMg
aXMgbm90IG5lY2Vzc2FyaWx5IHRoZSByaWdodCBzdG9yYWdlIHNlc3Npb24sIGJ1dCBpdCdzIGN1
cnJlbnRseQorICAgICAgICAvLyB0aGUgYmVzdCB3ZSBjYW4gZG8gaW4gdGhlIGFic2VuY2Ugb2Yg
YSBwcm9jZXNzIHBvb2wuCisgICAgICAgIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llKGNvb2tpZSk7CisgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKCkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAorICAgIGF1dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29s
LT5zdXBwbGVtZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOwogICAgIGNvb2tp
ZU1hbmFnZXItPnNldENvb2tpZShkYXRhU3RvcmUuc2Vzc2lvbklEKCksIGNvb2tpZSwgW3Bvb2wg
PSBXVEZNb3ZlKHBvb2wpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiAgICAgfSk7CkBAIC03NCw5ICs5NywxOSBAQCB2b2lkIEhUVFBDb29raWVTdG9y
ZTo6c2V0Q29va2llKGNvbnN0IFdlYkNvcmU6OkNvb2tpZSYgY29va2llLCBGdW5jdGlvbjx2b2lk
ICgpPgogdm9pZCBIVFRQQ29va2llU3RvcmU6OmRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpD
b29raWUmIGNvb2tpZSwgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvJiBkYXRhU3RvcmUgPSBtX293bmluZ0RhdGFTdG9yZS53ZWJzaXRlRGF0YVN0b3Jl
KCk7Ci0gICAgYXV0byBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFn
ZU9wZXJhdGlvbnMoKTsKLSAgICBhdXRvKiBjb29raWVNYW5hZ2VyID0gcG9vbC0+c3VwcGxlbWVu
dDxXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXJQcm94eT4oKTsKKyAgICBhdXRvKiBwb29sID0gZGF0
YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKKyAgICBpZiAo
IXBvb2wpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBy
aWdodCBzdG9yYWdlIHNlc3Npb24sIGJ1dCBpdCdzIGN1cnJlbnRseQorICAgICAgICAvLyB0aGUg
YmVzdCB3ZSBjYW4gZG8gaW4gdGhlIGFic2VuY2Ugb2YgYSBwcm9jZXNzIHBvb2wuCisgICAgICAg
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCku
ZGVsZXRlQ29va2llKGNvb2tpZSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgeworICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgcmV0dXJuOworICAg
IH0KIAorICAgIGF1dG8qIGNvb2tpZU1hbmFnZXIgPSBwb29sLT5zdXBwbGVtZW50PFdlYktpdDo6
V2ViQ29va2llTWFuYWdlclByb3h5PigpOwogICAgIGNvb2tpZU1hbmFnZXItPmRlbGV0ZUNvb2tp
ZShkYXRhU3RvcmUuc2Vzc2lvbklEKCksIGNvb2tpZSwgW3Bvb2wgPSBXVEZNb3ZlKHBvb2wpLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7
CkBAIC0xMTUsMTAgKzE0OCwxOSBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6cmVnaXN0ZXJPYnNl
cnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJV2ViQ29va2llTWFuYWdlclByb3h5T2JzZXJ2ZXI+KCp0
aGlzKTsKIAogICAgIGF1dG8mIGRhdGFTdG9yZSA9IG1fb3duaW5nRGF0YVN0b3JlLndlYnNpdGVE
YXRhU3RvcmUoKTsKLSAgICBhdXRvKiBwb29sID0gZGF0YVN0b3JlLnByb2Nlc3NQb29sRm9yQ29v
a2llU3RvcmFnZU5vdGlmaWNhdGlvbnMoKTsKKyAgICBhdXRvKiBwb29sID0gZGF0YVN0b3JlLnBy
b2Nlc3NQb29sRm9yQ29va2llU3RvcmFnZU9wZXJhdGlvbnMoKTsKIAogICAgIGlmICghcG9vbCkg
ewogICAgICAgICByZWdpc3RlckZvck5ld1Byb2Nlc3NQb29sTm90aWZpY2F0aW9ucygpOworICAg
ICAgICBBU1NFUlQoIW1fb2JzZXJ2aW5nVUlQcm9jZXNzQ29va2llcyk7CisKKyAgICAgICAgLy8g
TGlzdGVuIGZvciBjb29raWUgbm90aWZpY2F0aW9ucyBpbiB0aGUgVUlQcm9jZXNzIGluIHRoZSBt
ZWFudGltZS4KKyAgICAgICAgV2ViQ29yZTo6c3RhcnRPYnNlcnZpbmdDb29raWVDaGFuZ2VzKFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCksIFt0
aGlzXSAoKSB7CisgICAgICAgICAgICBjb29raWVzRGlkQ2hhbmdlKCk7CisgICAgICAgIH0pOwor
CisgICAgICAgIG1fb2JzZXJ2aW5nVUlQcm9jZXNzQ29va2llcyA9IHRydWU7CisKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTM2LDEyICsxNzgsMTYgQEAgdm9pZCBIVFRQQ29va2llU3Rv
cmU6OnVucmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgaWYgKG1fb2Jz
ZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkpCiAgICAgICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2Vy
UHJveHktPnVucmVnaXN0ZXJPYnNlcnZlcihtX293bmluZ0RhdGFTdG9yZS53ZWJzaXRlRGF0YVN0
b3JlKCkuc2Vzc2lvbklEKCksICptX2Nvb2tpZU1hbmFnZXJQcm94eU9ic2VydmVyKTsKIAorICAg
IGlmIChtX29ic2VydmluZ1VJUHJvY2Vzc0Nvb2tpZXMpCisgICAgICAgIFdlYkNvcmU6OnN0b3BP
YnNlcnZpbmdDb29raWVDaGFuZ2VzKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVm
YXVsdFN0b3JhZ2VTZXNzaW9uKCkpOworCiAgICAgaWYgKG1fcHJvY2Vzc1Bvb2xDcmVhdGlvbkxp
c3RlbmVySWRlbnRpZmllcikKICAgICAgICAgV2ViUHJvY2Vzc1Bvb2w6OnVucmVnaXN0ZXJQcm9j
ZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIobV9wcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXJJZGVu
dGlmaWVyKTsKIAogICAgIG1fcHJvY2Vzc1Bvb2xDcmVhdGlvbkxpc3RlbmVySWRlbnRpZmllciA9
IDA7CiAgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eSA9IG51bGxwdHI7CiAgICAgbV9j
b29raWVNYW5hZ2VyUHJveHlPYnNlcnZlciA9IG51bGxwdHI7CisgICAgbV9vYnNlcnZpbmdVSVBy
b2Nlc3NDb29raWVzID0gZmFsc2U7CiB9CiAKIHZvaWQgSFRUUENvb2tpZVN0b3JlOjpjb29raWVz
RGlkQ2hhbmdlKCkKQEAgLTE1Nyw3ICsyMDMsNyBAQCB2b2lkIEhUVFBDb29raWVTdG9yZTo6Y29v
a2llTWFuYWdlckRlc3Ryb3llZCgpCiAgICAgbV9vYnNlcnZlZENvb2tpZU1hbmFnZXJQcm94eS0+
dW5yZWdpc3Rlck9ic2VydmVyKGRhdGFTdG9yZS5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdl
clByb3h5T2JzZXJ2ZXIpOwogICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgPSBudWxs
cHRyOwogCi0gICAgYXV0byogcG9vbCA9IGRhdGFTdG9yZS5wcm9jZXNzUG9vbEZvckNvb2tpZVN0
b3JhZ2VOb3RpZmljYXRpb25zKCk7CisgICAgYXV0byogcG9vbCA9IGRhdGFTdG9yZS5wcm9jZXNz
UG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCk7CiAKICAgICBpZiAoIXBvb2wpIHsKICAg
ICAgICAgcmVnaXN0ZXJGb3JOZXdQcm9jZXNzUG9vbE5vdGlmaWNhdGlvbnMoKTsKQEAgLTE3OCw2
ICsyMjQsMTIgQEAgdm9pZCBIVFRQQ29va2llU3RvcmU6OnJlZ2lzdGVyRm9yTmV3UHJvY2Vzc1Bv
b2xOb3RpZmljYXRpb25zKCkKICAgICAgICAgaWYgKCFtX293bmluZ0RhdGFTdG9yZS53ZWJzaXRl
RGF0YVN0b3JlKCkuaXNBc3NvY2lhdGVkUHJvY2Vzc1Bvb2wobmV3UHJvY2Vzc1Bvb2wpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIC8vIE5vdyB0aGF0IGFuIGFzc29jaWF0ZWQgcHJv
Y2VzcyBwb29sIGV4aXN0cywgd2UgbmVlZCB0byBmbHVzaCB0aGUgVUkgcHJvY2VzcyBjb29raWUg
c3RvcmUKKyAgICAgICAgLy8gdG8gbWFrZSBzdXJlIGFueSBjaGFuZ2VzIGFyZSByZWZsZWN0ZWQg
d2l0aGluIHRoZSBuZXcgcHJvY2VzcyBwb29sLgorICAgICAgICBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpLmZsdXNoQ29va2llU3RvcmUoKTsK
KyAgICAgICAgbmV3UHJvY2Vzc1Bvb2wuZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKKworCiAgICAg
ICAgIG1fb2JzZXJ2ZWRDb29raWVNYW5hZ2VyUHJveHkgPSBuZXdQcm9jZXNzUG9vbC5zdXBwbGVt
ZW50PFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5PigpOwogICAgICAgICBtX29ic2VydmVk
Q29va2llTWFuYWdlclByb3h5LT5yZWdpc3Rlck9ic2VydmVyKG1fb3duaW5nRGF0YVN0b3JlLndl
YnNpdGVEYXRhU3RvcmUoKS5zZXNzaW9uSUQoKSwgKm1fY29va2llTWFuYWdlclByb3h5T2JzZXJ2
ZXIpOwogICAgICAgICB1bnJlZ2lzdGVyRm9yTmV3UHJvY2Vzc1Bvb2xOb3RpZmljYXRpb25zKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVT
dG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUu
aAppbmRleCA2ZjlmNDc2ZTgwMThhYjFkZjExODYyOGNkYzA3MjUzMTBlNjIzNjY1Li5kZmMwNTZm
ZDE2YTI1MmNkNzg4YWU0ODhkZWM0N2MzMjMzYThhNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhUVFBDb29raWVTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJSFRUUENvb2tpZVN0b3JlLmgKQEAgLTgxLDYgKzgxLDcgQEAg
cHJpdmF0ZToKIAogICAgIFdlYktpdDo6V2ViQ29va2llTWFuYWdlclByb3h5KiBtX29ic2VydmVk
Q29va2llTWFuYWdlclByb3h5IHsgbnVsbHB0ciB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBUElX
ZWJDb29raWVNYW5hZ2VyUHJveHlPYnNlcnZlcj4gbV9jb29raWVNYW5hZ2VyUHJveHlPYnNlcnZl
cjsKKyAgICBib29sIG1fb2JzZXJ2aW5nVUlQcm9jZXNzQ29va2llcyB7IGZhbHNlIH07CiAKICAg
ICB1aW50NjRfdCBtX3Byb2Nlc3NQb29sQ3JlYXRpb25MaXN0ZW5lcklkZW50aWZpZXIgeyAwIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXgg
ZDMxOGFhZWQwMjM2NjNhZWVhMjczNWI4MjFhMThhZmYyYjFmYmVhNi4uZjdjNGUyZDAwYzhmZmUw
ZjY3NjVkNzFiN2Q2Zjg0M2EwZjVjZDk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNDQsOCArMTQ0LDExIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnVucmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIodWludDY0X3QgaWRlbnRp
ZmllcikKIFJlZjxXZWJQcm9jZXNzUG9vbD4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShBUEk6OlBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIHsKICAgICBJbml0aWFsaXpl
V2ViS2l0MigpOwotICAgIGF1dG8gbmV3UG9vbCA9IGFkb3B0UmVmKCpuZXcgV2ViUHJvY2Vzc1Bv
b2woY29uZmlndXJhdGlvbikpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQ
b29sKGNvbmZpZ3VyYXRpb24pKTsKK30KIAordm9pZCBXZWJQcm9jZXNzUG9vbDo6bm90aWZ5VGhp
c1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpCit7CiAgICAgYXV0byYgbGlzdGVuZXJNYXAgPSBw
cm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXJGdW5jdGlvbk1hcCgpOwogCiAgICAgVmVjdG9yPHVp
bnQ2NF90PiBpZGVudGlmaWVyczsKQEAgLTE2NCw3ICsxNjcsNyBAQCBSZWY8V2ViUHJvY2Vzc1Bv
b2w+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGUoQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24m
IGNvbmZpZwogICAgICAgICAvLyByZW1vdmluZyBpdHNlbGYgZnJvbSB0aGUgbWFwIG9mIGxpc3Rl
bmVycy4KICAgICAgICAgLy8gSWYgdGhlIGlkZW50aWZpZXIgc3RpbGwgZXhpc3RzIGluIHRoZSBt
YXAgbGF0ZXIsIHdlIG1vdmUgaXQgYmFjayBpbi4KICAgICAgICAgRnVuY3Rpb248dm9pZChXZWJQ
cm9jZXNzUG9vbCYpPiBmdW5jdGlvbiA9IFdURk1vdmUoaXRlcmF0b3ItPnZhbHVlKTsKLSAgICAg
ICAgZnVuY3Rpb24obmV3UG9vbC5nZXQoKSk7CisgICAgICAgIGZ1bmN0aW9uKCp0aGlzKTsKIAog
ICAgICAgICBpdGVyYXRvciA9IGxpc3RlbmVyTWFwLmZpbmQoaWRlbnRpZmllcik7CiAgICAgICAg
IGlmIChpdGVyYXRvciAhPSBsaXN0ZW5lck1hcC5lbmQoKSkgewpAQCAtMTcyLDggKzE3NSw2IEBA
IFJlZjxXZWJQcm9jZXNzUG9vbD4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShBUEk6OlByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiYgY29uZmlnCiAgICAgICAgICAgICBpdGVyYXRvci0+dmFsdWUgPSBX
VEZNb3ZlKGZ1bmN0aW9uKTsKICAgICAgICAgfQogICAgIH0KLQotICAgIHJldHVybiBuZXdQb29s
OwogfQogCiBzdGF0aWMgVmVjdG9yPFdlYlByb2Nlc3NQb29sKj4mIHByb2Nlc3NQb29scygpCkBA
IC0yNzgsNiArMjc5LDggQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogI2lmbmRlZiBOREVCVUcKICAg
ICBwcm9jZXNzUG9vbENvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKKworICAgIG5vdGlmeVRo
aXNXZWJQcm9jZXNzUG9vbFdhc0NyZWF0ZWQoKTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNzIzZTg5YjQ4
ZTUwMzBkNzZmZjZmNTY1YjU4ZWFjYWZlNDcxZDg4Zi4uMzY2NGFmZWViNGI2MGMwYjk5MjhhOWY5
ZTBhYTM0M2E3MjhiNWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViUHJvY2Vz
c1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mKTsgICAgICAgIAogICAgIHZpcnR1
YWwgfldlYlByb2Nlc3NQb29sKCk7CiAKKyAgICB2b2lkIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9v
bFdhc0NyZWF0ZWQoKTsKKwogICAgIEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25m
aWd1cmF0aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgpOyB9CiAKICAgICBzdGF0
aWMgY29uc3QgVmVjdG9yPFdlYlByb2Nlc3NQb29sKj4mIGFsbFByb2Nlc3NQb29scygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCmluZGV4IDdhY2Y5MWY2NDUxODA1MjM3YmEzYWJjMzY5MTc0OGVlMjg0MTY5
MjAuLjFmYzM1MzgwNzQ1ODAwNTEzZWRmY2Q2M2U1NzBjZDI4OGY1ODc4ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5jcHAKQEAgLTEwNiwyOCArMTA2LDcgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVE
YXRhU3RvcmUoKQogICAgIH0KIH0KIAotUmVmPFdlYlByb2Nlc3NQb29sPiBXZWJzaXRlRGF0YVN0
b3JlOjpwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VPcGVyYXRpb25zKCkKLXsKLSAgICAvLyBP
dXIgY29uY2VwdHMgb2YgV2ViUHJvY2VzcywgV2ViUHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3Rv
cmUsIGFuZCBTZXNzaW9uSURzIGhhdmUgYWxsIHN0YXJ0ZWQgdG8gb3ZlcmxhcAotICAgIC8vIHdp
dGhvdXQgY2xlYXIgZGl2aXNpb25zIG9mIHJlc3BvbnNpYmlsaXRpZXMuCi0gICAgLy8gSW4gcHJh
Y3RpY2UsIG11bHRpcGxlIFdlYlByb2Nlc3NQb29scyBjYW4gY29udGFpbiAidGhlIHNhbWUgc2Vz
c2lvbiIsIGVzcGVjaWFsbHkgc2luY2UgdGhlcmUgaXMgY3VycmVudGx5Ci0gICAgLy8gb25seSBh
IHNpbmdsZSBkZWZhdWx0IGdsb2JhbCBTZXNzaW9uSUQuCi0gICAgLy8KLSAgICAvLyBUaGlzIG1l
YW5zIHRoYXQgbXVsdGlwbGUgTmV0d29ya1Byb2Nlc3NlcyBjYW4gYmUgdXNpbmcgdGhlIHNhbWUg
c2Vzc2lvbiwgd2hpY2ggbWVhbnMgdGhhdCBtdWx0aXBsZQotICAgIC8vIE5ldHdvcmtQcm9jZXNz
ZXMgY2FuIGJlIHJlZmVycmluZyB0byB0aGUgc2FtZSBwbGF0Zm9ybSBjb29raWUgc3RvcmFnZS4K
LSAgICAvLwotICAgIC8vIFdoaWxlIHRoaXMgbWF5IGNhdXNlIGNvbXBsaWNhdGlvbnMgd2l0aCBm
dXR1cmUgQVBJcyBpdCBpcyBhY3R1YWxseSBmaW5lIGZvciBpbXBsZW1lbnRpbmcgdGhlIFdLSFRU
UENvb2tpZVN0b3JlIEFQSQotICAgIC8vIGJlY2F1c2Ugd2Ugb25seSBuZWVkIG9uZSBOZXR3b3Jr
UHJvY2VzcyB0byBzdWNjZXNzZnVsbHkgbWFrZSBhIHJlcXVlc3RlZCBwbGF0Zm9ybSBjb29raWUg
c3RvcmFnZSBjaGFuZ2UuCi0gICAgLy8KLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBzdGFydCB0
byB1bnJhdmVsIHRoaXMgbWVzcyBnb2luZyBmb3J3YXJkLgotCi0gICAgYXV0byBwb29scyA9IHBy
b2Nlc3NQb29scygxKTsKLSAgICBBU1NFUlQoIXBvb2xzLmlzRW1wdHkoKSk7Ci0KLSAgICByZXR1
cm4gKipwb29scy5iZWdpbigpOwotfQotCi1XZWJQcm9jZXNzUG9vbCogV2Vic2l0ZURhdGFTdG9y
ZTo6cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlTm90aWZpY2F0aW9ucygpCitXZWJQcm9jZXNz
UG9vbCogV2Vic2l0ZURhdGFTdG9yZTo6cHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0
aW9ucygpCiB7CiAgICAgYXV0byBwb29scyA9IHByb2Nlc3NQb29scygxLCBmYWxzZSk7CiAgICAg
cmV0dXJuIHBvb2xzLmlzRW1wdHkoKSA/IG51bGxwdHIgOiBwb29scy5iZWdpbigpLT5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCmluZGV4IDM1YzYxMDA2OWFkYmI3NDE0NmNmODVkMDA3ODRmZjYwYWEzZmRj
ZTcuLjcxMTY0NjBmMTVkMjc4NWFhMzg2OTc4MjljM2MwYjBiODAzODVkYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaApAQCAtMTAzLDggKzEwMyw3IEBAIHB1YmxpYzoKIAogICAgIFN0b3JhZ2VNYW5hZ2VyKiBz
dG9yYWdlTWFuYWdlcigpIHsgcmV0dXJuIG1fc3RvcmFnZU1hbmFnZXIuZ2V0KCk7IH0KIAotICAg
IFJlZjxXZWJQcm9jZXNzUG9vbD4gcHJvY2Vzc1Bvb2xGb3JDb29raWVTdG9yYWdlT3BlcmF0aW9u
cygpOwotICAgIFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbEZvckNvb2tpZVN0b3JhZ2VOb3Rp
ZmljYXRpb25zKCk7CisgICAgV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sRm9yQ29va2llU3Rv
cmFnZU9wZXJhdGlvbnMoKTsKICAgICBib29sIGlzQXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlBy
b2Nlc3NQb29sJikgY29uc3Q7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>