<?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>283532</bug_id>
          
          <creation_ts>2024-11-21 16:37:46 -0800</creation_ts>
          <short_desc>[Cleanup][content-visibility] shouldApply*Containment functions don&apos;t need to be on RenderElement</short_desc>
          <delta_ts>2024-11-22 13:54:07 -0800</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>
          
          <blocked>283302</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2076865</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-11-21 16:37:46 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2076866</commentid>
    <comment_count>1</comment_count>
      <attachid>473323</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-21 16:46:33 -0800</bug_when>
    <thetext>Created attachment 473323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077000</commentid>
    <comment_count>2</comment_count>
      <attachid>473323</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2024-11-22 06:27:13 -0800</bug_when>
    <thetext>Comment on attachment 473323
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:2423
&gt; +inline bool shouldApplyLayoutContainment(const RenderStyle&amp;, const Element&amp;);
&gt; +inline bool shouldApplySizeContainment(const RenderStyle&amp;, const Element&amp;);
&gt; +inline bool shouldApplyInlineSizeContainment(const RenderStyle&amp;, const Element&amp;);
&gt; +inline bool shouldApplyStyleContainment(const RenderStyle&amp;, const Element&amp;);
&gt; +inline bool shouldApplyPaintContainment(const RenderStyle&amp;, const Element&amp;);
&gt; +inline bool isSkippedContentRoot(const RenderStyle&amp;, const Element&amp;);

not sure this stuff needs to be inline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077025</commentid>
    <comment_count>3</comment_count>
      <attachid>473339</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-22 07:32:21 -0800</bug_when>
    <thetext>Created attachment 473339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077055</commentid>
    <comment_count>4</comment_count>
      <attachid>473340</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-11-22 09:24:27 -0800</bug_when>
    <thetext>Created attachment 473340
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077123</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-11-22 13:52:45 -0800</bug_when>
    <thetext>Committed 286982@main (f973d5474566): &lt;https://commits.webkit.org/286982@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 473340.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077124</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-11-22 13:53:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/140438827&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2077125</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-11-22 13:54:07 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 473323 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=473323&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyle.h:2423
&gt; &gt; +inline bool shouldApplyLayoutContainment(const RenderStyle&amp;, const Element&amp;);
&gt; &gt; +inline bool shouldApplySizeContainment(const RenderStyle&amp;, const Element&amp;);
&gt; &gt; +inline bool shouldApplyInlineSizeContainment(const RenderStyle&amp;, const Element&amp;);
&gt; &gt; +inline bool shouldApplyStyleContainment(const RenderStyle&amp;, const Element&amp;);
&gt; &gt; +inline bool shouldApplyPaintContainment(const RenderStyle&amp;, const Element&amp;);
&gt; &gt; +inline bool isSkippedContentRoot(const RenderStyle&amp;, const Element&amp;);
&gt; 
&gt; not sure this stuff needs to be inline
oops, I missed this comment. will fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473323</attachid>
            <date>2024-11-21 16:46:33 -0800</date>
            <delta_ts>2024-11-22 07:32:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283532-20241121164632.patch</filename>
            <type>text/plain</type>
            <size>13730</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAxNmFlZjFmMzQyN2NlZmQ5YWQ2NTVjYmEyYmZlYmFlMjE5M2Q4YTEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjEgTm92IDIwMjQgMTY6Mzg6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XSBzaG91bGRBcHBseSpDb250YWlubWVudAogZnVuY3Rpb25z
IGRvbid0IG5lZWQgdG8gYmUgb24gUmVuZGVyRWxlbWVudAogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4MzUzMgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpO
b3cgdGhhdCB3ZSBjYW4gdGVsbCBpZiBhbiBlbGVtZW50IGlzIHJlcGxhY2VkIG9yIG5vdCwgd2Ug
ZG9uJ3QgbmVlZCBhIHJlbmRlcmVyCnRvIGZpZ3VyZSBvdXQgaWYgY29udGFpbm1lbnQgYXBwbGll
cyBvciBub3QuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB1c2luZyBzaXplIGNvbnRhaW5t
ZW50IGNoZWNrIGluIFN0eWxlQWRqdXN0ZXIgd2hlcmUgX3VzZWRfCmNvbnRlbnQtdmlzaWJpbGl0
eSBpcyBzZXQuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5l
cy5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVu
dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlu
bWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNp
emVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eVN0eWxlQ29udGFpbm1lbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlQYWludENvbnRhaW5tZW50IGNvbnN0KToKKFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRS
b290KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmg6CihXZWJD
b3JlOjpzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5
U2l6ZUNvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5t
ZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5U3R5bGVDb250YWlubWVudCk6CihXZWJDb3JlOjpz
aG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQpOgooV2ViQ29yZTo6aXNTa2lwcGVkQ29udGVudFJv
b3QpOgotLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oICB8
IDgxICsrLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA3ICsrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlSW5saW5l
cy5oICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEwOCBp
bnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IGZjZDczYWY2N2IyMy4uOGY5YTcyZDM1
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElu
bGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGlu
ZXMuaApAQCAtODIsODMgKzgyLDI3IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpIGNvbnN0CiB7Ci0g
ICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBhbmQgYXV0byB0dXJucyBvbiBsYXlvdXQg
Y29udGFpbm1lbnQuCi0gICAgYXV0byYgc3R5bGUgPSB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8g
aGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xheW91dCgpIHx8IHN0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmICghaGFzQ29u
dGFpbm1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVu
dCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEg
cHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBk
aXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJu
YWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlubGluZS1s
ZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkgJiYgc3R5bGUuZGlz
cGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRlcm5hbFJ1YnlCb3goKSB8fCAoaXNJ
bmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgV2ViQ29yZTo6
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAog
aW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBj
b25zdAogewotICAgIGF1dG8mIHN0eWxlID0gdGhpcy0+c3R5bGUoKTsKLSAgICBhdXRvIGhhc0Nv
bnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChzdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSAmJiAhZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCkpOwotICAgIGlmICghaGFzQ29udGFpbm1lbnQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5t
ZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAg
Ly8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5jaXBhbCBib3ggKGFz
IGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxheTogbm9uZSkKLSAg
ICAvLyAgIGlmIGl0cyBpbm5lciBkaXNwbGF5IHR5cGUgaXMgdGFibGUKLSAgICAvLyAgIGlmIGl0
cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRhYmxlIGJveAotICAgIC8vICAgaWYgaXRz
IHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlu
bGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpU
YWJsZSB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50
ZXJuYWxSdWJ5Qm94KCkgfHwgKGlzSW5saW5lKCkgJiYgIWlzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
ZWxlbWVudCgpICYmIFdlYkNvcmU6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3R5bGUgPSB0aGlz
LT5zdHlsZSgpOwotICAgIGlmICghc3R5bGUuY29udGFpbnNJbmxpbmVTaXplKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBpbmxpbmUtc2l6ZSBjb250
YWlubWVudCBoYXMgbm8gZWZmZWN0IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgot
ICAgIC8vICAgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgZ2VuZXJhdGUgYSBwcmluY2lwYWwgYm94
IChhcyBpcyB0aGUgY2FzZSB3aXRoIGRpc3BsYXk6IGNvbnRlbnRzIG9yIGRpc3BsYXk6IG5vbmUp
Ci0gICAgLy8gICBpZiBpdHMgaW5uZXIgZGlzcGxheSB0eXBlIGlzIHRhYmxlCi0gICAgLy8gICBp
ZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCB0YWJsZSBib3gKLSAgICAvLyAgIGlm
IGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21p
YyBpbmxpbmUtbGV2ZWwgYm94Ci0gICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlw
ZTo6VGFibGUgfHwgc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc0ludGVybmFsVGFibGVCb3go
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc1J1YnlDb250YWluZXJP
ckludGVybmFsUnVieUJveCgpIHx8IChpc0lubGluZSgpICYmICFpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGVsZW1lbnQoKSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVu
dChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICAvLyBjb250ZW50LXZp
c2liaWxpdHkgaGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHN0eWxlIGNvbnRhaW5tZW50LgotICAg
IHJldHVybiBzdHlsZSgpLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZSgpLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZSgpLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgcmV0dXJuIGVsZW1lbnQo
KSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoc3R5bGUoKSwgKmVsZW1l
bnQoKSk7CiB9CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRD
b250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBh
bmQgYXV0byB0dXJucyBvbiBwYWludCBjb250YWlubWVudC4KLSAgICBhdXRvJiBzdHlsZSA9IHRo
aXMtPnN0eWxlKCk7Ci0gICAgYXV0byBoYXNDb250YWlubWVudCA9IHN0eWxlLmNvbnRhaW5zUGFp
bnQoKSB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW4gfHwgc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0bzsKLSAgICBpZiAoIWhhc0NvbnRhaW5tZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgcGFpbnQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBp
ZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50
IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBk
aXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAot
ICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3Ig
YSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRh
YmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRl
cm5hbFJ1YnlCb3goKSB8fCAoaXNJbmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBl
bGVtZW50KCkgJiYgV2ViQ29yZTo6c2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50Ojp2aXNpYmxlVG9I
aXRUZXN0aW5nKGNvbnN0IHN0ZDo6b3B0aW9uYWw8SGl0VGVzdFJlcXVlc3Q+JiByZXF1ZXN0KSBj
b25zdApAQCAtMTg2LDIwICsxMzAsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBhZGp1c3RMYXlvdXRV
bml0Rm9yQWJzb2x1dGVab29tKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlcgogCiBpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJl
cikKIHsKLSAgICBpZiAoIXJlbmRlcmVyLnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN3aXRjaCAocmVuZGVyZXIuc3R5bGUoKS5jb250
ZW50VmlzaWJpbGl0eSgpKSB7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZToK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bzoKLSAgICAgICAgcmV0dXJuIHJlbmRlcmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIuZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHJl
bmRlcmVyLmVsZW1lbnQoKSAmJiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdChyZW5kZXJl
ci5zdHlsZSgpLCAqcmVuZGVyZXIuZWxlbWVudCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA2MWRmOWM2M2IyNWUuLjJkMDY2NDdlYmRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTI0MTUsNCArMjQxNSwxMSBAQCBpbmxpbmUgYm9v
bCBpc05vblZpc2libGVPdmVyZmxvdyhPdmVyZmxvdyk7CiAKIGlubGluZSBib29sIGlzVmlzaWJs
ZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jik7
CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoY29uc3QgUmVuZGVy
U3R5bGUmLCBjb25zdCBFbGVtZW50Jik7CitpbmxpbmUgYm9vbCBzaG91bGRBcHBseVNpemVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKK2lubGluZSBib29s
IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBw
bHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOwor
aW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaAppbmRleCBlZjEyNzNm
NmMzNTkuLmI5ZWY0NTdiZjk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaApAQCAtMTA1Nyw0ICsxMDU3LDk5IEBAIGlubGlu
ZSBib29sIGlzVmlzaWJsZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEhpdFRlc3RSZXF1ZXN0CiAgICAgcmV0dXJuIChyZXF1ZXN0LnVzZXJUcmlnZ2VyZWQoKSA/
IHN0eWxlLnVzZWRWaXNpYmlsaXR5KCkgOiBzdHlsZS52aXNpYmlsaXR5KCkpID09IFZpc2liaWxp
dHk6OlZpc2libGU7CiB9CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVtZW50KQorewor
ICAgIC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gbGF5b3V0
IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xh
eW91dCgpIHx8IHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpBdXRvOworICAgIGlmICghaGFzQ29udGFpbm1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVj
dCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAgICAvLyAgIGlmIHRoZSBlbGVt
ZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0
aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQorICAgIC8vICAgaWYgaXRzIHBy
aW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2Vs
bAorICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3gg
b3IgYSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5h
bFRhYmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBhdXRvIGhhc0NvbnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5
bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChz
dHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmICFl
bGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSk7CisgICAgaWYgKCFoYXNDb250YWlubWVudCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6
ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoIXN0eWxlLmNvbnRhaW5zSW5saW5lU2l6ZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgaW5saW5lLXNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U3R5bGVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmKQoreworICAg
IC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gc3R5bGUgY29u
dGFpbm1lbnQuCisgICAgcmV0dXJuIHN0eWxlLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4gfHwgc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bzsKK30KKworaW5saW5l
IGJvb2wgc2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBjb250ZW50LXZpc2liaWxpdHkg
aGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHBhaW50IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFz
Q29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc1BhaW50KCkgfHwgc3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IHN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgaWYgKCFoYXNDb250YWlu
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHBh
aW50IGNvbnRhaW5tZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJl
IHRydWU6CisgICAgLy8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5j
aXBhbCBib3ggKGFzIGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxh
eTogbm9uZSkKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRh
YmxlIGJveCBvdGhlciB0aGFuIHRhYmxlLWNlbGwKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwg
Ym94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21pYyBpbmxpbmUtbGV2ZWwg
Ym94CisgICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpICYmIHN0eWxlLmRpc3BsYXko
KSAhPSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5Qm94KCkgfHwgKHN0eWxlLmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lICYmICFlbGVtZW50LmlzUmVwbGFjZWQoc3R5
bGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKCFzaG91bGRBcHBseVNpemVDb250YWlu
bWVudChzdHlsZSwgZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRj
aCAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSkgeworICAgIGNhc2UgQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGU6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENvbnRlbnRWaXNp
YmlsaXR5OjpIaWRkZW46CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQ29udGVudFZp
c2liaWxpdHk6OkF1dG86CisgICAgICAgIHJldHVybiBlbGVtZW50LmlzUmVsZXZhbnRUb1VzZXIo
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473339</attachid>
            <date>2024-11-22 07:32:21 -0800</date>
            <delta_ts>2024-11-22 09:24:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-283532-20241122073220.patch</filename>
            <type>text/plain</type>
            <size>13730</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBiYTU3ZGM3NDQ4NmE5ZGIxYjJhZDYwYTI3MjQ0NDg0ODI0MDZiYzYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjEgTm92IDIwMjQgMTY6Mzg6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XSBzaG91bGRBcHBseSpDb250YWlubWVudAogZnVuY3Rpb25z
IGRvbid0IG5lZWQgdG8gYmUgb24gUmVuZGVyRWxlbWVudAogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4MzUzMgoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpO
b3cgdGhhdCB3ZSBjYW4gdGVsbCBpZiBhbiBlbGVtZW50IGlzIHJlcGxhY2VkIG9yIG5vdCwgd2Ug
ZG9uJ3QgbmVlZCBhIHJlbmRlcmVyCnRvIGZpZ3VyZSBvdXQgaWYgY29udGFpbm1lbnQgYXBwbGll
cyBvciBub3QuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB1c2luZyBzaXplIGNvbnRhaW5t
ZW50IGNoZWNrIGluIFN0eWxlQWRqdXN0ZXIgd2hlcmUgX3VzZWRfCmNvbnRlbnQtdmlzaWJpbGl0
eSBpcyBzZXQuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5l
cy5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVu
dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlu
bWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNp
emVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eVN0eWxlQ29udGFpbm1lbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlQYWludENvbnRhaW5tZW50IGNvbnN0KToKKFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRS
b290KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmg6CihXZWJD
b3JlOjpzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5
U2l6ZUNvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5t
ZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5U3R5bGVDb250YWlubWVudCk6CihXZWJDb3JlOjpz
aG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQpOgooV2ViQ29yZTo6aXNTa2lwcGVkQ29udGVudFJv
b3QpOgotLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oICB8
IDgxICsrLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA3ICsrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlSW5saW5l
cy5oICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEwOCBp
bnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IGZjZDczYWY2N2IyMy4uOGY5YTcyZDM1
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElu
bGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGlu
ZXMuaApAQCAtODIsODMgKzgyLDI3IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpIGNvbnN0CiB7Ci0g
ICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBhbmQgYXV0byB0dXJucyBvbiBsYXlvdXQg
Y29udGFpbm1lbnQuCi0gICAgYXV0byYgc3R5bGUgPSB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8g
aGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xheW91dCgpIHx8IHN0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmICghaGFzQ29u
dGFpbm1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVu
dCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEg
cHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBk
aXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJu
YWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlubGluZS1s
ZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkgJiYgc3R5bGUuZGlz
cGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRlcm5hbFJ1YnlCb3goKSB8fCAoaXNJ
bmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgV2ViQ29yZTo6
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAog
aW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBj
b25zdAogewotICAgIGF1dG8mIHN0eWxlID0gdGhpcy0+c3R5bGUoKTsKLSAgICBhdXRvIGhhc0Nv
bnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChzdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSAmJiAhZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCkpOwotICAgIGlmICghaGFzQ29udGFpbm1lbnQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5t
ZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAg
Ly8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5jaXBhbCBib3ggKGFz
IGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxheTogbm9uZSkKLSAg
ICAvLyAgIGlmIGl0cyBpbm5lciBkaXNwbGF5IHR5cGUgaXMgdGFibGUKLSAgICAvLyAgIGlmIGl0
cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRhYmxlIGJveAotICAgIC8vICAgaWYgaXRz
IHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlu
bGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpU
YWJsZSB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50
ZXJuYWxSdWJ5Qm94KCkgfHwgKGlzSW5saW5lKCkgJiYgIWlzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
ZWxlbWVudCgpICYmIFdlYkNvcmU6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3R5bGUgPSB0aGlz
LT5zdHlsZSgpOwotICAgIGlmICghc3R5bGUuY29udGFpbnNJbmxpbmVTaXplKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBpbmxpbmUtc2l6ZSBjb250
YWlubWVudCBoYXMgbm8gZWZmZWN0IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgot
ICAgIC8vICAgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgZ2VuZXJhdGUgYSBwcmluY2lwYWwgYm94
IChhcyBpcyB0aGUgY2FzZSB3aXRoIGRpc3BsYXk6IGNvbnRlbnRzIG9yIGRpc3BsYXk6IG5vbmUp
Ci0gICAgLy8gICBpZiBpdHMgaW5uZXIgZGlzcGxheSB0eXBlIGlzIHRhYmxlCi0gICAgLy8gICBp
ZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCB0YWJsZSBib3gKLSAgICAvLyAgIGlm
IGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21p
YyBpbmxpbmUtbGV2ZWwgYm94Ci0gICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlw
ZTo6VGFibGUgfHwgc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc0ludGVybmFsVGFibGVCb3go
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc1J1YnlDb250YWluZXJP
ckludGVybmFsUnVieUJveCgpIHx8IChpc0lubGluZSgpICYmICFpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGVsZW1lbnQoKSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVu
dChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICAvLyBjb250ZW50LXZp
c2liaWxpdHkgaGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHN0eWxlIGNvbnRhaW5tZW50LgotICAg
IHJldHVybiBzdHlsZSgpLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZSgpLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZSgpLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgcmV0dXJuIGVsZW1lbnQo
KSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoc3R5bGUoKSwgKmVsZW1l
bnQoKSk7CiB9CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRD
b250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBh
bmQgYXV0byB0dXJucyBvbiBwYWludCBjb250YWlubWVudC4KLSAgICBhdXRvJiBzdHlsZSA9IHRo
aXMtPnN0eWxlKCk7Ci0gICAgYXV0byBoYXNDb250YWlubWVudCA9IHN0eWxlLmNvbnRhaW5zUGFp
bnQoKSB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW4gfHwgc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0bzsKLSAgICBpZiAoIWhhc0NvbnRhaW5tZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgcGFpbnQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBp
ZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50
IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBk
aXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAot
ICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3Ig
YSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRh
YmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRl
cm5hbFJ1YnlCb3goKSB8fCAoaXNJbmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBl
bGVtZW50KCkgJiYgV2ViQ29yZTo6c2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50Ojp2aXNpYmxlVG9I
aXRUZXN0aW5nKGNvbnN0IHN0ZDo6b3B0aW9uYWw8SGl0VGVzdFJlcXVlc3Q+JiByZXF1ZXN0KSBj
b25zdApAQCAtMTg2LDIwICsxMzAsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBhZGp1c3RMYXlvdXRV
bml0Rm9yQWJzb2x1dGVab29tKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlcgogCiBpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJl
cikKIHsKLSAgICBpZiAoIXJlbmRlcmVyLnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN3aXRjaCAocmVuZGVyZXIuc3R5bGUoKS5jb250
ZW50VmlzaWJpbGl0eSgpKSB7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZToK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bzoKLSAgICAgICAgcmV0dXJuIHJlbmRlcmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIuZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHJl
bmRlcmVyLmVsZW1lbnQoKSAmJiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdChyZW5kZXJl
ci5zdHlsZSgpLCAqcmVuZGVyZXIuZWxlbWVudCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA3YzU5ZWJhNGI0ODguLjA1NjA1YmZjZGY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTI0MTAsNCArMjQxMCwxMSBAQCBpbmxpbmUgYm9v
bCBpc05vblZpc2libGVPdmVyZmxvdyhPdmVyZmxvdyk7CiAKIGlubGluZSBib29sIGlzVmlzaWJs
ZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jik7
CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoY29uc3QgUmVuZGVy
U3R5bGUmLCBjb25zdCBFbGVtZW50Jik7CitpbmxpbmUgYm9vbCBzaG91bGRBcHBseVNpemVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKK2lubGluZSBib29s
IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBw
bHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOwor
aW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaAppbmRleCBlZjEyNzNm
NmMzNTkuLmI5ZWY0NTdiZjk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaApAQCAtMTA1Nyw0ICsxMDU3LDk5IEBAIGlubGlu
ZSBib29sIGlzVmlzaWJsZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEhpdFRlc3RSZXF1ZXN0CiAgICAgcmV0dXJuIChyZXF1ZXN0LnVzZXJUcmlnZ2VyZWQoKSA/
IHN0eWxlLnVzZWRWaXNpYmlsaXR5KCkgOiBzdHlsZS52aXNpYmlsaXR5KCkpID09IFZpc2liaWxp
dHk6OlZpc2libGU7CiB9CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVtZW50KQorewor
ICAgIC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gbGF5b3V0
IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xh
eW91dCgpIHx8IHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpBdXRvOworICAgIGlmICghaGFzQ29udGFpbm1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVj
dCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAgICAvLyAgIGlmIHRoZSBlbGVt
ZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0
aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQorICAgIC8vICAgaWYgaXRzIHBy
aW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2Vs
bAorICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3gg
b3IgYSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5h
bFRhYmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBhdXRvIGhhc0NvbnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5
bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChz
dHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmICFl
bGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSk7CisgICAgaWYgKCFoYXNDb250YWlubWVudCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6
ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoIXN0eWxlLmNvbnRhaW5zSW5saW5lU2l6ZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgaW5saW5lLXNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U3R5bGVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmKQoreworICAg
IC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gc3R5bGUgY29u
dGFpbm1lbnQuCisgICAgcmV0dXJuIHN0eWxlLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4gfHwgc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bzsKK30KKworaW5saW5l
IGJvb2wgc2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBjb250ZW50LXZpc2liaWxpdHkg
aGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHBhaW50IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFz
Q29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc1BhaW50KCkgfHwgc3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IHN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgaWYgKCFoYXNDb250YWlu
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHBh
aW50IGNvbnRhaW5tZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJl
IHRydWU6CisgICAgLy8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5j
aXBhbCBib3ggKGFzIGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxh
eTogbm9uZSkKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRh
YmxlIGJveCBvdGhlciB0aGFuIHRhYmxlLWNlbGwKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwg
Ym94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21pYyBpbmxpbmUtbGV2ZWwg
Ym94CisgICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpICYmIHN0eWxlLmRpc3BsYXko
KSAhPSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5Qm94KCkgfHwgKHN0eWxlLmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lICYmICFlbGVtZW50LmlzUmVwbGFjZWQoc3R5
bGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKCFzaG91bGRBcHBseVNpemVDb250YWlu
bWVudChzdHlsZSwgZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRj
aCAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSkgeworICAgIGNhc2UgQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGU6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENvbnRlbnRWaXNp
YmlsaXR5OjpIaWRkZW46CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQ29udGVudFZp
c2liaWxpdHk6OkF1dG86CisgICAgICAgIHJldHVybiBlbGVtZW50LmlzUmVsZXZhbnRUb1VzZXIo
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>473340</attachid>
            <date>2024-11-22 09:24:27 -0800</date>
            <delta_ts>2024-11-22 13:52:46 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-283532-20241122092426.patch</filename>
            <type>text/plain</type>
            <size>13731</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAzYjg3MWE0NTA2ZWZlMmY1YTQ3YTlmZTI2ZGNjYzdiNDBmZTQ0NTg0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjEgTm92IDIwMjQgMTY6Mzg6MzkgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF1bY29udGVudC12aXNpYmlsaXR5XSBzaG91bGRBcHBseSpDb250YWlubWVudAogZnVuY3Rpb25z
IGRvbid0IG5lZWQgdG8gYmUgb24gUmVuZGVyRWxlbWVudAogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4MzUzMgoKUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCgpO
b3cgdGhhdCB3ZSBjYW4gdGVsbCBpZiBhbiBlbGVtZW50IGlzIHJlcGxhY2VkIG9yIG5vdCwgd2Ug
ZG9uJ3QgbmVlZCBhIHJlbmRlcmVyCnRvIGZpZ3VyZSBvdXQgaWYgY29udGFpbm1lbnQgYXBwbGll
cyBvciBub3QuCgpUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB1c2luZyBzaXplIGNvbnRhaW5t
ZW50IGNoZWNrIGluIFN0eWxlQWRqdXN0ZXIgd2hlcmUgX3VzZWRfCmNvbnRlbnQtdmlzaWJpbGl0
eSBpcyBzZXQuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5l
cy5oOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVu
dCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVDb250YWlu
bWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseUlubGluZVNp
emVDb250YWlubWVudCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eVN0eWxlQ29udGFpbm1lbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c2hvdWxk
QXBwbHlQYWludENvbnRhaW5tZW50IGNvbnN0KToKKFdlYkNvcmU6OmlzU2tpcHBlZENvbnRlbnRS
b290KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVJbmxpbmVzLmg6CihXZWJD
b3JlOjpzaG91bGRBcHBseUxheW91dENvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5
U2l6ZUNvbnRhaW5tZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5t
ZW50KToKKFdlYkNvcmU6OnNob3VsZEFwcGx5U3R5bGVDb250YWlubWVudCk6CihXZWJDb3JlOjpz
aG91bGRBcHBseVBhaW50Q29udGFpbm1lbnQpOgooV2ViQ29yZTo6aXNTa2lwcGVkQ29udGVudFJv
b3QpOgotLS0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oICB8
IDgxICsrLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oICB8ICA3ICsrCiAuLi4vcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlSW5saW5l
cy5oICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEwOCBp
bnNlcnRpb25zKCspLCA3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGluZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50SW5saW5lcy5oCmluZGV4IGZjZDczYWY2N2IyMy4uOGY5YTcyZDM1
MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElu
bGluZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudElubGlu
ZXMuaApAQCAtODIsODMgKzgyLDI3IEBAIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3Vs
ZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3QKIAogaW5saW5lIGJvb2wg
UmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgpIGNvbnN0CiB7Ci0g
ICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBhbmQgYXV0byB0dXJucyBvbiBsYXlvdXQg
Y29udGFpbm1lbnQuCi0gICAgYXV0byYgc3R5bGUgPSB0aGlzLT5zdHlsZSgpOwotICAgIGF1dG8g
aGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xheW91dCgpIHx8IHN0eWxlLmNvbnRlbnRW
aXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvOwotICAgIGlmICghaGFzQ29u
dGFpbm1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVu
dCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEg
cHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBk
aXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJu
YWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlubGluZS1s
ZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkgJiYgc3R5bGUuZGlz
cGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRlcm5hbFJ1YnlCb3goKSB8fCAoaXNJ
bmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbGVtZW50KCkgJiYgV2ViQ29yZTo6
c2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAog
aW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBj
b25zdAogewotICAgIGF1dG8mIHN0eWxlID0gdGhpcy0+c3R5bGUoKTsKLSAgICBhdXRvIGhhc0Nv
bnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5bGUuY29udGVudFZpc2liaWxp
dHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChzdHlsZS5jb250ZW50VmlzaWJp
bGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmIGVsZW1lbnQoKSAmJiAhZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCkpOwotICAgIGlmICghaGFzQ29udGFpbm1lbnQpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBzaXplIGNvbnRhaW5t
ZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIHRydWU6Ci0gICAg
Ly8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5jaXBhbCBib3ggKGFz
IGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxheTogbm9uZSkKLSAg
ICAvLyAgIGlmIGl0cyBpbm5lciBkaXNwbGF5IHR5cGUgaXMgdGFibGUKLSAgICAvLyAgIGlmIGl0
cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRhYmxlIGJveAotICAgIC8vICAgaWYgaXRz
IHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3IgYSBub24tYXRvbWljIGlu
bGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpU
YWJsZSB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50
ZXJuYWxSdWJ5Qm94KCkgfHwgKGlzSW5saW5lKCkgJiYgIWlzQXRvbWljSW5saW5lTGV2ZWxCb3go
KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
ZWxlbWVudCgpICYmIFdlYkNvcmU6OnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBs
eUlubGluZVNpemVDb250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgYXV0byYgc3R5bGUgPSB0aGlz
LT5zdHlsZSgpOwotICAgIGlmICghc3R5bGUuY29udGFpbnNJbmxpbmVTaXplKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBpbmxpbmUtc2l6ZSBjb250
YWlubWVudCBoYXMgbm8gZWZmZWN0IGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgot
ICAgIC8vICAgaWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgZ2VuZXJhdGUgYSBwcmluY2lwYWwgYm94
IChhcyBpcyB0aGUgY2FzZSB3aXRoIGRpc3BsYXk6IGNvbnRlbnRzIG9yIGRpc3BsYXk6IG5vbmUp
Ci0gICAgLy8gICBpZiBpdHMgaW5uZXIgZGlzcGxheSB0eXBlIGlzIHRhYmxlCi0gICAgLy8gICBp
ZiBpdHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCB0YWJsZSBib3gKLSAgICAvLyAgIGlm
IGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21p
YyBpbmxpbmUtbGV2ZWwgYm94Ci0gICAgaWYgKHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlw
ZTo6VGFibGUgfHwgc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc0ludGVybmFsVGFibGVCb3go
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChzdHlsZS5pc1J1YnlDb250YWluZXJP
ckludGVybmFsUnVieUJveCgpIHx8IChpc0lubGluZSgpICYmICFpc0F0b21pY0lubGluZUxldmVs
Qm94KCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIGVsZW1lbnQoKSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseUlubGluZVNpemVDb250YWlubWVu
dChzdHlsZSgpLCAqZWxlbWVudCgpKTsKIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyRWxlbWVudDo6
c2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KCkgY29uc3QKIHsKLSAgICAvLyBjb250ZW50LXZp
c2liaWxpdHkgaGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHN0eWxlIGNvbnRhaW5tZW50LgotICAg
IHJldHVybiBzdHlsZSgpLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZSgpLmNvbnRlbnRWaXNpYmls
aXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbiB8fCBzdHlsZSgpLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgcmV0dXJuIGVsZW1lbnQo
KSAmJiBXZWJDb3JlOjpzaG91bGRBcHBseVN0eWxlQ29udGFpbm1lbnQoc3R5bGUoKSwgKmVsZW1l
bnQoKSk7CiB9CiAKIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5UGFpbnRD
b250YWlubWVudCgpIGNvbnN0CiB7Ci0gICAgLy8gY29udGVudC12aXNpYmlsaXR5IGhpZGRlbiBh
bmQgYXV0byB0dXJucyBvbiBwYWludCBjb250YWlubWVudC4KLSAgICBhdXRvJiBzdHlsZSA9IHRo
aXMtPnN0eWxlKCk7Ci0gICAgYXV0byBoYXNDb250YWlubWVudCA9IHN0eWxlLmNvbnRhaW5zUGFp
bnQoKSB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpI
aWRkZW4gfHwgc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
QXV0bzsKLSAgICBpZiAoIWhhc0NvbnRhaW5tZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgcGFpbnQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVjdCBp
ZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKLSAgICAvLyAgIGlmIHRoZSBlbGVtZW50
IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0aCBk
aXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQotICAgIC8vICAgaWYgaXRzIHByaW5j
aXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2VsbAot
ICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3ggb3Ig
YSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKLSAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRh
YmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJbnRl
cm5hbFJ1YnlCb3goKSB8fCAoaXNJbmxpbmUoKSAmJiAhaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBl
bGVtZW50KCkgJiYgV2ViQ29yZTo6c2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KHN0eWxlKCks
ICplbGVtZW50KCkpOwogfQogCiBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50Ojp2aXNpYmxlVG9I
aXRUZXN0aW5nKGNvbnN0IHN0ZDo6b3B0aW9uYWw8SGl0VGVzdFJlcXVlc3Q+JiByZXF1ZXN0KSBj
b25zdApAQCAtMTg2LDIwICsxMzAsNyBAQCBpbmxpbmUgTGF5b3V0VW5pdCBhZGp1c3RMYXlvdXRV
bml0Rm9yQWJzb2x1dGVab29tKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlcgogCiBpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJl
cikKIHsKLSAgICBpZiAoIXJlbmRlcmVyLnNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN3aXRjaCAocmVuZGVyZXIuc3R5bGUoKS5jb250
ZW50VmlzaWJpbGl0eSgpKSB7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZToK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bjoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY2FzZSBDb250ZW50VmlzaWJpbGl0eTo6QXV0
bzoKLSAgICAgICAgcmV0dXJuIHJlbmRlcmVyLmVsZW1lbnQoKSAmJiAhcmVuZGVyZXIuZWxlbWVu
dCgpLT5pc1JlbGV2YW50VG9Vc2VyKCk7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CisgICAgcmV0dXJuIHJl
bmRlcmVyLmVsZW1lbnQoKSAmJiBXZWJDb3JlOjppc1NraXBwZWRDb250ZW50Um9vdChyZW5kZXJl
ci5zdHlsZSgpLCAqcmVuZGVyZXIuZWxlbWVudCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA3YzU5ZWJhNGI0ODguLjA1NjA1YmZjZGY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTI0MTAsNCArMjQxMCwxMSBAQCBpbmxpbmUgYm9v
bCBpc05vblZpc2libGVPdmVyZmxvdyhPdmVyZmxvdyk7CiAKIGlubGluZSBib29sIGlzVmlzaWJs
ZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0Jik7
CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1lbnQoY29uc3QgUmVuZGVy
U3R5bGUmLCBjb25zdCBFbGVtZW50Jik7CitpbmxpbmUgYm9vbCBzaG91bGRBcHBseVNpemVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEVsZW1lbnQmKTsKK2lubGluZSBib29s
IHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29u
c3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBwbHlTdHlsZUNvbnRhaW5tZW50KGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOworaW5saW5lIGJvb2wgc2hvdWxkQXBw
bHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCYpOwor
aW5saW5lIGJvb2wgaXNTa2lwcGVkQ29udGVudFJvb3QoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBFbGVtZW50Jik7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaAppbmRleCBlZjEyNzNm
NmMzNTkuLjA3ZWFkZGVlNjUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUlubGluZXMuaApAQCAtMTA1Nyw0ICsxMDU3LDk5IEBAIGlubGlu
ZSBib29sIGlzVmlzaWJsZVRvSGl0VGVzdGluZyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEhpdFRlc3RSZXF1ZXN0CiAgICAgcmV0dXJuIChyZXF1ZXN0LnVzZXJUcmlnZ2VyZWQoKSA/
IHN0eWxlLnVzZWRWaXNpYmlsaXR5KCkgOiBzdHlsZS52aXNpYmlsaXR5KCkpID09IFZpc2liaWxp
dHk6OlZpc2libGU7CiB9CiAKK2lubGluZSBib29sIHNob3VsZEFwcGx5TGF5b3V0Q29udGFpbm1l
bnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBFbGVtZW50JiBlbGVtZW50KQorewor
ICAgIC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gbGF5b3V0
IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFzQ29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc0xh
eW91dCgpIHx8IHN0eWxlLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6
OkhpZGRlbiB8fCBzdHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpBdXRvOworICAgIGlmICghaGFzQ29udGFpbm1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAvLyBHaXZpbmcgYW4gZWxlbWVudCBsYXlvdXQgY29udGFpbm1lbnQgaGFzIG5vIGVmZmVj
dCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAgICAvLyAgIGlmIHRoZSBlbGVt
ZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAoYXMgaXMgdGhlIGNhc2Ugd2l0
aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQorICAgIC8vICAgaWYgaXRzIHBy
aW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94IG90aGVyIHRoYW4gdGFibGUtY2Vs
bAorICAgIC8vICAgaWYgaXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgcnVieSBib3gg
b3IgYSBub24tYXRvbWljIGlubGluZS1sZXZlbCBib3gKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5h
bFRhYmxlQm94KCkgJiYgc3R5bGUuZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U2l6ZUNvbnRh
aW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICBhdXRvIGhhc0NvbnRhaW5tZW50ID0gc3R5bGUuY29udGFpbnNTaXplKCkgfHwgc3R5
bGUuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IChz
dHlsZS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpBdXRvICYmICFl
bGVtZW50LmlzUmVsZXZhbnRUb1VzZXIoKSk7CisgICAgaWYgKCFoYXNDb250YWlubWVudCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6
ZUNvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKK3sKKyAgICBpZiAoIXN0eWxlLmNvbnRhaW5zSW5saW5lU2l6ZSgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgLy8gR2l2aW5nIGFuIGVsZW1lbnQgaW5saW5lLXNpemUgY29udGFp
bm1lbnQgaGFzIG5vIGVmZmVjdCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgdHJ1ZToKKyAg
ICAvLyAgIGlmIHRoZSBlbGVtZW50IGRvZXMgbm90IGdlbmVyYXRlIGEgcHJpbmNpcGFsIGJveCAo
YXMgaXMgdGhlIGNhc2Ugd2l0aCBkaXNwbGF5OiBjb250ZW50cyBvciBkaXNwbGF5OiBub25lKQor
ICAgIC8vICAgaWYgaXRzIGlubmVyIGRpc3BsYXkgdHlwZSBpcyB0YWJsZQorICAgIC8vICAgaWYg
aXRzIHByaW5jaXBhbCBib3ggaXMgYW4gaW50ZXJuYWwgdGFibGUgYm94CisgICAgLy8gICBpZiBp
dHMgcHJpbmNpcGFsIGJveCBpcyBhbiBpbnRlcm5hbCBydWJ5IGJveCBvciBhIG5vbi1hdG9taWMg
aW5saW5lLWxldmVsIGJveAorICAgIGlmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6
OlRhYmxlIHx8IHN0eWxlLmRpc3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lVGFibGUpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNJbnRlcm5hbFRhYmxlQm94KCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3R5bGUuaXNSdWJ5Q29udGFpbmVyT3JJ
bnRlcm5hbFJ1YnlCb3goKSB8fCAoc3R5bGUuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpJbmxp
bmUgJiYgIWVsZW1lbnQuaXNSZXBsYWNlZChzdHlsZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lubGluZSBib29sIHNob3VsZEFwcGx5U3R5bGVDb250
YWlubWVudChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQmKQoreworICAg
IC8vIGNvbnRlbnQtdmlzaWJpbGl0eSBoaWRkZW4gYW5kIGF1dG8gdHVybnMgb24gc3R5bGUgY29u
dGFpbm1lbnQuCisgICAgcmV0dXJuIHN0eWxlLmNvbnRhaW5zU3R5bGUoKSB8fCBzdHlsZS5jb250
ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4gfHwgc3R5bGUuY29u
dGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6QXV0bzsKK30KKworaW5saW5l
IGJvb2wgc2hvdWxkQXBwbHlQYWludENvbnRhaW5tZW50KGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgRWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICAvLyBjb250ZW50LXZpc2liaWxpdHkg
aGlkZGVuIGFuZCBhdXRvIHR1cm5zIG9uIHBhaW50IGNvbnRhaW5tZW50LgorICAgIGF1dG8gaGFz
Q29udGFpbm1lbnQgPSBzdHlsZS5jb250YWluc1BhaW50KCkgfHwgc3R5bGUuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuIHx8IHN0eWxlLmNvbnRlbnRWaXNp
YmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkF1dG87CisgICAgaWYgKCFoYXNDb250YWlu
bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEdpdmluZyBhbiBlbGVtZW50IHBh
aW50IGNvbnRhaW5tZW50IGhhcyBubyBlZmZlY3QgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJl
IHRydWU6CisgICAgLy8gICBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBnZW5lcmF0ZSBhIHByaW5j
aXBhbCBib3ggKGFzIGlzIHRoZSBjYXNlIHdpdGggZGlzcGxheTogY29udGVudHMgb3IgZGlzcGxh
eTogbm9uZSkKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwgYm94IGlzIGFuIGludGVybmFsIHRh
YmxlIGJveCBvdGhlciB0aGFuIHRhYmxlLWNlbGwKKyAgICAvLyAgIGlmIGl0cyBwcmluY2lwYWwg
Ym94IGlzIGFuIGludGVybmFsIHJ1YnkgYm94IG9yIGEgbm9uLWF0b21pYyBpbmxpbmUtbGV2ZWwg
Ym94CisgICAgaWYgKHN0eWxlLmlzSW50ZXJuYWxUYWJsZUJveCgpICYmIHN0eWxlLmRpc3BsYXko
KSAhPSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKHN0eWxlLmlzUnVieUNvbnRhaW5lck9ySW50ZXJuYWxSdWJ5Qm94KCkgfHwgKHN0eWxlLmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6SW5saW5lICYmICFlbGVtZW50LmlzUmVwbGFjZWQoc3R5
bGUpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCitpbmxp
bmUgYm9vbCBpc1NraXBwZWRDb250ZW50Um9vdChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgaWYgKCFzaG91bGRBcHBseVNpemVDb250YWlu
bWVudChzdHlsZSwgZWxlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRj
aCAoc3R5bGUuY29udGVudFZpc2liaWxpdHkoKSkgeworICAgIGNhc2UgQ29udGVudFZpc2liaWxp
dHk6OlZpc2libGU6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENvbnRlbnRWaXNp
YmlsaXR5OjpIaWRkZW46CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgQ29udGVudFZp
c2liaWxpdHk6OkF1dG86CisgICAgICAgIHJldHVybiAhZWxlbWVudC5pc1JlbGV2YW50VG9Vc2Vy
KCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>