<?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>181950</bug_id>
          
          <creation_ts>2018-01-22 14:10:42 -0800</creation_ts>
          <short_desc>Move Document::domainIsRegisterable to SecurityOrigin::isMatchingRegistrableDomainSuffix</short_desc>
          <delta_ts>2019-05-01 15:08:07 -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>WebCore Misc.</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>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>jonathan</cc>
    
    <cc>jschoi</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1391809</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-01-22 14:10:42 -0800</bug_when>
    <thetext>This enhancement is needed for WebAuthN to work with RP ID: https://www.w3.org/TR/webauthn/#createCredential. Specifically, Step 5-7.

Here are the requests:
1. SecurityOrigin/URL needs to tell if an origin is a valid domain: https://url.spec.whatwg.org/#valid-domain.
2. SecurityOrigin/URL needs to tell if an origin is a registrable domain suffix of another origin: https://html.spec.whatwg.org/multipage/origin.html#is-a-registrable-domain-suffix-of-or-is-equal-to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450534</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-15 17:09:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/43357371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531882</commentid>
    <comment_count>2</comment_count>
      <attachid>368655</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-01 02:22:50 -0700</bug_when>
    <thetext>Created attachment 368655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1531954</commentid>
    <comment_count>3</comment_count>
      <attachid>368655</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-01 09:35:20 -0700</bug_when>
    <thetext>Comment on attachment 368655
Patch

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

&gt; Source/WebCore/dom/Document.cpp:-4874
&gt; -        return true;

I&apos;m not sure if the call to &apos;isMatchingRegistrableDomainSuffix&apos; handles this case or not. We seem to ASSERT that host() and protocol() are case-insensitively equal, but we don&apos;t actually do the test as far as I can tell.

&gt; Source/WebCore/dom/Document.cpp:-4894
&gt; -        potentialPublicSuffix.remove(0, 1);

Your new code doesn&apos;t seem to have this call protection before passing &apos;domainSuffix&apos; to &apos;isPublicSuffix&apos;. As far as I can tell, whatever code paths might have brought a domain with a leading &apos;.&apos; into this code, could still happen and we are no longer protecting our call to &apos;isPublicSuffix&apos;. I think we should keep this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532000</commentid>
    <comment_count>4</comment_count>
      <attachid>368655</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-01 12:02:27 -0700</bug_when>
    <thetext>Comment on attachment 368655
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:-4874
&gt;&gt; -        return true;
&gt; 
&gt; I&apos;m not sure if the call to &apos;isMatchingRegistrableDomainSuffix&apos; handles this case or not. We seem to ASSERT that host() and protocol() are case-insensitively equal, but we don&apos;t actually do the test as far as I can tell.

At the constructor of OriginAccessEntry, it will convert the newDomain to lowercase. And the SecurityOrigin itself should store every data in lowercase. That means the regular string comparison actually does this job.

&gt;&gt; Source/WebCore/dom/Document.cpp:-4894
&gt;&gt; -        potentialPublicSuffix.remove(0, 1);
&gt; 
&gt; Your new code doesn&apos;t seem to have this call protection before passing &apos;domainSuffix&apos; to &apos;isPublicSuffix&apos;. As far as I can tell, whatever code paths might have brought a domain with a leading &apos;.&apos; into this code, could still happen and we are no longer protecting our call to &apos;isPublicSuffix&apos;. I think we should keep this.

If anything has a leading dot, then it shouldn&apos;t pass accessEntry.matchesOrigin().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532010</commentid>
    <comment_count>5</comment_count>
      <attachid>368655</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-01 12:26:49 -0700</bug_when>
    <thetext>Comment on attachment 368655
Patch

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

&gt; Source/WebCore/page/SecurityOrigin.cpp:445
&gt; +

From the spec, we should return true as long as it is an exact match even if both domains are public suffix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532014</commentid>
    <comment_count>6</comment_count>
      <attachid>368692</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-01 12:33:42 -0700</bug_when>
    <thetext>Created attachment 368692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532021</commentid>
    <comment_count>7</comment_count>
      <attachid>368692</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-01 12:59:26 -0700</bug_when>
    <thetext>Comment on attachment 368692
Patch

r=me (Wait for EWS, please)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532028</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-01 13:11:02 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #7)
&gt; Comment on attachment 368692 [details]
&gt; Patch
&gt; 
&gt; r=me (Wait for EWS, please)

Thanks, Brent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532098</commentid>
    <comment_count>9</comment_count>
      <attachid>368692</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-01 15:08:05 -0700</bug_when>
    <thetext>Comment on attachment 368692
Patch

Clearing flags on attachment: 368692

Committed r244853: &lt;https://trac.webkit.org/changeset/244853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1532099</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-01 15:08:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368655</attachid>
            <date>2019-05-01 02:22:50 -0700</date>
            <delta_ts>2019-05-01 12:33:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181950-20190501022247.patch</filename>
            <type>text/plain</type>
            <size>9506</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiNWNmM2MxM2MwY2Q3
ZjFlYmRjNmZmN2NhMDFlNTFkZWJmOTE5OS4uODhlNzZmOTU4ZTM4YmVkNDFjY2I1NWYyZTFlMmE0
N2QxNDI2NmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA1LTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBEb2N1bWVudDo6
ZG9tYWluSXNSZWdpc3RlcmFibGUgdG8gU2VjdXJpdHlPcmlnaW46OmlzTWF0Y2hpbmdSZWdpc3Ry
YWJsZURvbWFpblN1ZmZpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxOTUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MzM1NzM3MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1v
dmVzIERvY3VtZW50Ojpkb21haW5Jc1JlZ2lzdGVyYWJsZSB0byBTZWN1cml0eU9yaWdpbjo6aXNN
YXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4CisgICAgICAgIHRvIGJlIG1vcmUgYWxpZ25l
ZCB3aXRoIHRoZSBIVE1MIHN0YW5kYXJkOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNpcy1hLXJlZ2lzdHJhYmxlLWRvbWFpbi1zdWZm
aXgtb2Ytb3ItaXMtZXF1YWwtdG8uCisgICAgICAgIEJlc2lkZXMgdGhhdCwgaXQgYWxzbyByZW1v
dmVzIHJlZHVuZGFudCBjb2RlcyB3aXRoaW4gdGhlIG9yaWdpbmFsIG1ldGhvZCB0aGF0IGlzIGFs
c28gZG9uZSBpbgorICAgICAgICBPcmlnaW5BY2Nlc3NFbnRyeTo6bWF0Y2hlc09yaWdpbi4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvbWFpbik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZG9tYWluSXNSZWdpc3RlcmFibGUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmlzTWF0Y2hpbmdSZWdp
c3RyYWJsZURvbWFpblN1ZmZpeCBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdp
bi5oOgorCiAyMDE5LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlci1mYWNpbmcgc3RyaW5ncyBzaG91bGQgdXNlIGN1cmx5IHF1b3RlcyBpbnN0ZWFk
IG9mIHN0cmFpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNzk0YmVkNzVhNWJkOTYw
MDMzMWQyNTIwZjI2YjBlYzcwY2QwZjIxLi44YzY1YTU5ZGU3YTk1MmJjYTFkMzlmN2ViNjQxODc2
MDUxZTMzOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzNSw3ICsxMzUsNiBAQAog
I2luY2x1ZGUgIk5vZGVJdGVyYXRvci5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2lu
Y2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKLSNpbmNsdWRlICJPcmlnaW5BY2Nlc3NFbnRyeS5oIgog
I2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtNDg1Nyw0OSArNDg1Niw2IEBAIFN0cmluZyBE
b2N1bWVudDo6ZG9tYWluKCkgY29uc3QKICAgICByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5kb21h
aW4oKTsKIH0KIAotYm9vbCBEb2N1bWVudDo6ZG9tYWluSXNSZWdpc3RlcmFibGUoY29uc3QgU3Ry
aW5nJiBuZXdEb21haW4pIGNvbnN0Ci17Ci0gICAgaWYgKG5ld0RvbWFpbi5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlRG9tYWlu
ID0gZG9tYWluKCk7Ci0KLSAgICAvLyBJZiB0aGUgbmV3IGRvbWFpbiBpcyB0aGUgc2FtZSBhcyB0
aGUgb2xkIGRvbWFpbiwgcmV0dXJuIHRydWUgc28gdGhhdAotICAgIC8vIHdlIHN0aWxsIGNhbGwg
c2VjdXJpdHlPcmlnaW4oKS5zZXREb21haW5Gb3JET00uIFRoaXMgd2lsbCBjaGFuZ2UgdGhlCi0g
ICAgLy8gc2VjdXJpdHkgY2hlY2sgYmVoYXZpb3IuIEZvciBleGFtcGxlLCBpZiBhIHBhZ2UgbG9h
ZGVkIG9uIHBvcnQgODAwMAotICAgIC8vIGFzc2lnbnMgaXRzIGN1cnJlbnQgZG9tYWluIHVzaW5n
IGRvY3VtZW50LmRvbWFpbiwgdGhlIHBhZ2Ugd2lsbAotICAgIC8vIGFsbG93IG90aGVyIHBhZ2Vz
IGxvYWRlZCBvbiBkaWZmZXJlbnQgcG9ydHMgaW4gdGhlIHNhbWUgZG9tYWluIHRoYXQKLSAgICAv
LyBoYXZlIGFsc28gYXNzaWduZWQgdG8gYWNjZXNzIHRoaXMgcGFnZS4KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShlZmZlY3RpdmVEb21haW4sIG5ld0RvbWFpbikpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgLy8gZS5nLiBuZXdEb21haW4gPSB3ZWJraXQub3JnICgxMCkgYW5k
IGRvbWFpbigpID0gd3d3LndlYmtpdC5vcmcgKDE0KQotICAgIHVuc2lnbmVkIG9sZExlbmd0aCA9
IGVmZmVjdGl2ZURvbWFpbi5sZW5ndGgoKTsKLSAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBuZXdE
b21haW4ubGVuZ3RoKCk7Ci0gICAgaWYgKG5ld0xlbmd0aCA+PSBvbGRMZW5ndGgpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8gaXBBZGRyZXNzU2V0dGluZyA9IHNldHRpbmdzKCku
dHJlYXRJUEFkZHJlc3NBc0RvbWFpbigpID8gT3JpZ2luQWNjZXNzRW50cnk6OlRyZWF0SVBBZGRy
ZXNzQXNEb21haW4gOiBPcmlnaW5BY2Nlc3NFbnRyeTo6VHJlYXRJUEFkZHJlc3NBc0lQQWRkcmVz
czsKLSAgICBPcmlnaW5BY2Nlc3NFbnRyeSBhY2Nlc3NFbnRyeSB7IHNlY3VyaXR5T3JpZ2luKCku
cHJvdG9jb2woKSwgbmV3RG9tYWluLCBPcmlnaW5BY2Nlc3NFbnRyeTo6QWxsb3dTdWJkb21haW5z
LCBpcEFkZHJlc3NTZXR0aW5nIH07Ci0gICAgaWYgKCFhY2Nlc3NFbnRyeS5tYXRjaGVzT3JpZ2lu
KHNlY3VyaXR5T3JpZ2luKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZWZm
ZWN0aXZlRG9tYWluW29sZExlbmd0aCAtIG5ld0xlbmd0aCAtIDFdICE9ICcuJykKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChTdHJpbmdWaWV3IHsgZWZmZWN0aXZlRG9tYWluIH0uc3Vi
c3RyaW5nKG9sZExlbmd0aCAtIG5ld0xlbmd0aCkgIT0gbmV3RG9tYWluKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBhdXRvIHBvdGVudGlhbFB1YmxpY1N1ZmZpeCA9IG5ld0RvbWFpbjsK
LSAgICBpZiAocG90ZW50aWFsUHVibGljU3VmZml4LnN0YXJ0c1dpdGgoJy4nKSkKLSAgICAgICAg
cG90ZW50aWFsUHVibGljU3VmZml4LnJlbW92ZSgwLCAxKTsKLQotI2lmIEVOQUJMRShQVUJMSUNf
U1VGRklYX0xJU1QpCi0gICAgcmV0dXJuICFpc1B1YmxpY1N1ZmZpeChwb3RlbnRpYWxQdWJsaWNT
dWZmaXgpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotfQotCiBFeGNlcHRpb25P
cjx2b2lkPiBEb2N1bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKQogewog
ICAgIGlmICghZnJhbWUoKSkKQEAgLTQ5MTcsNyArNDg3Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IERvY3VtZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pCiAgICAgaWYgKGVm
ZmVjdGl2ZURvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1
cml0eUVycm9yLCAiVGhlIGRvY3VtZW50IGhhcyBhIG51bGwgZWZmZWN0aXZlRG9tYWluLiIgfTsK
IAotICAgIGlmICghZG9tYWluSXNSZWdpc3RlcmFibGUobmV3RG9tYWluKSkKKyAgICBpZiAoIXNl
Y3VyaXR5T3JpZ2luKCkuaXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KG5ld0RvbWFp
biwgc2V0dGluZ3MoKS50cmVhdElQQWRkcmVzc0FzRG9tYWluKCkpKQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkF0dGVtcHRlZCB0byB1c2UgYSBub24tcmVnaXN0
cmFibGUgZG9tYWluLiIgfTsKIAogICAgIHNlY3VyaXR5T3JpZ2luKCkuc2V0RG9tYWluRnJvbURP
TShuZXdEb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxNDE3YzJlMTI2ZTEwOTM2ZDky
ODlmNGQ0OWRlNWViMjQ2MjRjYWM0Li41YTVmZmM2MmQ1MzllZWJlM2UzMzFmMWIxZWM4MmU2NjU2
ZTAyMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY0Myw4ICsxNjQzLDYgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwog
Ci0gICAgYm9vbCBkb21haW5Jc1JlZ2lzdGVyYWJsZShjb25zdCBTdHJpbmcmKSBjb25zdDsKLQog
ICAgIHZvaWQgZW5hYmxlVGVtcG9yYXJ5VGltZVVzZXJHZXN0dXJlKCk7CiAKICAgICBib29sIGlz
Qm9keVBvdGVudGlhbGx5U2Nyb2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggZGRjYzdkMmRiZGU5MjliMTE1MmI2NWE3YTZk
NDI4NmJiNzRhNDViZi4uYjNmMzhmMmZhYjIzZWFhYTM3OWJiN2EwMjllYzI1ZGQxODFiNWY1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgorI2lu
Y2x1ZGUgIk9yaWdpbkFjY2Vzc0VudHJ5LmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpA
QCAtNDMyLDYgKzQzMywyMyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjppc1NhbWVPcmlnaW5Bcyhj
b25zdCBTZWN1cml0eU9yaWdpbiYgb3RoZXIpIGNvbnN0CiAgICAgcmV0dXJuIGlzU2FtZVNjaGVt
ZUhvc3RQb3J0KG90aGVyKTsKIH0KIAorYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNNYXRjaGluZ1Jl
Z2lzdHJhYmxlRG9tYWluU3VmZml4KGNvbnN0IFN0cmluZyYgZG9tYWluU3VmZml4LCBib29sIHRy
ZWF0SVBBZGRyZXNzQXNEb21haW4pIGNvbnN0Cit7CisgICAgaWYgKGRvbWFpblN1ZmZpeC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaXBBZGRyZXNzU2V0dGlu
ZyA9IHRyZWF0SVBBZGRyZXNzQXNEb21haW4gPyBPcmlnaW5BY2Nlc3NFbnRyeTo6VHJlYXRJUEFk
ZHJlc3NBc0RvbWFpbiA6IE9yaWdpbkFjY2Vzc0VudHJ5OjpUcmVhdElQQWRkcmVzc0FzSVBBZGRy
ZXNzOworICAgIE9yaWdpbkFjY2Vzc0VudHJ5IGFjY2Vzc0VudHJ5IHsgcHJvdG9jb2woKSwgZG9t
YWluU3VmZml4LCBPcmlnaW5BY2Nlc3NFbnRyeTo6QWxsb3dTdWJkb21haW5zLCBpcEFkZHJlc3NT
ZXR0aW5nIH07CisgICAgaWYgKCFhY2Nlc3NFbnRyeS5tYXRjaGVzT3JpZ2luKCp0aGlzKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgRU5BQkxFKFBVQkxJQ19TVUZGSVhfTElTVCkKKyAg
ICByZXR1cm4gIWlzUHVibGljU3VmZml4KGRvbWFpblN1ZmZpeCk7CisjZWxzZQorICAgIHJldHVy
biB0cnVlOworI2VuZGlmCit9CisKIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50TG9hZExvY2Fs
UmVzb3VyY2VzKCkKIHsKICAgICAvLyBHcmFudGluZyBwcml2aWxlZ2VzIHRvIHNvbWUsIGJ1dCBu
b3QgYWxsLCBkb2N1bWVudHMgaW4gYSBTZWN1cml0eU9yaWdpbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oCmluZGV4IDlhOTViNDU5Y2I1M2IxYjMzMjE3NTY2OTg1MGQ4YTIzZTM0ZDNh
MDUuLjMxYjZiM2Q1MjM4MDllYTcxZGEwM2RiYjBhODA0ZDI1MjE3MzJkMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTIwNCw2ICsyMDQsMTAgQEAgcHVibGljOgogICAg
IC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwj
c2FtZS1vcmlnaW4KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU2FtZU9yaWdpbkFzKGNvbnN0
IFNlY3VyaXR5T3JpZ2luJikgY29uc3Q7CiAKKyAgICAvLyBUaGlzIG1ldGhvZCBpbXBsZW1lbnRz
IHRoZSAiaXMgYSByZWdpc3RyYWJsZSBkb21haW4gc3VmZml4IG9mIG9yIGlzIGVxdWFsIHRvIiBh
bGdvcml0aG0gZnJvbSB0aGUgSFRNTCBTdGFuZGFyZDoKKyAgICAvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNpcy1hLXJlZ2lzdHJhYmxlLWRvbWFp
bi1zdWZmaXgtb2Ytb3ItaXMtZXF1YWwtdG8KKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzTWF0
Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeChjb25zdCBTdHJpbmcmLCBib29sIHRyZWF0SVBB
ZGRyZXNzQXNEb21haW4gPSBmYWxzZSkgY29uc3Q7CisKICAgICBib29sIGlzUG90ZW50aWFsbHlU
cnVzdHdvcnRoeSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQb3RlbnRpYWxseVRydXN0d29ydGh5OyB9
CiAgICAgdm9pZCBzZXRJc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoYm9vbCB2YWx1ZSkgeyBtX2lz
UG90ZW50aWFsbHlUcnVzdHdvcnRoeSA9IHZhbHVlOyB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjODkxOTViZmI4YTI0NWFjNGZmOWIxYmY3
ZGE2Mzc2YjQxYjM1MTgxLi4xOTNkYTEyMzJmMzkxMjQzMjQ1MTY2MTRlM2FhOGYyZDc3NjA1MWY3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTktMDUtMDEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIERvY3VtZW50Ojpkb21haW5Jc1JlZ2lzdGVyYWJsZSB0byBTZWN1
cml0eU9yaWdpbjo6aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE5NTAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzQzMzU3MzcxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTktMDQtMjYg
IFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgcnVuLWJlbmNo
bWFya3Mgc2hvdWxkIGhhdmUgYW4gaW50aWFsIHByZXAgYW5kIHJlc3RvcmUgZW52IGNhbGwgZm9y
IHRhc2tzIHRoYXQgYXJlIHRvbyBleHBlbnNpdmUgdG8gZG8gZm9yIGV2ZXJ5IGl0ZXJhdGlvbgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5jcHAKaW5kZXggYTQxYWI0YmNhMzcxZDQ1ZGU4Y2I0NTg2ODViYzk3NGUzMGY0MDZmMy4uOWJl
ZWM1NzAwYmIyMDcxMjg5ZGZmMzhiNmUyMjFmNzY4YWE3MGU1MSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC0xODMs
NCArMTgzLDI2IEBAIFRFU1RfRihTZWN1cml0eU9yaWdpblRlc3QsIElzUG90ZW50aWFsbHlUcnVz
dHdvcnRoeSkKICAgICBFWFBFQ1RfRkFMU0UoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcoImR1bW15OmEiKS0+aXNQb3RlbnRpYWxseVRydXN0d29ydGh5KCkpOwogfQogCitURVNUX0Yo
U2VjdXJpdHlPcmlnaW5UZXN0LCBJc1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KQoreworICAgIGF1
dG8gZXhhbXBsZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0
cDovL3d3dy5leGFtcGxlLmNvbSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV4YW1wbGVPcmlnaW4t
PmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiZXhhbXBsZS5jb20iKSk7CisgICAg
RVhQRUNUX1RSVUUoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3Vm
Zml4KCJ3d3cuZXhhbXBsZS5jb20iKSk7CisjaWYgIUVOQUJMRShQVUJMSUNfU1VGRklYX0xJU1Qp
CisgICAgRVhQRUNUX1RSVUUoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9t
YWluU3VmZml4KCJjb20iKSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9GQUxTRShleGFtcGxlT3Jp
Z2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoIiIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCIu
ZXhhbXBsZS5jb20iKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV4YW1wbGVPcmlnaW4tPmlzTWF0Y2hp
bmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiLnd3dy5leGFtcGxlLmNvbSIpKTsKKyNpZiBFTkFC
TEUoUFVCTElDX1NVRkZJWF9MSVNUKQorICAgIEVYUEVDVF9GQUxTRShleGFtcGxlT3JpZ2luLT5p
c01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsKKyNlbmRpZgorCisgICAg
YXV0byBpcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJMKFVSTCgpLCAiaHR0cDov
LzEyNy4wLjAuMSIpKTsKKyAgICBFWFBFQ1RfVFJVRShpcE9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lz
dHJhYmxlRG9tYWluU3VmZml4KCIxMjcuMC4wLjEiLCB0cnVlKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGlwT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoIjEyNy4wLjAuMiIs
IHRydWUpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368692</attachid>
            <date>2019-05-01 12:33:42 -0700</date>
            <delta_ts>2019-05-01 15:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181950-20190501123341.patch</filename>
            <type>text/plain</type>
            <size>10863</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiNWNmM2MxM2MwY2Q3
ZjFlYmRjNmZmN2NhMDFlNTFkZWJmOTE5OS4uODhlNzZmOTU4ZTM4YmVkNDFjY2I1NWYyZTFlMmE0
N2QxNDI2NmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA1LTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBEb2N1bWVudDo6
ZG9tYWluSXNSZWdpc3RlcmFibGUgdG8gU2VjdXJpdHlPcmlnaW46OmlzTWF0Y2hpbmdSZWdpc3Ry
YWJsZURvbWFpblN1ZmZpeAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxOTUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MzM1NzM3MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1v
dmVzIERvY3VtZW50Ojpkb21haW5Jc1JlZ2lzdGVyYWJsZSB0byBTZWN1cml0eU9yaWdpbjo6aXNN
YXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4CisgICAgICAgIHRvIGJlIG1vcmUgYWxpZ25l
ZCB3aXRoIHRoZSBIVE1MIHN0YW5kYXJkOgorICAgICAgICBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS9vcmlnaW4uaHRtbCNpcy1hLXJlZ2lzdHJhYmxlLWRvbWFpbi1zdWZm
aXgtb2Ytb3ItaXMtZXF1YWwtdG8uCisgICAgICAgIEJlc2lkZXMgdGhhdCwgaXQgYWxzbyByZW1v
dmVzIHJlZHVuZGFudCBjb2RlcyB3aXRoaW4gdGhlIG9yaWdpbmFsIG1ldGhvZCB0aGF0IGlzIGFs
c28gZG9uZSBpbgorICAgICAgICBPcmlnaW5BY2Nlc3NFbnRyeTo6bWF0Y2hlc09yaWdpbi4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvbWFpbik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZG9tYWluSXNSZWdpc3RlcmFibGUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmlzTWF0Y2hpbmdSZWdp
c3RyYWJsZURvbWFpblN1ZmZpeCBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdp
bi5oOgorCiAyMDE5LTA0LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlci1mYWNpbmcgc3RyaW5ncyBzaG91bGQgdXNlIGN1cmx5IHF1b3RlcyBpbnN0ZWFk
IG9mIHN0cmFpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxNzk0YmVkNzVhNWJkOTYw
MDMzMWQyNTIwZjI2YjBlYzcwY2QwZjIxLi44YzY1YTU5ZGU3YTk1MmJjYTFkMzlmN2ViNjQxODc2
MDUxZTMzOWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEzNSw3ICsxMzUsNiBAQAog
I2luY2x1ZGUgIk5vZGVJdGVyYXRvci5oIgogI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgogI2lu
Y2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKLSNpbmNsdWRlICJPcmlnaW5BY2Nlc3NFbnRyeS5oIgog
I2luY2x1ZGUgIk92ZXJmbG93RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtNDg1Nyw0OSArNDg1Niw2IEBAIFN0cmluZyBE
b2N1bWVudDo6ZG9tYWluKCkgY29uc3QKICAgICByZXR1cm4gc2VjdXJpdHlPcmlnaW4oKS5kb21h
aW4oKTsKIH0KIAotYm9vbCBEb2N1bWVudDo6ZG9tYWluSXNSZWdpc3RlcmFibGUoY29uc3QgU3Ry
aW5nJiBuZXdEb21haW4pIGNvbnN0Ci17Ci0gICAgaWYgKG5ld0RvbWFpbi5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGNvbnN0IFN0cmluZyYgZWZmZWN0aXZlRG9tYWlu
ID0gZG9tYWluKCk7Ci0KLSAgICAvLyBJZiB0aGUgbmV3IGRvbWFpbiBpcyB0aGUgc2FtZSBhcyB0
aGUgb2xkIGRvbWFpbiwgcmV0dXJuIHRydWUgc28gdGhhdAotICAgIC8vIHdlIHN0aWxsIGNhbGwg
c2VjdXJpdHlPcmlnaW4oKS5zZXREb21haW5Gb3JET00uIFRoaXMgd2lsbCBjaGFuZ2UgdGhlCi0g
ICAgLy8gc2VjdXJpdHkgY2hlY2sgYmVoYXZpb3IuIEZvciBleGFtcGxlLCBpZiBhIHBhZ2UgbG9h
ZGVkIG9uIHBvcnQgODAwMAotICAgIC8vIGFzc2lnbnMgaXRzIGN1cnJlbnQgZG9tYWluIHVzaW5n
IGRvY3VtZW50LmRvbWFpbiwgdGhlIHBhZ2Ugd2lsbAotICAgIC8vIGFsbG93IG90aGVyIHBhZ2Vz
IGxvYWRlZCBvbiBkaWZmZXJlbnQgcG9ydHMgaW4gdGhlIHNhbWUgZG9tYWluIHRoYXQKLSAgICAv
LyBoYXZlIGFsc28gYXNzaWduZWQgdG8gYWNjZXNzIHRoaXMgcGFnZS4KLSAgICBpZiAoZXF1YWxJ
Z25vcmluZ0FTQ0lJQ2FzZShlZmZlY3RpdmVEb21haW4sIG5ld0RvbWFpbikpCi0gICAgICAgIHJl
dHVybiB0cnVlOwotCi0gICAgLy8gZS5nLiBuZXdEb21haW4gPSB3ZWJraXQub3JnICgxMCkgYW5k
IGRvbWFpbigpID0gd3d3LndlYmtpdC5vcmcgKDE0KQotICAgIHVuc2lnbmVkIG9sZExlbmd0aCA9
IGVmZmVjdGl2ZURvbWFpbi5sZW5ndGgoKTsKLSAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBuZXdE
b21haW4ubGVuZ3RoKCk7Ci0gICAgaWYgKG5ld0xlbmd0aCA+PSBvbGRMZW5ndGgpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8gaXBBZGRyZXNzU2V0dGluZyA9IHNldHRpbmdzKCku
dHJlYXRJUEFkZHJlc3NBc0RvbWFpbigpID8gT3JpZ2luQWNjZXNzRW50cnk6OlRyZWF0SVBBZGRy
ZXNzQXNEb21haW4gOiBPcmlnaW5BY2Nlc3NFbnRyeTo6VHJlYXRJUEFkZHJlc3NBc0lQQWRkcmVz
czsKLSAgICBPcmlnaW5BY2Nlc3NFbnRyeSBhY2Nlc3NFbnRyeSB7IHNlY3VyaXR5T3JpZ2luKCku
cHJvdG9jb2woKSwgbmV3RG9tYWluLCBPcmlnaW5BY2Nlc3NFbnRyeTo6QWxsb3dTdWJkb21haW5z
LCBpcEFkZHJlc3NTZXR0aW5nIH07Ci0gICAgaWYgKCFhY2Nlc3NFbnRyeS5tYXRjaGVzT3JpZ2lu
KHNlY3VyaXR5T3JpZ2luKCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZWZm
ZWN0aXZlRG9tYWluW29sZExlbmd0aCAtIG5ld0xlbmd0aCAtIDFdICE9ICcuJykKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGlmIChTdHJpbmdWaWV3IHsgZWZmZWN0aXZlRG9tYWluIH0uc3Vi
c3RyaW5nKG9sZExlbmd0aCAtIG5ld0xlbmd0aCkgIT0gbmV3RG9tYWluKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBhdXRvIHBvdGVudGlhbFB1YmxpY1N1ZmZpeCA9IG5ld0RvbWFpbjsK
LSAgICBpZiAocG90ZW50aWFsUHVibGljU3VmZml4LnN0YXJ0c1dpdGgoJy4nKSkKLSAgICAgICAg
cG90ZW50aWFsUHVibGljU3VmZml4LnJlbW92ZSgwLCAxKTsKLQotI2lmIEVOQUJMRShQVUJMSUNf
U1VGRklYX0xJU1QpCi0gICAgcmV0dXJuICFpc1B1YmxpY1N1ZmZpeChwb3RlbnRpYWxQdWJsaWNT
dWZmaXgpOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotfQotCiBFeGNlcHRpb25P
cjx2b2lkPiBEb2N1bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKQogewog
ICAgIGlmICghZnJhbWUoKSkKQEAgLTQ5MTcsNyArNDg3Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IERvY3VtZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pCiAgICAgaWYgKGVm
ZmVjdGl2ZURvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1
cml0eUVycm9yLCAiVGhlIGRvY3VtZW50IGhhcyBhIG51bGwgZWZmZWN0aXZlRG9tYWluLiIgfTsK
IAotICAgIGlmICghZG9tYWluSXNSZWdpc3RlcmFibGUobmV3RG9tYWluKSkKKyAgICBpZiAoIXNl
Y3VyaXR5T3JpZ2luKCkuaXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KG5ld0RvbWFp
biwgc2V0dGluZ3MoKS50cmVhdElQQWRkcmVzc0FzRG9tYWluKCkpKQogICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkF0dGVtcHRlZCB0byB1c2UgYSBub24tcmVnaXN0
cmFibGUgZG9tYWluLiIgfTsKIAogICAgIHNlY3VyaXR5T3JpZ2luKCkuc2V0RG9tYWluRnJvbURP
TShuZXdEb21haW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxNDE3YzJlMTI2ZTEwOTM2ZDky
ODlmNGQ0OWRlNWViMjQ2MjRjYWM0Li41YTVmZmM2MmQ1MzllZWJlM2UzMzFmMWIxZWM4MmU2NjU2
ZTAyMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY0Myw4ICsxNjQzLDYgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgcGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpOwog
Ci0gICAgYm9vbCBkb21haW5Jc1JlZ2lzdGVyYWJsZShjb25zdCBTdHJpbmcmKSBjb25zdDsKLQog
ICAgIHZvaWQgZW5hYmxlVGVtcG9yYXJ5VGltZVVzZXJHZXN0dXJlKCk7CiAKICAgICBib29sIGlz
Qm9keVBvdGVudGlhbGx5U2Nyb2xsYWJsZShIVE1MQm9keUVsZW1lbnQmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggZGRjYzdkMmRiZGU5MjliMTE1MmI2NWE3YTZk
NDI4NmJiNzRhNDViZi4uN2I3Y2YyYzY3NmIyZDRmYzg3YzdiMDViYjFlNGFjNDc2MjhjNmY2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgorI2lu
Y2x1ZGUgIk9yaWdpbkFjY2Vzc0VudHJ5LmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIK
ICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgpA
QCAtNDMyLDYgKzQzMywyNyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjppc1NhbWVPcmlnaW5Bcyhj
b25zdCBTZWN1cml0eU9yaWdpbiYgb3RoZXIpIGNvbnN0CiAgICAgcmV0dXJuIGlzU2FtZVNjaGVt
ZUhvc3RQb3J0KG90aGVyKTsKIH0KIAorYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNNYXRjaGluZ1Jl
Z2lzdHJhYmxlRG9tYWluU3VmZml4KGNvbnN0IFN0cmluZyYgZG9tYWluU3VmZml4LCBib29sIHRy
ZWF0SVBBZGRyZXNzQXNEb21haW4pIGNvbnN0Cit7CisgICAgaWYgKGRvbWFpblN1ZmZpeC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaXBBZGRyZXNzU2V0dGlu
ZyA9IHRyZWF0SVBBZGRyZXNzQXNEb21haW4gPyBPcmlnaW5BY2Nlc3NFbnRyeTo6VHJlYXRJUEFk
ZHJlc3NBc0RvbWFpbiA6IE9yaWdpbkFjY2Vzc0VudHJ5OjpUcmVhdElQQWRkcmVzc0FzSVBBZGRy
ZXNzOworICAgIE9yaWdpbkFjY2Vzc0VudHJ5IGFjY2Vzc0VudHJ5IHsgcHJvdG9jb2woKSwgZG9t
YWluU3VmZml4LCBPcmlnaW5BY2Nlc3NFbnRyeTo6QWxsb3dTdWJkb21haW5zLCBpcEFkZHJlc3NT
ZXR0aW5nIH07CisgICAgaWYgKCFhY2Nlc3NFbnRyeS5tYXRjaGVzT3JpZ2luKCp0aGlzKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQWx3YXlzIHJldHVybiB0cnVlIGlmIGl0IGlz
IGFuIGV4YWN0IG1hdGNoLgorICAgIGlmIChkb21haW5TdWZmaXgubGVuZ3RoKCkgPT0gaG9zdCgp
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworI2lmIEVOQUJMRShQVUJMSUNfU1VG
RklYX0xJU1QpCisgICAgcmV0dXJuICFpc1B1YmxpY1N1ZmZpeChkb21haW5TdWZmaXgpOworI2Vs
c2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCiB2b2lkIFNlY3VyaXR5T3JpZ2luOjpn
cmFudExvYWRMb2NhbFJlc291cmNlcygpCiB7CiAgICAgLy8gR3JhbnRpbmcgcHJpdmlsZWdlcyB0
byBzb21lLCBidXQgbm90IGFsbCwgZG9jdW1lbnRzIGluIGEgU2VjdXJpdHlPcmlnaW4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA5YTk1YjQ1OWNiNTNiMWIzMzIxNzU2Njk4
NTBkOGEyM2UzNGQzYTA1Li4zMWI2YjNkNTIzODA5ZWE3MWRhMDNkYmIwYTgwNGQyNTIxNzMyZDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0yMDQsNiArMjA0LDEwIEBA
IHB1YmxpYzoKICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9i
cm93c2Vycy5odG1sI3NhbWUtb3JpZ2luCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1NhbWVP
cmlnaW5Bcyhjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0OwogCisgICAgLy8gVGhpcyBtZXRo
b2QgaW1wbGVtZW50cyB0aGUgImlzIGEgcmVnaXN0cmFibGUgZG9tYWluIHN1ZmZpeCBvZiBvciBp
cyBlcXVhbCB0byIgYWxnb3JpdGhtIGZyb20gdGhlIEhUTUwgU3RhbmRhcmQ6CisgICAgLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb3JpZ2luLmh0bWwjaXMtYS1yZWdp
c3RyYWJsZS1kb21haW4tc3VmZml4LW9mLW9yLWlzLWVxdWFsLXRvCisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoY29uc3QgU3RyaW5nJiwg
Ym9vbCB0cmVhdElQQWRkcmVzc0FzRG9tYWluID0gZmFsc2UpIGNvbnN0OworCiAgICAgYm9vbCBp
c1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoKSBjb25zdCB7IHJldHVybiBtX2lzUG90ZW50aWFsbHlU
cnVzdHdvcnRoeTsgfQogICAgIHZvaWQgc2V0SXNQb3RlbnRpYWxseVRydXN0d29ydGh5KGJvb2wg
dmFsdWUpIHsgbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkgPSB2YWx1ZTsgfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzg5MTk1YmZiOGEy
NDVhYzRmZjliMWJmN2RhNjM3NmI0MWIzNTE4MS4uMTkzZGExMjMyZjM5MTI0MzI0NTE2NjE0ZTNh
YThmMmQ3NzYwNTFmNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA1LTAxICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBEb2N1bWVudDo6ZG9tYWluSXNSZWdpc3Rl
cmFibGUgdG8gU2VjdXJpdHlPcmlnaW46OmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZp
eAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxOTUw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MzM1NzM3MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgor
CiAyMDE5LTA0LTI2ICBTdGVwaGFuaWUgTGV3aXMgIDxzbGV3aXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIHJ1bi1iZW5jaG1hcmtzIHNob3VsZCBoYXZlIGFuIGludGlhbCBwcmVwIGFuZCByZXN0b3Jl
IGVudiBjYWxsIGZvciB0YXNrcyB0aGF0IGFyZSB0b28gZXhwZW5zaXZlIHRvIGRvIGZvciBldmVy
eSBpdGVyYXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGE0MWFiNGJjYTM3MWQ0NWRlOGNiNDU4Njg1YmM5NzRl
MzBmNDA2ZjMuLmJmODg4NzhlMjhjZTAyYzAzYmM1MTZjMWJkYzA0NjJlZDExNTYzMWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TZWN1cml0eU9yaWdpbi5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
LmNwcApAQCAtMTgzLDQgKzE4Myw0NCBAQCBURVNUX0YoU2VjdXJpdHlPcmlnaW5UZXN0LCBJc1Bv
dGVudGlhbGx5VHJ1c3R3b3J0aHkpCiAgICAgRVhQRUNUX0ZBTFNFKFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKCJkdW1teTphIiktPmlzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSgpKTsK
IH0KIAorVEVTVF9GKFNlY3VyaXR5T3JpZ2luVGVzdCwgSXNSZWdpc3RyYWJsZURvbWFpblN1ZmZp
eCkKK3sKKyAgICBhdXRvIGV4YW1wbGVPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVS
TChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20iKSk7CisgICAgRVhQRUNUX1RSVUUoZXhh
bXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJleGFtcGxlLmNv
bSIpKTsKKyAgICBFWFBFQ1RfVFJVRShleGFtcGxlT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFi
bGVEb21haW5TdWZmaXgoInd3dy5leGFtcGxlLmNvbSIpKTsKKyNpZiAhRU5BQkxFKFBVQkxJQ19T
VUZGSVhfTElTVCkKKyAgICBFWFBFQ1RfVFJVRShleGFtcGxlT3JpZ2luLT5pc01hdGNoaW5nUmVn
aXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsKKyNlbmRpZgorICAgIEVYUEVDVF9GQUxTRShl
eGFtcGxlT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoIiIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWlu
U3VmZml4KCIuIikpOworICAgIEVYUEVDVF9GQUxTRShleGFtcGxlT3JpZ2luLT5pc01hdGNoaW5n
UmVnaXN0cmFibGVEb21haW5TdWZmaXgoIi5leGFtcGxlLmNvbSIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCIud3d3
LmV4YW1wbGUuY29tIikpOworICAgIEVYUEVDVF9GQUxTRShleGFtcGxlT3JpZ2luLT5pc01hdGNo
aW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImV4YW1wbGUuY29tLiIpKTsKKyNpZiBFTkFCTEUo
UFVCTElDX1NVRkZJWF9MSVNUKQorICAgIEVYUEVDVF9GQUxTRShleGFtcGxlT3JpZ2luLT5pc01h
dGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsKKyNlbmRpZgorCisgICAgYXV0
byBleGFtcGxlRG90T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShVUkwoVVJMKCksICJo
dHRwOi8vd3d3LmV4YW1wbGUuY29tLiIpKTsKKyAgICBFWFBFQ1RfVFJVRShleGFtcGxlRG90T3Jp
Z2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImV4YW1wbGUuY29tLiIpKTsK
KyAgICBFWFBFQ1RfVFJVRShleGFtcGxlRG90T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVE
b21haW5TdWZmaXgoInd3dy5leGFtcGxlLmNvbS4iKSk7CisjaWYgIUVOQUJMRShQVUJMSUNfU1VG
RklYX0xJU1QpCisgICAgRVhQRUNUX1RSVUUoZXhhbXBsZU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lz
dHJhYmxlRG9tYWluU3VmZml4KCJjb20uIikpOworI2VuZGlmCisgICAgRVhQRUNUX0ZBTFNFKGV4
YW1wbGVEb3RPcmlnaW4tPmlzTWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiIikpOwor
ICAgIEVYUEVDVF9GQUxTRShleGFtcGxlRG90T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVE
b21haW5TdWZmaXgoIi4iKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV4YW1wbGVEb3RPcmlnaW4tPmlz
TWF0Y2hpbmdSZWdpc3RyYWJsZURvbWFpblN1ZmZpeCgiLmV4YW1wbGUuY29tLiIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXhhbXBsZURvdE9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWlu
U3VmZml4KCIud3d3LmV4YW1wbGUuY29tLiIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXhhbXBsZURv
dE9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJleGFtcGxlLmNvbSIp
KTsKKyNpZiBFTkFCTEUoUFVCTElDX1NVRkZJWF9MSVNUKQorICAgIEVYUEVDVF9GQUxTRShleGFt
cGxlRG90T3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZmaXgoImNvbSIpKTsK
KyNlbmRpZgorCisgICAgYXV0byBpcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoVVJM
KFVSTCgpLCAiaHR0cDovLzEyNy4wLjAuMSIpKTsKKyAgICBFWFBFQ1RfVFJVRShpcE9yaWdpbi0+
aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCIxMjcuMC4wLjEiLCB0cnVlKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGlwT3JpZ2luLT5pc01hdGNoaW5nUmVnaXN0cmFibGVEb21haW5TdWZm
aXgoIjEyNy4wLjAuMiIsIHRydWUpKTsKKworICAgIGF1dG8gY29tT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShVUkwoVVJMKCksICJodHRwOi8vY29tIikpOworICAgIEVYUEVDVF9UUlVF
KGNvbU9yaWdpbi0+aXNNYXRjaGluZ1JlZ2lzdHJhYmxlRG9tYWluU3VmZml4KCJjb20iKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>