<?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>260403</bug_id>
          
          <creation_ts>2023-08-18 12:10:59 -0700</creation_ts>
          <short_desc>[IFC] Do not populate InlineContentBreaker::ContinuousContent eagerly with candidate content</short_desc>
          <delta_ts>2023-08-20 17:13:08 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1972116</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2023-08-18 12:10:59 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972117</commentid>
    <comment_count>1</comment_count>
      <attachid>467331</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-18 12:21:22 -0700</bug_when>
    <thetext>Created attachment 467331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972118</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-08-18 12:22:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/114103648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972153</commentid>
    <comment_count>3</comment_count>
      <attachid>467333</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-18 15:01:39 -0700</bug_when>
    <thetext>Created attachment 467333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972195</commentid>
    <comment_count>4</comment_count>
      <attachid>467337</attachid>
    <who name="alan">zalan</who>
    <bug_when>2023-08-18 20:25:45 -0700</bug_when>
    <thetext>Created attachment 467337
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1972301</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-08-20 17:13:06 -0700</bug_when>
    <thetext>Committed 267079@main (dc83324137d0): &lt;https://commits.webkit.org/267079@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 467337.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467331</attachid>
            <date>2023-08-18 12:21:22 -0700</date>
            <delta_ts>2023-08-18 15:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260403-20230818122121.patch</filename>
            <type>text/plain</type>
            <size>15296</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5N2VkMDViNjNiM2JlYzc2MTNhYmMxYjIxMzZiYTg3NTRjYWQzYzhlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTggQXVnIDIwMjMgMTI6MTE6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBE
byBub3QgcG9wdWxhdGUgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50CiBl
YWdlcmx5IHdpdGggY2FuZGlkYXRlIGNvbnRlbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQwMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbmxpbmVD
b250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgcHJlLXByb2Nlc3NlcyB0aGUgY2FuZGlk
YXRlIGNvbnRlbnQgdG8gcHJvdmlkZSB0cmFpbGluZy90cmltbWluZyBpbmZvcm1hdGlvbiBmb3Ig
SW5saW5lQ29udGVudEJyZWFrZXIuCkhvd2V2ZXIgd2UgZG9uJ3QgbmVlZCB0aGF0IGluZm9ybWF0
aW9uIHVudGlsIGFmdGVyIHdlIGZlZWQgdGhlIGNvbnRlbnQgdG8gbGluZSBicmVha2luZy4KTGV0
J3MgcG9wdWxhdGUgQ29udGludW91c0NvbnRlbnQgbGF6aWx5IHJpZ2h0IGJlZm9yZSBjYWxsaW5n
IGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQuCgpUaGlzIGlzIH4xMCUgcHJvZ3Jlc3Npb24g
b24gUGVyZm9ybWFuY2VUZXN0cy9MYXlvdXQvbGluZS1sYXlvdXQuaHRtbC4KCiogU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5l
QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OkNhbmRpZGF0ZVRleHRDb250ZW50OjphcHBl
bmQpOgooV2ViQ29yZTo6TGF5b3V0OjptZWFzdXJlZElubGluZVRleHRJdGVtKToKKFdlYkNvcmU6
OkxheW91dDo6YXBwZW5kSW5saW5lVGV4dEl0ZW0pOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25s
eVNpbXBsZUxpbmVCdWlsZGVyOjpwbGFjZUlubGluZVRleHRDb250ZW50KToKKFdlYkNvcmU6Okxh
eW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6cGxhY2VOb25XcmFwcGluZ0lubGluZVRl
eHRDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6
aGFuZGxlT3ZlcmZsb3dpbmdUZXh0Q29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRPbmx5
U2ltcGxlTGluZUJ1aWxkZXI6OnJldmVydFRvVHJhaWxpbmdJdGVtKToKKFdlYkNvcmU6OkxheW91
dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6cmV2ZXJ0VG9MYXN0Tm9uT3ZlcmZsb3dpbmdJ
dGVtKToKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6YXZhaWxh
YmxlV2lkdGggY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjppbmxpbmVUZXh0SXRlbVdpZHRoKTog
RGVsZXRlZC4KKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6aGFu
ZGxlSW5saW5lVGV4dENvbnRlbnQpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaDoKLS0t
CiAuLi4vaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwICAgICAgfCA4NiArKysr
KysrKysrKysrLS0tLS0tCiAuLi4vaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaCAg
ICAgICAgfCAgMyArLQogMiBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAyNiBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1
aWxkZXIuY3BwCmluZGV4IDQ2OGM3MjdlMzQ5OC4uZDRiNTdhNWYwMzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcApAQCAtMzYsMTAg
KzM2LDIwIEBAIHN0cnVjdCBUZXh0T25seUxpbmVCcmVha1Jlc3VsdCB7CiAgICAgYm9vbCBpc1Jl
dmVydCB7IGZhbHNlIH07CiB9OwogCi1zdGF0aWMgaW5saW5lIElubGluZUxheW91dFVuaXQgaW5s
aW5lVGV4dEl0ZW1XaWR0aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExl
ZnQpCitzdHJ1Y3QgQ2FuZGlkYXRlVGV4dENvbnRlbnQgeworICAgIHZvaWQgYXBwZW5kKElubGlu
ZUxheW91dFVuaXQgY29udGVudFdpZHRoKQorICAgIHsKKyAgICAgICAgbG9naWNhbFdpZHRoICs9
IGNvbnRlbnRXaWR0aDsKKyAgICAgICAgKytyYW5nZS5lbmQuaW5kZXg7CisgICAgfQorCisgICAg
SW5saW5lSXRlbVJhbmdlIHJhbmdlIHsgfTsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2ljYWxX
aWR0aCB7IDAuZiB9OworfTsKKworc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IG1lYXN1
cmVkSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2ljYWxM
ZWZ0KQogewotICAgIGlmIChhdXRvIGNvbnRlbnRXaWR0aCA9IGlubGluZVRleHRJdGVtLndpZHRo
KCkpCi0gICAgICAgIHJldHVybiAqY29udGVudFdpZHRoOworICAgIEFTU0VSVCghaW5saW5lVGV4
dEl0ZW0ud2lkdGgoKSk7CiAgICAgaWYgKCFpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2UoKSB8
fCBJbmxpbmVUZXh0SXRlbTo6c2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJzKGlubGluZVRleHRJ
dGVtKSkKICAgICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5
bGUuZm9udENhc2NhZGUoKSwgY29udGVudExvZ2ljYWxMZWZ0KTsKICAgICByZXR1cm4gVGV4dFV0
aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZS5mb250Q2FzY2FkZSgpLCBpbmxpbmVUZXh0
SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpICsgMSwgY29udGVudExvZ2ljYWxM
ZWZ0KTsKQEAgLTYwLDEzICs3MCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNMYXN0TGluZVdp
dGhJbmxpbmVDb250ZW50KElubGluZUl0ZW1Qb3NpdGlvbiBwbGFjZWRDb250ZW50RQogICAgIHJl
dHVybiBwbGFjZWRDb250ZW50RW5kLmluZGV4ID09IGxheW91dFJhbmdlRW5kSW5kZXggJiYgIXBs
YWNlZENvbnRlbnRFbmQub2Zmc2V0OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kSW5s
aW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBib29sIGlz
Rmlyc3RGb3JtYXR0ZWRMaW5lLCBjb25zdCBMaW5lJiBsaW5lLCBJbmxpbmVDb250ZW50QnJlYWtl
cjo6Q29udGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQpCitzdGF0aWMgaW5saW5lIHZv
aWQgYXBwZW5kSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJ
dGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IExpbmUmIGxpbmUsIElubGluZUNv
bnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYgY2FuZGlkYXRlQ29udGVudCkKIHsKLSAg
ICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lID8gaW5saW5lVGV4dEl0ZW0uZmly
c3RMaW5lU3R5bGUoKSA6IGlubGluZVRleHRJdGVtLnN0eWxlKCk7CiAgICAgYXV0byB0ZXh0Q29u
dGVudGxXaWR0aCA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvIHRleHRXaWR0aCA9IGlubGluZVRl
eHRJdGVtLndpZHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gKnRleHRXaWR0aDsKLSAgICAgICAg
cmV0dXJuIGlubGluZVRleHRJdGVtV2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBsaW5lLmNv
bnRlbnRMb2dpY2FsUmlnaHQoKSArIGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkpOwor
ICAgICAgICByZXR1cm4gbWVhc3VyZWRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgc3R5
bGUsIGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgY2FuZGlkYXRlQ29udGVudC5sb2dpY2Fs
V2lkdGgoKSk7CiAgICAgfTsKICAgICBjYW5kaWRhdGVDb250ZW50LmFwcGVuZFRleHRDb250ZW50
KGlubGluZVRleHRJdGVtLCBzdHlsZSwgdGV4dENvbnRlbnRsV2lkdGgoKSk7CiB9CkBAIC0xNDIs
MTYgKzE1MSwzOCBAQCB2b2lkIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmluaXRpYWxpemUo
Y29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgYwogCiBJbmxpbmVJdGVtUG9zaXRp
b24gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6cGxhY2VJbmxpbmVUZXh0Q29udGVudChjb25z
dCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKQogewotICAgIGF1dG8gY2FuZGlkYXRlQ29u
dGVudCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCB7IH07Ci0gICAg
YXV0byBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA9IHRoaXMtPmlzRmlyc3RGb3JtYXR0ZWRMaW5lKCk7
Ci0gICAgYXV0byBoYXNXcmFwT3Bwb3J0dW5pdHlCZWZvcmVXaGl0ZXNwYWNlID0gcm9vdCgpLnN0
eWxlKCkud2hpdGVTcGFjZUNvbGxhcHNlKCkgIT0gV2hpdGVTcGFjZUNvbGxhcHNlOjpCcmVha1Nw
YWNlcyAmJiByb290KCkuc3R5bGUoKS5saW5lQnJlYWsoKSAhPSBMaW5lQnJlYWs6OkFmdGVyV2hp
dGVTcGFjZTsKKyAgICBhdXRvJiByb290U3R5bGUgPSAhaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/
IHJvb3QoKS5zdHlsZSgpIDogcm9vdCgpLmZpcnN0TGluZVN0eWxlKCk7CisgICAgYXV0byBoYXNX
cmFwT3Bwb3J0dW5pdHlCZWZvcmVXaGl0ZXNwYWNlID0gcm9vdFN0eWxlLndoaXRlU3BhY2VDb2xs
YXBzZSgpICE9IFdoaXRlU3BhY2VDb2xsYXBzZTo6QnJlYWtTcGFjZXMgJiYgcm9vdFN0eWxlLmxp
bmVCcmVhaygpICE9IExpbmVCcmVhazo6QWZ0ZXJXaGl0ZVNwYWNlOwogICAgIHNpemVfdCBwbGFj
ZWRJbmxpbmVJdGVtQ291bnQgPSAwOwogCiAgICAgYXV0byByZXN1bHQgPSBUZXh0T25seUxpbmVC
cmVha1Jlc3VsdCB7IH07CisgICAgYXV0byBjYW5kaWRhdGVDb250ZW50ID0gQ2FuZGlkYXRlVGV4
dENvbnRlbnQgeyB7IGxheW91dFJhbmdlLnN0YXJ0LCBsYXlvdXRSYW5nZS5zdGFydCB9LCB7IH0g
fTsKKworICAgIGF1dG8gaW5saW5lVGV4dEl0ZW1XaWR0aCA9IFsmXShhdXRvJiBpbmxpbmVUZXh0
SXRlbSkgeworICAgICAgICBpZiAoYXV0byBsb2dpY2FsV2lkdGggPSBpbmxpbmVUZXh0SXRlbS53
aWR0aCgpKQorICAgICAgICAgICAgcmV0dXJuICpsb2dpY2FsV2lkdGg7CisgICAgICAgIHJldHVy
biBtZWFzdXJlZElubGluZVRleHRJdGVtKGlubGluZVRleHRJdGVtLCByb290U3R5bGUsIG1fbGlu
ZS5jb250ZW50TG9naWNhbFJpZ2h0KCkgKyBjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCk7
CisgICAgfTsKKwogICAgIGF1dG8gcHJvY2Vzc0NhbmRpZGF0ZUNvbnRlbnQgPSBbJl0gewotICAg
ICAgICByZXN1bHQgPSBoYW5kbGVJbmxpbmVUZXh0Q29udGVudChjYW5kaWRhdGVDb250ZW50LCBs
YXlvdXRSYW5nZSk7Ci0gICAgICAgIGNhbmRpZGF0ZUNvbnRlbnQucmVzZXQoKTsKLSAgICAgICAg
cGxhY2VkSW5saW5lSXRlbUNvdW50ID0gIXJlc3VsdC5pc1JldmVydCA/IHBsYWNlZElubGluZUl0
ZW1Db3VudCArIHJlc3VsdC5jb21taXR0ZWRDb3VudCA6IHJlc3VsdC5jb21taXR0ZWRDb3VudDsK
KyAgICAgICAgYXV0byByYW5nZSA9IGNhbmRpZGF0ZUNvbnRlbnQucmFuZ2U7CisgICAgICAgIGlm
IChjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCA8PSBhdmFpbGFibGVXaWR0aCgpKSB7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSByYW5nZS5zdGFydEluZGV4KCk7IGluZGV4IDwg
cmFuZ2UuZW5kSW5kZXgoKTsgKytpbmRleCkgeworICAgICAgICAgICAgICAgIGF1dG8mIGlubGlu
ZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbaW5kZXhd
KTsKKyAgICAgICAgICAgICAgICBtX2xpbmUuYXBwZW5kVGV4dEZhc3QoaW5saW5lVGV4dEl0ZW0s
IHJvb3RTdHlsZSwgaW5saW5lVGV4dEl0ZW1XaWR0aChpbmxpbmVUZXh0SXRlbSkpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkp
CisgICAgICAgICAgICAgICAgbV93cmFwT3Bwb3J0dW5pdHlMaXN0LmFwcGVuZCgmZG93bmNhc3Q8
SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbcmFuZ2UuZW5kSW5kZXgoKSAtIDFdKSk7Cisg
ICAgICAgICAgICByZXN1bHQgPSB7IElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6
Tm8sIHJhbmdlLmVuZEluZGV4KCkgLSByYW5nZS5zdGFydEluZGV4KCkgfTsKKyAgICAgICAgICAg
IHBsYWNlZElubGluZUl0ZW1Db3VudCArPSByZXN1bHQuY29tbWl0dGVkQ291bnQ7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lQnJlYWtp
bmcgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgeyB9OworICAgICAg
ICAgICAgZm9yIChhdXRvIGluZGV4ID0gcmFuZ2Uuc3RhcnRJbmRleCgpOyBpbmRleCA8IHJhbmdl
LmVuZEluZGV4KCk7ICsraW5kZXgpCisgICAgICAgICAgICAgICAgYXBwZW5kSW5saW5lVGV4dEl0
ZW0oZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbaW5kZXhdKSwgcm9vdFN0
eWxlLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lQnJlYWtpbmcpOworICAgICAgICAg
ICAgcmVzdWx0ID0gaGFuZGxlT3ZlcmZsb3dpbmdUZXh0Q29udGVudChjYW5kaWRhdGVDb250ZW50
Rm9yTGluZUJyZWFraW5nLCBsYXlvdXRSYW5nZSk7CisgICAgICAgICAgICBwbGFjZWRJbmxpbmVJ
dGVtQ291bnQgPSAhcmVzdWx0LmlzUmV2ZXJ0ID8gcGxhY2VkSW5saW5lSXRlbUNvdW50ICsgcmVz
dWx0LmNvbW1pdHRlZENvdW50IDogcmVzdWx0LmNvbW1pdHRlZENvdW50OworICAgICAgICB9Cisg
ICAgICAgIGNhbmRpZGF0ZUNvbnRlbnQgPSB7IHsgcmFuZ2UuZW5kLCByYW5nZS5lbmQgfSwgeyB9
IH07CiAgICAgICAgIHJldHVybiByZXN1bHQuaXNFbmRPZkxpbmUgPT0gSW5saW5lQ29udGVudEJy
ZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXM7CiAgICAgfTsKIApAQCAtMTcwLDcgKzIwMSw3IEBAIElu
bGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpwbGFjZUlubGluZVRl
eHRDb250ZW50KGNvbnN0IElubGluCiAgICAgLy8gSGFuZGxlIGxlYWRpbmcgcGFydGlhbCBjb250
ZW50IGZpcnN0IChvdmVyZmxvd2luZyB0ZXh0IGZyb20gdGhlIHByZXZpb3VzIGxpbmUpLgogICAg
IGF1dG8gaXNFbmRPZkxpbmUgPSBmYWxzZTsKICAgICBpZiAobV9wYXJ0aWFsTGVhZGluZ1RleHRJ
dGVtKSB7Ci0gICAgICAgIGFwcGVuZElubGluZVRleHRJdGVtKCptX3BhcnRpYWxMZWFkaW5nVGV4
dEl0ZW0sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnQpOwor
ICAgICAgICBjYW5kaWRhdGVDb250ZW50LmFwcGVuZChpbmxpbmVUZXh0SXRlbVdpZHRoKCptX3Bh
cnRpYWxMZWFkaW5nVGV4dEl0ZW0pKTsKICAgICAgICAgKytuZXh0SXRlbUluZGV4OwogICAgICAg
ICBpZiAoaXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHlPckNvbnRlbnRFbmQoKm1fcGFydGlhbExlYWRp
bmdUZXh0SXRlbSkpCiAgICAgICAgICAgICBpc0VuZE9mTGluZSA9IHByb2Nlc3NDYW5kaWRhdGVD
b250ZW50KCk7CkBAIC0xODIsNyArMjEzLDcgQEAgSW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5
U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5saW4KIAog
ICAgICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgewogICAgICAgICAgICAgYXV0byYgaW5s
aW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7Ci0gICAg
ICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgaXNGaXJzdEZvcm1h
dHRlZExpbmUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudCk7CisgICAgICAgICAgICBjYW5kaWRh
dGVDb250ZW50LmFwcGVuZChpbmxpbmVUZXh0SXRlbVdpZHRoKGlubGluZVRleHRJdGVtKSk7CiAg
ICAgICAgICAgICBpZiAoaXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHlPckNvbnRlbnRFbmQoaW5saW5l
VGV4dEl0ZW0pKQogICAgICAgICAgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc0NhbmRpZGF0
ZUNvbnRlbnQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjA2LDEzICsyMzcsMTMgQEAg
SW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlTm9uV3Jh
cHBpbmdJbmxpbmVUZXh0Q29udGVudCgKICAgICBBU1NFUlQoIVRleHRVdGlsOjppc1dyYXBwaW5n
QWxsb3dlZChyb290KCkuc3R5bGUoKSkpOwogCiAgICAgYXV0byBjYW5kaWRhdGVDb250ZW50ID0g
SW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50IHsgfTsKLSAgICBhdXRvIGlz
Rmlyc3RGb3JtYXR0ZWRMaW5lID0gdGhpcy0+aXNGaXJzdEZvcm1hdHRlZExpbmUoKTsKKyAgICBh
dXRvJiByb290U3R5bGUgPSAhaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IHJvb3QoKS5zdHlsZSgp
IDogcm9vdCgpLmZpcnN0TGluZVN0eWxlKCk7CiAgICAgYXV0byBpc0VuZE9mTGluZSA9IGZhbHNl
OwogICAgIGF1dG8gdHJhaWxpbmdMaW5lQnJlYWtJbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiB7IH07CiAgICAgYXV0byBuZXh0SXRlbUluZGV4ID0gbGF5b3V0UmFuZ2Uuc3RhcnRJbmRleCgp
OwogCiAgICAgaWYgKG1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSkgewotICAgICAgICBhcHBlbmRJ
bmxpbmVUZXh0SXRlbSgqbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtLCBpc0ZpcnN0Rm9ybWF0dGVk
TGluZSwgbV9saW5lLCBjYW5kaWRhdGVDb250ZW50KTsKKyAgICAgICAgYXBwZW5kSW5saW5lVGV4
dEl0ZW0oKm1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSwgcm9vdFN0eWxlLCBtX2xpbmUsIGNhbmRp
ZGF0ZUNvbnRlbnQpOwogICAgICAgICArK25leHRJdGVtSW5kZXg7CiAgICAgICAgIGlzRW5kT2ZM
aW5lID0gbmV4dEl0ZW1JbmRleCA+PSBsYXlvdXRSYW5nZS5lbmRJbmRleCgpOwogICAgIH0KQEAg
LTIyMCw3ICsyNTEsNyBAQCBJbmxpbmVJdGVtUG9zaXRpb24gVGV4dE9ubHlTaW1wbGVMaW5lQnVp
bGRlcjo6cGxhY2VOb25XcmFwcGluZ0lubGluZVRleHRDb250ZW50KAogICAgICAgICBhdXRvJiBp
bmxpbmVJdGVtID0gbV9pbmxpbmVJdGVtc1tuZXh0SXRlbUluZGV4XTsKICAgICAgICAgQVNTRVJU
KGlubGluZUl0ZW0uaXNUZXh0KCkgfHwgaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKTsKICAgICAg
ICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpCi0gICAgICAgICAgICBhcHBlbmRJbmxpbmVUZXh0
SXRlbShkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGlzRmlyc3RGb3JtYXR0
ZWRMaW5lLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnQpOworICAgICAgICAgICAgYXBwZW5kSW5s
aW5lVGV4dEl0ZW0oZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLCByb290U3R5
bGUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudCk7CiAgICAgICAgIGVsc2UgaWYgKGlubGluZUl0
ZW0uaXNMaW5lQnJlYWsoKSkKICAgICAgICAgICAgIHRyYWlsaW5nTGluZUJyZWFrSW5kZXggPSBu
ZXh0SXRlbUluZGV4OwogICAgICAgICArK25leHRJdGVtSW5kZXg7CkBAIC0yMzIsNyArMjYzLDcg
QEAgSW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlTm9u
V3JhcHBpbmdJbmxpbmVUZXh0Q29udGVudCgKICAgICAgICAgcmV0dXJuIHsgKnRyYWlsaW5nTGlu
ZUJyZWFrSW5kZXggKyAxLCB7IH0gfTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9IGhhbmRs
ZUlubGluZVRleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQsIGxheW91dFJhbmdlKTsKKyAgICBh
dXRvIHJlc3VsdCA9IGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQoY2FuZGlkYXRlQ29udGVu
dCwgbGF5b3V0UmFuZ2UpOwogICAgIG5leHRJdGVtSW5kZXggPSBsYXlvdXRSYW5nZS5zdGFydElu
ZGV4KCkgKyByZXN1bHQuY29tbWl0dGVkQ291bnQ7CiAgICAgaWYgKGNvbnN1bWVUcmFpbGluZ0xp
bmVCcmVha0lmQXBwbGljYWJsZShyZXN1bHQsIG5leHRJdGVtSW5kZXgsIGxheW91dFJhbmdlLmVu
ZEluZGV4KCksIG1fbGluZSwgbV9pbmxpbmVJdGVtcykpCiAgICAgICAgICsrbmV4dEl0ZW1JbmRl
eDsKQEAgLTI0MywxMiArMjc0LDExIEBAIElubGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyOjpwbGFjZU5vbldyYXBwaW5nSW5saW5lVGV4dENvbnRlbnQoCiAgICAgcmV0
dXJuIHBsYWNlZENvbnRlbnRFbmQ7CiB9CiAKLVRleHRPbmx5TGluZUJyZWFrUmVzdWx0IFRleHRP
bmx5U2ltcGxlTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZVRleHRDb250ZW50KGNvbnN0IElubGlu
ZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYgY2FuZGlkYXRlQ29udGVudCwgY29u
c3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSkKK1RleHRPbmx5TGluZUJyZWFrUmVzdWx0
IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQo
Y29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBjYW5kaWRhdGVD
b250ZW50LCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKQogewogICAgIEFTU0VS
VCghY2FuZGlkYXRlQ29udGVudC5ydW5zKCkuaXNFbXB0eSgpKTsKIAotICAgIGF1dG8gY29udGVu
dExvZ2ljYWxSaWdodCA9IG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7Ci0gICAgYXV0byBh
dmFpbGFibGVXaWR0aCA9IChtX2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpICsgTGF5b3V0VW5pdDo6
ZXBzaWxvbigpKSAtICghc3RkOjppc25hbihjb250ZW50TG9naWNhbFJpZ2h0KSA/IGNvbnRlbnRM
b2dpY2FsUmlnaHQgOiAwLmYpOworICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSB0aGlzLT5hdmFp
bGFibGVXaWR0aCgpOwogICAgIGF1dG8gbGluZUJyZWFraW5nUmVzdWx0ID0gSW5saW5lQ29udGVu
dEJyZWFrZXI6OlJlc3VsdCB7IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6
S2VlcCwgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgeyB9LCB7IH0gfTsK
ICAgICBpZiAoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJsZVdpZHRo
KSB7CiAgICAgICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2VyOjpMaW5l
U3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lkdGgsIG1f
bGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS50cmFpbGluZ1NvZnRIeXBoZW5X
aWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCksIG1fbGluZS5oYXND
b250ZW50T3JMaXN0TWFya2VyKCksICFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0eSgpIH07
CkBAIC0zNDIsMTIgKzM3MiwxMyBAQCB2b2lkIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6Omhh
bmRsZUxpbmVFbmRpbmcoSW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlZENvbnRlbgogc2l6ZV90IFRl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJldmVydFRvVHJhaWxpbmdJdGVtKGNvbnN0IElubGlu
ZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZVRleHRJdGVtJiB0cmFpbGluZ0lu
bGluZUl0ZW0pCiB7CiAgICAgYXV0byBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA9IHRoaXMtPmlzRmly
c3RGb3JtYXR0ZWRMaW5lKCk7CisgICAgYXV0byYgcm9vdFN0eWxlID0gIWlzRmlyc3RGb3JtYXR0
ZWRMaW5lID8gcm9vdCgpLnN0eWxlKCkgOiByb290KCkuZmlyc3RMaW5lU3R5bGUoKTsKICAgICBt
X2xpbmUuaW5pdGlhbGl6ZSh7IH0sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKTsKICAgICBzaXplX3Qg
bnVtYmVyT2ZJbmxpbmVJdGVtc09uTGluZSA9IDA7CiAKICAgICBhdXRvIGFwcGVuZFRleHRJbmxp
bmVJdGVtID0gWyZdIChhdXRvJiBpbmxpbmVUZXh0SXRlbSkgewotICAgICAgICBhdXRvJiBzdHls
ZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUo
KSA6IGlubGluZVRleHRJdGVtLnN0eWxlKCk7Ci0gICAgICAgIG1fbGluZS5hcHBlbmRUZXh0RmFz
dChpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIGlubGluZVRleHRJdGVtV2lkdGgoaW5saW5lVGV4dEl0
ZW0sIHN0eWxlLCBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpKSk7CisgICAgICAgIGF1dG8g
bG9naWNhbFdpZHRoID0gaW5saW5lVGV4dEl0ZW0ud2lkdGgoKSA/ICppbmxpbmVUZXh0SXRlbS53
aWR0aCgpIDogbWVhc3VyZWRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgcm9vdFN0eWxl
LCBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpKTsKKyAgICAgICAgbV9saW5lLmFwcGVuZFRl
eHRGYXN0KGlubGluZVRleHRJdGVtLCByb290U3R5bGUsIGxvZ2ljYWxXaWR0aCk7CiAgICAgICAg
ICsrbnVtYmVyT2ZJbmxpbmVJdGVtc09uTGluZTsKICAgICAgICAgcmV0dXJuICZpbmxpbmVUZXh0
SXRlbSA9PSAmdHJhaWxpbmdJbmxpbmVJdGVtOwogICAgIH07CkBAIC0zNzIsOCArNDAzLDcgQEAg
c2l6ZV90IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJldmVydFRvTGFzdE5vbk92ZXJmbG93
aW5nSXRlbShjb25zdCBJbmxpbmVJdGUKICAgICAgICAgYXV0byBoYXNSZXZlcnRlZEVub3VnaCA9
IFsmXSB7CiAgICAgICAgICAgICBpZiAoIWkgfHwgIXRyYWlsaW5nU29mdEh5cGhlbldpZHRoKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgYXV0byBhdmFpbGFibGVX
aWR0aCA9IG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCkgLSBtX2xpbmUuY29udGVudExvZ2ljYWxS
aWdodCgpOwotICAgICAgICAgICAgcmV0dXJuICp0cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCA8PSBh
dmFpbGFibGVXaWR0aDsKKyAgICAgICAgICAgIHJldHVybiAqdHJhaWxpbmdTb2Z0SHlwaGVuV2lk
dGggPD0gYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAgfTsKICAgICAgICAgaWYgKGhhc1JldmVy
dGVkRW5vdWdoKCkpIHsKICAgICAgICAgICAgIGlmICh0cmFpbGluZ1NvZnRIeXBoZW5XaWR0aCkK
QEAgLTM4NSw2ICs0MTUsMTIgQEAgc2l6ZV90IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJl
dmVydFRvTGFzdE5vbk92ZXJmbG93aW5nSXRlbShjb25zdCBJbmxpbmVJdGUKICAgICByZXR1cm4g
MDsKIH0KIAorSW5saW5lTGF5b3V0VW5pdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjphdmFp
bGFibGVXaWR0aCgpIGNvbnN0Cit7CisgICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0ID0gbV9s
aW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKTsKKyAgICByZXR1cm4gKG1fbGluZUxvZ2ljYWxSZWN0
LndpZHRoKCkgKyBMYXlvdXRVbml0OjplcHNpbG9uKCkpIC0gKCFzdGQ6OmlzbmFuKGNvbnRlbnRM
b2dpY2FsUmlnaHQpID8gY29udGVudExvZ2ljYWxSaWdodCA6IDAuZik7Cit9CisKIGNvbnN0IEVs
ZW1lbnRCb3gmIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJvb3QoKSBjb25zdAogewogICAg
IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGlu
ZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaAppbmRleCBiYjFhOWI5MjYxYWUuLmEyNjEz
YmJlYTZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1
aWxkZXIuaApAQCAtNDgsMTEgKzQ4LDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSW5saW5l
SXRlbVBvc2l0aW9uIHBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5saW5lSXRlbVJhbmdl
Jik7CiAgICAgSW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlTm9uV3JhcHBpbmdJbmxpbmVUZXh0Q29u
dGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKLSAgICBUZXh0T25seUxpbmVCcmVha1Jlc3Vs
dCBoYW5kbGVJbmxpbmVUZXh0Q29udGVudChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29u
dGludW91c0NvbnRlbnQmLCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKKyAgICBUZXh0T25seUxp
bmVCcmVha1Jlc3VsdCBoYW5kbGVPdmVyZmxvd2luZ1RleHRDb250ZW50KGNvbnN0IElubGluZUNv
bnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYp
OwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBJbmxpbmVJdGVtUmFuZ2UmLCBjb25zdCBJbmxp
bmVSZWN0JiBpbml0aWFsTG9naWNhbFJlY3QsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8UHJldmlvdXNM
aW5lPiYpOwogICAgIHZvaWQgaGFuZGxlTGluZUVuZGluZyhJbmxpbmVJdGVtUG9zaXRpb24sIHNp
emVfdCBsYXlvdXRSYW5nZUVuZEluZGV4KTsKICAgICBzaXplX3QgcmV2ZXJ0VG9UcmFpbGluZ0l0
ZW0oY29uc3QgSW5saW5lSXRlbVJhbmdlJiwgY29uc3QgSW5saW5lVGV4dEl0ZW0mKTsKICAgICBz
aXplX3QgcmV2ZXJ0VG9MYXN0Tm9uT3ZlcmZsb3dpbmdJdGVtKGNvbnN0IElubGluZUl0ZW1SYW5n
ZSYpOworICAgIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgoKSBjb25zdDsKIAogICAg
IGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUoKSBjb25zdCB7IHJldHVybiAhbV9wcmV2aW91c0xp
bmUuaGFzX3ZhbHVlKCk7IH0KIAo=
</data>
<flag name="commit-queue"
          id="494642"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467333</attachid>
            <date>2023-08-18 15:01:39 -0700</date>
            <delta_ts>2023-08-18 20:25:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-260403-20230818150138.patch</filename>
            <type>text/plain</type>
            <size>15929</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4ZmIyZmIxMmI0OWJlNGZhYTg1NDU2YjQxNDUxZTNkNDU3NzM3ZWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTggQXVnIDIwMjMgMTI6MTE6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBE
byBub3QgcG9wdWxhdGUgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50CiBl
YWdlcmx5IHdpdGggY2FuZGlkYXRlIGNvbnRlbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQwMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbmxpbmVD
b250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgcHJlLXByb2Nlc3NlcyB0aGUgY2FuZGlk
YXRlIGNvbnRlbnQgdG8gcHJvdmlkZSB0cmFpbGluZy90cmltbWluZyBpbmZvcm1hdGlvbiBmb3Ig
SW5saW5lQ29udGVudEJyZWFrZXIuCkhvd2V2ZXIgd2UgZG9uJ3QgbmVlZCB0aGF0IGluZm9ybWF0
aW9uIHVudGlsIGFmdGVyIHdlIGZlZWQgdGhlIGNvbnRlbnQgdG8gbGluZSBicmVha2luZy4KTGV0
J3MgcG9wdWxhdGUgQ29udGludW91c0NvbnRlbnQgbGF6aWx5IHJpZ2h0IGJlZm9yZSBjYWxsaW5n
IGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQuCgood2hlbiBjb250ZW50IGZpdHMsIHdlIGRp
cmVjdGx5IGNvbW1pdCB0byBsaW5lLCBvdGhlcndpc2UKMS4gY29tbWl0IHRvIENvbnRpbnVvdXND
b250ZW50IGZpcnN0CjIuIGNhbGwgSW5saW5lQ29udGVudEJyZWFrZXIKMy4gY29tbWl0IHRoZSBy
ZXN1bHQgdG8gbGluZSkKClRoaXMgaXMgfjEwJSBwcm9ncmVzc2lvbiBvbiBQZXJmb3JtYW5jZVRl
c3RzL0xheW91dC9saW5lLWxheW91dC5odG1sLgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Q2FuZGlkYXRlVGV4dENvbnRlbnQ6OmFwcGVuZCk6CihXZWJDb3JlOjpM
YXlvdXQ6Om1lYXN1cmVkSW5saW5lVGV4dEl0ZW0pOgooV2ViQ29yZTo6TGF5b3V0OjphcHBlbmRJ
bmxpbmVUZXh0SXRlbSk6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyOjpwbGFjZU5vbldyYXBwaW5nSW5saW5lVGV4dENvbnRlbnQpOgooV2Vi
Q29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpoYW5kbGVPdmVyZmxvd2lu
Z1RleHRDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRl
cjo6cmV2ZXJ0VG9UcmFpbGluZ0l0ZW0pOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyOjpyZXZlcnRUb0xhc3ROb25PdmVyZmxvd2luZ0l0ZW0pOgooV2ViQ29yZTo6
TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjphdmFpbGFibGVXaWR0aCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OmlubGluZVRleHRJdGVtV2lkdGgpOiBEZWxldGVkLgooV2ViQ29y
ZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVUZXh0Q29u
dGVudCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oOgotLS0KIC4uLi9pbmxpbmUvVGV4
dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgICAgICB8IDkyICsrKysrKysrKysrKysrLS0tLS0K
IC4uLi9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oICAgICAgICB8ICAzICstCiAy
IGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1Rl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAKaW5kZXgg
NDY4YzcyN2UzNDk4Li4yOGMwOWJhNTg2MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCkBAIC0zNiwxMCArMzYsMjEgQEAgc3RydWN0
IFRleHRPbmx5TGluZUJyZWFrUmVzdWx0IHsKICAgICBib29sIGlzUmV2ZXJ0IHsgZmFsc2UgfTsK
IH07CiAKLXN0YXRpYyBpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBpbmxpbmVUZXh0SXRlbVdpZHRo
KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCkKK3N0cnVjdCBDYW5k
aWRhdGVUZXh0Q29udGVudCB7CisgICAgdm9pZCBhcHBlbmQoSW5saW5lTGF5b3V0VW5pdCBjb250
ZW50V2lkdGgpCisgICAgeworICAgICAgICBsb2dpY2FsV2lkdGggKz0gY29udGVudFdpZHRoOwor
ICAgICAgICArK2VuZEluZGV4OworICAgIH0KKworICAgIHNpemVfdCBzdGFydEluZGV4IHsgMCB9
OworICAgIHNpemVfdCBlbmRJbmRleCB7IDAgfTsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGxvZ2lj
YWxXaWR0aCB7IDAuZiB9OworfTsKKworc3RhdGljIGlubGluZSBJbmxpbmVMYXlvdXRVbml0IG1l
YXN1cmVkSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVt
LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIElubGluZUxheW91dFVuaXQgY29udGVudExvZ2lj
YWxMZWZ0KQogewotICAgIGlmIChhdXRvIGNvbnRlbnRXaWR0aCA9IGlubGluZVRleHRJdGVtLndp
ZHRoKCkpCi0gICAgICAgIHJldHVybiAqY29udGVudFdpZHRoOworICAgIEFTU0VSVCghaW5saW5l
VGV4dEl0ZW0ud2lkdGgoKSk7CiAgICAgaWYgKCFpbmxpbmVUZXh0SXRlbS5pc1doaXRlc3BhY2Uo
KSB8fCBJbmxpbmVUZXh0SXRlbTo6c2hvdWxkUHJlc2VydmVTcGFjZXNBbmRUYWJzKGlubGluZVRl
eHRJdGVtKSkKICAgICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwg
c3R5bGUuZm9udENhc2NhZGUoKSwgY29udGVudExvZ2ljYWxMZWZ0KTsKICAgICByZXR1cm4gVGV4
dFV0aWw6OndpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZS5mb250Q2FzY2FkZSgpLCBpbmxpbmVU
ZXh0SXRlbS5zdGFydCgpLCBpbmxpbmVUZXh0SXRlbS5zdGFydCgpICsgMSwgY29udGVudExvZ2lj
YWxMZWZ0KTsKQEAgLTYwLDEzICs3MSwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNMYXN0TGlu
ZVdpdGhJbmxpbmVDb250ZW50KElubGluZUl0ZW1Qb3NpdGlvbiBwbGFjZWRDb250ZW50RQogICAg
IHJldHVybiBwbGFjZWRDb250ZW50RW5kLmluZGV4ID09IGxheW91dFJhbmdlRW5kSW5kZXggJiYg
IXBsYWNlZENvbnRlbnRFbmQub2Zmc2V0OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5k
SW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJdGVtLCBib29s
IGlzRmlyc3RGb3JtYXR0ZWRMaW5lLCBjb25zdCBMaW5lJiBsaW5lLCBJbmxpbmVDb250ZW50QnJl
YWtlcjo6Q29udGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQpCitzdGF0aWMgaW5saW5l
IHZvaWQgYXBwZW5kSW5saW5lVGV4dEl0ZW0oY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRl
eHRJdGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IExpbmUmIGxpbmUsIElubGlu
ZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYgY2FuZGlkYXRlQ29udGVudCkKIHsK
LSAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lID8gaW5saW5lVGV4dEl0ZW0u
Zmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZVRleHRJdGVtLnN0eWxlKCk7CiAgICAgYXV0byB0ZXh0
Q29udGVudGxXaWR0aCA9IFsmXSB7CiAgICAgICAgIGlmIChhdXRvIHRleHRXaWR0aCA9IGlubGlu
ZVRleHRJdGVtLndpZHRoKCkpCiAgICAgICAgICAgICByZXR1cm4gKnRleHRXaWR0aDsKLSAgICAg
ICAgcmV0dXJuIGlubGluZVRleHRJdGVtV2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBsaW5l
LmNvbnRlbnRMb2dpY2FsUmlnaHQoKSArIGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkp
OworICAgICAgICByZXR1cm4gbWVhc3VyZWRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwg
c3R5bGUsIGxpbmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgY2FuZGlkYXRlQ29udGVudC5sb2dp
Y2FsV2lkdGgoKSk7CiAgICAgfTsKICAgICBjYW5kaWRhdGVDb250ZW50LmFwcGVuZFRleHRDb250
ZW50KGlubGluZVRleHRJdGVtLCBzdHlsZSwgdGV4dENvbnRlbnRsV2lkdGgoKSk7CiB9CkBAIC0x
NDIsMTYgKzE1Miw0MyBAQCB2b2lkIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmluaXRpYWxp
emUoY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSwgYwogCiBJbmxpbmVJdGVtUG9z
aXRpb24gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6cGxhY2VJbmxpbmVUZXh0Q29udGVudChj
b25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKQogewotICAgIGF1dG8gY2FuZGlkYXRl
Q29udGVudCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCB7IH07Ci0g
ICAgYXV0byBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA9IHRoaXMtPmlzRmlyc3RGb3JtYXR0ZWRMaW5l
KCk7Ci0gICAgYXV0byBoYXNXcmFwT3Bwb3J0dW5pdHlCZWZvcmVXaGl0ZXNwYWNlID0gcm9vdCgp
LnN0eWxlKCkud2hpdGVTcGFjZUNvbGxhcHNlKCkgIT0gV2hpdGVTcGFjZUNvbGxhcHNlOjpCcmVh
a1NwYWNlcyAmJiByb290KCkuc3R5bGUoKS5saW5lQnJlYWsoKSAhPSBMaW5lQnJlYWs6OkFmdGVy
V2hpdGVTcGFjZTsKKyAgICBhdXRvJiByb290U3R5bGUgPSAhaXNGaXJzdEZvcm1hdHRlZExpbmUo
KSA/IHJvb3QoKS5zdHlsZSgpIDogcm9vdCgpLmZpcnN0TGluZVN0eWxlKCk7CisgICAgYXV0byBo
YXNXcmFwT3Bwb3J0dW5pdHlCZWZvcmVXaGl0ZXNwYWNlID0gcm9vdFN0eWxlLndoaXRlU3BhY2VD
b2xsYXBzZSgpICE9IFdoaXRlU3BhY2VDb2xsYXBzZTo6QnJlYWtTcGFjZXMgJiYgcm9vdFN0eWxl
LmxpbmVCcmVhaygpICE9IExpbmVCcmVhazo6QWZ0ZXJXaGl0ZVNwYWNlOwogICAgIHNpemVfdCBw
bGFjZWRJbmxpbmVJdGVtQ291bnQgPSAwOwogCiAgICAgYXV0byByZXN1bHQgPSBUZXh0T25seUxp
bmVCcmVha1Jlc3VsdCB7IH07CisgICAgYXV0byBjYW5kaWRhdGVDb250ZW50ID0gQ2FuZGlkYXRl
VGV4dENvbnRlbnQgeyBsYXlvdXRSYW5nZS5zdGFydEluZGV4KCksIGxheW91dFJhbmdlLnN0YXJ0
SW5kZXgoKSwgeyB9IH07CisKKyAgICBhdXRvIGlubGluZVRleHRJdGVtV2lkdGggPSBbJl0oYXV0
byYgaW5saW5lVGV4dEl0ZW0pIHsKKyAgICAgICAgaWYgKGF1dG8gbG9naWNhbFdpZHRoID0gaW5s
aW5lVGV4dEl0ZW0ud2lkdGgoKSkKKyAgICAgICAgICAgIHJldHVybiAqbG9naWNhbFdpZHRoOwor
ICAgICAgICByZXR1cm4gbWVhc3VyZWRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgcm9v
dFN0eWxlLCBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpICsgY2FuZGlkYXRlQ29udGVudC5s
b2dpY2FsV2lkdGgpOworICAgIH07CisKICAgICBhdXRvIHByb2Nlc3NDYW5kaWRhdGVDb250ZW50
ID0gWyZdIHsKLSAgICAgICAgcmVzdWx0ID0gaGFuZGxlSW5saW5lVGV4dENvbnRlbnQoY2FuZGlk
YXRlQ29udGVudCwgbGF5b3V0UmFuZ2UpOwotICAgICAgICBjYW5kaWRhdGVDb250ZW50LnJlc2V0
KCk7Ci0gICAgICAgIHBsYWNlZElubGluZUl0ZW1Db3VudCA9ICFyZXN1bHQuaXNSZXZlcnQgPyBw
bGFjZWRJbmxpbmVJdGVtQ291bnQgKyByZXN1bHQuY29tbWl0dGVkQ291bnQgOiByZXN1bHQuY29t
bWl0dGVkQ291bnQ7CisgICAgICAgIGF1dG8gaGFzTGVhZGluZ1BhcnRpYUNvbnRlbnQgPSBtX3Bh
cnRpYWxMZWFkaW5nVGV4dEl0ZW0gJiYgY2FuZGlkYXRlQ29udGVudC5zdGFydEluZGV4ID09IGxh
eW91dFJhbmdlLnN0YXJ0SW5kZXgoKTsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZUNvbnRlbnQubG9n
aWNhbFdpZHRoIDw9IGF2YWlsYWJsZVdpZHRoKCkgJiYgIWhhc0xlYWRpbmdQYXJ0aWFDb250ZW50
KSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBjYW5kaWRhdGVDb250ZW50LnN0YXJ0
SW5kZXg7IGluZGV4IDwgY2FuZGlkYXRlQ29udGVudC5lbmRJbmRleDsgKytpbmRleCkgeworICAg
ICAgICAgICAgICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0
ZW0+KG1faW5saW5lSXRlbXNbaW5kZXhdKTsKKyAgICAgICAgICAgICAgICBtX2xpbmUuYXBwZW5k
VGV4dEZhc3QoaW5saW5lVGV4dEl0ZW0sIHJvb3RTdHlsZSwgaW5saW5lVGV4dEl0ZW1XaWR0aChp
bmxpbmVUZXh0SXRlbSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1fbGluZS5o
YXNDb250ZW50T3JMaXN0TWFya2VyKCkpCisgICAgICAgICAgICAgICAgbV93cmFwT3Bwb3J0dW5p
dHlMaXN0LmFwcGVuZCgmZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbY2Fu
ZGlkYXRlQ29udGVudC5lbmRJbmRleCAtIDFdKSk7CisgICAgICAgICAgICByZXN1bHQgPSB7IElu
bGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8sIGNhbmRpZGF0ZUNvbnRlbnQuZW5k
SW5kZXggLSBjYW5kaWRhdGVDb250ZW50LnN0YXJ0SW5kZXggfTsKKyAgICAgICAgICAgIHBsYWNl
ZElubGluZUl0ZW1Db3VudCArPSByZXN1bHQuY29tbWl0dGVkQ291bnQ7CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBhdXRvIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lQnJlYWtpbmcgPSBJ
bmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgeyB9OworICAgICAgICAgICAg
YXV0byBzdGFydEluZGV4ID0gY2FuZGlkYXRlQ29udGVudC5zdGFydEluZGV4OworICAgICAgICAg
ICAgaWYgKGhhc0xlYWRpbmdQYXJ0aWFDb250ZW50KSB7CisgICAgICAgICAgICAgICAgYXBwZW5k
SW5saW5lVGV4dEl0ZW0oKm1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSwgcm9vdFN0eWxlLCBtX2xp
bmUsIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lQnJlYWtpbmcpOworICAgICAgICAgICAgICAgICsr
c3RhcnRJbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byBpbmRleCA9
IHN0YXJ0SW5kZXg7IGluZGV4IDwgY2FuZGlkYXRlQ29udGVudC5lbmRJbmRleDsgKytpbmRleCkK
KyAgICAgICAgICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbShkb3duY2FzdDxJbmxpbmVUZXh0
SXRlbT4obV9pbmxpbmVJdGVtc1tpbmRleF0pLCByb290U3R5bGUsIG1fbGluZSwgY2FuZGlkYXRl
Q29udGVudEZvckxpbmVCcmVha2luZyk7CisgICAgICAgICAgICByZXN1bHQgPSBoYW5kbGVPdmVy
Zmxvd2luZ1RleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lQnJlYWtpbmcsIGxheW91
dFJhbmdlKTsKKyAgICAgICAgICAgIHBsYWNlZElubGluZUl0ZW1Db3VudCA9ICFyZXN1bHQuaXNS
ZXZlcnQgPyBwbGFjZWRJbmxpbmVJdGVtQ291bnQgKyByZXN1bHQuY29tbWl0dGVkQ291bnQgOiBy
ZXN1bHQuY29tbWl0dGVkQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgY2FuZGlkYXRlQ29udGVu
dCA9IHsgY2FuZGlkYXRlQ29udGVudC5lbmRJbmRleCwgY2FuZGlkYXRlQ29udGVudC5lbmRJbmRl
eCwgeyB9IH07CiAgICAgICAgIHJldHVybiByZXN1bHQuaXNFbmRPZkxpbmUgPT0gSW5saW5lQ29u
dGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXM7CiAgICAgfTsKIApAQCAtMTcwLDcgKzIwNyw3
IEBAIElubGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpwbGFjZUlu
bGluZVRleHRDb250ZW50KGNvbnN0IElubGluCiAgICAgLy8gSGFuZGxlIGxlYWRpbmcgcGFydGlh
bCBjb250ZW50IGZpcnN0IChvdmVyZmxvd2luZyB0ZXh0IGZyb20gdGhlIHByZXZpb3VzIGxpbmUp
LgogICAgIGF1dG8gaXNFbmRPZkxpbmUgPSBmYWxzZTsKICAgICBpZiAobV9wYXJ0aWFsTGVhZGlu
Z1RleHRJdGVtKSB7Ci0gICAgICAgIGFwcGVuZElubGluZVRleHRJdGVtKCptX3BhcnRpYWxMZWFk
aW5nVGV4dEl0ZW0sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRl
bnQpOworICAgICAgICBjYW5kaWRhdGVDb250ZW50LmFwcGVuZChpbmxpbmVUZXh0SXRlbVdpZHRo
KCptX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0pKTsKICAgICAgICAgKytuZXh0SXRlbUluZGV4Owog
ICAgICAgICBpZiAoaXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHlPckNvbnRlbnRFbmQoKm1fcGFydGlh
bExlYWRpbmdUZXh0SXRlbSkpCiAgICAgICAgICAgICBpc0VuZE9mTGluZSA9IHByb2Nlc3NDYW5k
aWRhdGVDb250ZW50KCk7CkBAIC0xODIsNyArMjE5LDcgQEAgSW5saW5lSXRlbVBvc2l0aW9uIFRl
eHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5s
aW4KIAogICAgICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgewogICAgICAgICAgICAgYXV0
byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7
Ci0gICAgICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgaXNGaXJz
dEZvcm1hdHRlZExpbmUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudCk7CisgICAgICAgICAgICBj
YW5kaWRhdGVDb250ZW50LmFwcGVuZChpbmxpbmVUZXh0SXRlbVdpZHRoKGlubGluZVRleHRJdGVt
KSk7CiAgICAgICAgICAgICBpZiAoaXNBdFNvZnRXcmFwT3Bwb3J0dW5pdHlPckNvbnRlbnRFbmQo
aW5saW5lVGV4dEl0ZW0pKQogICAgICAgICAgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc0Nh
bmRpZGF0ZUNvbnRlbnQoKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjA2LDEzICsyNDMs
MTMgQEAgSW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNl
Tm9uV3JhcHBpbmdJbmxpbmVUZXh0Q29udGVudCgKICAgICBBU1NFUlQoIVRleHRVdGlsOjppc1dy
YXBwaW5nQWxsb3dlZChyb290KCkuc3R5bGUoKSkpOwogCiAgICAgYXV0byBjYW5kaWRhdGVDb250
ZW50ID0gSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50IHsgfTsKLSAgICBh
dXRvIGlzRmlyc3RGb3JtYXR0ZWRMaW5lID0gdGhpcy0+aXNGaXJzdEZvcm1hdHRlZExpbmUoKTsK
KyAgICBhdXRvJiByb290U3R5bGUgPSAhaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IHJvb3QoKS5z
dHlsZSgpIDogcm9vdCgpLmZpcnN0TGluZVN0eWxlKCk7CiAgICAgYXV0byBpc0VuZE9mTGluZSA9
IGZhbHNlOwogICAgIGF1dG8gdHJhaWxpbmdMaW5lQnJlYWtJbmRleCA9IHN0ZDo6b3B0aW9uYWw8
c2l6ZV90PiB7IH07CiAgICAgYXV0byBuZXh0SXRlbUluZGV4ID0gbGF5b3V0UmFuZ2Uuc3RhcnRJ
bmRleCgpOwogCiAgICAgaWYgKG1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSkgewotICAgICAgICBh
cHBlbmRJbmxpbmVUZXh0SXRlbSgqbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtLCBpc0ZpcnN0Rm9y
bWF0dGVkTGluZSwgbV9saW5lLCBjYW5kaWRhdGVDb250ZW50KTsKKyAgICAgICAgYXBwZW5kSW5s
aW5lVGV4dEl0ZW0oKm1fcGFydGlhbExlYWRpbmdUZXh0SXRlbSwgcm9vdFN0eWxlLCBtX2xpbmUs
IGNhbmRpZGF0ZUNvbnRlbnQpOwogICAgICAgICArK25leHRJdGVtSW5kZXg7CiAgICAgICAgIGlz
RW5kT2ZMaW5lID0gbmV4dEl0ZW1JbmRleCA+PSBsYXlvdXRSYW5nZS5lbmRJbmRleCgpOwogICAg
IH0KQEAgLTIyMCw3ICsyNTcsNyBAQCBJbmxpbmVJdGVtUG9zaXRpb24gVGV4dE9ubHlTaW1wbGVM
aW5lQnVpbGRlcjo6cGxhY2VOb25XcmFwcGluZ0lubGluZVRleHRDb250ZW50KAogICAgICAgICBh
dXRvJiBpbmxpbmVJdGVtID0gbV9pbmxpbmVJdGVtc1tuZXh0SXRlbUluZGV4XTsKICAgICAgICAg
QVNTRVJUKGlubGluZUl0ZW0uaXNUZXh0KCkgfHwgaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKTsK
ICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkpCi0gICAgICAgICAgICBhcHBlbmRJbmxp
bmVUZXh0SXRlbShkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGlzRmlyc3RG
b3JtYXR0ZWRMaW5lLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnQpOworICAgICAgICAgICAgYXBw
ZW5kSW5saW5lVGV4dEl0ZW0oZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLCBy
b290U3R5bGUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudCk7CiAgICAgICAgIGVsc2UgaWYgKGlu
bGluZUl0ZW0uaXNMaW5lQnJlYWsoKSkKICAgICAgICAgICAgIHRyYWlsaW5nTGluZUJyZWFrSW5k
ZXggPSBuZXh0SXRlbUluZGV4OwogICAgICAgICArK25leHRJdGVtSW5kZXg7CkBAIC0yMzIsNyAr
MjY5LDcgQEAgSW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBs
YWNlTm9uV3JhcHBpbmdJbmxpbmVUZXh0Q29udGVudCgKICAgICAgICAgcmV0dXJuIHsgKnRyYWls
aW5nTGluZUJyZWFrSW5kZXggKyAxLCB7IH0gfTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9
IGhhbmRsZUlubGluZVRleHRDb250ZW50KGNhbmRpZGF0ZUNvbnRlbnQsIGxheW91dFJhbmdlKTsK
KyAgICBhdXRvIHJlc3VsdCA9IGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQoY2FuZGlkYXRl
Q29udGVudCwgbGF5b3V0UmFuZ2UpOwogICAgIG5leHRJdGVtSW5kZXggPSBsYXlvdXRSYW5nZS5z
dGFydEluZGV4KCkgKyByZXN1bHQuY29tbWl0dGVkQ291bnQ7CiAgICAgaWYgKGNvbnN1bWVUcmFp
bGluZ0xpbmVCcmVha0lmQXBwbGljYWJsZShyZXN1bHQsIG5leHRJdGVtSW5kZXgsIGxheW91dFJh
bmdlLmVuZEluZGV4KCksIG1fbGluZSwgbV9pbmxpbmVJdGVtcykpCiAgICAgICAgICsrbmV4dEl0
ZW1JbmRleDsKQEAgLTI0MywxMiArMjgwLDExIEBAIElubGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25s
eVNpbXBsZUxpbmVCdWlsZGVyOjpwbGFjZU5vbldyYXBwaW5nSW5saW5lVGV4dENvbnRlbnQoCiAg
ICAgcmV0dXJuIHBsYWNlZENvbnRlbnRFbmQ7CiB9CiAKLVRleHRPbmx5TGluZUJyZWFrUmVzdWx0
IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmhhbmRsZUlubGluZVRleHRDb250ZW50KGNvbnN0
IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYgY2FuZGlkYXRlQ29udGVu
dCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSkKK1RleHRPbmx5TGluZUJyZWFr
UmVzdWx0IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OmhhbmRsZU92ZXJmbG93aW5nVGV4dENv
bnRlbnQoY29uc3QgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBjYW5k
aWRhdGVDb250ZW50LCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKQogewogICAg
IEFTU0VSVCghY2FuZGlkYXRlQ29udGVudC5ydW5zKCkuaXNFbXB0eSgpKTsKIAotICAgIGF1dG8g
Y29udGVudExvZ2ljYWxSaWdodCA9IG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7Ci0gICAg
YXV0byBhdmFpbGFibGVXaWR0aCA9IChtX2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpICsgTGF5b3V0
VW5pdDo6ZXBzaWxvbigpKSAtICghc3RkOjppc25hbihjb250ZW50TG9naWNhbFJpZ2h0KSA/IGNv
bnRlbnRMb2dpY2FsUmlnaHQgOiAwLmYpOworICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSB0aGlz
LT5hdmFpbGFibGVXaWR0aCgpOwogICAgIGF1dG8gbGluZUJyZWFraW5nUmVzdWx0ID0gSW5saW5l
Q29udGVudEJyZWFrZXI6OlJlc3VsdCB7IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQ6OkFj
dGlvbjo6S2VlcCwgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgeyB9LCB7
IH0gfTsKICAgICBpZiAoY2FuZGlkYXRlQ29udGVudC5sb2dpY2FsV2lkdGgoKSA+IGF2YWlsYWJs
ZVdpZHRoKSB7CiAgICAgICAgIGF1dG8gbGluZVN0YXR1cyA9IElubGluZUNvbnRlbnRCcmVha2Vy
OjpMaW5lU3RhdHVzIHsgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSwgYXZhaWxhYmxlV2lk
dGgsIG1fbGluZS50cmltbWFibGVUcmFpbGluZ1dpZHRoKCksIG1fbGluZS50cmFpbGluZ1NvZnRI
eXBoZW5XaWR0aCgpLCBtX2xpbmUuaXNUcmFpbGluZ1J1bkZ1bGx5VHJpbW1hYmxlKCksIG1fbGlu
ZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCksICFtX3dyYXBPcHBvcnR1bml0eUxpc3QuaXNFbXB0
eSgpIH07CkBAIC0zNDIsMTIgKzM3OCwxMyBAQCB2b2lkIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OmhhbmRsZUxpbmVFbmRpbmcoSW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlZENvbnRlbgogc2l6
ZV90IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJldmVydFRvVHJhaWxpbmdJdGVtKGNvbnN0
IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGNvbnN0IElubGluZVRleHRJdGVtJiB0cmFp
bGluZ0lubGluZUl0ZW0pCiB7CiAgICAgYXV0byBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA9IHRoaXMt
PmlzRmlyc3RGb3JtYXR0ZWRMaW5lKCk7CisgICAgYXV0byYgcm9vdFN0eWxlID0gIWlzRmlyc3RG
b3JtYXR0ZWRMaW5lID8gcm9vdCgpLnN0eWxlKCkgOiByb290KCkuZmlyc3RMaW5lU3R5bGUoKTsK
ICAgICBtX2xpbmUuaW5pdGlhbGl6ZSh7IH0sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKTsKICAgICBz
aXplX3QgbnVtYmVyT2ZJbmxpbmVJdGVtc09uTGluZSA9IDA7CiAKICAgICBhdXRvIGFwcGVuZFRl
eHRJbmxpbmVJdGVtID0gWyZdIChhdXRvJiBpbmxpbmVUZXh0SXRlbSkgewotICAgICAgICBhdXRv
JiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5l
U3R5bGUoKSA6IGlubGluZVRleHRJdGVtLnN0eWxlKCk7Ci0gICAgICAgIG1fbGluZS5hcHBlbmRU
ZXh0RmFzdChpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIGlubGluZVRleHRJdGVtV2lkdGgoaW5saW5l
VGV4dEl0ZW0sIHN0eWxlLCBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpKSk7CisgICAgICAg
IGF1dG8gbG9naWNhbFdpZHRoID0gaW5saW5lVGV4dEl0ZW0ud2lkdGgoKSA/ICppbmxpbmVUZXh0
SXRlbS53aWR0aCgpIDogbWVhc3VyZWRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgcm9v
dFN0eWxlLCBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdodCgpKTsKKyAgICAgICAgbV9saW5lLmFw
cGVuZFRleHRGYXN0KGlubGluZVRleHRJdGVtLCByb290U3R5bGUsIGxvZ2ljYWxXaWR0aCk7CiAg
ICAgICAgICsrbnVtYmVyT2ZJbmxpbmVJdGVtc09uTGluZTsKICAgICAgICAgcmV0dXJuICZpbmxp
bmVUZXh0SXRlbSA9PSAmdHJhaWxpbmdJbmxpbmVJdGVtOwogICAgIH07CkBAIC0zNzIsOCArNDA5
LDcgQEAgc2l6ZV90IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJldmVydFRvTGFzdE5vbk92
ZXJmbG93aW5nSXRlbShjb25zdCBJbmxpbmVJdGUKICAgICAgICAgYXV0byBoYXNSZXZlcnRlZEVu
b3VnaCA9IFsmXSB7CiAgICAgICAgICAgICBpZiAoIWkgfHwgIXRyYWlsaW5nU29mdEh5cGhlbldp
ZHRoKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgYXV0byBhdmFp
bGFibGVXaWR0aCA9IG1fbGluZUxvZ2ljYWxSZWN0LndpZHRoKCkgLSBtX2xpbmUuY29udGVudExv
Z2ljYWxSaWdodCgpOwotICAgICAgICAgICAgcmV0dXJuICp0cmFpbGluZ1NvZnRIeXBoZW5XaWR0
aCA8PSBhdmFpbGFibGVXaWR0aDsKKyAgICAgICAgICAgIHJldHVybiAqdHJhaWxpbmdTb2Z0SHlw
aGVuV2lkdGggPD0gYXZhaWxhYmxlV2lkdGgoKTsKICAgICAgICAgfTsKICAgICAgICAgaWYgKGhh
c1JldmVydGVkRW5vdWdoKCkpIHsKICAgICAgICAgICAgIGlmICh0cmFpbGluZ1NvZnRIeXBoZW5X
aWR0aCkKQEAgLTM4NSw2ICs0MjEsMTIgQEAgc2l6ZV90IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OnJldmVydFRvTGFzdE5vbk92ZXJmbG93aW5nSXRlbShjb25zdCBJbmxpbmVJdGUKICAgICBy
ZXR1cm4gMDsKIH0KIAorSW5saW5lTGF5b3V0VW5pdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
OjphdmFpbGFibGVXaWR0aCgpIGNvbnN0Cit7CisgICAgYXV0byBjb250ZW50TG9naWNhbFJpZ2h0
ID0gbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKTsKKyAgICByZXR1cm4gKG1fbGluZUxvZ2lj
YWxSZWN0LndpZHRoKCkgKyBMYXlvdXRVbml0OjplcHNpbG9uKCkpIC0gKCFzdGQ6OmlzbmFuKGNv
bnRlbnRMb2dpY2FsUmlnaHQpID8gY29udGVudExvZ2ljYWxSaWdodCA6IDAuZik7Cit9CisKIGNv
bnN0IEVsZW1lbnRCb3gmIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnJvb3QoKSBjb25zdAog
ewogICAgIHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3QoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2lt
cGxlTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaAppbmRleCBiYjFhOWI5MjYxYWUu
LmEyNjEzYmJlYTZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxl
TGluZUJ1aWxkZXIuaApAQCAtNDgsMTEgKzQ4LDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5saW5lSXRl
bVJhbmdlJik7CiAgICAgSW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlTm9uV3JhcHBpbmdJbmxpbmVU
ZXh0Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKLSAgICBUZXh0T25seUxpbmVCcmVh
a1Jlc3VsdCBoYW5kbGVJbmxpbmVUZXh0Q29udGVudChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtl
cjo6Q29udGludW91c0NvbnRlbnQmLCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKKyAgICBUZXh0
T25seUxpbmVCcmVha1Jlc3VsdCBoYW5kbGVPdmVyZmxvd2luZ1RleHRDb250ZW50KGNvbnN0IElu
bGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYsIGNvbnN0IElubGluZUl0ZW1S
YW5nZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBJbmxpbmVJdGVtUmFuZ2UmLCBjb25z
dCBJbmxpbmVSZWN0JiBpbml0aWFsTG9naWNhbFJlY3QsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8UHJl
dmlvdXNMaW5lPiYpOwogICAgIHZvaWQgaGFuZGxlTGluZUVuZGluZyhJbmxpbmVJdGVtUG9zaXRp
b24sIHNpemVfdCBsYXlvdXRSYW5nZUVuZEluZGV4KTsKICAgICBzaXplX3QgcmV2ZXJ0VG9UcmFp
bGluZ0l0ZW0oY29uc3QgSW5saW5lSXRlbVJhbmdlJiwgY29uc3QgSW5saW5lVGV4dEl0ZW0mKTsK
ICAgICBzaXplX3QgcmV2ZXJ0VG9MYXN0Tm9uT3ZlcmZsb3dpbmdJdGVtKGNvbnN0IElubGluZUl0
ZW1SYW5nZSYpOworICAgIElubGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgoKSBjb25zdDsK
IAogICAgIGJvb2wgaXNGaXJzdEZvcm1hdHRlZExpbmUoKSBjb25zdCB7IHJldHVybiAhbV9wcmV2
aW91c0xpbmUuaGFzX3ZhbHVlKCk7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>467337</attachid>
            <date>2023-08-18 20:25:45 -0700</date>
            <delta_ts>2023-08-20 17:13:07 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-260403-20230818202544.patch</filename>
            <type>text/plain</type>
            <size>17004</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmNzU3ZmE5NTNmNGRlZmMwNDJhYmRmNGQwMzhjYmVmZWI4NmRjZjVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgMTggQXVnIDIwMjMgMTI6MTE6MTcgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXSBE
byBub3QgcG9wdWxhdGUgSW5saW5lQ29udGVudEJyZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50CiBl
YWdlcmx5IHdpdGggY2FuZGlkYXRlIGNvbnRlbnQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI2MDQwMwoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJbmxpbmVD
b250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgcHJlLXByb2Nlc3NlcyB0aGUgY2FuZGlk
YXRlIGNvbnRlbnQgdG8gcHJvdmlkZSB0cmFpbGluZy90cmltbWluZyBpbmZvcm1hdGlvbiBmb3Ig
SW5saW5lQ29udGVudEJyZWFrZXIuCkhvd2V2ZXIgd2UgZG9uJ3QgbmVlZCB0aGF0IGluZm9ybWF0
aW9uIHVudGlsIGFmdGVyIHdlIGZlZWQgdGhlIGNvbnRlbnQgdG8gbGluZSBicmVha2luZy4KTGV0
J3MgcG9wdWxhdGUgQ29udGludW91c0NvbnRlbnQgbGF6aWx5IHJpZ2h0IGJlZm9yZSBjYWxsaW5n
IGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQuCgood2hlbiBjb250ZW50IGZpdHMsIHdlIGRp
cmVjdGx5IGNvbW1pdCB0byBsaW5lLCBvdGhlcndpc2UKMS4gY29tbWl0IHRvIENvbnRpbnVvdXND
b250ZW50IGZpcnN0CjIuIGNhbGwgSW5saW5lQ29udGVudEJyZWFrZXIKMy4gY29tbWl0IHRoZSBy
ZXN1bHQgdG8gbGluZSkKClRoaXMgaXMgfjEwJSBwcm9ncmVzc2lvbiBvbiBQZXJmb3JtYW5jZVRl
c3RzL0xheW91dC9saW5lLWxheW91dC5odG1sLgoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcDoKKFdl
YkNvcmU6OkxheW91dDo6Q2FuZGlkYXRlVGV4dENvbnRlbnQ6OmFwcGVuZCk6CihXZWJDb3JlOjpM
YXlvdXQ6Om1lYXN1cmVkSW5saW5lVGV4dEl0ZW0pOgooV2ViQ29yZTo6TGF5b3V0OjphcHBlbmRJ
bmxpbmVUZXh0SXRlbSk6CihXZWJDb3JlOjpMYXlvdXQ6OlRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQpOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNp
bXBsZUxpbmVCdWlsZGVyOjpwbGFjZU5vbldyYXBwaW5nSW5saW5lVGV4dENvbnRlbnQpOgooV2Vi
Q29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpoYW5kbGVPdmVyZmxvd2lu
Z1RleHRDb250ZW50KToKKFdlYkNvcmU6OkxheW91dDo6VGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRl
cjo6cmV2ZXJ0VG9UcmFpbGluZ0l0ZW0pOgooV2ViQ29yZTo6TGF5b3V0OjpUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyOjpyZXZlcnRUb0xhc3ROb25PdmVyZmxvd2luZ0l0ZW0pOgooV2ViQ29yZTo6
TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjphdmFpbGFibGVXaWR0aCBjb25zdCk6
CihXZWJDb3JlOjpMYXlvdXQ6OmlubGluZVRleHRJdGVtV2lkdGgpOiBEZWxldGVkLgooV2ViQ29y
ZTo6TGF5b3V0OjpUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpoYW5kbGVJbmxpbmVUZXh0Q29u
dGVudCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oOgotLS0KIC4uLi9pbmxpbmUvVGV4
dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5jcHAgICAgICB8IDEwOCArKysrKysrKysrKysrLS0tLS0K
IC4uLi9pbmxpbmUvVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlci5oICAgICAgICB8ICAgNSArLQog
MiBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9U
ZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuY3BwCmluZGV4
IDQ2OGM3MjdlMzQ5OC4uNzkzMmFjNWVlZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmNwcApAQCAtMzYsMTAgKzM2LDIxIEBAIHN0cnVj
dCBUZXh0T25seUxpbmVCcmVha1Jlc3VsdCB7CiAgICAgYm9vbCBpc1JldmVydCB7IGZhbHNlIH07
CiB9OwogCi1zdGF0aWMgaW5saW5lIElubGluZUxheW91dFVuaXQgaW5saW5lVGV4dEl0ZW1XaWR0
aChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSwgSW5saW5lTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQpCitzdHJ1Y3QgQ2Fu
ZGlkYXRlVGV4dENvbnRlbnQgeworICAgIHZvaWQgYXBwZW5kKElubGluZUxheW91dFVuaXQgY29u
dGVudFdpZHRoKQorICAgIHsKKyAgICAgICAgbG9naWNhbFdpZHRoICs9IGNvbnRlbnRXaWR0aDsK
KyAgICAgICAgKytlbmRJbmRleDsKKyAgICB9CisKKyAgICBzaXplX3Qgc3RhcnRJbmRleCB7IDAg
fTsKKyAgICBzaXplX3QgZW5kSW5kZXggeyAwIH07CisgICAgSW5saW5lTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGggeyAwLmYgfTsKK307CisKK3N0YXRpYyBpbmxpbmUgSW5saW5lTGF5b3V0VW5pdCBt
ZWFzdXJlZElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRl
bSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbmxpbmVMYXlvdXRVbml0IGNvbnRlbnRMb2dp
Y2FsTGVmdCkKIHsKLSAgICBpZiAoYXV0byBjb250ZW50V2lkdGggPSBpbmxpbmVUZXh0SXRlbS53
aWR0aCgpKQotICAgICAgICByZXR1cm4gKmNvbnRlbnRXaWR0aDsKKyAgICBBU1NFUlQoIWlubGlu
ZVRleHRJdGVtLndpZHRoKCkpOwogICAgIGlmICghaW5saW5lVGV4dEl0ZW0uaXNXaGl0ZXNwYWNl
KCkgfHwgSW5saW5lVGV4dEl0ZW06OnNob3VsZFByZXNlcnZlU3BhY2VzQW5kVGFicyhpbmxpbmVU
ZXh0SXRlbSkpCiAgICAgICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lVGV4dEl0ZW0s
IHN0eWxlLmZvbnRDYXNjYWRlKCksIGNvbnRlbnRMb2dpY2FsTGVmdCk7CiAgICAgcmV0dXJuIFRl
eHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5bGUuZm9udENhc2NhZGUoKSwgaW5saW5l
VGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSArIDEsIGNvbnRlbnRMb2dp
Y2FsTGVmdCk7CkBAIC02MCwxMyArNzEsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGlzTGFzdExp
bmVXaXRoSW5saW5lQ29udGVudChJbmxpbmVJdGVtUG9zaXRpb24gcGxhY2VkQ29udGVudEUKICAg
ICByZXR1cm4gcGxhY2VkQ29udGVudEVuZC5pbmRleCA9PSBsYXlvdXRSYW5nZUVuZEluZGV4ICYm
ICFwbGFjZWRDb250ZW50RW5kLm9mZnNldDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGVu
ZElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVUZXh0SXRlbSwgYm9v
bCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSwgY29uc3QgTGluZSYgbGluZSwgSW5saW5lQ29udGVudEJy
ZWFrZXI6OkNvbnRpbnVvdXNDb250ZW50JiBjYW5kaWRhdGVDb250ZW50KQorc3RhdGljIGlubGlu
ZSB2b2lkIGFwcGVuZElubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVU
ZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBMaW5lJiBsaW5lLCBJbmxp
bmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQpCiB7
Ci0gICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA/IGlubGluZVRleHRJdGVt
LmZpcnN0TGluZVN0eWxlKCkgOiBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpOwogICAgIGF1dG8gdGV4
dENvbnRlbnRsV2lkdGggPSBbJl0gewogICAgICAgICBpZiAoYXV0byB0ZXh0V2lkdGggPSBpbmxp
bmVUZXh0SXRlbS53aWR0aCgpKQogICAgICAgICAgICAgcmV0dXJuICp0ZXh0V2lkdGg7Ci0gICAg
ICAgIHJldHVybiBpbmxpbmVUZXh0SXRlbVdpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZSwgbGlu
ZS5jb250ZW50TG9naWNhbFJpZ2h0KCkgKyBjYW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCgp
KTsKKyAgICAgICAgcmV0dXJuIG1lYXN1cmVkSW5saW5lVGV4dEl0ZW0oaW5saW5lVGV4dEl0ZW0s
IHN0eWxlLCBsaW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSArIGNhbmRpZGF0ZUNvbnRlbnQubG9n
aWNhbFdpZHRoKCkpOwogICAgIH07CiAgICAgY2FuZGlkYXRlQ29udGVudC5hcHBlbmRUZXh0Q29u
dGVudChpbmxpbmVUZXh0SXRlbSwgc3R5bGUsIHRleHRDb250ZW50bFdpZHRoKCkpOwogfQpAQCAt
MTQyLDE4ICsxNTIsMTIgQEAgdm9pZCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjppbml0aWFs
aXplKGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIGMKIAogSW5saW5lSXRlbVBv
c2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQo
Y29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5nZSkKIHsKLSAgICBhdXRvIGNhbmRpZGF0
ZUNvbnRlbnQgPSBJbmxpbmVDb250ZW50QnJlYWtlcjo6Q29udGludW91c0NvbnRlbnQgeyB9Owot
ICAgIGF1dG8gaXNGaXJzdEZvcm1hdHRlZExpbmUgPSB0aGlzLT5pc0ZpcnN0Rm9ybWF0dGVkTGlu
ZSgpOwotICAgIGF1dG8gaGFzV3JhcE9wcG9ydHVuaXR5QmVmb3JlV2hpdGVzcGFjZSA9IHJvb3Qo
KS5zdHlsZSgpLndoaXRlU3BhY2VDb2xsYXBzZSgpICE9IFdoaXRlU3BhY2VDb2xsYXBzZTo6QnJl
YWtTcGFjZXMgJiYgcm9vdCgpLnN0eWxlKCkubGluZUJyZWFrKCkgIT0gTGluZUJyZWFrOjpBZnRl
cldoaXRlU3BhY2U7CisgICAgYXV0byYgcm9vdFN0eWxlID0gIWlzRmlyc3RGb3JtYXR0ZWRMaW5l
KCkgPyByb290KCkuc3R5bGUoKSA6IHJvb3QoKS5maXJzdExpbmVTdHlsZSgpOworICAgIGF1dG8g
aGFzV3JhcE9wcG9ydHVuaXR5QmVmb3JlV2hpdGVzcGFjZSA9IHJvb3RTdHlsZS53aGl0ZVNwYWNl
Q29sbGFwc2UoKSAhPSBXaGl0ZVNwYWNlQ29sbGFwc2U6OkJyZWFrU3BhY2VzICYmIHJvb3RTdHls
ZS5saW5lQnJlYWsoKSAhPSBMaW5lQnJlYWs6OkFmdGVyV2hpdGVTcGFjZTsKICAgICBzaXplX3Qg
cGxhY2VkSW5saW5lSXRlbUNvdW50ID0gMDsKIAogICAgIGF1dG8gcmVzdWx0ID0gVGV4dE9ubHlM
aW5lQnJlYWtSZXN1bHQgeyB9OwotICAgIGF1dG8gcHJvY2Vzc0NhbmRpZGF0ZUNvbnRlbnQgPSBb
Jl0gewotICAgICAgICByZXN1bHQgPSBoYW5kbGVJbmxpbmVUZXh0Q29udGVudChjYW5kaWRhdGVD
b250ZW50LCBsYXlvdXRSYW5nZSk7Ci0gICAgICAgIGNhbmRpZGF0ZUNvbnRlbnQucmVzZXQoKTsK
LSAgICAgICAgcGxhY2VkSW5saW5lSXRlbUNvdW50ID0gIXJlc3VsdC5pc1JldmVydCA/IHBsYWNl
ZElubGluZUl0ZW1Db3VudCArIHJlc3VsdC5jb21taXR0ZWRDb3VudCA6IHJlc3VsdC5jb21taXR0
ZWRDb3VudDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5pc0VuZE9mTGluZSA9PSBJbmxpbmVDb250
ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllczsKLSAgICB9OworICAgIGF1dG8gY2FuZGlkYXRl
Q29udGVudCA9IENhbmRpZGF0ZVRleHRDb250ZW50IHsgbGF5b3V0UmFuZ2Uuc3RhcnRJbmRleCgp
LCBsYXlvdXRSYW5nZS5zdGFydEluZGV4KCksIHsgfSB9OwogCiAgICAgYXV0byBuZXh0SXRlbUlu
ZGV4ID0gbGF5b3V0UmFuZ2Uuc3RhcnRJbmRleCgpOwogICAgIGF1dG8gaXNBdFNvZnRXcmFwT3Bw
b3J0dW5pdHlPckNvbnRlbnRFbmQgPSBbJl0oYXV0byYgaW5saW5lVGV4dEl0ZW0pIHsKQEAgLTE2
NywxMCArMTcxLDE3IEBAIElubGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25seVNpbXBsZUxpbmVCdWls
ZGVyOjpwbGFjZUlubGluZVRleHRDb250ZW50KGNvbnN0IElubGluCiAgICAgICAgIHJldHVybiAm
aW5saW5lVGV4dEl0ZW0uaW5saW5lVGV4dEJveCgpID09ICZuZXh0SW5saW5lVGV4dEl0ZW0uaW5s
aW5lVGV4dEJveCgpIHx8IFRleHRVdGlsOjptYXlCcmVha0luQmV0d2VlbihpbmxpbmVUZXh0SXRl
bSwgbmV4dElubGluZVRleHRJdGVtKTsKICAgICB9OwogCisgICAgYXV0byBwcm9jZXNzQ2FuZGlk
YXRlQ29udGVudCA9IFsmXSB7CisgICAgICAgIHJlc3VsdCA9IGNvbW1pdENhbmRpZGF0ZUNvbnRl
bnQoY2FuZGlkYXRlQ29udGVudCwgbGF5b3V0UmFuZ2UpOworICAgICAgICBwbGFjZWRJbmxpbmVJ
dGVtQ291bnQgPSAhcmVzdWx0LmlzUmV2ZXJ0ID8gcGxhY2VkSW5saW5lSXRlbUNvdW50ICsgcmVz
dWx0LmNvbW1pdHRlZENvdW50IDogcmVzdWx0LmNvbW1pdHRlZENvdW50OworICAgICAgICBjYW5k
aWRhdGVDb250ZW50ID0geyBjYW5kaWRhdGVDb250ZW50LmVuZEluZGV4LCBjYW5kaWRhdGVDb250
ZW50LmVuZEluZGV4LCB7IH0gfTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5pc0VuZE9mTGluZSA9
PSBJbmxpbmVDb250ZW50QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllczsKKyAgICB9OworCiAgICAg
Ly8gSGFuZGxlIGxlYWRpbmcgcGFydGlhbCBjb250ZW50IGZpcnN0IChvdmVyZmxvd2luZyB0ZXh0
IGZyb20gdGhlIHByZXZpb3VzIGxpbmUpLgogICAgIGF1dG8gaXNFbmRPZkxpbmUgPSBmYWxzZTsK
ICAgICBpZiAobV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtKSB7Ci0gICAgICAgIGFwcGVuZElubGlu
ZVRleHRJdGVtKCptX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0sIGlzRmlyc3RGb3JtYXR0ZWRMaW5l
LCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnQpOworICAgICAgICBjYW5kaWRhdGVDb250ZW50LmFw
cGVuZCh7IH0pOwogICAgICAgICArK25leHRJdGVtSW5kZXg7CiAgICAgICAgIGlmIChpc0F0U29m
dFdyYXBPcHBvcnR1bml0eU9yQ29udGVudEVuZCgqbV9wYXJ0aWFsTGVhZGluZ1RleHRJdGVtKSkK
ICAgICAgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc0NhbmRpZGF0ZUNvbnRlbnQoKTsKQEAg
LTE4Miw3ICsxOTMsMTIgQEAgSW5saW5lSXRlbVBvc2l0aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1
aWxkZXI6OnBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5saW4KIAogICAgICAgICBpZiAo
aW5saW5lSXRlbS5pc1RleHQoKSkgewogICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0g
PSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7Ci0gICAgICAgICAgICBhcHBl
bmRJbmxpbmVUZXh0SXRlbShpbmxpbmVUZXh0SXRlbSwgaXNGaXJzdEZvcm1hdHRlZExpbmUsIG1f
bGluZSwgY2FuZGlkYXRlQ29udGVudCk7CisgICAgICAgICAgICBhdXRvIGNvbnRlbnRXaWR0aCA9
IFsmXSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gbG9naWNhbFdpZHRoID0gaW5saW5lVGV4
dEl0ZW0ud2lkdGgoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICpsb2dpY2FsV2lkdGg7
CisgICAgICAgICAgICAgICAgcmV0dXJuIG1lYXN1cmVkSW5saW5lVGV4dEl0ZW0oaW5saW5lVGV4
dEl0ZW0sIHJvb3RTdHlsZSwgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSArIGNhbmRpZGF0
ZUNvbnRlbnQubG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBjYW5k
aWRhdGVDb250ZW50LmFwcGVuZChjb250ZW50V2lkdGgoKSk7CiAgICAgICAgICAgICBpZiAoaXNB
dFNvZnRXcmFwT3Bwb3J0dW5pdHlPckNvbnRlbnRFbmQoaW5saW5lVGV4dEl0ZW0pKQogICAgICAg
ICAgICAgICAgIGlzRW5kT2ZMaW5lID0gcHJvY2Vzc0NhbmRpZGF0ZUNvbnRlbnQoKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwpAQCAtMjA2LDEzICsyMjIsMTMgQEAgSW5saW5lSXRlbVBvc2l0aW9u
IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlTm9uV3JhcHBpbmdJbmxpbmVUZXh0Q29u
dGVudCgKICAgICBBU1NFUlQoIVRleHRVdGlsOjppc1dyYXBwaW5nQWxsb3dlZChyb290KCkuc3R5
bGUoKSkpOwogCiAgICAgYXV0byBjYW5kaWRhdGVDb250ZW50ID0gSW5saW5lQ29udGVudEJyZWFr
ZXI6OkNvbnRpbnVvdXNDb250ZW50IHsgfTsKLSAgICBhdXRvIGlzRmlyc3RGb3JtYXR0ZWRMaW5l
ID0gdGhpcy0+aXNGaXJzdEZvcm1hdHRlZExpbmUoKTsKKyAgICBhdXRvJiByb290U3R5bGUgPSAh
aXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/IHJvb3QoKS5zdHlsZSgpIDogcm9vdCgpLmZpcnN0TGlu
ZVN0eWxlKCk7CiAgICAgYXV0byBpc0VuZE9mTGluZSA9IGZhbHNlOwogICAgIGF1dG8gdHJhaWxp
bmdMaW5lQnJlYWtJbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CiAgICAgYXV0byBu
ZXh0SXRlbUluZGV4ID0gbGF5b3V0UmFuZ2Uuc3RhcnRJbmRleCgpOwogCiAgICAgaWYgKG1fcGFy
dGlhbExlYWRpbmdUZXh0SXRlbSkgewotICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbSgqbV9w
YXJ0aWFsTGVhZGluZ1RleHRJdGVtLCBpc0ZpcnN0Rm9ybWF0dGVkTGluZSwgbV9saW5lLCBjYW5k
aWRhdGVDb250ZW50KTsKKyAgICAgICAgYXBwZW5kSW5saW5lVGV4dEl0ZW0oKm1fcGFydGlhbExl
YWRpbmdUZXh0SXRlbSwgcm9vdFN0eWxlLCBtX2xpbmUsIGNhbmRpZGF0ZUNvbnRlbnQpOwogICAg
ICAgICArK25leHRJdGVtSW5kZXg7CiAgICAgICAgIGlzRW5kT2ZMaW5lID0gbmV4dEl0ZW1JbmRl
eCA+PSBsYXlvdXRSYW5nZS5lbmRJbmRleCgpOwogICAgIH0KQEAgLTIyMCw3ICsyMzYsNyBAQCBJ
bmxpbmVJdGVtUG9zaXRpb24gVGV4dE9ubHlTaW1wbGVMaW5lQnVpbGRlcjo6cGxhY2VOb25XcmFw
cGluZ0lubGluZVRleHRDb250ZW50KAogICAgICAgICBhdXRvJiBpbmxpbmVJdGVtID0gbV9pbmxp
bmVJdGVtc1tuZXh0SXRlbUluZGV4XTsKICAgICAgICAgQVNTRVJUKGlubGluZUl0ZW0uaXNUZXh0
KCkgfHwgaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpKTsKICAgICAgICAgaWYgKGlubGluZUl0ZW0u
aXNUZXh0KCkpCi0gICAgICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbShkb3duY2FzdDxJbmxp
bmVUZXh0SXRlbT4oaW5saW5lSXRlbSksIGlzRmlyc3RGb3JtYXR0ZWRMaW5lLCBtX2xpbmUsIGNh
bmRpZGF0ZUNvbnRlbnQpOworICAgICAgICAgICAgYXBwZW5kSW5saW5lVGV4dEl0ZW0oZG93bmNh
c3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pLCByb290U3R5bGUsIG1fbGluZSwgY2FuZGlk
YXRlQ29udGVudCk7CiAgICAgICAgIGVsc2UgaWYgKGlubGluZUl0ZW0uaXNMaW5lQnJlYWsoKSkK
ICAgICAgICAgICAgIHRyYWlsaW5nTGluZUJyZWFrSW5kZXggPSBuZXh0SXRlbUluZGV4OwogICAg
ICAgICArK25leHRJdGVtSW5kZXg7CkBAIC0yMzIsNyArMjQ4LDcgQEAgSW5saW5lSXRlbVBvc2l0
aW9uIFRleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXI6OnBsYWNlTm9uV3JhcHBpbmdJbmxpbmVUZXh0
Q29udGVudCgKICAgICAgICAgcmV0dXJuIHsgKnRyYWlsaW5nTGluZUJyZWFrSW5kZXggKyAxLCB7
IH0gfTsKICAgICB9CiAKLSAgICBhdXRvIHJlc3VsdCA9IGhhbmRsZUlubGluZVRleHRDb250ZW50
KGNhbmRpZGF0ZUNvbnRlbnQsIGxheW91dFJhbmdlKTsKKyAgICBhdXRvIHJlc3VsdCA9IGhhbmRs
ZU92ZXJmbG93aW5nVGV4dENvbnRlbnQoY2FuZGlkYXRlQ29udGVudCwgbGF5b3V0UmFuZ2UpOwog
ICAgIG5leHRJdGVtSW5kZXggPSBsYXlvdXRSYW5nZS5zdGFydEluZGV4KCkgKyByZXN1bHQuY29t
bWl0dGVkQ291bnQ7CiAgICAgaWYgKGNvbnN1bWVUcmFpbGluZ0xpbmVCcmVha0lmQXBwbGljYWJs
ZShyZXN1bHQsIG5leHRJdGVtSW5kZXgsIGxheW91dFJhbmdlLmVuZEluZGV4KCksIG1fbGluZSwg
bV9pbmxpbmVJdGVtcykpCiAgICAgICAgICsrbmV4dEl0ZW1JbmRleDsKQEAgLTI0MywxMiArMjU5
LDQyIEBAIElubGluZUl0ZW1Qb3NpdGlvbiBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpwbGFj
ZU5vbldyYXBwaW5nSW5saW5lVGV4dENvbnRlbnQoCiAgICAgcmV0dXJuIHBsYWNlZENvbnRlbnRF
bmQ7CiB9CiAKLVRleHRPbmx5TGluZUJyZWFrUmVzdWx0IFRleHRPbmx5U2ltcGxlTGluZUJ1aWxk
ZXI6OmhhbmRsZUlubGluZVRleHRDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpD
b250aW51b3VzQ29udGVudCYgY2FuZGlkYXRlQ29udGVudCwgY29uc3QgSW5saW5lSXRlbVJhbmdl
JiBsYXlvdXRSYW5nZSkKK1RleHRPbmx5TGluZUJyZWFrUmVzdWx0IFRleHRPbmx5U2ltcGxlTGlu
ZUJ1aWxkZXI6OmNvbW1pdENhbmRpZGF0ZUNvbnRlbnQoY29uc3QgQ2FuZGlkYXRlVGV4dENvbnRl
bnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNvbnN0IElubGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2Up
Cit7CisgICAgYXV0byYgcm9vdFN0eWxlID0gIWlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgPyByb290
KCkuc3R5bGUoKSA6IHJvb3QoKS5maXJzdExpbmVTdHlsZSgpOworICAgIGF1dG8gaGFzTGVhZGlu
Z1BhcnRpYUNvbnRlbnQgPSBtX3BhcnRpYWxMZWFkaW5nVGV4dEl0ZW0gJiYgY2FuZGlkYXRlQ29u
dGVudC5zdGFydEluZGV4ID09IGxheW91dFJhbmdlLnN0YXJ0SW5kZXgoKTsKKworICAgIGlmIChj
YW5kaWRhdGVDb250ZW50LmxvZ2ljYWxXaWR0aCA8PSBhdmFpbGFibGVXaWR0aCgpICYmICFoYXNM
ZWFkaW5nUGFydGlhQ29udGVudCkgeworICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBjYW5kaWRh
dGVDb250ZW50LnN0YXJ0SW5kZXg7IGluZGV4IDwgY2FuZGlkYXRlQ29udGVudC5lbmRJbmRleDsg
KytpbmRleCkgeworICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJ
bmxpbmVUZXh0SXRlbT4obV9pbmxpbmVJdGVtc1tpbmRleF0pOworICAgICAgICAgICAgYXV0byBj
b250ZW50V2lkdGggPSBbJl0geworICAgICAgICAgICAgICAgIGlmIChhdXRvIGxvZ2ljYWxXaWR0
aCA9IGlubGluZVRleHRJdGVtLndpZHRoKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAq
bG9naWNhbFdpZHRoOworICAgICAgICAgICAgICAgIHJldHVybiBtZWFzdXJlZElubGluZVRleHRJ
dGVtKGlubGluZVRleHRJdGVtLCByb290U3R5bGUsIG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0
KCkpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIG1fbGluZS5hcHBlbmRUZXh0RmFzdChp
bmxpbmVUZXh0SXRlbSwgcm9vdFN0eWxlLCBjb250ZW50V2lkdGgoKSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKG1fbGluZS5oYXNDb250ZW50T3JMaXN0TWFya2VyKCkpCisgICAgICAgICAgICBt
X3dyYXBPcHBvcnR1bml0eUxpc3QuYXBwZW5kKCZkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obV9p
bmxpbmVJdGVtc1tjYW5kaWRhdGVDb250ZW50LmVuZEluZGV4IC0gMV0pKTsKKyAgICAgICAgcmV0
dXJuIHsgSW5saW5lQ29udGVudEJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgY2FuZGlkYXRlQ29u
dGVudC5lbmRJbmRleCAtIGNhbmRpZGF0ZUNvbnRlbnQuc3RhcnRJbmRleCB9OworICAgIH0KKwor
ICAgIGF1dG8gY2FuZGlkYXRlQ29udGVudEZvckxpbmVCcmVha2luZyA9IElubGluZUNvbnRlbnRC
cmVha2VyOjpDb250aW51b3VzQ29udGVudCB7IH07CisgICAgYXV0byBzdGFydEluZGV4ID0gY2Fu
ZGlkYXRlQ29udGVudC5zdGFydEluZGV4OworICAgIGlmIChoYXNMZWFkaW5nUGFydGlhQ29udGVu
dCkgeworICAgICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbSgqbV9wYXJ0aWFsTGVhZGluZ1RleHRJ
dGVtLCByb290U3R5bGUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudEZvckxpbmVCcmVha2luZyk7
CisgICAgICAgICsrc3RhcnRJbmRleDsKKyAgICB9CisgICAgZm9yIChhdXRvIGluZGV4ID0gc3Rh
cnRJbmRleDsgaW5kZXggPCBjYW5kaWRhdGVDb250ZW50LmVuZEluZGV4OyArK2luZGV4KQorICAg
ICAgICBhcHBlbmRJbmxpbmVUZXh0SXRlbShkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obV9pbmxp
bmVJdGVtc1tpbmRleF0pLCByb290U3R5bGUsIG1fbGluZSwgY2FuZGlkYXRlQ29udGVudEZvckxp
bmVCcmVha2luZyk7CisgICAgcmV0dXJuIGhhbmRsZU92ZXJmbG93aW5nVGV4dENvbnRlbnQoY2Fu
ZGlkYXRlQ29udGVudEZvckxpbmVCcmVha2luZywgbGF5b3V0UmFuZ2UpOworfQorCitUZXh0T25s
eUxpbmVCcmVha1Jlc3VsdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpoYW5kbGVPdmVyZmxv
d2luZ1RleHRDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29u
dGVudCYgY2FuZGlkYXRlQ29udGVudCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBsYXlvdXRSYW5n
ZSkKIHsKICAgICBBU1NFUlQoIWNhbmRpZGF0ZUNvbnRlbnQucnVucygpLmlzRW1wdHkoKSk7CiAK
LSAgICBhdXRvIGNvbnRlbnRMb2dpY2FsUmlnaHQgPSBtX2xpbmUuY29udGVudExvZ2ljYWxSaWdo
dCgpOwotICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSAobV9saW5lTG9naWNhbFJlY3Qud2lkdGgo
KSArIExheW91dFVuaXQ6OmVwc2lsb24oKSkgLSAoIXN0ZDo6aXNuYW4oY29udGVudExvZ2ljYWxS
aWdodCkgPyBjb250ZW50TG9naWNhbFJpZ2h0IDogMC5mKTsKKyAgICBhdXRvIGF2YWlsYWJsZVdp
ZHRoID0gdGhpcy0+YXZhaWxhYmxlV2lkdGgoKTsKICAgICBhdXRvIGxpbmVCcmVha2luZ1Jlc3Vs
dCA9IElubGluZUNvbnRlbnRCcmVha2VyOjpSZXN1bHQgeyBJbmxpbmVDb250ZW50QnJlYWtlcjo6
UmVzdWx0OjpBY3Rpb246OktlZXAsIElubGluZUNvbnRlbnRCcmVha2VyOjpJc0VuZE9mTGluZTo6
Tm8sIHsgfSwgeyB9IH07CiAgICAgaWYgKGNhbmRpZGF0ZUNvbnRlbnQubG9naWNhbFdpZHRoKCkg
PiBhdmFpbGFibGVXaWR0aCkgewogICAgICAgICBhdXRvIGxpbmVTdGF0dXMgPSBJbmxpbmVDb250
ZW50QnJlYWtlcjo6TGluZVN0YXR1cyB7IG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCksIGF2
YWlsYWJsZVdpZHRoLCBtX2xpbmUudHJpbW1hYmxlVHJhaWxpbmdXaWR0aCgpLCBtX2xpbmUudHJh
aWxpbmdTb2Z0SHlwaGVuV2lkdGgoKSwgbV9saW5lLmlzVHJhaWxpbmdSdW5GdWxseVRyaW1tYWJs
ZSgpLCBtX2xpbmUuaGFzQ29udGVudE9yTGlzdE1hcmtlcigpLCAhbV93cmFwT3Bwb3J0dW5pdHlM
aXN0LmlzRW1wdHkoKSB9OwpAQCAtMzQyLDEyICszODgsMTMgQEAgdm9pZCBUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyOjpoYW5kbGVMaW5lRW5kaW5nKElubGluZUl0ZW1Qb3NpdGlvbiBwbGFjZWRD
b250ZW4KIHNpemVfdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpyZXZlcnRUb1RyYWlsaW5n
SXRlbShjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlLCBjb25zdCBJbmxpbmVUZXh0
SXRlbSYgdHJhaWxpbmdJbmxpbmVJdGVtKQogewogICAgIGF1dG8gaXNGaXJzdEZvcm1hdHRlZExp
bmUgPSB0aGlzLT5pc0ZpcnN0Rm9ybWF0dGVkTGluZSgpOworICAgIGF1dG8mIHJvb3RTdHlsZSA9
ICFpc0ZpcnN0Rm9ybWF0dGVkTGluZSA/IHJvb3QoKS5zdHlsZSgpIDogcm9vdCgpLmZpcnN0TGlu
ZVN0eWxlKCk7CiAgICAgbV9saW5lLmluaXRpYWxpemUoeyB9LCBpc0ZpcnN0Rm9ybWF0dGVkTGlu
ZSk7CiAgICAgc2l6ZV90IG51bWJlck9mSW5saW5lSXRlbXNPbkxpbmUgPSAwOwogCiAgICAgYXV0
byBhcHBlbmRUZXh0SW5saW5lSXRlbSA9IFsmXSAoYXV0byYgaW5saW5lVGV4dEl0ZW0pIHsKLSAg
ICAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSA/IGlubGluZVRleHRJdGVt
LmZpcnN0TGluZVN0eWxlKCkgOiBpbmxpbmVUZXh0SXRlbS5zdHlsZSgpOwotICAgICAgICBtX2xp
bmUuYXBwZW5kVGV4dEZhc3QoaW5saW5lVGV4dEl0ZW0sIHN0eWxlLCBpbmxpbmVUZXh0SXRlbVdp
ZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZSwgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSkp
OworICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGlubGluZVRleHRJdGVtLndpZHRoKCkgPyAq
aW5saW5lVGV4dEl0ZW0ud2lkdGgoKSA6IG1lYXN1cmVkSW5saW5lVGV4dEl0ZW0oaW5saW5lVGV4
dEl0ZW0sIHJvb3RTdHlsZSwgbV9saW5lLmNvbnRlbnRMb2dpY2FsUmlnaHQoKSk7CisgICAgICAg
IG1fbGluZS5hcHBlbmRUZXh0RmFzdChpbmxpbmVUZXh0SXRlbSwgcm9vdFN0eWxlLCBsb2dpY2Fs
V2lkdGgpOwogICAgICAgICArK251bWJlck9mSW5saW5lSXRlbXNPbkxpbmU7CiAgICAgICAgIHJl
dHVybiAmaW5saW5lVGV4dEl0ZW0gPT0gJnRyYWlsaW5nSW5saW5lSXRlbTsKICAgICB9OwpAQCAt
MzcyLDggKzQxOSw3IEBAIHNpemVfdCBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpyZXZlcnRU
b0xhc3ROb25PdmVyZmxvd2luZ0l0ZW0oY29uc3QgSW5saW5lSXRlCiAgICAgICAgIGF1dG8gaGFz
UmV2ZXJ0ZWRFbm91Z2ggPSBbJl0gewogICAgICAgICAgICAgaWYgKCFpIHx8ICF0cmFpbGluZ1Nv
ZnRIeXBoZW5XaWR0aCkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg
IGF1dG8gYXZhaWxhYmxlV2lkdGggPSBtX2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpIC0gbV9saW5l
LmNvbnRlbnRMb2dpY2FsUmlnaHQoKTsKLSAgICAgICAgICAgIHJldHVybiAqdHJhaWxpbmdTb2Z0
SHlwaGVuV2lkdGggPD0gYXZhaWxhYmxlV2lkdGg7CisgICAgICAgICAgICByZXR1cm4gKnRyYWls
aW5nU29mdEh5cGhlbldpZHRoIDw9IGF2YWlsYWJsZVdpZHRoKCk7CiAgICAgICAgIH07CiAgICAg
ICAgIGlmIChoYXNSZXZlcnRlZEVub3VnaCgpKSB7CiAgICAgICAgICAgICBpZiAodHJhaWxpbmdT
b2Z0SHlwaGVuV2lkdGgpCkBAIC0zODUsNiArNDMxLDEyIEBAIHNpemVfdCBUZXh0T25seVNpbXBs
ZUxpbmVCdWlsZGVyOjpyZXZlcnRUb0xhc3ROb25PdmVyZmxvd2luZ0l0ZW0oY29uc3QgSW5saW5l
SXRlCiAgICAgcmV0dXJuIDA7CiB9CiAKK0lubGluZUxheW91dFVuaXQgVGV4dE9ubHlTaW1wbGVM
aW5lQnVpbGRlcjo6YXZhaWxhYmxlV2lkdGgoKSBjb25zdAoreworICAgIGF1dG8gY29udGVudExv
Z2ljYWxSaWdodCA9IG1fbGluZS5jb250ZW50TG9naWNhbFJpZ2h0KCk7CisgICAgcmV0dXJuICht
X2xpbmVMb2dpY2FsUmVjdC53aWR0aCgpICsgTGF5b3V0VW5pdDo6ZXBzaWxvbigpKSAtICghc3Rk
Ojppc25hbihjb250ZW50TG9naWNhbFJpZ2h0KSA/IGNvbnRlbnRMb2dpY2FsUmlnaHQgOiAwLmYp
OworfQorCiBjb25zdCBFbGVtZW50Qm94JiBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyOjpyb290
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9U
ZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9UZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyLmgKaW5kZXggYmIx
YTliOTI2MWFlLi41MDQ4ZmNhMzQ0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL1RleHRPbmx5U2ltcGxlTGluZUJ1aWxkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9UZXh0
T25seVNpbXBsZUxpbmVCdWlsZGVyLmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIElubGluZUNvbnRlbnRCcmVha2VyOwor
c3RydWN0IENhbmRpZGF0ZVRleHRDb250ZW50Owogc3RydWN0IFRleHRPbmx5TGluZUJyZWFrUmVz
dWx0OwogCiBjbGFzcyBUZXh0T25seVNpbXBsZUxpbmVCdWlsZGVyIDogcHVibGljIEFic3RyYWN0
TGluZUJ1aWxkZXIgewpAQCAtNDgsMTEgKzQ5LDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
SW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlSW5saW5lVGV4dENvbnRlbnQoY29uc3QgSW5saW5lSXRl
bVJhbmdlJik7CiAgICAgSW5saW5lSXRlbVBvc2l0aW9uIHBsYWNlTm9uV3JhcHBpbmdJbmxpbmVU
ZXh0Q29udGVudChjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKLSAgICBUZXh0T25seUxpbmVCcmVh
a1Jlc3VsdCBoYW5kbGVJbmxpbmVUZXh0Q29udGVudChjb25zdCBJbmxpbmVDb250ZW50QnJlYWtl
cjo6Q29udGludW91c0NvbnRlbnQmLCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsKKyAgICBUZXh0
T25seUxpbmVCcmVha1Jlc3VsdCBoYW5kbGVPdmVyZmxvd2luZ1RleHRDb250ZW50KGNvbnN0IElu
bGluZUNvbnRlbnRCcmVha2VyOjpDb250aW51b3VzQ29udGVudCYsIGNvbnN0IElubGluZUl0ZW1S
YW5nZSYpOworICAgIFRleHRPbmx5TGluZUJyZWFrUmVzdWx0IGNvbW1pdENhbmRpZGF0ZUNvbnRl
bnQoY29uc3QgQ2FuZGlkYXRlVGV4dENvbnRlbnQmLCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmKTsK
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW5saW5lSXRlbVJhbmdlJiwgY29uc3QgSW5saW5l
UmVjdCYgaW5pdGlhbExvZ2ljYWxSZWN0LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFByZXZpb3VzTGlu
ZT4mKTsKICAgICB2b2lkIGhhbmRsZUxpbmVFbmRpbmcoSW5saW5lSXRlbVBvc2l0aW9uLCBzaXpl
X3QgbGF5b3V0UmFuZ2VFbmRJbmRleCk7CiAgICAgc2l6ZV90IHJldmVydFRvVHJhaWxpbmdJdGVt
KGNvbnN0IElubGluZUl0ZW1SYW5nZSYsIGNvbnN0IElubGluZVRleHRJdGVtJik7CiAgICAgc2l6
ZV90IHJldmVydFRvTGFzdE5vbk92ZXJmbG93aW5nSXRlbShjb25zdCBJbmxpbmVJdGVtUmFuZ2Um
KTsKKyAgICBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKCkgY29uc3Q7CiAKICAgICBi
b29sIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgY29uc3QgeyByZXR1cm4gIW1fcHJldmlvdXNMaW5l
Lmhhc192YWx1ZSgpOyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>