<?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>225745</bug_id>
          
          <creation_ts>2021-05-13 04:38:54 -0700</creation_ts>
          <short_desc>[LFC] Cleanup margin collapsing class</short_desc>
          <delta_ts>2021-05-16 08:01:26 -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>
          
          <blocked>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759624</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:38:54 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759651</commentid>
    <comment_count>1</comment_count>
      <attachid>428491</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 05:29:01 -0700</bug_when>
    <thetext>Created attachment 428491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760591</commentid>
    <comment_count>2</comment_count>
      <attachid>428783</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-16 06:55:49 -0700</bug_when>
    <thetext>Created attachment 428783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760599</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-16 08:00:59 -0700</bug_when>
    <thetext>Committed r277568 (237796@main): &lt;https://commits.webkit.org/237796@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428783.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760600</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-16 08:01:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/78078638&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428491</attachid>
            <date>2021-05-13 05:29:01 -0700</date>
            <delta_ts>2021-05-16 06:55:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225745-20210513052900.patch</filename>
            <type>text/plain</type>
            <size>25312</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uNWExZmU2MTZmMWNiZTI4MzRkYWRmNzBhZTVkYjM4
YWIzMDRiNWUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBDbGVhbnVwIG1hcmdp
biBjb2xsYXBzaW5nIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBCbG9ja01hcmdpbkNvbGxhcHNlIG5lZWRzIExheW91dFN0YXRlIGFuZCBCbG9j
a0Zvcm1hdHRpbmdTdGF0ZSBvbmx5LgorCisgICAgICAgICogbGF5b3V0L01hcmdpblR5cGVzLmg6
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbnN0
cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRy
eS5oOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQm94QW5kQW5jZXN0b3Jz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Z2Vv
bWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjptYXJnaW5Db2xsYXBzZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNl
ZENvbnRlbnRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHRJZkFw
cGxpY2FibGUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxv
Y2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6QmxvY2tNYXJnaW5Db2xsYXBzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Omhhc0NsZWFyYW5jZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxh
cHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aExhc3RJbkZs
b3dDaGlsZE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVN
YXJnaW5CZWZvcmUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
bG9ja01hcmdpbkNvbGxhcHNlOjppblF1aXJrc01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpsYXlvdXRTdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6
OmxheW91dFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tN
YXJnaW5Db2xsYXBzZTo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdp
bkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xs
YXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2
ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
QmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOgorCiAyMDIxLTA1
LTA1ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
TVNFXVtHU3RyZWFtZXJdIFdlYktpdE1lZGlhU3JjIHJld29yayB2MgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L01hcmdpblR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
TWFyZ2luVHlwZXMuaAppbmRleCAzMjk2OGNkYmRjNDEyNGM0ODhkMDk0ODhkMmRkY2NiNmQ2YTBm
NzVlLi5lYWEyNDJmMThkZjBlOWE3MmUyZTNkMDJiNTc1YWI2N2IxOWY4NmUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTWFyZ2luVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTWFyZ2luVHlwZXMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAjaW5j
bHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0
dGluZ0dlb21ldHJ5LmNwcAppbmRleCBkNjJkNzNiODExMTAzNWRkNTFhMDU4YjU3MTYzNWRjZThl
OTRhMmE1Li5jOWZiM2ZiMTQzYzk4YzZkMmI5ZDllYmUxNDBmMWFlZmU2ZWQ4OTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdH
ZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0xMTU5LDcgKzExNTksNyBAQCBGb3JtYXR0aW5n
Q29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IEZvcm1hdHRpbmdHZW9tZXRy
eTo6Y29uc3RyYWludAogICAgICAgICBib3hHZW9tZXRyeS5jb250ZW50Qm94V2lkdGgoKSB9Owog
fQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IEZvcm1h
dHRpbmdHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnN0IENvbnRhaW5l
ckJveCYgY29udGFpbmVyQm94LCBPcHRpb25hbDxGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVh
c29uPiBlc2NhcGVSZWFzb24pCitGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50IEZvcm1hdHRpbmdHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50
KGNvbnN0IENvbnRhaW5lckJveCYgY29udGFpbmVyQm94LCBPcHRpb25hbDxGb3JtYXR0aW5nQ29u
dGV4dDo6RXNjYXBlUmVhc29uPiBlc2NhcGVSZWFzb24pIGNvbnN0CiB7CiAgICAgYXV0byYgYm94
R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5lckJv
eCwgZXNjYXBlUmVhc29uKTsKICAgICByZXR1cm4geyB7IGJveEdlb21ldHJ5LmNvbnRlbnRCb3hM
ZWZ0KCksIGJveEdlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpIH0sIHsgYm94R2VvbWV0cnkuY29u
dGVudEJveFRvcCgpLCBjb21wdXRlZEhlaWdodChjb250YWluZXJCb3gpIH0gfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dl
b21ldHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1h
dHRpbmdHZW9tZXRyeS5oCmluZGV4IDhiYTkxYzg3NzFmOWYyNGJhMmI0NDJjMzRjNjc0YmFlMzhh
NTI3OWQuLjZjNTUwM2ZhMjk0MGNiZWJmMDhlYTA4YjNiY2I5ZjIwODI0ZWM3MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dl
b21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0
VW5pdCBjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IENvbnRhaW5l
ckJveCYpIGNvbnN0OwogCiAgICAgRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9yT3V0
T2ZGbG93Q29udGVudCBjb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29udGFp
bmVyQm94Jik7Ci0gICAgRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9ySW5GbG93Q29u
dGVudCBjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgQ29udGFpbmVyQm94JiwgT3B0
aW9uYWw8Rm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbj4gPSBXVEY6Om51bGxvcHQpOwor
ICAgIEZvcm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgY29uc3Ry
YWludHNGb3JJbkZsb3dDb250ZW50KGNvbnN0IENvbnRhaW5lckJveCYsIE9wdGlvbmFsPEZvcm1h
dHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb24+ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKIAogICAg
IE9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVkSGVpZ2h0KGNvbnN0IEJveCYsIE9wdGlvbmFs
PExheW91dFVuaXQ+IGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IFdURjo6bnVsbG9wdCkgY29uc3Q7
CiAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gY29tcHV0ZWRXaWR0aChjb25zdCBCb3gmLCBMYXlv
dXRVbml0IGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDk1MTc4ODE1MTc3MWQ0ZDVjMGNjZjJjZjc1NWNi
M2ZkMjBlZDRlZTMuLmRmOWEwMDEwNTg2YjBiY2YyOGNkMzA3NWUxYzZhMzNjMjE3Y2ZjMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2sv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjg2
LDE1ICsyODYsMTYgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVy
dGljYWxQb3NpdGlvbkZvckJveEFuZEFuY2VzdG9ycyhjb25zdAogICAgIC8vCiAgICAgLy8gVGhl
IGlkZWEgaGVyZSBpcyB0aGF0IGFzIGxvbmcgYXMgd2UgZG9uJ3QgY3Jvc3MgdGhlIGJsb2NrIGZv
cm1hdHRpbmcgY29udGV4dCBib3VuZGFyeSwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gcHJlLWNvbXB1
dGUgdGhlIGZpbmFsIHRvcCBwb3NpdGlvbi4KICAgICAvLyBGSVhNRTogd2UgY3VycmVudGx5IGRv
bid0IGFjY291bnQgZm9yIHRoZSAiY2xlYXIiIHByb3BlcnR5IHdoZW4gY29tcHV0aW5nIHRoZSBm
aW5hbCBwb3NpdGlvbiBmb3IgYW4gYW5jZXN0b3IuCisgICAgYXV0byBmb3JtYXR0aW5nR2VvbWV0
cnkgPSBnZW9tZXRyeSgpOwogICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSAmbGF5b3V0Qm94OyBh
bmNlc3RvciAmJiBhbmNlc3RvciAhPSAmcm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29u
dGFpbmluZ0Jsb2NrKCkpIHsKICAgICAgICAgYXV0byBjb25zdHJhaW50c0ZvckFuY2VzdG9yID0g
WyZdIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9jayA9IGFuY2VzdG9yLT5jb250
YWluaW5nQmxvY2soKTsKLSAgICAgICAgICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZy
b290KCkgPyBjb25zdHJhaW50c1BhaXIuZm9ybWF0dGluZ0NvbnRleHRSb290IDogZ2VvbWV0cnko
KS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAg
ICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50c1BhaXIu
Zm9ybWF0dGluZ0NvbnRleHRSb290IDogZm9ybWF0dGluZ0dlb21ldHJ5LmNvbnN0cmFpbnRzRm9y
SW5GbG93Q29udGVudChjb250YWluaW5nQmxvY2spOwogICAgICAgICB9KCk7CiAKLSAgICAgICAg
YXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2Fs
TWFyZ2luKCphbmNlc3RvciwgY29uc3RyYWludHNGb3JBbmNlc3Rvci5ob3Jpem9udGFsKTsKKyAg
ICAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0dlb21ldHJ5LmNv
bXB1dGVkVmVydGljYWxNYXJnaW4oKmFuY2VzdG9yLCBjb25zdHJhaW50c0ZvckFuY2VzdG9yLmhv
cml6b250YWwpOwogICAgICAgICBhdXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVy
dGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4u
YmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigw
KSB9OwotICAgICAgICBhdXRvIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29sbGFw
c2UoKS5wcmVjb21wdXRlZE1hcmdpbkJlZm9yZSgqYW5jZXN0b3IsIHVzZWROb25Db2xsYXBzZWRN
YXJnaW4pOworICAgICAgICBhdXRvIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29s
bGFwc2UoKS5wcmVjb21wdXRlZE1hcmdpbkJlZm9yZSgqYW5jZXN0b3IsIHVzZWROb25Db2xsYXBz
ZWRNYXJnaW4sIGZvcm1hdHRpbmdHZW9tZXRyeSk7CiAKICAgICAgICAgYXV0byYgYm94R2VvbWV0
cnkgPSBmb3JtYXR0aW5nU3RhdGUoKS5ib3hHZW9tZXRyeSgqYW5jZXN0b3IpOwogICAgICAgICBh
dXRvIG5vbkNvbGxhcHNlZFZhbHVlcyA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2Vk
VmFsdWVzIHsgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUubm9uQ29sbGFwc2VkVmFsdWUsIHsgfSB9
OwpAQCAtNjAzLDEyICs2MDQsMTIgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1cGRh
dGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZyhjb25zdCBCb3gmIGxheW8KIAogQmxvY2tG
b3JtYXR0aW5nR2VvbWV0cnkgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Z2VvbWV0cnkoKSBjb25z
dAogewotICAgIHJldHVybiBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSgqdGhpcyk7CisgICAgcmV0
dXJuIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5IHsgKnRoaXMgfTsKIH0KIAogQmxvY2tNYXJnaW5D
b2xsYXBzZSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjptYXJnaW5Db2xsYXBzZSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIEJsb2NrTWFyZ2luQ29sbGFwc2UoKnRoaXMpOworICAgIHJldHVybiBCbG9j
a01hcmdpbkNvbGxhcHNlIHsgbGF5b3V0U3RhdGUoKSwgZm9ybWF0dGluZ1N0YXRlKCkgfTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApp
bmRleCA0NWUzOGE3ODFkN2NhMWMwMjI5MzQ4N2QxMzVhOWMwMjJiYzdkNDAzLi45NTE3MTk4ZDNh
OGE1NDk5ZDAwOGNkMDBlYzgwMmUwMTJjMjcxODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApAQCAtOTAsNyArOTAsNyBAQCBDb250ZW50SGVp
Z2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNlZENv
bnRlbnRIZWlnaHRBbgogICAgICAgICB9CiAKICAgICAgICAgLy8gMi4gdGhlIGJvdHRvbSBlZGdl
IG9mIHRoZSBib3R0b20gKHBvc3NpYmx5IGNvbGxhcHNlZCkgbWFyZ2luIG9mIGl0cyBsYXN0IGlu
LWZsb3cgY2hpbGQsIGlmIHRoZSBjaGlsZCdzIGJvdHRvbSBtYXJnaW4uLi4KLSAgICAgICAgYXV0
byBtYXJnaW5Db2xsYXBzZSA9IEJsb2NrTWFyZ2luQ29sbGFwc2UgeyBmb3JtYXR0aW5nQ29udGV4
dCgpIH07CisgICAgICAgIGF1dG8gbWFyZ2luQ29sbGFwc2UgPSBCbG9ja01hcmdpbkNvbGxhcHNl
IHsgbGF5b3V0U3RhdGUoKSwgZm9ybWF0dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nU3RhdGUoKSB9
OwogICAgICAgICBhdXRvJiBsYXN0SW5GbG93Q2hpbGQgPSAqbGF5b3V0Q29udGFpbmVyLmxhc3RJ
bkZsb3dDaGlsZCgpOwogICAgICAgICBpZiAoIW1hcmdpbkNvbGxhcHNlLm1hcmdpbkFmdGVyQ29s
bGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxhc3RJbkZsb3dDaGlsZCkpIHsKICAgICAgICAg
ICAgIGF1dG8mIGxhc3RJbkZsb3dCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2Vv
bWV0cnlGb3JCb3gobGFzdEluRmxvd0NoaWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tG
b3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCBiZWQyOTkwMjAyYzNhNWM4OThhNmU3MmUyZWUyNjQw
MmVhMjdiMzY1Li42YTE5MWE5MzI1MTJmOWNlNDNjYTk1ODg4MDNlYjE1YjZkNGYwMGJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Js
b2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwCkBAIC04Niw3ICs4
Niw3IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6c3RyZXRj
aGVkSW5GbG93SGVpZ2h0SWZBcHBsaWNhYmxlKGNvCiAgICAgYm9keUJveENvbnRlbnRIZWlnaHQg
LT0gYm9keUJveEdlb21ldHJ5LnZlcnRpY2FsQm9yZGVyKCkgKyBib2R5Qm94R2VvbWV0cnkudmVy
dGljYWxQYWRkaW5nKCkudmFsdWVPcigwKTsKICAgICAvLyBCb2R5IGJveCBuZXZlciBjb2xsYXBz
ZXMgaXRzIHZlcnRpY2FsIG1hcmdpbnMgd2l0aCB0aGUgZG9jdW1lbnQgYm94IGJ1dCBpdCBtaWdo
dCBjb2xsYXBzZSBpdHMgbWFyZ2luIHdpdGggaXRzIGRlc2NlbmRhbnRzLgogICAgIGF1dG8gbm9u
Q29sbGFwc2VkTWFyZ2luID0gY29udGVudEhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJn
aW47Ci0gICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IEJsb2NrTWFyZ2luQ29sbGFwc2UgeyBmb3Jt
YXR0aW5nQ29udGV4dCB9OworICAgIGF1dG8gbWFyZ2luQ29sbGFwc2UgPSBCbG9ja01hcmdpbkNv
bGxhcHNlIHsgZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKSwgZm9ybWF0dGluZ0NvbnRl
eHQuZm9ybWF0dGluZ1N0YXRlKCkgfTsKICAgICBhdXRvIGNvbGxhcHNlZE1hcmdpbiA9IG1hcmdp
bkNvbGxhcHNlLmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGxheW91dEJveCwgbm9uQ29sbGFwc2Vk
TWFyZ2luKS5jb2xsYXBzZWRWYWx1ZXM7CiAgICAgYXV0byB1c2VkVmVydGljYWxNYXJnaW4gPSBj
b2xsYXBzZWRNYXJnaW4uYmVmb3JlLnZhbHVlT3Iobm9uQ29sbGFwc2VkTWFyZ2luLmJlZm9yZSk7
CiAgICAgdXNlZFZlcnRpY2FsTWFyZ2luICs9IGNvbGxhcHNlZE1hcmdpbi5pc0NvbGxhcHNlZFRo
cm91Z2ggPyBub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIgOiBjb2xsYXBzZWRNYXJnaW4uYWZ0ZXIu
dmFsdWVPcihub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWly
a3MuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxv
Y2tGb3JtYXR0aW5nUXVpcmtzLmgKaW5kZXggZmVhNmNmM2RjZGY5ZmRhMjExZjBlMjM0ZDc5NjY4
YWFkY2Q3ZTRlMS4uN2NmYmMyYzY1OTk1ZDUyNTQ2OGJhMWE1NjkyYjA5NzZiYjViYTJmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9C
bG9ja0Zvcm1hdHRpbmdRdWlya3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC0zMiw2ICszMiw4
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAorY2xhc3MgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDsKKwogY2xhc3MgQmxvY2tGb3JtYXR0aW5nUXVpcmtzIDogcHVi
bGljIEZvcm1hdHRpbmdRdWlya3MgewogcHVibGljOgogICAgIEJsb2NrRm9ybWF0dGluZ1F1aXJr
cyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAxNDNhMTNkNzA4YjM1Mzg3Yzk3ZWQ2OWVlYjY3Y2Rl
NTkxOTY5ZTM0Li43ZTc1ODAxOWY4YWQ2MWE0YzBlZGE2OWRhNGVhMWJjNTFkZWY0ZGI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Js
b2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTgyLDggKzgyLDEw
IEBAIHN0YXRpYyBib29sIGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dChjb25zdCBC
b3gmIGxheW91dEJveCkKICAgICByZXR1cm4gbGF5b3V0Qm94LmVzdGFibGlzaGVzQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCgpOwogfQogCi1CbG9ja01hcmdpbkNvbGxhcHNlOjpCbG9ja01hcmdpbkNv
bGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQpCi0gICAgOiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoYmxvY2tGb3JtYXR0aW5nQ29udGV4
dCkKK0Jsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3QgTGF5b3V0
U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgYmxvY2tGb3Jt
YXR0aW5nU3RhdGUpCisgICAgOiBtX2xheW91dFN0YXRlKGxheW91dFN0YXRlKQorICAgICwgbV9i
bG9ja0Zvcm1hdHRpbmdTdGF0ZShibG9ja0Zvcm1hdHRpbmdTdGF0ZSkKKyAgICAsIG1faW5RdWly
a3NNb2RlKGxheW91dFN0YXRlLmluUXVpcmtzTW9kZSgpKQogewogfQogCkBAIC05Myw3ICs5NSw3
IEBAIGJvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6aGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5
b3V0Qm94KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gRklYTUU6IHByZWNv
bXB1dGVkVmVydGljYWxQb3NpdGlvbkZvckZvcm1hdHRpbmdSb290IGxvZ2ljIGVuZHMgdXAgY2Fs
bGluZyBpbnRvIHRoaXMgZnVuY3Rpb24gd2hlbiB0aGUgbGF5b3V0Qm94IChmaXJzdCBpbmZsb3cg
Y2hpbGQpIGhhcwogICAgIC8vIG5vdCBiZWVuIGxhaWQgb3V0LgotICAgIHJldHVybiBmb3JtYXR0
aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdTdGF0ZSgpLmhhc0NsZWFyYW5jZShsYXlvdXRCb3gpOwor
ICAgIHJldHVybiBmb3JtYXR0aW5nU3RhdGUoKS5oYXNDbGVhcmFuY2UobGF5b3V0Qm94KTsKIH0K
IAogYm9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFy
ZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CkBAIC0xMjAsNyArMTIy
LDcgQEAgYm9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRo
UGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYKICAgICAvLyBodHRwczovL3d3dy53My5vcmcv
VFIvQ1NTMjEvYm94Lmh0bWwjY29sbGFwc2luZy1tYXJnaW5zCiAgICAgQVNTRVJUKGxheW91dEJv
eC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAKLSAgICBpZiAobGF5b3V0U3RhdGUoKS5pblF1aXJrc01v
ZGUoKSAmJiBCbG9ja0Zvcm1hdHRpbmdRdWlya3M6OnNob3VsZENvbGxhcHNlTWFyZ2luQmVmb3Jl
V2l0aFBhcmVudE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQorICAgIGlmIChpblF1aXJrc01vZGUo
KSAmJiBCbG9ja0Zvcm1hdHRpbmdRdWlya3M6OnNob3VsZENvbGxhcHNlTWFyZ2luQmVmb3JlV2l0
aFBhcmVudE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIC8vIE1hcmdpbnMgYmV0d2VlbiBhIGZsb2F0ZWQgYm94IGFuZCBhbnkgb3RoZXIgYm94IGRv
IG5vdCBjb2xsYXBzZS4KQEAgLTI1OCw3ICsyNjAsNyBAQCBib29sIEJsb2NrTWFyZ2luQ29sbGFw
c2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYg
bAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogCi0gICAgaWYg
KGxheW91dFN0YXRlKCkuaW5RdWlya3NNb2RlKCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpz
aG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxheW91dEJveCkp
CisgICAgaWYgKGluUXVpcmtzTW9kZSgpICYmIEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6c2hvdWxk
Q29sbGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlcihsYXlvdXRCb3gpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIE1hcmdpbnMgYmV0d2VlbiBhIGZsb2F0ZWQgYm94
IGFuZCBhbnkgb3RoZXIgYm94IGRvIG5vdCBjb2xsYXBzZS4KQEAgLTM0OSw3ICszNTEsNyBAQCBi
b29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aExhc3RJbkZs
b3dDaGlsZE1hcmdpbkFmdGVyKGNvbgogCiAgICAgLy8gVGhpcyBpcyBhIHF1aXJrIGJlaGF2aW9y
OiBXaGVuIHRoZSBtYXJnaW4gYWZ0ZXIgb2YgdGhlIGxhc3QgaW5mbG93IGNoaWxkIChvciBhIHBy
ZXZpb3VzIHNpYmxpbmcgd2l0aCBjb2xsYXBzZWQgdGhyb3VnaCBtYXJnaW5zKQogICAgIC8vIGNv
bGxhcHNlcyB3aXRoIGEgcXVpcmsgcGFyZW50J3MgdGhlIG1hcmdpbiBiZWZvcmUsIHRoZW4gdGhl
IHNhbWUgbWFyZ2luIGFmdGVyIGRvZXMgbm90IGNvbGxhcHNlcyB3aXRoIHRoZSBwYXJlbnQncyBt
YXJnaW4gYWZ0ZXIuCi0gICAgYXV0byBzaG91bGRJZ25vcmVDb2xsYXBzZWRNYXJnaW4gPSBsYXlv
dXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6c2hvdWxk
SWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KTsKKyAgICBhdXRvIHNob3VsZEln
bm9yZUNvbGxhcHNlZE1hcmdpbiA9IGluUXVpcmtzTW9kZSgpICYmIEJsb2NrRm9ybWF0dGluZ1F1
aXJrczo6c2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KTsKICAgICBp
ZiAoc2hvdWxkSWdub3JlQ29sbGFwc2VkTWFyZ2luICYmIG1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpbkJlZm9yZShsYXN0SW5GbG93Q2hpbGQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTQ3NywxMSArNDc5LDEwIEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrTWFy
Z2luQ29sbGFwc2U6Om1hcmdpblZhbHVlKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpCiAKIFVz
ZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01h
cmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBNYXJnaW5UeXBlIG1hcmdpblR5cGUpIGNvbnN0CiB7Ci0gICAgYXV0byYgZm9ybWF0dGluZ1N0
YXRlID0gZm9ybWF0dGluZ0NvbnRleHQoKS5mb3JtYXR0aW5nU3RhdGUoKTsKICAgICAvLyBCeSB0
aGUgdGltZSB3ZSBnZXQgaGVyZSBpbiBCRkMgbGF5b3V0IHRvIGdhdGhlciBwb3NpdGl2ZSBhbmQg
bmVnYXRpdmUgbWFyZ2luIHZhbHVlcyBmb3IgZWl0aGVyIGEgcHJldmlvdXMgc2libGluZyBvciBh
IGNoaWxkIGJveCwKICAgICAvLyB3ZSBtdXNoIGhhdmUgY29tcHV0ZWQgYW5kIGNhY2hlZCB0aG9z
ZSB2YWx1ZXMuCi0gICAgQVNTRVJUKGZvcm1hdHRpbmdTdGF0ZS5oYXNVc2VkVmVydGljYWxNYXJn
aW4obGF5b3V0Qm94KSk7Ci0gICAgYXV0byBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4gPSBmb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCkucG9zaXRp
dmVBbmROZWdhdGl2ZVZhbHVlczsKKyAgICBBU1NFUlQoZm9ybWF0dGluZ1N0YXRlKCkuaGFzVXNl
ZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCkpOworICAgIGF1dG8gcG9zaXRpdmVBbmROZWdhdGl2
ZVZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ1N0YXRlKCkudXNlZFZlcnRpY2FsTWFyZ2luKGxh
eW91dEJveCkucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlczsKICAgICByZXR1cm4gbWFyZ2luVHlw
ZSA9PSBNYXJnaW5UeXBlOjpCZWZvcmUgPyBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4uYmVmb3JlIDogcG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmFmdGVyOyAKIH0K
IApAQCAtNTAzLDcgKzUwNCw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwb3NpdGl2CiAgICAgLy8gMi4g
R2F0aGVyIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdmFsdWVzIGZyb20gcHJldmlvdXMg
aW5mbG93IHNpYmxpbmcgaWYgbWFyZ2lucyBhcmUgYWRqb2luaW5nLgogICAgIC8vIDMuIENvbXB1
dGUgbWluL21heCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgY29sbGFwc2VkIG1hcmdpbiB2YWx1ZXMg
dXNpbmcgbm9uLWNvbGxwYXNlZCBjb21wdXRlZCBtYXJnaW4gYmVmb3JlLgogICAgIGF1dG8gY29s
bGFwc2VkTWFyZ2luQmVmb3JlID0gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKGZp
cnN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwgcHJldmlvdVNpYmxpbmdDb2xsYXBzZWRN
YXJnaW5BZnRlcigpKTsKLSAgICBhdXRvIHNob3VsZElnbm9yZUNvbGxhcHNlZE1hcmdpbiA9IGNv
bGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIGxheW91dFN0YXRlKCkuaW5RdWlya3NNb2Rl
KCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01h
cmdpbihsYXlvdXRCb3gpOworICAgIGF1dG8gc2hvdWxkSWdub3JlQ29sbGFwc2VkTWFyZ2luID0g
Y29sbGFwc2VkTWFyZ2luQmVmb3JlLmlzUXVpcmsgJiYgaW5RdWlya3NNb2RlKCkgJiYgQmxvY2tG
b3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlvdXRC
b3gpOwogICAgIGlmIChzaG91bGRJZ25vcmVDb2xsYXBzZWRNYXJnaW4pCiAgICAgICAgIGNvbGxh
cHNlZE1hcmdpbkJlZm9yZSA9IHsgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuaAppbmRleCBkMjRkZjBlY2ExN2U0MDM4NzQwYjlmNTU4ODExYTdkMmU1YTIzYThjLi40
ZDc1NmMxNjEzMTg5ZGExMjQxYTA4NzFiZGQ4ODg5MDE2NTNhMWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29s
bGFwc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Js
b2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaApAQCAtMjcsMTkgKzI3LDIzIEBACiAKICNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlICJNYXJnaW5UeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAorY2xhc3MgQm94OworY2xhc3MgQmxvY2tGb3JtYXR0
aW5nR2VvbWV0cnk7CitjbGFzcyBCbG9ja0Zvcm1hdHRpbmdTdGF0ZTsKK2NsYXNzIExheW91dFN0
YXRlOworCiAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgbWFyZ2luIGNvbGxhcHNpbmcgZm9yIGJs
b2NrIGZvcm1hdHRpbmcgY29udGV4dC4KIGNsYXNzIEJsb2NrTWFyZ2luQ29sbGFwc2UgewogcHVi
bGljOgotICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dCYpOworICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZSYpOwogCiAgICAgVXNlZFZlcnRpY2FsTWFyZ2luIGNvbGxhcHNl
ZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFw
c2VkVmFsdWVzKTsKIAotICAgIFByZWNvbXB1dGVkTWFyZ2luQmVmb3JlIHByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzKTsKICAgICBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZUlnbm9yaW5nQ29sbGFwc2luZ1Rocm91
Z2goY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwog
CiAgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGNv
bnN0IEJveCYpIGNvbnN0OwpAQCAtNTcsMjQgKzYxLDI4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChjb25zdCBCb3gmKSBjb25zdDsKIAorICAgIFByZWNvbXB1
dGVkTWFyZ2luQmVmb3JlIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzLCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdH
ZW9tZXRyeSYpOworCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgTWFyZ2luVHlwZSB7IEJlZm9y
ZSwgQWZ0ZXIgfTsKICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQ
YWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmLCBNYXJnaW5UeXBl
KSBjb25zdDsKICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWly
OjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVy
dGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CiAgICAgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVN
YXJnaW5BZnRlcihjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZh
bHVlcykgY29uc3Q7CiAKLSAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRp
dmVQYWlyOjpWYWx1ZXMgcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNv
bnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsK
LSAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMg
cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYpIGNvbnN0OworICAg
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwcmVj
b21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMsIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0dlb21l
dHJ5JikgY29uc3Q7CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZl
UGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gm
LCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8
TGF5b3V0VW5pdD4gbWFyZ2luVmFsdWUoVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzKSBjb25zdDsKIAogICAgIGJvb2wgaGFzQ2xlYXJhbmNlKGNvbnN0
IEJveCYpIGNvbnN0OwogCi0gICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyByZXR1cm4g
bV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAgICBjb25zdCBMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250
ZXh0OyB9CisgICAgYm9vbCBpblF1aXJrc01vZGUoKSBjb25zdCB7IHJldHVybiBtX2luUXVpcmtz
TW9kZTsgfQorICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0U3RhdGU7IH0KKyAgICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9y
bWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdTdGF0ZTsgfQog
Ci0gICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgbV9ibG9ja0Zvcm1hdHRpbmdDb250
ZXh0OworICAgIGNvbnN0IExheW91dFN0YXRlJiBtX2xheW91dFN0YXRlOworICAgIGNvbnN0IEJs
b2NrRm9ybWF0dGluZ1N0YXRlJiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlOworICAgIGJvb2wgbV9p
blF1aXJrc01vZGUgeyBmYWxzZSB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2lu
Q29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IDkwOGU3M2RiNzNh
OGIwYjc0YjQ5NGQwOTE2YmJlMTg4MTdjMjYzZTcuLjVhYWZhM2ZhYjAzZTdmNmEzZDNmZTliZGVh
NzI0YmNkNWUwYzNlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1
dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTM5LDI1ICszOSwyNCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21w
dXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CitV
c2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tN
YXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSYgZm9ybWF0dGluZ0dl
b21ldHJ5KSBjb25zdAogewogICAgIGF1dG8mIGJsb2NrRm9ybWF0dGluZ1N0YXRlID0gZG93bmNh
c3Q8QmxvY2tGb3JtYXR0aW5nU3RhdGU+KGxheW91dFN0YXRlKCkuZm9ybWF0dGluZ1N0YXRlRm9y
Qm94KGxheW91dEJveCkpOwogICAgIGlmIChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5oYXNVc2VkVmVy
dGljYWxNYXJnaW4obGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuIGJsb2NrRm9ybWF0dGluZ1N0
YXRlLnVzZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gpLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1
ZXMuYmVmb3JlOwogCi0gICAgYXV0byBnZW9tZXRyeSA9IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5
IHsgZm9ybWF0dGluZ0NvbnRleHQoKSB9OwotICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRz
ID0gZ2VvbWV0cnkuY29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGxheW91dEJveC5jb250YWlu
aW5nQmxvY2soKSkuaG9yaXpvbnRhbDsKLSAgICBhdXRvIGNvbXB1dGVkVmVydGljYWxNYXJnaW4g
PSBnZW9tZXRyeS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzKTsKKyAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IGZvcm1hdHRpbmdH
ZW9tZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdC
bG9jaygpKS5ob3Jpem9udGFsOworICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGZv
cm1hdHRpbmdHZW9tZXRyeS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzKTsKICAgICBhdXRvIG5vbkNvbGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0
aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHsgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5i
ZWZvcmUudmFsdWVPcigwKSwgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDAp
IH07Ci0gICAgcmV0dXJuIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShs
YXlvdXRCb3gsIG5vbkNvbGxhcHNlZE1hcmdpbik7CisgICAgcmV0dXJuIHByZWNvbXB1dGVkUG9z
aXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZE1hcmdpbiwg
Zm9ybWF0dGluZ0dlb21ldHJ5KTsKIH0KIAotVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFu
ZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9z
aXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAor
VXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2Nr
TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShj
b25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1
ZXMgbm9uQ29sbGFwc2VkVmFsdWVzLCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSYgZm9y
bWF0dGluZ0dlb21ldHJ5KSBjb25zdAogewogICAgIGF1dG8gZmlyc3RDaGlsZENvbGxhcHNlZE1h
cmdpbkJlZm9yZSA9IFsmXSgpIC0+IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcyB7CiAgICAgICAgIGlmICghbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0
aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSkKICAgICAgICAgICAgIHJl
dHVybiB7IH07Ci0gICAgICAgIHJldHVybiBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1
ZXMoKmRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KS5maXJzdEluRmxvd0NoaWxkKCkp
OworICAgICAgICByZXR1cm4gcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKCpkb3du
Y2FzdDxDb250YWluZXJCb3g+KGxheW91dEJveCkuZmlyc3RJbkZsb3dDaGlsZCgpLCBmb3JtYXR0
aW5nR2VvbWV0cnkpOwogICAgIH07CiAKICAgICBhdXRvIHByZXZpb3VTaWJsaW5nQ29sbGFwc2Vk
TWFyZ2luQWZ0ZXIgPSBbJl0oKSAtPiBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVn
YXRpdmVQYWlyOjpWYWx1ZXMgewpAQCAtNzIsNyArNzEsNyBAQCBVc2VkVmVydGljYWxNYXJnaW46
OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJl
Y29tcAogICAgIC8vIDIuIEdhdGhlciBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2luIHZhbHVl
cyBmcm9tIHByZXZpb3VzIGluZmxvdyBzaWJsaW5nIGlmIG1hcmdpbnMgYXJlIGFkam9pbmluZy4K
ICAgICAvLyAzLiBDb21wdXRlIG1pbi9tYXggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGNvbGxhcHNl
ZCBtYXJnaW4gdmFsdWVzIHVzaW5nIG5vbi1jb2xscGFzZWQgY29tcHV0ZWQgbWFyZ2luIGJlZm9y
ZS4KICAgICBhdXRvIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSA9IGNvbXB1dGVkUG9zaXRpdmVBbmRO
ZWdhdGl2ZU1hcmdpbihmaXJzdENoaWxkQ29sbGFwc2VkTWFyZ2luQmVmb3JlKCksIHByZXZpb3VT
aWJsaW5nQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgYXV0byBzaG91bGRJZ25vcmVDb2xs
YXBzZWRNYXJnaW4gPSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUuaXNRdWlyayAmJiBsYXlvdXRTdGF0
ZSgpLmluUXVpcmtzTW9kZSgpICYmIEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6c2hvdWxkSWdub3Jl
Q29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KTsKKyAgICBhdXRvIHNob3VsZElnbm9yZUNv
bGxhcHNlZE1hcmdpbiA9IGNvbGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIGluUXVpcmtz
TW9kZSgpICYmIEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6c2hvdWxkSWdub3JlQ29sbGFwc2VkUXVp
cmtNYXJnaW4obGF5b3V0Qm94KTsKICAgICBpZiAoc2hvdWxkSWdub3JlQ29sbGFwc2VkTWFyZ2lu
KQogICAgICAgICBjb2xsYXBzZWRNYXJnaW5CZWZvcmUgPSB7IH07CiAKQEAgLTg1LDE0ICs4NCwx
NCBAQCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMg
QmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcAogICAgIHJldHVybiBjb21wdXRlZFBvc2l0aXZl
QW5kTmVnYXRpdmVNYXJnaW4oY29sbGFwc2VkTWFyZ2luQmVmb3JlLCBub25Db2xsYXBzZWRCZWZv
cmUpOwogfQogCi1QcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBCbG9ja01hcmdpbkNvbGxhcHNlOjpw
cmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgdXNlZE5vbkNvbGxhcHNlZE1hcmdpbikKK1ByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFyZ2lu
QmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxh
cHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luLCBjb25zdCBCbG9ja0Zvcm1hdHRpbmdH
ZW9tZXRyeSYgZm9ybWF0dGluZ0dlb21ldHJ5KQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNC
bG9ja0xldmVsQm94KCkpOwogICAgIC8vIERvbid0IHByZS1jb21wdXRlIHZlcnRpY2FsIG1hcmdp
bnMgZm9yIG91dCBvZiBmbG93IGJveGVzLgogICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3co
KSB8fCBsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSk7CiAgICAgQVNTRVJUKCFsYXlv
dXRCb3guaXNSZXBsYWNlZEJveCgpKTsKIAotICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1hcmdp
bkJlZm9yZSA9IHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRC
b3gsIHVzZWROb25Db2xsYXBzZWRNYXJnaW4pOworICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2ZU1h
cmdpbkJlZm9yZSA9IHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlv
dXRCb3gsIHVzZWROb25Db2xsYXBzZWRNYXJnaW4sIGZvcm1hdHRpbmdHZW9tZXRyeSk7CiAgICAg
YXV0byBjb2xsYXBzZWRNYXJnaW5CZWZvcmUgPSBtYXJnaW5WYWx1ZShwb3NpdGl2ZU5lZ2F0aXZl
TWFyZ2luQmVmb3JlKTsKICAgICByZXR1cm4geyB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luLmJlZm9y
ZSwgY29sbGFwc2VkTWFyZ2luQmVmb3JlLCBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIH07
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428783</attachid>
            <date>2021-05-16 06:55:49 -0700</date>
            <delta_ts>2021-05-16 08:01:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225745-20210516065549.patch</filename>
            <type>text/plain</type>
            <size>25299</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTdhOTY5N2VhMmZkNjNi
ZWEzOTI4MWE3ZTQxZGM3ZGY0ZWRlNDhiMC4uNTNhNTcwMTgxZDc4YWE2ZmEyNjg2ZmExMTkwZTMw
MjM1ODc1MGY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTA1LTE2ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBDbGVhbnVwIG1hcmdp
biBjb2xsYXBzaW5nIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3NDUKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4K
KworICAgICAgICBCbG9ja01hcmdpbkNvbGxhcHNlIG5lZWRzIExheW91dFN0YXRlIGFuZCBCbG9j
a0Zvcm1hdHRpbmdTdGF0ZSBvbmx5LgorCisgICAgICAgICogbGF5b3V0L01hcmdpblR5cGVzLmg6
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbnN0
cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRy
eS5oOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQm94QW5kQW5jZXN0b3Jz
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Z2Vv
bWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjptYXJnaW5Db2xsYXBzZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZsb3dOb25SZXBsYWNl
ZENvbnRlbnRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHRJZkFw
cGxpY2FibGUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxv
Y2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6QmxvY2tNYXJnaW5Db2xsYXBzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Omhhc0NsZWFyYW5jZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxh
cHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aExhc3RJbkZs
b3dDaGlsZE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVN
YXJnaW5CZWZvcmUgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
bG9ja01hcmdpbkNvbGxhcHNlOjppblF1aXJrc01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpsYXlvdXRTdGF0ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdTdGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6
OmxheW91dFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tN
YXJnaW5Db2xsYXBzZTo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdp
bkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xs
YXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2
ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
QmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOgorCiAyMDIxLTA1
LTE2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBDbGVh
bnVwIEZvcm1hdHRpbmdRdWlyayBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvTWFyZ2luVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJnaW5UeXBlcy5o
CmluZGV4IDMyOTY4Y2RiZGM0MTI0YzQ4OGQwOTQ4OGQyZGRjY2I2ZDZhMGY3NWUuLmVhYTI0MmYx
OGRmMGU5YTcyZTJlM2QwMmI1NzVhYjY3YjE5Zjg2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9NYXJnaW5UeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9NYXJn
aW5UeXBlcy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkKIAorI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNsdWRlIDx3dGYvT3B0
aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwCmluZGV4IGQ2MmQ3M2I4MTExMDM1ZGQ1MWEwNThiNTcxNjM1ZGNlOGU5NGEyYTUuLmM5ZmIz
ZmIxNDNjOThjNmQyYjlkOWViZTE0MGYxYWVmZTZlZDg5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdH
ZW9tZXRyeS5jcHAKQEAgLTExNTksNyArMTE1OSw3IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpDb25z
dHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQgRm9ybWF0dGluZ0dlb21ldHJ5Ojpjb25zdHJhaW50
CiAgICAgICAgIGJveEdlb21ldHJ5LmNvbnRlbnRCb3hXaWR0aCgpIH07CiB9CiAKLUZvcm1hdHRp
bmdDb250ZXh0OjpDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgRm9ybWF0dGluZ0dlb21ldHJ5
Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgQ29udGFpbmVyQm94JiBjb250YWlu
ZXJCb3gsIE9wdGlvbmFsPEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb24+IGVzY2FwZVJl
YXNvbikKK0Zvcm1hdHRpbmdDb250ZXh0OjpDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgRm9y
bWF0dGluZ0dlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgQ29udGFp
bmVyQm94JiBjb250YWluZXJCb3gsIE9wdGlvbmFsPEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVS
ZWFzb24+IGVzY2FwZVJlYXNvbikgY29uc3QKIHsKICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmVyQm94LCBlc2NhcGVSZWFz
b24pOwogICAgIHJldHVybiB7IHsgYm94R2VvbWV0cnkuY29udGVudEJveExlZnQoKSwgYm94R2Vv
bWV0cnkuY29udGVudEJveFdpZHRoKCkgfSwgeyBib3hHZW9tZXRyeS5jb250ZW50Qm94VG9wKCks
IGNvbXB1dGVkSGVpZ2h0KGNvbnRhaW5lckJveCkgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5
LmgKaW5kZXggOGJhOTFjODc3MWY5ZjI0YmEyYjQ0MmMzNGM2NzRiYWUzOGE1Mjc5ZC4uNmM1NTAz
ZmEyOTQwY2JlYmYwOGVhMDhiM2JjYjlmMjA4MjRlYzcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9t
ZXRyeS5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGNvbnRlbnRI
ZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQ29udGFpbmVyQm94JikgY29uc3Q7
CiAKICAgICBGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50
IGNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBDb250YWluZXJCb3gmKTsKLSAg
ICBGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGNvbnN0cmFp
bnRzRm9ySW5GbG93Q29udGVudChjb25zdCBDb250YWluZXJCb3gmLCBPcHRpb25hbDxGb3JtYXR0
aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uPiA9IFdURjo6bnVsbG9wdCk7CisgICAgRm9ybWF0dGlu
Z0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdHJhaW50c0ZvckluRmxv
d0NvbnRlbnQoY29uc3QgQ29udGFpbmVyQm94JiwgT3B0aW9uYWw8Rm9ybWF0dGluZ0NvbnRleHQ6
OkVzY2FwZVJlYXNvbj4gPSBXVEY6Om51bGxvcHQpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gY29tcHV0ZWRIZWlnaHQoY29uc3QgQm94JiwgT3B0aW9uYWw8TGF5b3V0VW5pdD4g
Y29udGFpbmluZ0Jsb2NrSGVpZ2h0ID0gV1RGOjpudWxsb3B0KSBjb25zdDsKICAgICBPcHRpb25h
bDxMYXlvdXRVbml0PiBjb21wdXRlZFdpZHRoKGNvbnN0IEJveCYsIExheW91dFVuaXQgY29udGFp
bmluZ0Jsb2NrV2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKaW5kZXggNzQxOGQwMjkyOTdiYzhhMzIxOWRlNjAxZThlODRkNzU5NjgwNjkxYy4u
OTdiMzg0OTI1ZDc1MWY1ZGYwNWVmNmU1MTk1YWIwZTA2MDZhYmJlYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yODYsMTUgKzI4NiwxNiBA
QCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9u
Rm9yQm94QW5kQW5jZXN0b3JzKGNvbnN0CiAgICAgLy8KICAgICAvLyBUaGUgaWRlYSBoZXJlIGlz
IHRoYXQgYXMgbG9uZyBhcyB3ZSBkb24ndCBjcm9zcyB0aGUgYmxvY2sgZm9ybWF0dGluZyBjb250
ZXh0IGJvdW5kYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBwcmUtY29tcHV0ZSB0aGUgZmluYWwg
dG9wIHBvc2l0aW9uLgogICAgIC8vIEZJWE1FOiB3ZSBjdXJyZW50bHkgZG9uJ3QgYWNjb3VudCBm
b3IgdGhlICJjbGVhciIgcHJvcGVydHkgd2hlbiBjb21wdXRpbmcgdGhlIGZpbmFsIHBvc2l0aW9u
IGZvciBhbiBhbmNlc3Rvci4KKyAgICBhdXRvIGZvcm1hdHRpbmdHZW9tZXRyeSA9IGdlb21ldHJ5
KCk7CiAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9ICZsYXlvdXRCb3g7IGFuY2VzdG9yICYmIGFu
Y2VzdG9yICE9ICZyb290KCk7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2so
KSkgewogICAgICAgICBhdXRvIGNvbnN0cmFpbnRzRm9yQW5jZXN0b3IgPSBbJl0gewogICAgICAg
ICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygp
OwotICAgICAgICAgICAgcmV0dXJuICZjb250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/IGNvbnN0
cmFpbnRzUGFpci5mb3JtYXR0aW5nQ29udGV4dFJvb3QgOiBnZW9tZXRyeSgpLmNvbnN0cmFpbnRz
Rm9ySW5GbG93Q29udGVudChjb250YWluaW5nQmxvY2spOworICAgICAgICAgICAgcmV0dXJuICZj
b250YWluaW5nQmxvY2sgPT0gJnJvb3QoKSA/IGNvbnN0cmFpbnRzUGFpci5mb3JtYXR0aW5nQ29u
dGV4dFJvb3QgOiBmb3JtYXR0aW5nR2VvbWV0cnkuY29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50
KGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIH0oKTsKIAotICAgICAgICBhdXRvIGNvbXB1dGVk
VmVydGljYWxNYXJnaW4gPSBnZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4oKmFuY2Vz
dG9yLCBjb25zdHJhaW50c0ZvckFuY2VzdG9yLmhvcml6b250YWwpOworICAgICAgICBhdXRvIGNv
bXB1dGVkVmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nR2VvbWV0cnkuY29tcHV0ZWRWZXJ0aWNh
bE1hcmdpbigqYW5jZXN0b3IsIGNvbnN0cmFpbnRzRm9yQW5jZXN0b3IuaG9yaXpvbnRhbCk7CiAg
ICAgICAgIGF1dG8gdXNlZE5vbkNvbGxhcHNlZE1hcmdpbiA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzIHsgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVP
cigwKSwgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApIH07Ci0gICAgICAg
IGF1dG8gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBtYXJnaW5Db2xsYXBzZSgpLnByZWNvbXB1
dGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvciwgdXNlZE5vbkNvbGxhcHNlZE1hcmdpbik7CisgICAg
ICAgIGF1dG8gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBtYXJnaW5Db2xsYXBzZSgpLnByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvciwgdXNlZE5vbkNvbGxhcHNlZE1hcmdpbiwgZm9y
bWF0dGluZ0dlb21ldHJ5KTsKIAogICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRp
bmdTdGF0ZSgpLmJveEdlb21ldHJ5KCphbmNlc3Rvcik7CiAgICAgICAgIGF1dG8gbm9uQ29sbGFw
c2VkVmFsdWVzID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBwcmVj
b21wdXRlZE1hcmdpbkJlZm9yZS5ub25Db2xsYXBzZWRWYWx1ZSwgeyB9IH07CkBAIC02MDMsMTIg
KzYwNCwxMiBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVwZGF0ZU1hcmdpbkFmdGVy
Rm9yUHJldmlvdXNTaWJsaW5nKGNvbnN0IEJveCYgbGF5bwogCiBCbG9ja0Zvcm1hdHRpbmdHZW9t
ZXRyeSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpnZW9tZXRyeSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5KCp0aGlzKTsKKyAgICByZXR1cm4gQmxvY2tGb3Jt
YXR0aW5nR2VvbWV0cnkgeyAqdGhpcyB9OwogfQogCiBCbG9ja01hcmdpbkNvbGxhcHNlIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Om1hcmdpbkNvbGxhcHNlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
QmxvY2tNYXJnaW5Db2xsYXBzZSgqdGhpcyk7CisgICAgcmV0dXJuIEJsb2NrTWFyZ2luQ29sbGFw
c2UgeyBsYXlvdXRTdGF0ZSgpLCBmb3JtYXR0aW5nU3RhdGUoKSB9OwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmluZGV4IDdkMGI1NmEx
ZWMzM2Y1OTY3YjUxMjcwMmJlOWUxYmQ5MWU3YWVlZmQuLjE0ZGNlMWQ4YWQzMDNiNTg4ZjhmZjQ5
YTA4NjBhNjZmNjY0Y2RjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nR2VvbWV0cnkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4g
QmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkQ29udGVudEhlaWdodEFu
CiAgICAgICAgIH0KIAogICAgICAgICAvLyAyLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGJvdHRv
bSAocG9zc2libHkgY29sbGFwc2VkKSBtYXJnaW4gb2YgaXRzIGxhc3QgaW4tZmxvdyBjaGlsZCwg
aWYgdGhlIGNoaWxkJ3MgYm90dG9tIG1hcmdpbi4uLgotICAgICAgICBhdXRvIG1hcmdpbkNvbGxh
cHNlID0gQmxvY2tNYXJnaW5Db2xsYXBzZSB7IGZvcm1hdHRpbmdDb250ZXh0KCkgfTsKKyAgICAg
ICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IEJsb2NrTWFyZ2luQ29sbGFwc2UgeyBsYXlvdXRTdGF0
ZSgpLCBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdTdGF0ZSgpIH07CiAgICAgICAgIGF1
dG8mIGxhc3RJbkZsb3dDaGlsZCA9ICpsYXlvdXRDb250YWluZXIubGFzdEluRmxvd0NoaWxkKCk7
CiAgICAgICAgIGlmICghbWFyZ2luQ29sbGFwc2UubWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFy
ZW50TWFyZ2luQWZ0ZXIobGFzdEluRmxvd0NoaWxkKSkgewogICAgICAgICAgICAgYXV0byYgbGFz
dEluRmxvd0JveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChs
YXN0SW5GbG93Q2hpbGQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWly
a3MuY3BwCmluZGV4IGJlZDI5OTAyMDJjM2E1Yzg5OGE2ZTcyZTJlZTI2NDAyZWEyN2IzNjUuLjZh
MTkxYTkzMjUxMmY5Y2U0M2NhOTU4ODgwM2ViMTViNmQ0ZjAwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5n
UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgT3B0aW9u
YWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWln
aHRJZkFwcGxpY2FibGUoY28KICAgICBib2R5Qm94Q29udGVudEhlaWdodCAtPSBib2R5Qm94R2Vv
bWV0cnkudmVydGljYWxCb3JkZXIoKSArIGJvZHlCb3hHZW9tZXRyeS52ZXJ0aWNhbFBhZGRpbmco
KS52YWx1ZU9yKDApOwogICAgIC8vIEJvZHkgYm94IG5ldmVyIGNvbGxhcHNlcyBpdHMgdmVydGlj
YWwgbWFyZ2lucyB3aXRoIHRoZSBkb2N1bWVudCBib3ggYnV0IGl0IG1pZ2h0IGNvbGxhcHNlIGl0
cyBtYXJnaW4gd2l0aCBpdHMgZGVzY2VuZGFudHMuCiAgICAgYXV0byBub25Db2xsYXBzZWRNYXJn
aW4gPSBjb250ZW50SGVpZ2h0QW5kTWFyZ2luLm5vbkNvbGxhcHNlZE1hcmdpbjsKLSAgICBhdXRv
IG1hcmdpbkNvbGxhcHNlID0gQmxvY2tNYXJnaW5Db2xsYXBzZSB7IGZvcm1hdHRpbmdDb250ZXh0
IH07CisgICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IEJsb2NrTWFyZ2luQ29sbGFwc2UgeyBmb3Jt
YXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpLCBmb3JtYXR0aW5nQ29udGV4dC5mb3JtYXR0aW5n
U3RhdGUoKSB9OwogICAgIGF1dG8gY29sbGFwc2VkTWFyZ2luID0gbWFyZ2luQ29sbGFwc2UuY29s
bGFwc2VkVmVydGljYWxWYWx1ZXMobGF5b3V0Qm94LCBub25Db2xsYXBzZWRNYXJnaW4pLmNvbGxh
cHNlZFZhbHVlczsKICAgICBhdXRvIHVzZWRWZXJ0aWNhbE1hcmdpbiA9IGNvbGxhcHNlZE1hcmdp
bi5iZWZvcmUudmFsdWVPcihub25Db2xsYXBzZWRNYXJnaW4uYmVmb3JlKTsKICAgICB1c2VkVmVy
dGljYWxNYXJnaW4gKz0gY29sbGFwc2VkTWFyZ2luLmlzQ29sbGFwc2VkVGhyb3VnaCA/IG5vbkNv
bGxhcHNlZE1hcmdpbi5hZnRlciA6IGNvbGxhcHNlZE1hcmdpbi5hZnRlci52YWx1ZU9yKG5vbkNv
bGxhcHNlZE1hcmdpbi5hZnRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdR
dWlya3MuaAppbmRleCBmZWE2Y2YzZGNkZjlmZGEyMTFmMGUyMzRkNzk2NjhhYWRjZDdlNGUxLi43
Y2ZiYzJjNjU5OTVkNTI1NDY4YmExYTU2OTJiMDk3NmJiNWJhMmZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGlu
Z1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmgKQEAgLTMyLDYgKzMyLDggQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCitjbGFzcyBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OworCiBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdRdWlya3MgOiBwdWJsaWMgRm9ybWF0dGlu
Z1F1aXJrcyB7CiBwdWJsaWM6CiAgICAgQmxvY2tGb3JtYXR0aW5nUXVpcmtzKGNvbnN0IEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFw
c2UuY3BwCmluZGV4IGFkMmIwODE5ZjkxOThlNDM0Y2Y4ZWU1MmFjNjMyODc5ODRkMDVlY2QuLmM2
NzUyZjViODA2NDVhOWJjZWI2MDEzNjlkMDRlYTc2YmEyMjY0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xs
YXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtODIsOCArODIsMTAgQEAgc3RhdGljIGJv
b2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYgbGF5b3V0Qm94
KQogICAgIHJldHVybiBsYXlvdXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
KCk7CiB9CiAKLUJsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3Qg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dCkKLSAgICA6IG1f
YmxvY2tGb3JtYXR0aW5nQ29udGV4dChibG9ja0Zvcm1hdHRpbmdDb250ZXh0KQorQmxvY2tNYXJn
aW5Db2xsYXBzZTo6QmxvY2tNYXJnaW5Db2xsYXBzZShjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0
U3RhdGUsIGNvbnN0IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBibG9ja0Zvcm1hdHRpbmdTdGF0ZSkK
KyAgICA6IG1fbGF5b3V0U3RhdGUobGF5b3V0U3RhdGUpCisgICAgLCBtX2Jsb2NrRm9ybWF0dGlu
Z1N0YXRlKGJsb2NrRm9ybWF0dGluZ1N0YXRlKQorICAgICwgbV9pblF1aXJrc01vZGUobGF5b3V0
U3RhdGUuaW5RdWlya3NNb2RlKCkpCiB7CiB9CiAKQEAgLTkzLDcgKzk1LDcgQEAgYm9vbCBCbG9j
a01hcmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBGSVhNRTogcHJlY29tcHV0ZWRWZXJ0aWNh
bFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QgbG9naWMgZW5kcyB1cCBjYWxsaW5nIGludG8gdGhp
cyBmdW5jdGlvbiB3aGVuIHRoZSBsYXlvdXRCb3ggKGZpcnN0IGluZmxvdyBjaGlsZCkgaGFzCiAg
ICAgLy8gbm90IGJlZW4gbGFpZCBvdXQuCi0gICAgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0KCku
Zm9ybWF0dGluZ1N0YXRlKCkuaGFzQ2xlYXJhbmNlKGxheW91dEJveCk7CisgICAgcmV0dXJuIGZv
cm1hdHRpbmdTdGF0ZSgpLmhhc0NsZWFyYW5jZShsYXlvdXRCb3gpOwogfQogCiBib29sIEJsb2Nr
TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRl
cihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKQEAgLTEyMCw3ICsxMjIsNyBAQCBib29sIEJs
b2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5C
ZWZvcmUoY29uc3QgQm94JgogICAgIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9ib3gu
aHRtbCNjb2xsYXBzaW5nLW1hcmdpbnMKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZl
bEJveCgpKTsKIAotICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIEJsb2Nr
Rm9ybWF0dGluZ1F1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFy
Z2luQmVmb3JlKGxheW91dEJveCkpCisgICAgaWYgKGluUXVpcmtzTW9kZSgpICYmIEJsb2NrRm9y
bWF0dGluZ1F1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFyZ2lu
QmVmb3JlKGxheW91dEJveCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gTWFyZ2lu
cyBiZXR3ZWVuIGEgZmxvYXRlZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNl
LgpAQCAtMjU4LDcgKzI2MCw3IEBAIGJvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0
ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsCiB7CiAgICAgQVNT
RVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAKLSAgICBpZiAobGF5b3V0U3RhdGUo
KS5pblF1aXJrc01vZGUoKSAmJiBCbG9ja0Zvcm1hdHRpbmdRdWlya3M6OnNob3VsZENvbGxhcHNl
TWFyZ2luQWZ0ZXJXaXRoUGFyZW50TWFyZ2luQWZ0ZXIobGF5b3V0Qm94KSkKKyAgICBpZiAoaW5R
dWlya3NNb2RlKCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRDb2xsYXBzZU1hcmdp
bkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxheW91dEJveCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVuIGEgZmxvYXRlZCBib3ggYW5kIGFueSBvdGhl
ciBib3ggZG8gbm90IGNvbGxhcHNlLgpAQCAtMzQ5LDcgKzM1MSw3IEBAIGJvb2wgQmxvY2tNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxkTWFyZ2lu
QWZ0ZXIoY29uCiAKICAgICAvLyBUaGlzIGlzIGEgcXVpcmsgYmVoYXZpb3I6IFdoZW4gdGhlIG1h
cmdpbiBhZnRlciBvZiB0aGUgbGFzdCBpbmZsb3cgY2hpbGQgKG9yIGEgcHJldmlvdXMgc2libGlu
ZyB3aXRoIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdpbnMpCiAgICAgLy8gY29sbGFwc2VzIHdpdGgg
YSBxdWlyayBwYXJlbnQncyB0aGUgbWFyZ2luIGJlZm9yZSwgdGhlbiB0aGUgc2FtZSBtYXJnaW4g
YWZ0ZXIgZG9lcyBub3QgY29sbGFwc2VzIHdpdGggdGhlIHBhcmVudCdzIG1hcmdpbiBhZnRlci4K
LSAgICBhdXRvIHNob3VsZElnbm9yZUNvbGxhcHNlZE1hcmdpbiA9IGxheW91dFN0YXRlKCkuaW5R
dWlya3NNb2RlKCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJZ25vcmVDb2xsYXBz
ZWRRdWlya01hcmdpbihsYXlvdXRCb3gpOworICAgIGF1dG8gc2hvdWxkSWdub3JlQ29sbGFwc2Vk
TWFyZ2luID0gaW5RdWlya3NNb2RlKCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJ
Z25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlvdXRCb3gpOwogICAgIGlmIChzaG91bGRJZ25v
cmVDb2xsYXBzZWRNYXJnaW4gJiYgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2lu
QmVmb3JlKGxhc3RJbkZsb3dDaGlsZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNDc3
LDExICs0NzksMTAgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luVmFsdWUoVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGkKIAogVXNlZFZlcnRpY2FsTWFy
Z2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6
OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRCb3gsIE1hcmdpblR5cGUg
bWFyZ2luVHlwZSkgY29uc3QKIHsKLSAgICBhdXRvJiBmb3JtYXR0aW5nU3RhdGUgPSBmb3JtYXR0
aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIC8vIEJ5IHRoZSB0aW1lIHdlIGdl
dCBoZXJlIGluIEJGQyBsYXlvdXQgdG8gZ2F0aGVyIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJn
aW4gdmFsdWVzIGZvciBlaXRoZXIgYSBwcmV2aW91cyBzaWJsaW5nIG9yIGEgY2hpbGQgYm94LAog
ICAgIC8vIHdlIG11c2ggaGF2ZSBjb21wdXRlZCBhbmQgY2FjaGVkIHRob3NlIHZhbHVlcy4KLSAg
ICBBU1NFUlQoZm9ybWF0dGluZ1N0YXRlLmhhc1VzZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gp
KTsKLSAgICBhdXRvIHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbiA9IGZvcm1hdHRp
bmdTdGF0ZS51c2VkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94KS5wb3NpdGl2ZUFuZE5lZ2F0aXZl
VmFsdWVzOworICAgIEFTU0VSVChmb3JtYXR0aW5nU3RhdGUoKS5oYXNVc2VkVmVydGljYWxNYXJn
aW4obGF5b3V0Qm94KSk7CisgICAgYXV0byBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJn
aW4gPSBmb3JtYXR0aW5nU3RhdGUoKS51c2VkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94KS5wb3Np
dGl2ZUFuZE5lZ2F0aXZlVmFsdWVzOwogICAgIHJldHVybiBtYXJnaW5UeXBlID09IE1hcmdpblR5
cGU6OkJlZm9yZSA/IHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5iZWZvcmUgOiBw
b3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYWZ0ZXI7IAogfQogCkBAIC01MDMsNyAr
NTA0LDcgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFs
dWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXYKICAgICAvLyAyLiBHYXRoZXIgcG9zaXRp
dmUgYW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZXMgZnJvbSBwcmV2aW91cyBpbmZsb3cgc2libGlu
ZyBpZiBtYXJnaW5zIGFyZSBhZGpvaW5pbmcuCiAgICAgLy8gMy4gQ29tcHV0ZSBtaW4vbWF4IHBv
c2l0aXZlIGFuZCBuZWdhdGl2ZSBjb2xsYXBzZWQgbWFyZ2luIHZhbHVlcyB1c2luZyBub24tY29s
bHBhc2VkIGNvbXB1dGVkIG1hcmdpbiBiZWZvcmUuCiAgICAgYXV0byBjb2xsYXBzZWRNYXJnaW5C
ZWZvcmUgPSBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oZmlyc3RDaGlsZENvbGxh
cHNlZE1hcmdpbkJlZm9yZSgpLCBwcmV2aW91U2libGluZ0NvbGxhcHNlZE1hcmdpbkFmdGVyKCkp
OwotICAgIGF1dG8gc2hvdWxkSWdub3JlQ29sbGFwc2VkTWFyZ2luID0gY29sbGFwc2VkTWFyZ2lu
QmVmb3JlLmlzUXVpcmsgJiYgbGF5b3V0U3RhdGUoKS5pblF1aXJrc01vZGUoKSAmJiBCbG9ja0Zv
cm1hdHRpbmdRdWlya3M6OnNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGxheW91dEJv
eCk7CisgICAgYXV0byBzaG91bGRJZ25vcmVDb2xsYXBzZWRNYXJnaW4gPSBjb2xsYXBzZWRNYXJn
aW5CZWZvcmUuaXNRdWlyayAmJiBpblF1aXJrc01vZGUoKSAmJiBCbG9ja0Zvcm1hdHRpbmdRdWly
a3M6OnNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGxheW91dEJveCk7CiAgICAgaWYg
KHNob3VsZElnbm9yZUNvbGxhcHNlZE1hcmdpbikKICAgICAgICAgY29sbGFwc2VkTWFyZ2luQmVm
b3JlID0geyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oCmluZGV4
IGQyNGRmMGVjYTE3ZTQwMzg3NDBiOWY1NTg4MTFhN2QyZTVhMjNhOGMuLjRkNzU2YzE2MTMxODlk
YTEyNDFhMDg3MWJkZDg4ODkwMTY1M2ExYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJn
aW5Db2xsYXBzZS5oCkBAIC0yNywxOSArMjcsMjMgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIk1hcmdpblR5cGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSBMYXlvdXQgewogCitjbGFzcyBCb3g7CitjbGFzcyBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeTsK
K2NsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlOworY2xhc3MgTGF5b3V0U3RhdGU7CisKIC8vIFRo
aXMgY2xhc3MgaW1wbGVtZW50cyBtYXJnaW4gY29sbGFwc2luZyBmb3IgYmxvY2sgZm9ybWF0dGlu
ZyBjb250ZXh0LgogY2xhc3MgQmxvY2tNYXJnaW5Db2xsYXBzZSB7CiBwdWJsaWM6Ci0gICAgQmxv
Y2tNYXJnaW5Db2xsYXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CisgICAgQmxv
Y2tNYXJnaW5Db2xsYXBzZShjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJsb2NrRm9ybWF0dGlu
Z1N0YXRlJik7CiAKICAgICBVc2VkVmVydGljYWxNYXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1
ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwog
Ci0gICAgUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29u
c3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwogICAgIExh
eW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gm
LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAKICAgICBib29sIG1h
cmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29u
c3Q7CkBAIC01NywyNCArNjEsMjggQEAgcHVibGljOgogCiAgICAgYm9vbCBtYXJnaW5zQ29sbGFw
c2VUaHJvdWdoKGNvbnN0IEJveCYpIGNvbnN0OwogCisgICAgUHJlY29tcHV0ZWRNYXJnaW5CZWZv
cmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2lu
OjpOb25Db2xsYXBzZWRWYWx1ZXMsIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5Jik7CisK
IHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBNYXJnaW5UeXBlIHsgQmVmb3JlLCBBZnRlciB9Owog
ICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBw
b3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OwogICAg
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0
aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNv
bnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsK
IAotICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwotICAgIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwcmVjb21wdXRlZFBv
c2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JikgY29uc3Q7CisgICAgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRp
dmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcywgY29uc3QgQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkmKSBjb25zdDsK
KyAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMg
cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIGNvbnN0IEJsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5JikgY29uc3Q7CiAKICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBt
YXJnaW5WYWx1ZShVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpW
YWx1ZXMpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7
CiAKLSAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlv
dXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRT
dGF0ZSgpOyB9Ci0gICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7IH0KKyAgICBi
b29sIGluUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5RdWlya3NNb2RlOyB9CisgICAg
Y29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRT
dGF0ZTsgfQorICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ1N0YXRlOyB9CiAKLSAgICBjb25zdCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7CisgICAgY29u
c3QgTGF5b3V0U3RhdGUmIG1fbGF5b3V0U3RhdGU7CisgICAgY29uc3QgQmxvY2tGb3JtYXR0aW5n
U3RhdGUmIG1fYmxvY2tGb3JtYXR0aW5nU3RhdGU7CisgICAgYm9vbCBtX2luUXVpcmtzTW9kZSB7
IGZhbHNlIH07CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1
dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5kZXggOTA4ZTczZGI3M2E4YjBiNzRiNDk0ZDA5
MTZiYmUxODgxN2MyNjNlNy4uNWFhZmEzZmFiMDNlN2Y2YTNkM2ZlOWJkZWE3MjRiY2Q1ZTBjM2U5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdp
bkNvbGxhcHNlLmNwcApAQCAtMzksMjUgKzM5LDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBu
YW1lc3BhY2UgTGF5b3V0IHsKIAotVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0
aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVO
ZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK1VzZWRWZXJ0aWNhbE1h
cmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNl
OjpwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5JiBmb3JtYXR0aW5nR2VvbWV0cnkpIGNvbnN0
CiB7CiAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxCbG9ja0Zvcm1h
dHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0Qm94
KSk7CiAgICAgaWYgKGJsb2NrRm9ybWF0dGluZ1N0YXRlLmhhc1VzZWRWZXJ0aWNhbE1hcmdpbihs
YXlvdXRCb3gpKQogICAgICAgICByZXR1cm4gYmxvY2tGb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRp
Y2FsTWFyZ2luKGxheW91dEJveCkucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5iZWZvcmU7CiAK
LSAgICBhdXRvIGdlb21ldHJ5ID0gQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkgeyBmb3JtYXR0aW5n
Q29udGV4dCgpIH07Ci0gICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBnZW9tZXRyeS5j
b25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5o
b3Jpem9udGFsOwotICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5LmNv
bXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwor
ICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gZm9ybWF0dGluZ0dlb21ldHJ5LmNvbnN0
cmFpbnRzRm9ySW5GbG93Q29udGVudChsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmhvcml6
b250YWw7CisgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0dlb21l
dHJ5LmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWlu
dHMpOwogICAgIGF1dG8gbm9uQ29sbGFwc2VkTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgeyBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9y
KDApLCBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCkgfTsKLSAgICByZXR1
cm4gcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9u
Q29sbGFwc2VkTWFyZ2luKTsKKyAgICByZXR1cm4gcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZl
TWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9uQ29sbGFwc2VkTWFyZ2luLCBmb3JtYXR0aW5nR2Vv
bWV0cnkpOwogfQogCi1Vc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWly
OjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZl
TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CitVc2VkVmVydGljYWxN
YXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBz
ZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBz
ZWRWYWx1ZXMsIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5JiBmb3JtYXR0aW5nR2VvbWV0
cnkpIGNvbnN0CiB7CiAgICAgYXV0byBmaXJzdENoaWxkQ29sbGFwc2VkTWFyZ2luQmVmb3JlID0g
WyZdKCkgLT4gVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFs
dWVzIHsKICAgICAgICAgaWYgKCFtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsb3dD
aGlsZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICAgICAgcmV0dXJuIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcygqZG93bmNhc3Q8
Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmZpcnN0SW5GbG93Q2hpbGQoKSk7CisgICAgICAgIHJl
dHVybiBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoKmRvd25jYXN0PENvbnRhaW5l
ckJveD4obGF5b3V0Qm94KS5maXJzdEluRmxvd0NoaWxkKCksIGZvcm1hdHRpbmdHZW9tZXRyeSk7
CiAgICAgfTsKIAogICAgIGF1dG8gcHJldmlvdVNpYmxpbmdDb2xsYXBzZWRNYXJnaW5BZnRlciA9
IFsmXSgpIC0+IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyB7CkBAIC03Miw3ICs3MSw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmRO
ZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21wCiAgICAgLy8g
Mi4gR2F0aGVyIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW4gdmFsdWVzIGZyb20gcHJldmlv
dXMgaW5mbG93IHNpYmxpbmcgaWYgbWFyZ2lucyBhcmUgYWRqb2luaW5nLgogICAgIC8vIDMuIENv
bXB1dGUgbWluL21heCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgY29sbGFwc2VkIG1hcmdpbiB2YWx1
ZXMgdXNpbmcgbm9uLWNvbGxwYXNlZCBjb21wdXRlZCBtYXJnaW4gYmVmb3JlLgogICAgIGF1dG8g
Y29sbGFwc2VkTWFyZ2luQmVmb3JlID0gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2lu
KGZpcnN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSwgcHJldmlvdVNpYmxpbmdDb2xsYXBz
ZWRNYXJnaW5BZnRlcigpKTsKLSAgICBhdXRvIHNob3VsZElnbm9yZUNvbGxhcHNlZE1hcmdpbiA9
IGNvbGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIGxheW91dFN0YXRlKCkuaW5RdWlya3NN
b2RlKCkgJiYgQmxvY2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJZ25vcmVDb2xsYXBzZWRRdWly
a01hcmdpbihsYXlvdXRCb3gpOworICAgIGF1dG8gc2hvdWxkSWdub3JlQ29sbGFwc2VkTWFyZ2lu
ID0gY29sbGFwc2VkTWFyZ2luQmVmb3JlLmlzUXVpcmsgJiYgaW5RdWlya3NNb2RlKCkgJiYgQmxv
Y2tGb3JtYXR0aW5nUXVpcmtzOjpzaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlv
dXRCb3gpOwogICAgIGlmIChzaG91bGRJZ25vcmVDb2xsYXBzZWRNYXJnaW4pCiAgICAgICAgIGNv
bGxhcHNlZE1hcmdpbkJlZm9yZSA9IHsgfTsKIApAQCAtODUsMTQgKzg0LDE0IEBAIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNv
bGxhcHNlOjpwcmVjb21wCiAgICAgcmV0dXJuIGNvbXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1h
cmdpbihjb2xsYXBzZWRNYXJnaW5CZWZvcmUsIG5vbkNvbGxhcHNlZEJlZm9yZSk7CiB9CiAKLVBy
ZWNvbXB1dGVkTWFyZ2luQmVmb3JlIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNv
bGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luKQorUHJlY29tcHV0ZWRNYXJnaW5C
ZWZvcmUgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVz
ZWROb25Db2xsYXBzZWRNYXJnaW4sIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5JiBmb3Jt
YXR0aW5nR2VvbWV0cnkpCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3go
KSk7CiAgICAgLy8gRG9uJ3QgcHJlLWNvbXB1dGUgdmVydGljYWwgbWFyZ2lucyBmb3Igb3V0IG9m
IGZsb3cgYm94ZXMuCiAgICAgQVNTRVJUKGxheW91dEJveC5pc0luRmxvdygpIHx8IGxheW91dEJv
eC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKICAgICBBU1NFUlQoIWxheW91dEJveC5pc1JlcGxh
Y2VkQm94KCkpOwogCi0gICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gcHJl
Y29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgdXNlZE5vbkNv
bGxhcHNlZE1hcmdpbik7CisgICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0g
cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgdXNlZE5v
bkNvbGxhcHNlZE1hcmdpbiwgZm9ybWF0dGluZ0dlb21ldHJ5KTsKICAgICBhdXRvIGNvbGxhcHNl
ZE1hcmdpbkJlZm9yZSA9IG1hcmdpblZhbHVlKHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUp
OwogICAgIHJldHVybiB7IHVzZWROb25Db2xsYXBzZWRNYXJnaW4uYmVmb3JlLCBjb2xsYXBzZWRN
YXJnaW5CZWZvcmUsIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUgfTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>