<?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>226315</bug_id>
          
          <creation_ts>2021-05-26 20:55:27 -0700</creation_ts>
          <short_desc>[LFC] Transition containing block &apos;for&apos; loops to range loops</short_desc>
          <delta_ts>2021-05-29 05:12:19 -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>
          <dependson>226379</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764198</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-26 20:55:27 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764200</commentid>
    <comment_count>1</comment_count>
      <attachid>429840</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-26 21:03:03 -0700</bug_when>
    <thetext>Created attachment 429840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764556</commentid>
    <comment_count>2</comment_count>
      <attachid>429946</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-27 15:49:56 -0700</bug_when>
    <thetext>Created attachment 429946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764566</commentid>
    <comment_count>3</comment_count>
      <attachid>429947</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-27 16:14:53 -0700</bug_when>
    <thetext>Created attachment 429947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764744</commentid>
    <comment_count>4</comment_count>
      <attachid>429947</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-05-28 06:37:20 -0700</bug_when>
    <thetext>Comment on attachment 429947
Patch

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

&gt; Source/WebCore/layout/formattingContexts/block/BlockFormattingContext.cpp:235
&gt; +        for (auto&amp; ancestor : containingBlockChain(layoutBox, root()))

I like how you are utilizing block chain technology here.

Might consider a helper for this case, &quot;containingBlockChainWithinFormattingContext&quot; or similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764747</commentid>
    <comment_count>5</comment_count>
      <attachid>430008</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-28 06:48:27 -0700</bug_when>
    <thetext>Created attachment 430008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764748</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-28 06:48:45 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)
&gt; Comment on attachment 429947 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429947&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/formattingContexts/block/BlockFormattingContext.cpp:235
&gt; &gt; +        for (auto&amp; ancestor : containingBlockChain(layoutBox, root()))
&gt; 
&gt; I like how you are utilizing block chain technology here.
&gt; 
&gt; Might consider a helper for this case,
&gt; &quot;containingBlockChainWithinFormattingContext&quot; or similar.
Good idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764753</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-28 07:20:11 -0700</bug_when>
    <thetext>Committed r278196 (238239@main): &lt;https://commits.webkit.org/238239@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430008.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764754</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-28 07:21:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78617306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764789</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-05-28 09:25:22 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 226379</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765064</commentid>
    <comment_count>10</comment_count>
      <attachid>430088</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-28 21:24:28 -0700</bug_when>
    <thetext>Created attachment 430088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765074</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-29 05:12:17 -0700</bug_when>
    <thetext>Committed r278238 (238275@main): &lt;https://commits.webkit.org/238275@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430088.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429840</attachid>
            <date>2021-05-26 21:03:03 -0700</date>
            <delta_ts>2021-05-27 15:49:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226315-20210526210302.patch</filename>
            <type>text/plain</type>
            <size>16914</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxYmQ3YTM5Mjk2ZjJm
NGQzZWM5OGI0YWNhNzBmMzU0NDIzY2NjZC4uYTM1NGMyMTE4NGRmNTk5MDg0MWYzZjAzZTA3Njcy
MWVlNTEzYmI2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTA1LTI2ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBUcmFuc2l0aW9uIGNv
bnRhaW5pbmcgYmxvY2sgZm9yIGxvb3BzIHRvIHJhbmdlIGxvb3BzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAuCisKKyAgICAgICAgKiBsYXlvdXQv
ZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZs
b2F0aW5nQ29udGV4dDo6bWFwVG9wTGVmdFRvRmxvYXRpbmdTdGF0ZVJvb3QgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdGluZ0NvbnRleHQ6Om1hcFBvaW50RnJvbUZvcm1h
dHRpbmdDb250ZXh0Um9vdFRvRmxvYXRpbmdTdGF0ZVJvb3QgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0dlb21ldHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVl
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRl
VmVydGljYWxQb3NpdGlvbkZvckJveEFuZEFuY2VzdG9ycyk6CisgICAgICAgICogbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojpp
c0Rlc2NlbmRhbnRPZiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94Lmg6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2Nr
Q2hhaW5JdGVyYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yOjpMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0
Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OmNvbnRhaW5pbmdCbG9ja0NoYWluKToKKwogMjAyMS0wNS0yNiAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTWVkaWFTZXNzaW9u
IHJlYWR5c3RhdGUgZW51bXMgYWxsIGxvd2VyY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDUwNmU0NzNmNmNkZGIxYTI3Zjk0
Y2I2Yzc0OWY5YzBlMWY3YTBjYTUuLjczZDhjNDAxYTkzNTQ1YjUyMjgyMTNmN2QzYjNlMTYzZTU1
MTJkYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29u
dGV4dC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5o
IgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01
MTIsOCArNTEzLDggQEAgTGF5b3V0UG9pbnQgRmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9G
bG9hdGluZ1N0YXRlUm9vdChjb25zdCBCb3gmIGZsb2F0Qm94KQogewogICAgIGF1dG8mIGZsb2F0
aW5nU3RhdGVSb290ID0gZmxvYXRpbmdTdGF0ZSgpLnJvb3QoKTsKICAgICBhdXRvIHRvcExlZnQg
PSBCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGbG9h
dEJveElzQWx3YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVSb290KSk7Ci0gICAgZm9yIChhdXRvKiBj
b250YWluaW5nQmxvY2sgPSAmZmxvYXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdC
bG9jayAhPSAmZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5n
QmxvY2stPmNvbnRhaW5pbmdCbG9jaygpKQotICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9t
ZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KCpjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0
Qm94SXNBbHdheXNSZWxhdGl2ZVRvRmxvYXRTdGF0ZVJvb3QpKSk7CisgICAgZm9yIChhdXRvJiBj
b250YWluaW5nQmxvY2sgOiBjb250YWluaW5nQmxvY2tDaGFpbihmbG9hdEJveCwgZmxvYXRpbmdT
dGF0ZVJvb3QpKQorICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9yZGVyQm94
VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9j
aywgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJc0Fsd2F5c1JlbGF0
aXZlVG9GbG9hdFN0YXRlUm9vdCkpKTsKICAgICByZXR1cm4gdG9wTGVmdDsKIH0KIApAQCAtNTI0
LDggKzUyNSw4IEBAIFBvaW50IEZsb2F0aW5nQ29udGV4dDo6bWFwUG9pbnRGcm9tRm9ybWF0dGlu
Z0NvbnRleHRSb290VG9GbG9hdGluZ1N0YXRlUm9vdChQb2luCiAgICAgaWYgKCZmcm9tID09ICZ0
bykKICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwogICAgIGF1dG8gbWFwcGVkUG9zaXRpb24gPSBw
b3NpdGlvbjsKLSAgICBmb3IgKGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9ICZmcm9tOyBjb250YWlu
aW5nQmxvY2sgIT0gJnRvOyBjb250YWluaW5nQmxvY2sgPSAmY29udGFpbmluZ0Jsb2NrLT5jb250
YWluaW5nQmxvY2soKSkKLSAgICAgICAgbWFwcGVkUG9zaXRpb24ubW92ZUJ5KEJveEdlb21ldHJ5
Ojpib3JkZXJCb3hUb3BMZWZ0KGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmNv
bnRhaW5pbmdCbG9jaywgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJ
c0Fsd2F5c1JlbGF0aXZlVG9GbG9hdFN0YXRlUm9vdCkpKTsKKyAgICBmb3IgKGF1dG8mIGNvbnRh
aW5pbmdCbG9jayA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKGZyb20sIHRvKSkKKyAgICAgICAgbWFw
cGVkUG9zaXRpb24ubW92ZUJ5KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KGZvcm1hdHRp
bmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5nQ29u
dGV4dDo6RXNjYXBlUmVhc29uOjpGbG9hdEJveElzQWx3YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVS
b290KSkpOwogICAgIHJldHVybiBtYXBwZWRQb3NpdGlvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5n
R2VvbWV0cnkuY3BwCmluZGV4IDIxNDdiMTE3ZmIyZWQyYzUyODk1ZDA3Y2Q2OTk0MTVkNGVkZTgy
MDMuLjI4MDkxZGU2NmE3NGVlNTBlYzJlMTc4YjdhMjc3OTBmM2FkYmEwNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zv
cm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGbG9hdGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0
SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkQm94Lmgi
CkBAIC04NywxMyArODgsMTIgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0dlb21l
dHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYgbGF5b3V0Qm8KICAgICAgICAgICAg
IGF1dG8gbm9uQW5vbnltb3VzQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCA9IFsmXSB7CiAg
ICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgYmxvY2sgbGV2ZWwgYm94IGlzIGEgZGlyZWN0IGNo
aWxkIG9mIGFuIGlubGluZSBsZXZlbCBib3ggKDxzcGFuPjxkaXY+PC9kaXY+PC9zcGFuPikgYW5k
IHdlIHdyYXAgaXQgaW50byBhIGNvbnRpbnVhdGlvbiwKICAgICAgICAgICAgICAgICAvLyB0aGUg
Y29udGFpbmluZyBibG9jayAoYW5vbnltb3VzIHdyYXBwZXIpIGlzIG5vdCB0aGUgYm94IHdlIG5l
ZWQgdG8gY2hlY2sgZm9yIGZpeGVkIGhlaWdodC4KLSAgICAgICAgICAgICAgICBhdXRvJiBpbml0
aWFsQ29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmluaXRpYWxDb250YWluaW5nQmxvY2soKTsK
LSAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9ICZsYXlvdXRCb3gu
Y29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdCbG9jayAhPSAmaW5pdGlhbENvbnRhaW5pbmdC
bG9jazsgY29udGFpbmluZ0Jsb2NrID0gJmNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2Nr
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+aXNBbm9ueW1v
dXMoKSkKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGNvbnRhaW5pbmdCbG9jayA6IGNvbnRh
aW5pbmdCbG9ja0NoYWluKGxheW91dEJveCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNv
bnRhaW5pbmdCbG9jay5pc0Fub255bW91cygpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2stPnN0eWxl
KCkubG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmlu
Z0Jsb2NrLnN0eWxlKCkubG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICByZXR1cm4gaW5pdGlhbENvbnRhaW5pbmdCbG9jay5zdHlsZSgpLmxvZ2ljYWxI
ZWlnaHQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0Qm94LmluaXRpYWxDb250YWlu
aW5nQmxvY2soKS5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgIH07CiAgICAg
ICAgICAgICBjb250YWluaW5nQmxvY2tIZWlnaHQgPSBmaXhlZFZhbHVlKG5vbkFub255bW91c0Nv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGMwZmIxZmE0ODY3MzU4ODBm
M2Q3M2U3ZGZiYThhNmFiNjRmYjEyMjIuLjA5NTBjZjcwNzgwYTEwZTQxZmY2ODFiNTgxM2U2YWIw
YmYzOWIzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUg
IkxheW91dENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIK
KyNpbmNsdWRlICJMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0Q29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxv
Y2suaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgpAQCAtMjIyLDggKzIyMyw4IEBAIE9wdGlv
bmFsPExheW91dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0
aEZvckZsb2F0QXZvaWRlcihjCiAKICAgICBhdXRvIGxvZ2ljYWxUb3BJbkZvcm1hdHRpbmdDb250
ZXh0Um9vdENvb3JkaW5hdGUgPSBbJl0gKGF1dG8mIGZsb2F0QXZvaWRlcikgewogICAgICAgICBh
dXRvIHRvcCA9IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3AoZ2VvbWV0cnlGb3JCb3goZmxvYXRB
dm9pZGVyKSk7Ci0gICAgICAgIGZvciAoYXV0byogYW5jZXN0b3IgPSAmZmxvYXRBdm9pZGVyLmNv
bnRhaW5pbmdCbG9jaygpOyBhbmNlc3RvciAhPSAmcm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rv
ci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0gICAgICAgICAgICB0b3AgKz0gQm94R2VvbWV0cnk6OmJv
cmRlckJveFRvcChnZW9tZXRyeUZvckJveCgqYW5jZXN0b3IpKTsKKyAgICAgICAgZm9yIChhdXRv
JiBhbmNlc3RvciA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKGZsb2F0QXZvaWRlciwgcm9vdCgpKSkK
KyAgICAgICAgICAgIHRvcCArPSBCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wKGdlb21ldHJ5Rm9y
Qm94KGFuY2VzdG9yKSk7CiAgICAgICAgIHJldHVybiB0b3A7CiAgICAgfTsKIApAQCAtMjMxLDgg
KzIzMiw4IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVz
ZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihjCiAgICAgICAgIGlmICghZmxvYXRDb25z
dHJhaW50cy5sZWZ0ICYmICFmbG9hdENvbnN0cmFpbnRzLnJpZ2h0KQogICAgICAgICAgICAgcmV0
dXJuIEZsb2F0aW5nQ29udGV4dDo6Q29uc3RyYWludHMgeyB9OwogICAgICAgICBhdXRvIG9mZnNl
dCA9IExheW91dFNpemUgeyB9OwotICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmxheW91
dEJveC5jb250YWluaW5nQmxvY2soKTsgYW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3IgPSAm
YW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKQotICAgICAgICAgICAgb2Zmc2V0ICs9IHRvTGF5
b3V0U2l6ZShCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChnZW9tZXRyeUZvckJveCgqYW5j
ZXN0b3IpKSk7CisgICAgICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBjb250YWluaW5nQmxvY2tD
aGFpbihsYXlvdXRCb3gsIHJvb3QoKSkpCisgICAgICAgICAgICBvZmZzZXQgKz0gdG9MYXlvdXRT
aXplKEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KGdlb21ldHJ5Rm9yQm94KGFuY2VzdG9y
KSkpOwogICAgICAgICBpZiAoZmxvYXRDb25zdHJhaW50cy5sZWZ0KQogICAgICAgICAgICAgZmxv
YXRDb25zdHJhaW50cy5sZWZ0ID0gUG9pbnRJbkNvbnRleHRSb290IHsgKmZsb2F0Q29uc3RyYWlu
dHMubGVmdCAtIG9mZnNldCB9OwogICAgICAgICBpZiAoZmxvYXRDb25zdHJhaW50cy5yaWdodCkK
QEAgLTI4OSwyNiArMjkwLDI2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJlY29t
cHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JCb3hBbmRBbmNlc3RvcnMoY29uc3QKICAgICAvLyBUaGUg
aWRlYSBoZXJlIGlzIHRoYXQgYXMgbG9uZyBhcyB3ZSBkb24ndCBjcm9zcyB0aGUgYmxvY2sgZm9y
bWF0dGluZyBjb250ZXh0IGJvdW5kYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byBwcmUtY29tcHV0
ZSB0aGUgZmluYWwgdG9wIHBvc2l0aW9uLgogICAgIC8vIEZJWE1FOiB3ZSBjdXJyZW50bHkgZG9u
J3QgYWNjb3VudCBmb3IgdGhlICJjbGVhciIgcHJvcGVydHkgd2hlbiBjb21wdXRpbmcgdGhlIGZp
bmFsIHBvc2l0aW9uIGZvciBhbiBhbmNlc3Rvci4KICAgICBhdXRvJiBmb3JtYXR0aW5nR2VvbWV0
cnkgPSB0aGlzLT5mb3JtYXR0aW5nR2VvbWV0cnkoKTsKLSAgICBmb3IgKGF1dG8qIGFuY2VzdG9y
ID0gJmxheW91dEJveDsgYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3Ig
PSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CisgICAgZm9yIChhdXRvJiBhbmNlc3Rv
ciA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKGxheW91dEJveCwgcm9vdCgpKSkgewogICAgICAgICBh
dXRvIGNvbnN0cmFpbnRzRm9yQW5jZXN0b3IgPSBbJl0gewotICAgICAgICAgICAgYXV0byYgY29u
dGFpbmluZ0Jsb2NrID0gYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9jaygpOworICAgICAgICAgICAg
YXV0byYgY29udGFpbmluZ0Jsb2NrID0gYW5jZXN0b3IuY29udGFpbmluZ0Jsb2NrKCk7CiAgICAg
ICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpID8gY29uc3RyYWludHNQ
YWlyLmZvcm1hdHRpbmdDb250ZXh0Um9vdCA6IGZvcm1hdHRpbmdHZW9tZXRyeS5jb25zdHJhaW50
c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmluZ0Jsb2NrKTsKICAgICAgICAgfSgpOwogCi0gICAg
ICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGZvcm1hdHRpbmdHZW9tZXRyeS5jb21w
dXRlZFZlcnRpY2FsTWFyZ2luKCphbmNlc3RvciwgY29uc3RyYWludHNGb3JBbmNlc3Rvci5ob3Jp
em9udGFsKTsKKyAgICAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGlu
Z0dlb21ldHJ5LmNvbXB1dGVkVmVydGljYWxNYXJnaW4oYW5jZXN0b3IsIGNvbnN0cmFpbnRzRm9y
QW5jZXN0b3IuaG9yaXpvbnRhbCk7CiAgICAgICAgIGF1dG8gdXNlZE5vbkNvbGxhcHNlZE1hcmdp
biA9IFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHsgY29tcHV0ZWRWZXJ0
aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSwgY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbi5hZnRl
ci52YWx1ZU9yKDApIH07Ci0gICAgICAgIGF1dG8gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBt
YXJnaW5Db2xsYXBzZSgpLnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKCphbmNlc3RvciwgdXNlZE5v
bkNvbGxhcHNlZE1hcmdpbiwgZm9ybWF0dGluZ0dlb21ldHJ5KTsKKyAgICAgICAgYXV0byBwcmVj
b21wdXRlZE1hcmdpbkJlZm9yZSA9IG1hcmdpbkNvbGxhcHNlKCkucHJlY29tcHV0ZWRNYXJnaW5C
ZWZvcmUoYW5jZXN0b3IsIHVzZWROb25Db2xsYXBzZWRNYXJnaW4sIGZvcm1hdHRpbmdHZW9tZXRy
eSk7CiAKLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nU3RhdGUoKS5ib3hH
ZW9tZXRyeSgqYW5jZXN0b3IpOworICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRp
bmdTdGF0ZSgpLmJveEdlb21ldHJ5KGFuY2VzdG9yKTsKICAgICAgICAgYXV0byBub25Db2xsYXBz
ZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB7IHByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlLm5vbkNvbGxhcHNlZFZhbHVlLCB7IH0gfTsKICAgICAgICAgYXV0
byBjb2xsYXBzZWRWYWx1ZXMgPSBVc2VkVmVydGljYWxNYXJnaW46OkNvbGxhcHNlZFZhbHVlcyB7
IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlLmNvbGxhcHNlZFZhbHVlLCB7IH0sIGZhbHNlIH07CiAg
ICAgICAgIGF1dG8gdmVydGljYWxNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW4geyBub25Db2xs
YXBzZWRWYWx1ZXMsIGNvbGxhcHNlZFZhbHVlcywgeyBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZS5w
b3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luQmVmb3JlLCB7IH0gfSB9OwogCi0gICAgICAgIGZvcm1h
dHRpbmdTdGF0ZSgpLnNldFVzZWRWZXJ0aWNhbE1hcmdpbigqYW5jZXN0b3IsIHZlcnRpY2FsTWFy
Z2luKTsKKyAgICAgICAgZm9ybWF0dGluZ1N0YXRlKCkuc2V0VXNlZFZlcnRpY2FsTWFyZ2luKGFu
Y2VzdG9yLCB2ZXJ0aWNhbE1hcmdpbik7CiAgICAgICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2Fs
TWFyZ2luKHsgbWFyZ2luQmVmb3JlKHZlcnRpY2FsTWFyZ2luKSwgbWFyZ2luQWZ0ZXIodmVydGlj
YWxNYXJnaW4pIH0pOwotICAgICAgICBib3hHZW9tZXRyeS5zZXRMb2dpY2FsVG9wKHZlcnRpY2Fs
UG9zaXRpb25XaXRoTWFyZ2luKCphbmNlc3RvciwgdmVydGljYWxNYXJnaW4sIGNvbnN0cmFpbnRz
Rm9yQW5jZXN0b3IudmVydGljYWwpKTsKKyAgICAgICAgYm94R2VvbWV0cnkuc2V0TG9naWNhbFRv
cCh2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihhbmNlc3RvciwgdmVydGljYWxNYXJnaW4sIGNv
bnN0cmFpbnRzRm9yQW5jZXN0b3IudmVydGljYWwpKTsKICNpZiBBU1NFUlRfRU5BQkxFRAotICAg
ICAgICBzZXRQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSgqYW5jZXN0b3IsIHByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlKTsKKyAgICAgICAgc2V0UHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoYW5jZXN0b3Is
IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKTsKICAgICAgICAgYm94R2VvbWV0cnkuc2V0SGFzUHJl
Y29tcHV0ZWRNYXJnaW5CZWZvcmUoKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IGJiNDE0NjQxY2Q1NzFlNjE2
NmU0OTRkZjJkNWJmYjM2ZjEyODgwMWQuLmM3MzRhNTNlMDMxMjRhODYxNjNjNmZkNjJjZWY4YTVh
ZmFmODkwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcApAQCAtNDI0LDYgKzQyNCwxNyBAQCBjb25zdCBCb3gqIEJveDo6cHJldmlvdXNJbkZs
b3dPckZsb2F0aW5nU2libGluZygpIGNvbnN0CiAgICAgcmV0dXJuIHByZXZpb3VzU2libGluZzsK
IH0KIAorYm9vbCBCb3g6OmlzRGVzY2VuZGFudE9mKGNvbnN0IENvbnRhaW5lckJveCYgYW5jZXN0
b3IpIGNvbnN0Cit7CisgICAgaWYgKGFuY2VzdG9yLmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygp
KSAKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZm9yIChhdXRvKiBjb250YWluZXJCb3ggPSAm
Y29udGFpbmluZ0Jsb2NrKCk7ICFjb250YWluZXJCb3gtPmlzSW5pdGlhbENvbnRhaW5pbmdCbG9j
aygpOyBjb250YWluZXJCb3ggPSAmY29udGFpbmVyQm94LT5jb250YWluaW5nQmxvY2soKSkgewor
ICAgICAgICBpZiAoY29udGFpbmVyQm94ID09ICZhbmNlc3RvcikKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQm94Ojppc092ZXJm
bG93VmlzaWJsZSgpIGNvbnN0CiB7CiAgICAgYXV0byBpc092ZXJmbG93VmlzaWJsZSA9IG1fc3R5
bGUub3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgbV9zdHlsZS5vdmVyZmxvd1ko
KSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmgKaW5kZXggMzAyMTNhMDU3N2RkMTVmNWNlYzJkYzI3Nzk2NWM5NGExYTBj
MjVmMC4uMzQxYzA5ZjQzOWQyYWZhMDYwM2ZkZjkyOTNiNTk1M2RlODg3MTk3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTE0Niw2ICsxNDYs
NyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQm94KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3ByZXZpb3VzU2libGluZzsgfQogICAgIGNvbnN0IEJveCogcHJldmlvdXNJbkZsb3dT
aWJsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd09yRmxvYXRpbmdT
aWJsaW5nKCkgY29uc3Q7CisgICAgYm9vbCBpc0Rlc2NlbmRhbnRPZihjb25zdCBDb250YWluZXJC
b3gmKSBjb25zdDsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGN1cnJlbnRseSBuZWVkZWQgZm9y
IHN0eWxlIHVwZGF0ZXMuCiAgICAgQm94KiBuZXh0U2libGluZygpIHsgcmV0dXJuIG1fbmV4dFNp
Ymxpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaAppbmRleCAw
ZWFhNzE0ZTJhYzMzMDBmODk3NzQzZTNmMDgxMjIyZmQyNjc0MjhjLi41OGI1ZGNmM2VkZmM3ZDQ2
MmVhN2IxMDRhZjQzMDI4MTE5Mzk3NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hh
aW5JdGVyYXRvci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogY2xhc3Mg
TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvciB7CiBwdWJsaWM6CiAgICAgTGF5b3V0
Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigpID0gZGVmYXVsdDsKLSAgICBMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lckJveCYpOworICAgIExheW91
dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94JiwgY29uc3Qg
Q29udGFpbmVyQm94KiBzdGF5V2l0aGluKTsKICAgICBjb25zdCBDb250YWluZXJCb3gmIG9wZXJh
dG9yKigpIGNvbnN0IHsgcmV0dXJuICptX2N1cnJlbnQ7IH0KICAgICBjb25zdCBDb250YWluZXJC
b3gqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQ7IH0KIApAQCAtNDUsMzQg
KzQ1LDM5IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjb25zdCBDb250YWluZXJCb3gqIG1f
Y3VycmVudCB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBDb250YWluZXJCb3gqIG1fc3RheVdpdGhp
biB7IG51bGxwdHIgfTsKIH07CiAKIGNsYXNzIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKLSAgICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0
ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJCb3gmKTsKLSAgICBhdXRvIGJlZ2luKCkgeyBy
ZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcihtX2NvbnRhaW5pbmdCbG9j
ayk7IH0KKyAgICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcihjb25z
dCBDb250YWluZXJCb3gmLCBjb25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4gPSBudWxscHRy
KTsKKyAgICBhdXRvIGJlZ2luKCkgeyByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5J
dGVyYXRvcihtX2NvbnRhaW5pbmdCbG9jaywgbV9zdGF5V2l0aGluKTsgfQogICAgIGF1dG8gZW5k
KCkgeyByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigpOyB9CiAKIHBy
aXZhdGU6CiAgICAgY29uc3QgQ29udGFpbmVyQm94JiBtX2NvbnRhaW5pbmdCbG9jazsKKyAgICBj
b25zdCBDb250YWluZXJCb3gqIG1fc3RheVdpdGhpbiB7IG51bGxwdHIgfTsKIH07CiAKIExheW91
dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWlu
KGNvbnN0IEJveCYpOworTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIg
Y29udGFpbmluZ0Jsb2NrQ2hhaW4oY29uc3QgQm94JiwgY29uc3QgQ29udGFpbmVyQm94JiBzdGF5
V2l0aGluKTsKIAotaW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6Okxh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94JiBjdXJy
ZW50KQoraW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6OkxheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94JiBjdXJyZW50LCBj
b25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCiAgICAgOiBtX2N1cnJlbnQoJmN1cnJlbnQp
CisgICAgLCBtX3N0YXlXaXRoaW4oc3RheVdpdGhpbikKIHsKIH0KIAogaW5saW5lIExheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3ImIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3I6Om9wZXJhdG9yKysoKQogewogICAgIEFTU0VSVChtX2N1cnJlbnQpOwotICAgIG1fY3Vy
cmVudCA9IG1fY3VycmVudC0+aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgPyBudWxscHRyIDog
Jm1fY3VycmVudC0+Y29udGFpbmluZ0Jsb2NrKCk7CisgICAgbV9jdXJyZW50ID0gKG1fc3RheVdp
dGhpbiAmJiBtX3N0YXlXaXRoaW4gPT0gbV9jdXJyZW50KSB8fCBtX2N1cnJlbnQtPmlzSW5pdGlh
bENvbnRhaW5pbmdCbG9jaygpID8gbnVsbHB0ciA6ICZtX2N1cnJlbnQtPmNvbnRhaW5pbmdCbG9j
aygpOwogICAgIHJldHVybiAqdGhpczsKIH0KIAotaW5saW5lIExheW91dENvbnRhaW5pbmdCbG9j
a0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9y
QWRhcHRlcihjb25zdCBDb250YWluZXJCb3gmIGNvbnRhaW5pbmdCbG9jaykKK2lubGluZSBMYXlv
dXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6TGF5b3V0Q29udGFpbmluZ0Js
b2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyQm94JiBjb250YWluaW5nQmxv
Y2ssIGNvbnN0IENvbnRhaW5lckJveCogc3RheVdpdGhpbikKICAgICA6IG1fY29udGFpbmluZ0Js
b2NrKGNvbnRhaW5pbmdCbG9jaykKKyAgICAsIG1fc3RheVdpdGhpbihzdGF5V2l0aGluKQogewog
fQogCkBAIC04MSw2ICs4NiwxMiBAQCBpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5J
dGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW4oY29uc3QgQm94JgogICAgIHJldHVy
biBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcihsYXlvdXRCb3guY29u
dGFpbmluZ0Jsb2NrKCkpOwogfQogCitpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5J
dGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW4oY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IENvbnRhaW5lckJveCYgc3RheVdpdGhpbikKK3sKKyAgICBBU1NFUlQobGF5b3V0Qm94
LmlzRGVzY2VuZGFudE9mKHN0YXlXaXRoaW4pKTsKKyAgICByZXR1cm4gTGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpLCAm
c3RheVdpdGhpbik7Cit9CisKIH0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWUy
ZmMxZTEwNWRhNzQxZjYwM2ZjZWM1MzIyNmVhOGU4MGFiM2ViNS4uNjU1MTBmOGVlNmVmYTg3MzUx
YTNhZjFmNzQ4OThjNzE0YjU4ZDkwYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODczLDYgKzQ4
NzMsNyBAQCB3ZWJraXQub3JnL2IvMzEyNzggWyBEZWJ1ZyBdIGZhc3QvbXVsdGljb2wvc3Bhbm5l
ci1nZXQtcmUtYWRkZWQtb24tbW92ZS1jcmFzaC5odAogd2Via2l0Lm9yZy9iLzIyNTI0NyBbIERl
YnVnIF0gZmFzdC9tdWx0aWNvbC9zcGFuL2Zsb2F0LWJlY29tZXMtc3Bhbm5lci1jcmFzaC5odG1s
IFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8yMjYwMDIgZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC90YWJsZS1zaW1wbGUtcm93LWhlaWdodC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2Iv
MjI2MDAyIGZhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvIFsgU2tpcCBdCiAKICMgVGhpcyB3
ZWJzdG9yYWdlIHRlc3QgaGFzIGNyYXNoZWQgc2luY2UgaXQgd2FzIGltcG9ydGVkLgogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzdG9yYWdlL3N0b3JhZ2Vfc2Vzc2lvbl9zZXRp
dGVtX3F1b3RhZXhjZWVkZWRlcnIud2luZG93Lmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429946</attachid>
            <date>2021-05-27 15:49:56 -0700</date>
            <delta_ts>2021-05-27 16:14:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226315-20210527154954.patch</filename>
            <type>text/plain</type>
            <size>12277</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxYmQ3YTM5Mjk2ZjJm
NGQzZWM5OGI0YWNhNzBmMzU0NDIzY2NjZC4uYjM5ZjQ3MTUyYjRlZDk1MjhlYjU2OTIxZWFkMGE2
ZWM5MWY2NzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI3ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBUcmFuc2l0aW9uIGNv
bnRhaW5pbmcgYmxvY2sgZm9yIGxvb3BzIHRvIHJhbmdlIGxvb3BzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3RheVdpdGhp
bi4KKworICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGlu
Z1N0YXRlUm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nR2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFp
bGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcik6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRh
bnRPZiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6Cisg
ICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6ZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcjo6TGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OmNvbnRhaW5pbmdCbG9ja0NoYWluKToKKwogMjAyMS0wNS0yNiAgSmVhbi1ZdmVzIEF2ZW5h
cmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTWVkaWFTZXNzaW9uIHJlYWR5c3Rh
dGUgZW51bXMgYWxsIGxvd2VyY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0
cy9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDUwNmU0NzNmNmNkZGIxYTI3Zjk0Y2I2Yzc0OWY5
YzBlMWY3YTBjYTUuLmFiM2QyYTVmMjQwNzUyYWY5ZjM1YTlkZmE1Y2QyM2QzOGZiYzFlODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlv
dXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgorI2luY2x1
ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MTIsOCArNTEz
LDggQEAgTGF5b3V0UG9pbnQgRmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGluZ1N0
YXRlUm9vdChjb25zdCBCb3gmIGZsb2F0Qm94KQogewogICAgIGF1dG8mIGZsb2F0aW5nU3RhdGVS
b290ID0gZmxvYXRpbmdTdGF0ZSgpLnJvb3QoKTsKICAgICBhdXRvIHRvcExlZnQgPSBCb3hHZW9t
ZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGbG9hdEJveElzQWx3
YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVSb290KSk7Ci0gICAgZm9yIChhdXRvKiBjb250YWluaW5n
QmxvY2sgPSAmZmxvYXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdCbG9jayAhPSAm
ZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNv
bnRhaW5pbmdCbG9jaygpKQotICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9y
ZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWlu
aW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94SXNBbHdh
eXNSZWxhdGl2ZVRvRmxvYXRTdGF0ZVJvb3QpKSk7CisgICAgZm9yIChhdXRvJiBjb250YWluaW5n
QmxvY2sgOiBjb250YWluaW5nQmxvY2tDaGFpbihmbG9hdEJveCwgZmxvYXRpbmdTdGF0ZVJvb3Qp
KQorICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9jaywgRm9ybWF0
dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJc0Fsd2F5c1JlbGF0aXZlVG9GbG9h
dFN0YXRlUm9vdCkpKTsKICAgICByZXR1cm4gdG9wTGVmdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5n
R2VvbWV0cnkuY3BwCmluZGV4IDIxNDdiMTE3ZmIyZWQyYzUyODk1ZDA3Y2Q2OTk0MTVkNGVkZTgy
MDMuLmY3YWEwMWM5NWM3ZTFjZTk2ZjIwMzY2MDI4YTJmZjZkMDc4NTI3MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zv
cm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGbG9hdGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0
SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkQm94Lmgi
CkBAIC04NCwxNiArODUsMTYgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0dlb21l
dHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYgbGF5b3V0Qm8KICAgICAgICAgaWYg
KGxheW91dFN0YXRlKCkuaW5RdWlya3NNb2RlKCkpCiAgICAgICAgICAgICBjb250YWluaW5nQmxv
Y2tIZWlnaHQgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3MoKS5oZWlnaHRW
YWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChsYXlvdXRCb3gpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gbm9uQW5vbnltb3VzQ29udGFpbmluZ0Js
b2NrTG9naWNhbEhlaWdodCA9IFsmXSB7CisgICAgICAgICAgICBhdXRvIG5vbkFub255bW91c0Nv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQgPSBbJl0oKSAtPiBMZW5ndGggewogICAgICAgICAg
ICAgICAgIC8vIFdoZW4gdGhlIGJsb2NrIGxldmVsIGJveCBpcyBhIGRpcmVjdCBjaGlsZCBvZiBh
biBpbmxpbmUgbGV2ZWwgYm94ICg8c3Bhbj48ZGl2PjwvZGl2Pjwvc3Bhbj4pIGFuZCB3ZSB3cmFw
IGl0IGludG8gYSBjb250aW51YXRpb24sCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRhaW5p
bmcgYmxvY2sgKGFub255bW91cyB3cmFwcGVyKSBpcyBub3QgdGhlIGJveCB3ZSBuZWVkIHRvIGNo
ZWNrIGZvciBmaXhlZCBoZWlnaHQuCi0gICAgICAgICAgICAgICAgYXV0byYgaW5pdGlhbENvbnRh
aW5pbmdCbG9jayA9IGxheW91dEJveC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAg
ICAgICAgICAgZm9yIChhdXRvKiBjb250YWluaW5nQmxvY2sgPSAmbGF5b3V0Qm94LmNvbnRhaW5p
bmdCbG9jaygpOyBjb250YWluaW5nQmxvY2sgIT0gJmluaXRpYWxDb250YWluaW5nQmxvY2s7IGNv
bnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmlzQW5vbnltb3VzKCkpCisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjb250YWluaW5nQmxvY2sgOiBjb250YWluaW5nQmxv
Y2tDaGFpbihsYXlvdXRCb3gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5n
QmxvY2suaXNBbm9ueW1vdXMoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLmxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5z
dHlsZSgpLmxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGluaXRpYWxDb250YWluaW5nQmxvY2suc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBjb250YWluaW5nQmxvY2tI
ZWlnaHQgPSBmaXhlZFZhbHVlKG5vbkFub255bW91c0NvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWln
aHQoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCmluZGV4IGMwZmIxZmE0ODY3MzU4ODBmM2Q3M2U3ZGZiYThhNmFiNjRmYjEyMjIu
LjA4YzU2ZjJlOGQ4Mzk0NmMzODMwMzA5NGY5NDc5MzFhMmQ1NzE1MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2lu
Y2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJMYXlvdXRT
dGF0ZS5oIgpAQCAtMjIyLDggKzIyMyw4IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihjCiAKICAg
ICBhdXRvIGxvZ2ljYWxUb3BJbkZvcm1hdHRpbmdDb250ZXh0Um9vdENvb3JkaW5hdGUgPSBbJl0g
KGF1dG8mIGZsb2F0QXZvaWRlcikgewogICAgICAgICBhdXRvIHRvcCA9IEJveEdlb21ldHJ5Ojpi
b3JkZXJCb3hUb3AoZ2VvbWV0cnlGb3JCb3goZmxvYXRBdm9pZGVyKSk7Ci0gICAgICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSAmZmxvYXRBdm9pZGVyLmNvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3Rv
ciAhPSAmcm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0g
ICAgICAgICAgICB0b3AgKz0gQm94R2VvbWV0cnk6OmJvcmRlckJveFRvcChnZW9tZXRyeUZvckJv
eCgqYW5jZXN0b3IpKTsKKyAgICAgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbnRhaW5pbmdC
bG9ja0NoYWluKGZsb2F0QXZvaWRlciwgcm9vdCgpKSkKKyAgICAgICAgICAgIHRvcCArPSBCb3hH
ZW9tZXRyeTo6Ym9yZGVyQm94VG9wKGdlb21ldHJ5Rm9yQm94KGFuY2VzdG9yKSk7CiAgICAgICAg
IHJldHVybiB0b3A7CiAgICAgfTsKIApAQCAtMjMxLDggKzIzMiw4IEBAIE9wdGlvbmFsPExheW91
dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0
QXZvaWRlcihjCiAgICAgICAgIGlmICghZmxvYXRDb25zdHJhaW50cy5sZWZ0ICYmICFmbG9hdENv
bnN0cmFpbnRzLnJpZ2h0KQogICAgICAgICAgICAgcmV0dXJuIEZsb2F0aW5nQ29udGV4dDo6Q29u
c3RyYWludHMgeyB9OwogICAgICAgICBhdXRvIG9mZnNldCA9IExheW91dFNpemUgeyB9OwotICAg
ICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsg
YW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9j
aygpKQotICAgICAgICAgICAgb2Zmc2V0ICs9IHRvTGF5b3V0U2l6ZShCb3hHZW9tZXRyeTo6Ym9y
ZGVyQm94VG9wTGVmdChnZW9tZXRyeUZvckJveCgqYW5jZXN0b3IpKSk7CisgICAgICAgIGZvciAo
YXV0byYgYW5jZXN0b3IgOiBjb250YWluaW5nQmxvY2tDaGFpbihsYXlvdXRCb3gsIHJvb3QoKSkp
CisgICAgICAgICAgICBvZmZzZXQgKz0gdG9MYXlvdXRTaXplKEJveEdlb21ldHJ5Ojpib3JkZXJC
b3hUb3BMZWZ0KGdlb21ldHJ5Rm9yQm94KGFuY2VzdG9yKSkpOwogICAgICAgICBpZiAoZmxvYXRD
b25zdHJhaW50cy5sZWZ0KQogICAgICAgICAgICAgZmxvYXRDb25zdHJhaW50cy5sZWZ0ID0gUG9p
bnRJbkNvbnRleHRSb290IHsgKmZsb2F0Q29uc3RyYWludHMubGVmdCAtIG9mZnNldCB9OwogICAg
ICAgICBpZiAoZmxvYXRDb25zdHJhaW50cy5yaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IGJiNDE0NjQxY2Q1NzFlNjE2NmU0OTRk
ZjJkNWJmYjM2ZjEyODgwMWQuLmJhMjJhZjI0MzRkOGE1MjZmZTc5ZGE4MzU0Y2M4MzAzMTFlMmYy
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNw
cApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKICNp
bmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRDb250YWluaW5n
QmxvY2tDaGFpbkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdC
bG9jay5oIgogI2luY2x1ZGUgIkxheW91dFBoYXNlLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUu
aCIKQEAgLTQyNCw2ICs0MjUsMTcgQEAgY29uc3QgQm94KiBCb3g6OnByZXZpb3VzSW5GbG93T3JG
bG9hdGluZ1NpYmxpbmcoKSBjb25zdAogICAgIHJldHVybiBwcmV2aW91c1NpYmxpbmc7CiB9CiAK
K2Jvb2wgQm94Ojppc0Rlc2NlbmRhbnRPZihjb25zdCBDb250YWluZXJCb3gmIGFuY2VzdG9yKSBj
b25zdAoreworICAgIGlmIChhbmNlc3Rvci5pc0luaXRpYWxDb250YWluaW5nQmxvY2soKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgZm9yIChhdXRvJiBjb250YWluaW5nQmxvY2sgOiBjb250
YWluaW5nQmxvY2tDaGFpbigqdGhpcykpIHsKKyAgICAgICAgaWYgKCZjb250YWluaW5nQmxvY2sg
PT0gJmFuY2VzdG9yKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK30KKwogYm9vbCBCb3g6OmlzT3ZlcmZsb3dWaXNpYmxlKCkgY29uc3QKIHsKICAg
ICBhdXRvIGlzT3ZlcmZsb3dWaXNpYmxlID0gbV9zdHlsZS5vdmVyZmxvd1goKSA9PSBPdmVyZmxv
dzo6VmlzaWJsZSB8fCBtX3N0eWxlLm92ZXJmbG93WSgpID09IE92ZXJmbG93OjpWaXNpYmxlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaAppbmRleCAzMDIx
M2EwNTc3ZGQxNWY1Y2VjMmRjMjc3OTY1Yzk0YTFhMGMyNWYwLi4zNDFjMDlmNDM5ZDJhZmEwNjAz
ZmRmOTI5M2I1OTUzZGU4ODcxOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
bGF5b3V0dHJlZS9MYXlvdXRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBC
b3gqIHByZXZpb3VzU2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcHJldmlvdXNTaWJsaW5nOyB9
CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdDsKICAgICBjb25z
dCBCb3gqIHByZXZpb3VzSW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSBjb25zdDsKKyAgICBib29s
IGlzRGVzY2VuZGFudE9mKGNvbnN0IENvbnRhaW5lckJveCYpIGNvbnN0OwogCiAgICAgLy8gRklY
TUU6IFRoaXMgaXMgY3VycmVudGx5IG5lZWRlZCBmb3Igc3R5bGUgdXBkYXRlcy4KICAgICBCb3gq
IG5leHRTaWJsaW5nKCkgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5J
dGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFp
bmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oCmluZGV4IDBlYWE3MTRlMmFjMzMwMGY4OTc3NDNlM2Yw
ODEyMjJmZDI2NzQyOGMuLjQ1ZWU5ODg2M2Q0N2RmM2NmZGQ5YTIxZWI2NGE1ZDk3MTdjNmEzZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRh
aW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgKQEAgLTM1LDcgKzM1
LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBjbGFzcyBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFp
bkl0ZXJhdG9yIHsKIHB1YmxpYzoKICAgICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yKCkgPSBkZWZhdWx0OwotICAgIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3Io
Y29uc3QgQ29udGFpbmVyQm94Jik7CisgICAgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvcihjb25zdCBDb250YWluZXJCb3gqKTsKICAgICBjb25zdCBDb250YWluZXJCb3gmIG9wZXJh
dG9yKigpIGNvbnN0IHsgcmV0dXJuICptX2N1cnJlbnQ7IH0KICAgICBjb25zdCBDb250YWluZXJC
b3gqIG9wZXJhdG9yLT4oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQ7IH0KIApAQCAtNDksMTgg
KzQ5LDIwIEBAIHByaXZhdGU6CiAKIGNsYXNzIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKLSAgICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0
ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJCb3gmKTsKLSAgICBhdXRvIGJlZ2luKCkgeyBy
ZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcihtX2NvbnRhaW5pbmdCbG9j
ayk7IH0KLSAgICBhdXRvIGVuZCgpIHsgcmV0dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IoKTsgfQorICAgIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFw
dGVyKGNvbnN0IENvbnRhaW5lckJveCYsIGNvbnN0IENvbnRhaW5lckJveCogc3RheVdpdGhpbiA9
IG51bGxwdHIpOworICAgIGF1dG8gYmVnaW4oKSB7IHJldHVybiBMYXlvdXRDb250YWluaW5nQmxv
Y2tDaGFpbkl0ZXJhdG9yKCZtX2NvbnRhaW5pbmdCbG9jayk7IH0KKyAgICBhdXRvIGVuZCgpIHsg
cmV0dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IobV9zdGF5V2l0aGluKTsg
fQogCiBwcml2YXRlOgogICAgIGNvbnN0IENvbnRhaW5lckJveCYgbV9jb250YWluaW5nQmxvY2s7
CisgICAgY29uc3QgQ29udGFpbmVyQm94KiBtX3N0YXlXaXRoaW4geyBudWxscHRyIH07CiB9Owog
CiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlciBjb250YWluaW5nQmxv
Y2tDaGFpbihjb25zdCBCb3gmKTsKK0xheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JB
ZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJveCYsIGNvbnN0IENvbnRhaW5lckJv
eCYgc3RheVdpdGhpbik7CiAKLWlubGluZSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yOjpMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lckJv
eCYgY3VycmVudCkKLSAgICA6IG1fY3VycmVudCgmY3VycmVudCkKK2lubGluZSBMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yOjpMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yKGNvbnN0IENvbnRhaW5lckJveCogY3VycmVudCkKKyAgICA6IG1fY3VycmVudChjdXJyZW50
KQogewogfQogCkBAIC03MSw4ICs3Myw5IEBAIGlubGluZSBMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yJiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yOjpvCiAgICAg
cmV0dXJuICp0aGlzOwogfQogCi1pbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvckFkYXB0ZXI6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGNv
bnN0IENvbnRhaW5lckJveCYgY29udGFpbmluZ0Jsb2NrKQoraW5saW5lIExheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0
ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJCb3gmIGNvbnRhaW5pbmdCbG9jaywgY29uc3Qg
Q29udGFpbmVyQm94KiBzdGF5V2l0aGluKQogICAgIDogbV9jb250YWluaW5nQmxvY2soY29udGFp
bmluZ0Jsb2NrKQorICAgICwgbV9zdGF5V2l0aGluKHN0YXlXaXRoaW4pCiB7CiB9CiAKQEAgLTgx
LDYgKzg0LDEyIEBAIGlubGluZSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRh
cHRlciBjb250YWluaW5nQmxvY2tDaGFpbihjb25zdCBCb3gmCiAgICAgcmV0dXJuIExheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGxheW91dEJveC5jb250YWluaW5nQmxv
Y2soKSk7CiB9CiAKK2lubGluZSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRh
cHRlciBjb250YWluaW5nQmxvY2tDaGFpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29u
dGFpbmVyQm94JiBzdGF5V2l0aGluKQoreworICAgIEFTU0VSVChsYXlvdXRCb3guaXNEZXNjZW5k
YW50T2Yoc3RheVdpdGhpbikpOworICAgIHJldHVybiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFp
bkl0ZXJhdG9yQWRhcHRlcihsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCksICZzdGF5V2l0aGlu
KTsKK30KKwogfQogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429947</attachid>
            <date>2021-05-27 16:14:53 -0700</date>
            <delta_ts>2021-05-28 06:48:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226315-20210527161452.patch</filename>
            <type>text/plain</type>
            <size>13332</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxYmQ3YTM5Mjk2ZjJm
NGQzZWM5OGI0YWNhNzBmMzU0NDIzY2NjZC4uYjM5ZjQ3MTUyYjRlZDk1MjhlYjU2OTIxZWFkMGE2
ZWM5MWY2NzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI3ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBUcmFuc2l0aW9uIGNv
bnRhaW5pbmcgYmxvY2sgZm9yIGxvb3BzIHRvIHJhbmdlIGxvb3BzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3RheVdpdGhp
bi4KKworICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGlu
Z1N0YXRlUm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nR2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFp
bGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcik6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRh
bnRPZiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6Cisg
ICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6ZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcjo6TGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OmNvbnRhaW5pbmdCbG9ja0NoYWluKToKKwogMjAyMS0wNS0yNiAgSmVhbi1ZdmVzIEF2ZW5h
cmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTWVkaWFTZXNzaW9uIHJlYWR5c3Rh
dGUgZW51bXMgYWxsIGxvd2VyY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0
cy9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDUwNmU0NzNmNmNkZGIxYTI3Zjk0Y2I2Yzc0OWY5
YzBlMWY3YTBjYTUuLmFiM2QyYTVmMjQwNzUyYWY5ZjM1YTlkZmE1Y2QyM2QzOGZiYzFlODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlv
dXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgorI2luY2x1
ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MTIsOCArNTEz
LDggQEAgTGF5b3V0UG9pbnQgRmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGluZ1N0
YXRlUm9vdChjb25zdCBCb3gmIGZsb2F0Qm94KQogewogICAgIGF1dG8mIGZsb2F0aW5nU3RhdGVS
b290ID0gZmxvYXRpbmdTdGF0ZSgpLnJvb3QoKTsKICAgICBhdXRvIHRvcExlZnQgPSBCb3hHZW9t
ZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGbG9hdEJveElzQWx3
YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVSb290KSk7Ci0gICAgZm9yIChhdXRvKiBjb250YWluaW5n
QmxvY2sgPSAmZmxvYXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdCbG9jayAhPSAm
ZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNv
bnRhaW5pbmdCbG9jaygpKQotICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9y
ZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWlu
aW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94SXNBbHdh
eXNSZWxhdGl2ZVRvRmxvYXRTdGF0ZVJvb3QpKSk7CisgICAgZm9yIChhdXRvJiBjb250YWluaW5n
QmxvY2sgOiBjb250YWluaW5nQmxvY2tDaGFpbihmbG9hdEJveCwgZmxvYXRpbmdTdGF0ZVJvb3Qp
KQorICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9jaywgRm9ybWF0
dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJc0Fsd2F5c1JlbGF0aXZlVG9GbG9h
dFN0YXRlUm9vdCkpKTsKICAgICByZXR1cm4gdG9wTGVmdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5n
R2VvbWV0cnkuY3BwCmluZGV4IDIxNDdiMTE3ZmIyZWQyYzUyODk1ZDA3Y2Q2OTk0MTVkNGVkZTgy
MDMuLmY3YWEwMWM5NWM3ZTFjZTk2ZjIwMzY2MDI4YTJmZjZkMDc4NTI3MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zv
cm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGbG9hdGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0
SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkQm94Lmgi
CkBAIC04NCwxNiArODUsMTYgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0dlb21l
dHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYgbGF5b3V0Qm8KICAgICAgICAgaWYg
KGxheW91dFN0YXRlKCkuaW5RdWlya3NNb2RlKCkpCiAgICAgICAgICAgICBjb250YWluaW5nQmxv
Y2tIZWlnaHQgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3MoKS5oZWlnaHRW
YWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChsYXlvdXRCb3gpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gbm9uQW5vbnltb3VzQ29udGFpbmluZ0Js
b2NrTG9naWNhbEhlaWdodCA9IFsmXSB7CisgICAgICAgICAgICBhdXRvIG5vbkFub255bW91c0Nv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQgPSBbJl0oKSAtPiBMZW5ndGggewogICAgICAgICAg
ICAgICAgIC8vIFdoZW4gdGhlIGJsb2NrIGxldmVsIGJveCBpcyBhIGRpcmVjdCBjaGlsZCBvZiBh
biBpbmxpbmUgbGV2ZWwgYm94ICg8c3Bhbj48ZGl2PjwvZGl2Pjwvc3Bhbj4pIGFuZCB3ZSB3cmFw
IGl0IGludG8gYSBjb250aW51YXRpb24sCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRhaW5p
bmcgYmxvY2sgKGFub255bW91cyB3cmFwcGVyKSBpcyBub3QgdGhlIGJveCB3ZSBuZWVkIHRvIGNo
ZWNrIGZvciBmaXhlZCBoZWlnaHQuCi0gICAgICAgICAgICAgICAgYXV0byYgaW5pdGlhbENvbnRh
aW5pbmdCbG9jayA9IGxheW91dEJveC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAg
ICAgICAgICAgZm9yIChhdXRvKiBjb250YWluaW5nQmxvY2sgPSAmbGF5b3V0Qm94LmNvbnRhaW5p
bmdCbG9jaygpOyBjb250YWluaW5nQmxvY2sgIT0gJmluaXRpYWxDb250YWluaW5nQmxvY2s7IGNv
bnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmlzQW5vbnltb3VzKCkpCisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjb250YWluaW5nQmxvY2sgOiBjb250YWluaW5nQmxv
Y2tDaGFpbihsYXlvdXRCb3gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5n
QmxvY2suaXNBbm9ueW1vdXMoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLmxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5z
dHlsZSgpLmxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGluaXRpYWxDb250YWluaW5nQmxvY2suc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBjb250YWluaW5nQmxvY2tI
ZWlnaHQgPSBmaXhlZFZhbHVlKG5vbkFub255bW91c0NvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWln
aHQoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCmluZGV4IGMwZmIxZmE0ODY3MzU4ODBmM2Q3M2U3ZGZiYThhNmFiNjRmYjEyMjIu
LjA4YzU2ZjJlOGQ4Mzk0NmMzODMwMzA5NGY5NDc5MzFhMmQ1NzE1MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2lu
Y2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJMYXlvdXRT
dGF0ZS5oIgpAQCAtMjIyLDggKzIyMyw4IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihjCiAKICAg
ICBhdXRvIGxvZ2ljYWxUb3BJbkZvcm1hdHRpbmdDb250ZXh0Um9vdENvb3JkaW5hdGUgPSBbJl0g
KGF1dG8mIGZsb2F0QXZvaWRlcikgewogICAgICAgICBhdXRvIHRvcCA9IEJveEdlb21ldHJ5Ojpi
b3JkZXJCb3hUb3AoZ2VvbWV0cnlGb3JCb3goZmxvYXRBdm9pZGVyKSk7Ci0gICAgICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSAmZmxvYXRBdm9pZGVyLmNvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3Rv
ciAhPSAmcm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0g
ICAgICAgICAgICB0b3AgKz0gQm94R2VvbWV0cnk6OmJvcmRlckJveFRvcChnZW9tZXRyeUZvckJv
eCgqYW5jZXN0b3IpKTsKKyAgICAgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbnRhaW5pbmdC
bG9ja0NoYWluKGZsb2F0QXZvaWRlciwgcm9vdCgpKSkKKyAgICAgICAgICAgIHRvcCArPSBCb3hH
ZW9tZXRyeTo6Ym9yZGVyQm94VG9wKGdlb21ldHJ5Rm9yQm94KGFuY2VzdG9yKSk7CiAgICAgICAg
IHJldHVybiB0b3A7CiAgICAgfTsKIApAQCAtMjMxLDggKzIzMiw4IEBAIE9wdGlvbmFsPExheW91
dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0
QXZvaWRlcihjCiAgICAgICAgIGlmICghZmxvYXRDb25zdHJhaW50cy5sZWZ0ICYmICFmbG9hdENv
bnN0cmFpbnRzLnJpZ2h0KQogICAgICAgICAgICAgcmV0dXJuIEZsb2F0aW5nQ29udGV4dDo6Q29u
c3RyYWludHMgeyB9OwogICAgICAgICBhdXRvIG9mZnNldCA9IExheW91dFNpemUgeyB9OwotICAg
ICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsg
YW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9j
aygpKQotICAgICAgICAgICAgb2Zmc2V0ICs9IHRvTGF5b3V0U2l6ZShCb3hHZW9tZXRyeTo6Ym9y
ZGVyQm94VG9wTGVmdChnZW9tZXRyeUZvckJveCgqYW5jZXN0b3IpKSk7CisgICAgICAgIGZvciAo
YXV0byYgYW5jZXN0b3IgOiBjb250YWluaW5nQmxvY2tDaGFpbihsYXlvdXRCb3gsIHJvb3QoKSkp
CisgICAgICAgICAgICBvZmZzZXQgKz0gdG9MYXlvdXRTaXplKEJveEdlb21ldHJ5Ojpib3JkZXJC
b3hUb3BMZWZ0KGdlb21ldHJ5Rm9yQm94KGFuY2VzdG9yKSkpOwogICAgICAgICBpZiAoZmxvYXRD
b25zdHJhaW50cy5sZWZ0KQogICAgICAgICAgICAgZmxvYXRDb25zdHJhaW50cy5sZWZ0ID0gUG9p
bnRJbkNvbnRleHRSb290IHsgKmZsb2F0Q29uc3RyYWludHMubGVmdCAtIG9mZnNldCB9OwogICAg
ICAgICBpZiAoZmxvYXRDb25zdHJhaW50cy5yaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nUXVpcmtz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFi
bGVGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCA1NmIyNzJiMmRiMDAzNWE1Y2ZiZDdmNjUwNjY2
M2ZhYTAwM2FiZmUzLi5iODk4MDM3NzBkYzhhNjdkNmY5MGNlZTQ0YjY0YzVjMzcxMmEzNWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxl
L1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWlya3MuY3BwCkBAIC02Niwx
NCArNjYsMTAgQEAgTGF5b3V0VW5pdCBUYWJsZUZvcm1hdHRpbmdRdWlya3M6OmhlaWdodFZhbHVl
T2ZOZWFyZXN0Q29udGFpbmluZ0Jsb2NrV2l0aEZpeGVkSGUKICAgICAgICAgcmV0dXJuIGhlaWdo
dC5pc0ZpeGVkKCkgPyBtYWtlT3B0aW9uYWwoTGF5b3V0VW5pdCB7IGhlaWdodC52YWx1ZSgpIH0p
IDogV1RGOjpudWxsb3B0OwogICAgIH07CiAKLSAgICBhdXRvJiB0YWJsZUJveCA9IGZvcm1hdHRp
bmdDb250ZXh0KCkucm9vdCgpOwotICAgIGZvciAoYXV0byYgYW5jZXN0b3IgOiBjb250YWluaW5n
QmxvY2tDaGFpbihsYXlvdXRCb3gpKSB7CisgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbnRh
aW5pbmdCbG9ja0NoYWluKGxheW91dEJveCwgZm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCkuY29u
dGFpbmluZ0Jsb2NrKCkpKSB7CiAgICAgICAgIGlmIChhdXRvIGZpeGVkSGVpZ2h0ID0gZml4ZWRM
b2dpY2FsSGVpZ2h0KGFuY2VzdG9yKSkKICAgICAgICAgICAgIHJldHVybiAqZml4ZWRIZWlnaHQ7
Ci0gICAgICAgIGlmICgmYW5jZXN0b3IgPT0gJnRhYmxlQm94KQotICAgICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIHsgfTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAK
aW5kZXggYmI0MTQ2NDFjZDU3MWU2MTY2ZTQ5NGRmMmQ1YmZiMzZmMTI4ODAxZC4uYmEyMmFmMjQz
NGQ4YTUyNmZlNzlkYTgzNTRjYzgzMDMxMWUyZjJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNs
dWRlICJMYXlvdXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5o
IgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNpbmNs
dWRlICJMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgiCiAjaW5jbHVkZSAiTGF5b3V0UGhh
c2UuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgpAQCAtNDI0LDYgKzQyNSwxNyBAQCBjb25z
dCBCb3gqIEJveDo6cHJldmlvdXNJbkZsb3dPckZsb2F0aW5nU2libGluZygpIGNvbnN0CiAgICAg
cmV0dXJuIHByZXZpb3VzU2libGluZzsKIH0KIAorYm9vbCBCb3g6OmlzRGVzY2VuZGFudE9mKGNv
bnN0IENvbnRhaW5lckJveCYgYW5jZXN0b3IpIGNvbnN0Cit7CisgICAgaWYgKGFuY2VzdG9yLmlz
SW5pdGlhbENvbnRhaW5pbmdCbG9jaygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBmb3Ig
KGF1dG8mIGNvbnRhaW5pbmdCbG9jayA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKCp0aGlzKSkgewor
ICAgICAgICBpZiAoJmNvbnRhaW5pbmdCbG9jayA9PSAmYW5jZXN0b3IpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEJveDo6aXNP
dmVyZmxvd1Zpc2libGUoKSBjb25zdAogewogICAgIGF1dG8gaXNPdmVyZmxvd1Zpc2libGUgPSBt
X3N0eWxlLm92ZXJmbG93WCgpID09IE92ZXJmbG93OjpWaXNpYmxlIHx8IG1fc3R5bGUub3ZlcmZs
b3dZKCkgPT0gT3ZlcmZsb3c6OlZpc2libGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dEJveC5oCmluZGV4IDMwMjEzYTA1NzdkZDE1ZjVjZWMyZGMyNzc5NjVjOTRh
MWEwYzI1ZjAuLjM0MWMwOWY0MzlkMmFmYTA2MDNmZGY5MjkzYjU5NTNkZTg4NzE5N2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCkBAIC0xNDYsNiAr
MTQ2LDcgQEAgcHVibGljOgogICAgIGNvbnN0IEJveCogcHJldmlvdXNTaWJsaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9wcmV2aW91c1NpYmxpbmc7IH0KICAgICBjb25zdCBCb3gqIHByZXZpb3VzSW5G
bG93U2libGluZygpIGNvbnN0OwogICAgIGNvbnN0IEJveCogcHJldmlvdXNJbkZsb3dPckZsb2F0
aW5nU2libGluZygpIGNvbnN0OworICAgIGJvb2wgaXNEZXNjZW5kYW50T2YoY29uc3QgQ29udGFp
bmVyQm94JikgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBjdXJyZW50bHkgbmVlZGVk
IGZvciBzdHlsZSB1cGRhdGVzLgogICAgIEJveCogbmV4dFNpYmxpbmcoKSB7IHJldHVybiBtX25l
eHRTaWJsaW5nOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgKaW5k
ZXggMGVhYTcxNGUyYWMzMzAwZjg5Nzc0M2UzZjA4MTIyMmZkMjY3NDI4Yy4uNDVlZTk4ODYzZDQ3
ZGYzY2ZkZDlhMjFlYjY0YTVkOTcxN2M2YTNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5pbmdCbG9j
a0NoYWluSXRlcmF0b3IuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgTGF5b3V0IHsKIGNs
YXNzIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IgewogcHVibGljOgogICAgIExh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoKSA9IGRlZmF1bHQ7Ci0gICAgTGF5b3V0
Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcihjb25zdCBDb250YWluZXJCb3gmKTsKKyAgICBM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lckJveCopOwog
ICAgIGNvbnN0IENvbnRhaW5lckJveCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKm1fY3Vy
cmVudDsgfQogICAgIGNvbnN0IENvbnRhaW5lckJveCogb3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0
dXJuIG1fY3VycmVudDsgfQogCkBAIC00OSwxOCArNDksMjAgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIgewogcHVibGljOgotICAg
IExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5l
ckJveCYpOwotICAgIGF1dG8gYmVnaW4oKSB7IHJldHVybiBMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yKG1fY29udGFpbmluZ0Jsb2NrKTsgfQotICAgIGF1dG8gZW5kKCkgeyByZXR1
cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigpOyB9CisgICAgTGF5b3V0Q29u
dGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyQm94JiwgY29u
c3QgQ29udGFpbmVyQm94KiBzdGF5V2l0aGluID0gbnVsbHB0cik7CisgICAgYXV0byBiZWdpbigp
IHsgcmV0dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoJm1fY29udGFpbmlu
Z0Jsb2NrKTsgfQorICAgIGF1dG8gZW5kKCkgeyByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2Nr
Q2hhaW5JdGVyYXRvcihtX3N0YXlXaXRoaW4pOyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQ29u
dGFpbmVyQm94JiBtX2NvbnRhaW5pbmdCbG9jazsKKyAgICBjb25zdCBDb250YWluZXJCb3gqIG1f
c3RheVdpdGhpbiB7IG51bGxwdHIgfTsKIH07CiAKIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJveCYpOworTGF5b3V0
Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW4o
Y29uc3QgQm94JiwgY29uc3QgQ29udGFpbmVyQm94JiBzdGF5V2l0aGluKTsKIAotaW5saW5lIExh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6OkxheW91dENvbnRhaW5pbmdCbG9ja0No
YWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94JiBjdXJyZW50KQotICAgIDogbV9jdXJyZW50
KCZjdXJyZW50KQoraW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6Okxh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94KiBjdXJy
ZW50KQorICAgIDogbV9jdXJyZW50KGN1cnJlbnQpCiB7CiB9CiAKQEAgLTcxLDggKzczLDkgQEAg
aW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3ImIExheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3I6Om8KICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLWlubGluZSBM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6TGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyQm94JiBjb250YWluaW5n
QmxvY2spCitpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXI6
OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5l
ckJveCYgY29udGFpbmluZ0Jsb2NrLCBjb25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCiAg
ICAgOiBtX2NvbnRhaW5pbmdCbG9jayhjb250YWluaW5nQmxvY2spCisgICAgLCBtX3N0YXlXaXRo
aW4oc3RheVdpdGhpbikKIHsKIH0KIApAQCAtODEsNiArODQsMTIgQEAgaW5saW5lIExheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNv
bnN0IEJveCYKICAgICByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFk
YXB0ZXIobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKTsKIH0KIAoraW5saW5lIExheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb250YWluZXJCb3gmIHN0YXlXaXRoaW4pCit7Cisg
ICAgQVNTRVJUKGxheW91dEJveC5pc0Rlc2NlbmRhbnRPZihzdGF5V2l0aGluKSk7CisgICAgcmV0
dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGxheW91dEJveC5j
b250YWluaW5nQmxvY2soKSwgJnN0YXlXaXRoaW4pOworfQorCiB9CiB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430008</attachid>
            <date>2021-05-28 06:48:27 -0700</date>
            <delta_ts>2021-05-28 21:24:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226315-20210528064826.patch</filename>
            <type>text/plain</type>
            <size>13660</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxYmQ3YTM5Mjk2ZjJm
NGQzZWM5OGI0YWNhNzBmMzU0NDIzY2NjZC4uYjM5ZjQ3MTUyYjRlZDk1MjhlYjU2OTIxZWFkMGE2
ZWM5MWY2NzE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI3ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBUcmFuc2l0aW9uIGNv
bnRhaW5pbmcgYmxvY2sgZm9yIGxvb3BzIHRvIHJhbmdlIGxvb3BzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3RheVdpdGhp
bi4KKworICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGlu
Z1N0YXRlUm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nR2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFp
bGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcik6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRh
bnRPZiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6Cisg
ICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6ZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcjo6TGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OmNvbnRhaW5pbmdCbG9ja0NoYWluKToKKwogMjAyMS0wNS0yNiAgSmVhbi1ZdmVzIEF2ZW5h
cmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTWVkaWFTZXNzaW9uIHJlYWR5c3Rh
dGUgZW51bXMgYWxsIGxvd2VyY2FzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0
cy9GbG9hdGluZ0NvbnRleHQuY3BwCmluZGV4IDUwNmU0NzNmNmNkZGIxYTI3Zjk0Y2I2Yzc0OWY5
YzBlMWY3YTBjYTUuLmFiM2QyYTVmMjQwNzUyYWY5ZjM1YTlkZmE1Y2QyM2QzOGZiYzFlODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlv
dXRCb3hHZW9tZXRyeS5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJveC5oIgorI2luY2x1
ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNpbmNsdWRlIDx3dGYv
SXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MTIsOCArNTEz
LDggQEAgTGF5b3V0UG9pbnQgRmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGluZ1N0
YXRlUm9vdChjb25zdCBCb3gmIGZsb2F0Qm94KQogewogICAgIGF1dG8mIGZsb2F0aW5nU3RhdGVS
b290ID0gZmxvYXRpbmdTdGF0ZSgpLnJvb3QoKTsKICAgICBhdXRvIHRvcExlZnQgPSBCb3hHZW9t
ZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KGZsb2F0Qm94LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGbG9hdEJveElzQWx3
YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVSb290KSk7Ci0gICAgZm9yIChhdXRvKiBjb250YWluaW5n
QmxvY2sgPSAmZmxvYXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdCbG9jayAhPSAm
ZmxvYXRpbmdTdGF0ZVJvb3Q7IGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNv
bnRhaW5pbmdCbG9jaygpKQotICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9y
ZGVyQm94VG9wTGVmdChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KCpjb250YWlu
aW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94SXNBbHdh
eXNSZWxhdGl2ZVRvRmxvYXRTdGF0ZVJvb3QpKSk7CisgICAgZm9yIChhdXRvJiBjb250YWluaW5n
QmxvY2sgOiBjb250YWluaW5nQmxvY2tDaGFpbihmbG9hdEJveCwgZmxvYXRpbmdTdGF0ZVJvb3Qp
KQorICAgICAgICB0b3BMZWZ0Lm1vdmVCeShCb3hHZW9tZXRyeTo6Ym9yZGVyQm94VG9wTGVmdChm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9jaywgRm9ybWF0
dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJc0Fsd2F5c1JlbGF0aXZlVG9GbG9h
dFN0YXRlUm9vdCkpKTsKICAgICByZXR1cm4gdG9wTGVmdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5n
R2VvbWV0cnkuY3BwCmluZGV4IDIxNDdiMTE3ZmIyZWQyYzUyODk1ZDA3Y2Q2OTk0MTVkNGVkZTgy
MDMuLmY3YWEwMWM5NWM3ZTFjZTk2ZjIwMzY2MDI4YTJmZjZkMDc4NTI3MTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21l
dHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zv
cm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGbG9hdGlu
Z1N0YXRlLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIklubGlu
ZUZvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0
SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFJlcGxhY2VkQm94Lmgi
CkBAIC04NCwxNiArODUsMTYgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gRm9ybWF0dGluZ0dlb21l
dHJ5Ojpjb21wdXRlZEhlaWdodFZhbHVlKGNvbnN0IEJveCYgbGF5b3V0Qm8KICAgICAgICAgaWYg
KGxheW91dFN0YXRlKCkuaW5RdWlya3NNb2RlKCkpCiAgICAgICAgICAgICBjb250YWluaW5nQmxv
Y2tIZWlnaHQgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3MoKS5oZWlnaHRW
YWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChsYXlvdXRCb3gpOwog
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gbm9uQW5vbnltb3VzQ29udGFpbmluZ0Js
b2NrTG9naWNhbEhlaWdodCA9IFsmXSB7CisgICAgICAgICAgICBhdXRvIG5vbkFub255bW91c0Nv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQgPSBbJl0oKSAtPiBMZW5ndGggewogICAgICAgICAg
ICAgICAgIC8vIFdoZW4gdGhlIGJsb2NrIGxldmVsIGJveCBpcyBhIGRpcmVjdCBjaGlsZCBvZiBh
biBpbmxpbmUgbGV2ZWwgYm94ICg8c3Bhbj48ZGl2PjwvZGl2Pjwvc3Bhbj4pIGFuZCB3ZSB3cmFw
IGl0IGludG8gYSBjb250aW51YXRpb24sCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRhaW5p
bmcgYmxvY2sgKGFub255bW91cyB3cmFwcGVyKSBpcyBub3QgdGhlIGJveCB3ZSBuZWVkIHRvIGNo
ZWNrIGZvciBmaXhlZCBoZWlnaHQuCi0gICAgICAgICAgICAgICAgYXV0byYgaW5pdGlhbENvbnRh
aW5pbmdCbG9jayA9IGxheW91dEJveC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAg
ICAgICAgICAgZm9yIChhdXRvKiBjb250YWluaW5nQmxvY2sgPSAmbGF5b3V0Qm94LmNvbnRhaW5p
bmdCbG9jaygpOyBjb250YWluaW5nQmxvY2sgIT0gJmluaXRpYWxDb250YWluaW5nQmxvY2s7IGNv
bnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmlzQW5vbnltb3VzKCkpCisg
ICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjb250YWluaW5nQmxvY2sgOiBjb250YWluaW5nQmxv
Y2tDaGFpbihsYXlvdXRCb3gpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb250YWluaW5n
QmxvY2suaXNBbm9ueW1vdXMoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrLT5zdHlsZSgpLmxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5z
dHlsZSgpLmxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIGluaXRpYWxDb250YWluaW5nQmxvY2suc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7
CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBjb250YWluaW5nQmxvY2tI
ZWlnaHQgPSBmaXhlZFZhbHVlKG5vbkFub255bW91c0NvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWln
aHQoKSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCmluZGV4IGMwZmIxZmE0ODY3MzU4ODBmM2Q3M2U3ZGZiYThhNmFiNjRmYjEyMjIu
LmM0NDkyNzdjNTg3ZTU1OWE4YTc1YzFmMmVhN2UzNjc1ODY5M2RjNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMzcsNiArMzcsNyBAQAog
I2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGV4dC5oIgogI2lu
Y2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJMYXlvdXRT
dGF0ZS5oIgpAQCAtMjIyLDggKzIyMyw4IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihjCiAKICAg
ICBhdXRvIGxvZ2ljYWxUb3BJbkZvcm1hdHRpbmdDb250ZXh0Um9vdENvb3JkaW5hdGUgPSBbJl0g
KGF1dG8mIGZsb2F0QXZvaWRlcikgewogICAgICAgICBhdXRvIHRvcCA9IEJveEdlb21ldHJ5Ojpi
b3JkZXJCb3hUb3AoZ2VvbWV0cnlGb3JCb3goZmxvYXRBdm9pZGVyKSk7Ci0gICAgICAgIGZvciAo
YXV0byogYW5jZXN0b3IgPSAmZmxvYXRBdm9pZGVyLmNvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3Rv
ciAhPSAmcm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0g
ICAgICAgICAgICB0b3AgKz0gQm94R2VvbWV0cnk6OmJvcmRlckJveFRvcChnZW9tZXRyeUZvckJv
eCgqYW5jZXN0b3IpKTsKKyAgICAgICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbnRhaW5pbmdC
bG9ja0NoYWluKGZsb2F0QXZvaWRlcikpCisgICAgICAgICAgICB0b3AgKz0gQm94R2VvbWV0cnk6
OmJvcmRlckJveFRvcChnZW9tZXRyeUZvckJveChhbmNlc3RvcikpOwogICAgICAgICByZXR1cm4g
dG9wOwogICAgIH07CiAKQEAgLTIzMSw4ICsyMzIsOCBAQCBPcHRpb25hbDxMYXlvdXRVbml0PiBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIo
YwogICAgICAgICBpZiAoIWZsb2F0Q29uc3RyYWludHMubGVmdCAmJiAhZmxvYXRDb25zdHJhaW50
cy5yaWdodCkKICAgICAgICAgICAgIHJldHVybiBGbG9hdGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRz
IHsgfTsKICAgICAgICAgYXV0byBvZmZzZXQgPSBMYXlvdXRTaXplIHsgfTsKLSAgICAgICAgZm9y
IChhdXRvKiBhbmNlc3RvciA9ICZsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9y
ICE9ICZyb290KCk7IGFuY2VzdG9yID0gJmFuY2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkKLSAg
ICAgICAgICAgIG9mZnNldCArPSB0b0xheW91dFNpemUoQm94R2VvbWV0cnk6OmJvcmRlckJveFRv
cExlZnQoZ2VvbWV0cnlGb3JCb3goKmFuY2VzdG9yKSkpOworICAgICAgICBmb3IgKGF1dG8mIGFu
Y2VzdG9yIDogY29udGFpbmluZ0Jsb2NrQ2hhaW4obGF5b3V0Qm94KSkKKyAgICAgICAgICAgIG9m
ZnNldCArPSB0b0xheW91dFNpemUoQm94R2VvbWV0cnk6OmJvcmRlckJveFRvcExlZnQoZ2VvbWV0
cnlGb3JCb3goYW5jZXN0b3IpKSk7CiAgICAgICAgIGlmIChmbG9hdENvbnN0cmFpbnRzLmxlZnQp
CiAgICAgICAgICAgICBmbG9hdENvbnN0cmFpbnRzLmxlZnQgPSBQb2ludEluQ29udGV4dFJvb3Qg
eyAqZmxvYXRDb25zdHJhaW50cy5sZWZ0IC0gb2Zmc2V0IH07CiAgICAgICAgIGlmIChmbG9hdENv
bnN0cmFpbnRzLnJpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWlya3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWly
a3MuY3BwCmluZGV4IDU2YjI3MmIyZGIwMDM1YTVjZmJkN2Y2NTA2NjYzZmFhMDAzYWJmZTMuLmI4
OTgwMzc3MGRjOGE2N2Q2ZjkwY2VlNDRiNjRjNWMzNzEyYTM1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5n
UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTY2LDE0ICs2NiwxMCBAQCBMYXlv
dXRVbml0IFRhYmxlRm9ybWF0dGluZ1F1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWlu
aW5nQmxvY2tXaXRoRml4ZWRIZQogICAgICAgICByZXR1cm4gaGVpZ2h0LmlzRml4ZWQoKSA/IG1h
a2VPcHRpb25hbChMYXlvdXRVbml0IHsgaGVpZ2h0LnZhbHVlKCkgfSkgOiBXVEY6Om51bGxvcHQ7
CiAgICAgfTsKIAotICAgIGF1dG8mIHRhYmxlQm94ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5yb290
KCk7Ci0gICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKGxheW91
dEJveCkpIHsKKyAgICBmb3IgKGF1dG8mIGFuY2VzdG9yIDogY29udGFpbmluZ0Jsb2NrQ2hhaW4o
bGF5b3V0Qm94LCBmb3JtYXR0aW5nQ29udGV4dCgpLnJvb3QoKS5jb250YWluaW5nQmxvY2soKSkp
IHsKICAgICAgICAgaWYgKGF1dG8gZml4ZWRIZWlnaHQgPSBmaXhlZExvZ2ljYWxIZWlnaHQoYW5j
ZXN0b3IpKQogICAgICAgICAgICAgcmV0dXJuICpmaXhlZEhlaWdodDsKLSAgICAgICAgaWYgKCZh
bmNlc3RvciA9PSAmdGFibGVCb3gpCi0gICAgICAgICAgICByZXR1cm4geyB9OwogICAgIH0KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAppbmRleCBiYjQxNDY0MWNk
NTcxZTYxNjZlNDk0ZGYyZDViZmIzNmYxMjg4MDFkLi5iYTIyYWYyNDM0ZDhhNTI2ZmU3OWRhODM1
NGNjODMwMzExZTJmMmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dEJveC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkxheW91dEJveEdl
b21ldHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyQm94LmgiCisjaW5jbHVkZSAiTGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oIgogI2luY2x1ZGUgIkxheW91dEluaXRp
YWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJMYXlvdXRQaGFzZS5oIgogI2luY2x1ZGUg
IkxheW91dFN0YXRlLmgiCkBAIC00MjQsNiArNDI1LDE3IEBAIGNvbnN0IEJveCogQm94OjpwcmV2
aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3QKICAgICByZXR1cm4gcHJldmlvdXNT
aWJsaW5nOwogfQogCitib29sIEJveDo6aXNEZXNjZW5kYW50T2YoY29uc3QgQ29udGFpbmVyQm94
JiBhbmNlc3RvcikgY29uc3QKK3sKKyAgICBpZiAoYW5jZXN0b3IuaXNJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGZvciAoYXV0byYgY29udGFpbmlu
Z0Jsb2NrIDogY29udGFpbmluZ0Jsb2NrQ2hhaW4oKnRoaXMpKSB7CisgICAgICAgIGlmICgmY29u
dGFpbmluZ0Jsb2NrID09ICZhbmNlc3RvcikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgQm94Ojppc092ZXJmbG93VmlzaWJsZSgp
IGNvbnN0CiB7CiAgICAgYXV0byBpc092ZXJmbG93VmlzaWJsZSA9IG1fc3R5bGUub3ZlcmZsb3dY
KCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgbV9zdHlsZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxv
dzo6VmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmgKaW5kZXggMzAyMTNhMDU3N2RkMTVmNWNlYzJkYzI3Nzk2NWM5NGExYTBjMjVmMC4uMzQxYzA5
ZjQzOWQyYWZhMDYwM2ZkZjkyOTNiNTk1M2RlODg3MTk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQm94KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX3ByZXZp
b3VzU2libGluZzsgfQogICAgIGNvbnN0IEJveCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKCkgY29u
c3Q7CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29u
c3Q7CisgICAgYm9vbCBpc0Rlc2NlbmRhbnRPZihjb25zdCBDb250YWluZXJCb3gmKSBjb25zdDsK
IAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGN1cnJlbnRseSBuZWVkZWQgZm9yIHN0eWxlIHVwZGF0
ZXMuCiAgICAgQm94KiBuZXh0U2libGluZygpIHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVl
L0xheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaAppbmRleCAwZWFhNzE0ZTJhYzMz
MDBmODk3NzQzZTNmMDgxMjIyZmQyNjc0MjhjLi5hMmJmNWI3NjQzMTEzNDQ0NTljMzc0ODhhYjc5
NzI3YWY4Y2MxZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5o
CkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogY2xhc3MgTGF5b3V0Q29udGFp
bmluZ0Jsb2NrQ2hhaW5JdGVyYXRvciB7CiBwdWJsaWM6CiAgICAgTGF5b3V0Q29udGFpbmluZ0Js
b2NrQ2hhaW5JdGVyYXRvcigpID0gZGVmYXVsdDsKLSAgICBMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lckJveCYpOworICAgIExheW91dENvbnRhaW5pbmdC
bG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94Kik7CiAgICAgY29uc3QgQ29udGFp
bmVyQm94JiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVybiAqbV9jdXJyZW50OyB9CiAgICAgY29u
c3QgQ29udGFpbmVyQm94KiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50OyB9
CiAKQEAgLTQ5LDE4ICs0OSwyMSBAQCBwcml2YXRlOgogCiBjbGFzcyBMYXlvdXRDb250YWluaW5n
QmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlciB7CiBwdWJsaWM6Ci0gICAgTGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyQm94Jik7Ci0gICAgYXV0
byBiZWdpbigpIHsgcmV0dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IobV9j
b250YWluaW5nQmxvY2spOyB9Ci0gICAgYXV0byBlbmQoKSB7IHJldHVybiBMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yKCk7IH0KKyAgICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFp
bkl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJCb3gmLCBjb25zdCBDb250YWluZXJCb3gq
IHN0YXlXaXRoaW4gPSBudWxscHRyKTsKKyAgICBhdXRvIGJlZ2luKCkgeyByZXR1cm4gTGF5b3V0
Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigmbV9jb250YWluaW5nQmxvY2spOyB9CisgICAg
YXV0byBlbmQoKSB7IHJldHVybiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKG1f
c3RheVdpdGhpbik7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBDb250YWluZXJCb3gmIG1fY29u
dGFpbmluZ0Jsb2NrOworICAgIGNvbnN0IENvbnRhaW5lckJveCogbV9zdGF5V2l0aGluIHsgbnVs
bHB0ciB9OwogfTsKIAogTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIg
Y29udGFpbmluZ0Jsb2NrQ2hhaW4oY29uc3QgQm94Jik7CitMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yQWRhcHRlciBjb250YWluaW5nQmxvY2tDaGFpbihjb25zdCBCb3gmLCBjb25z
dCBDb250YWluZXJCb3gmIHN0YXlXaXRoaW4pOworTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5J
dGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW5XaXRoaW5Gb3JtYXR0aW5nQ29udGV4
dChjb25zdCBCb3gmKTsKIAotaW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0
b3I6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94
JiBjdXJyZW50KQotICAgIDogbV9jdXJyZW50KCZjdXJyZW50KQoraW5saW5lIExheW91dENvbnRh
aW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0
b3IoY29uc3QgQ29udGFpbmVyQm94KiBjdXJyZW50KQorICAgIDogbV9jdXJyZW50KGN1cnJlbnQp
CiB7CiB9CiAKQEAgLTcxLDggKzc0LDkgQEAgaW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0No
YWluSXRlcmF0b3ImIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6Om8KICAgICBy
ZXR1cm4gKnRoaXM7CiB9CiAKLWlubGluZSBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yQWRhcHRlcjo6TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29u
c3QgQ29udGFpbmVyQm94JiBjb250YWluaW5nQmxvY2spCitpbmxpbmUgTGF5b3V0Q29udGFpbmlu
Z0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXI6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5lckJveCYgY29udGFpbmluZ0Jsb2NrLCBjb25zdCBD
b250YWluZXJCb3gqIHN0YXlXaXRoaW4pCiAgICAgOiBtX2NvbnRhaW5pbmdCbG9jayhjb250YWlu
aW5nQmxvY2spCisgICAgLCBtX3N0YXlXaXRoaW4oc3RheVdpdGhpbikKIHsKIH0KIApAQCAtODEs
NiArODUsMTcgQEAgaW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFw
dGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJveCYKICAgICByZXR1cm4gTGF5b3V0Q29u
dGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9j
aygpKTsKIH0KIAoraW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFw
dGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb250
YWluZXJCb3gmIHN0YXlXaXRoaW4pCit7CisgICAgQVNTRVJUKGxheW91dEJveC5pc0Rlc2NlbmRh
bnRPZihzdGF5V2l0aGluKSk7CisgICAgcmV0dXJuIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWlu
SXRlcmF0b3JBZGFwdGVyKGxheW91dEJveC5jb250YWluaW5nQmxvY2soKSwgJnN0YXlXaXRoaW4p
OworfQorCitpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIg
Y29udGFpbmluZ0Jsb2NrQ2hhaW5XaXRoaW5Gb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gmIGxh
eW91dEJveCkKK3sKKyAgICByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRv
ckFkYXB0ZXIobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpLCAmbGF5b3V0Qm94LmZvcm1hdHRp
bmdDb250ZXh0Um9vdCgpKTsKK30KKwogfQogfQogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430088</attachid>
            <date>2021-05-28 21:24:28 -0700</date>
            <delta_ts>2021-05-29 05:12:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226315-20210528212427.patch</filename>
            <type>text/plain</type>
            <size>13701</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU3YmYyOTFjMGYwYzg0
NDU1NjY5MmU2MzM1YzUyZjAwMDUwMTk2NS4uNTUwNjM5ZmIwMWYwMGEyMGUwOTViZDk2OGQyZGRm
ZjQ0ZmFiNjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA1LTI4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBUcmFuc2l0aW9uIGNv
bnRhaW5pbmcgYmxvY2sgZm9yIGxvb3BzIHRvIHJhbmdlIGxvb3BzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzMTUKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3RheVdpdGhp
bi4KKworICAgICAgICAqIGxheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdDb250ZXh0OjptYXBUb3BMZWZ0VG9GbG9hdGlu
Z1N0YXRlUm9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nR2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nR2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFp
bGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcik6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRh
bnRPZiBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94Lmg6Cisg
ICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVy
YXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250YWluaW5nQmxvY2tD
aGFpbkl0ZXJhdG9yQWRhcHRlcjo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6ZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcjo6TGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyOjpMYXlvdXRDb250
YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OmNvbnRhaW5pbmdCbG9ja0NoYWluKToKKwogMjAyMS0wNS0yOCAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYmtpdCBkb2Vzbid0IGNhbGN1bGF0ZSBwYWRkaW5n
LXRvcC8tYm90dG9tIGluICUgY29ycmVjdGx5IHdoZW4gcGFyZW50IGhhcyBwYWRkaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKaW5kZXgg
Y2U1Y2E3NDc2MThjYzc4NmZhYzlhOTg0ZjljNTk4OTRlMDg4YjhkOC4uOWMxZTg3ZjQzMjZiZjdl
MmRlYzA4OTEyZGU2MmU5OWZmM2NmMjA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAjaW5jbHVkZSAi
TGF5b3V0Q29udGFpbmVyQm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hh
aW5JdGVyYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTUxMiw4ICs1MTMsOCBAQCBMYXlvdXRQb2ludCBGbG9hdGluZ0Nv
bnRleHQ6Om1hcFRvcExlZnRUb0Zsb2F0aW5nU3RhdGVSb290KGNvbnN0IEJveCYgZmxvYXRCb3gp
CiB7CiAgICAgYXV0byYgZmxvYXRpbmdTdGF0ZVJvb3QgPSBmbG9hdGluZ1N0YXRlKCkucm9vdCgp
OwogICAgIGF1dG8gdG9wTGVmdCA9IEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goZmxvYXRCb3gsIEZvcm1hdHRpbmdDb250ZXh0
OjpFc2NhcGVSZWFzb246OkZsb2F0Qm94SXNBbHdheXNSZWxhdGl2ZVRvRmxvYXRTdGF0ZVJvb3Qp
KTsKLSAgICBmb3IgKGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9ICZmbG9hdEJveC5jb250YWluaW5n
QmxvY2soKTsgY29udGFpbmluZ0Jsb2NrICE9ICZmbG9hdGluZ1N0YXRlUm9vdDsgY29udGFpbmlu
Z0Jsb2NrID0gJmNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpCi0gICAgICAgIHRv
cExlZnQubW92ZUJ5KEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KGZvcm1hdHRpbmdDb250
ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaywgRm9ybWF0dGluZ0NvbnRleHQ6
OkVzY2FwZVJlYXNvbjo6RmxvYXRCb3hJc0Fsd2F5c1JlbGF0aXZlVG9GbG9hdFN0YXRlUm9vdCkp
KTsKKyAgICBmb3IgKGF1dG8mIGNvbnRhaW5pbmdCbG9jayA6IGNvbnRhaW5pbmdCbG9ja0NoYWlu
KGZsb2F0Qm94LCBmbG9hdGluZ1N0YXRlUm9vdCkpCisgICAgICAgIHRvcExlZnQubW92ZUJ5KEJv
eEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0KGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlG
b3JCb3goY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpG
bG9hdEJveElzQWx3YXlzUmVsYXRpdmVUb0Zsb2F0U3RhdGVSb290KSkpOwogICAgIHJldHVybiB0
b3BMZWZ0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggNGU3YzIwOWE5
OWUzMTVjZDZiMTJmOTU2YjNjNzVhM2YzN2I2NzAxYS4uYWQ4MDMyNjkwYzMxM2Y5OGVjYjYwZDQw
MWFlNTZiOGY0M2RlODlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0dlb21ldHJ5LmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkZsb2F0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJGb3JtYXR0
aW5nUXVpcmtzLmgiCiAjaW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVk
ZSAiTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oIgogI2luY2x1ZGUgIkxheW91
dENvbnRleHQuaCIKICNpbmNsdWRlICJMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgiCiAj
aW5jbHVkZSAiTGF5b3V0UmVwbGFjZWRCb3guaCIKQEAgLTg0LDE2ICs4NSwxNiBAQCBPcHRpb25h
bDxMYXlvdXRVbml0PiBGb3JtYXR0aW5nR2VvbWV0cnk6OmNvbXB1dGVkSGVpZ2h0VmFsdWUoY29u
c3QgQm94JiBsYXlvdXRCbwogICAgICAgICBpZiAobGF5b3V0U3RhdGUoKS5pblF1aXJrc01vZGUo
KSkKICAgICAgICAgICAgIGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGZvcm1hdHRpbmdDb250ZXh0
KCkuZm9ybWF0dGluZ1F1aXJrcygpLmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFpbmluZ0Jsb2Nr
V2l0aEZpeGVkSGVpZ2h0KGxheW91dEJveCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
YXV0byBub25Bbm9ueW1vdXNDb250YWluaW5nQmxvY2tMb2dpY2FsSGVpZ2h0ID0gWyZdIHsKKyAg
ICAgICAgICAgIGF1dG8gbm9uQW5vbnltb3VzQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCA9
IFsmXSgpIC0+IExlbmd0aCB7CiAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgYmxvY2sgbGV2
ZWwgYm94IGlzIGEgZGlyZWN0IGNoaWxkIG9mIGFuIGlubGluZSBsZXZlbCBib3ggKDxzcGFuPjxk
aXY+PC9kaXY+PC9zcGFuPikgYW5kIHdlIHdyYXAgaXQgaW50byBhIGNvbnRpbnVhdGlvbiwKICAg
ICAgICAgICAgICAgICAvLyB0aGUgY29udGFpbmluZyBibG9jayAoYW5vbnltb3VzIHdyYXBwZXIp
IGlzIG5vdCB0aGUgYm94IHdlIG5lZWQgdG8gY2hlY2sgZm9yIGZpeGVkIGhlaWdodC4KLSAgICAg
ICAgICAgICAgICBhdXRvJiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmluaXRp
YWxDb250YWluaW5nQmxvY2soKTsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIGNvbnRhaW5p
bmdCbG9jayA9ICZsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7IGNvbnRhaW5pbmdCbG9jayAh
PSAmaW5pdGlhbENvbnRhaW5pbmdCbG9jazsgY29udGFpbmluZ0Jsb2NrID0gJmNvbnRhaW5pbmdC
bG9jay0+Y29udGFpbmluZ0Jsb2NrKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRh
aW5pbmdCbG9jay0+aXNBbm9ueW1vdXMoKSkKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGNv
bnRhaW5pbmdCbG9jayA6IGNvbnRhaW5pbmdCbG9ja0NoYWluKGxheW91dEJveCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay5pc0Fub255bW91cygpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBj
b250YWluaW5nQmxvY2stPnN0eWxlKCkubG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gY29udGFpbmluZ0Jsb2NrLnN0eWxlKCkubG9naWNhbEhlaWdodCgpOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4gaW5pdGlhbENvbnRhaW5pbmdC
bG9jay5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgIGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGZpeGVkVmFsdWUobm9uQW5vbnlt
b3VzQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOTNkZjY0ZDgzZDNj
N2I4MDRhMDdhMjk1YTkxNWUwZDhiOGRlZDM3MS4uYzliOGU5NTQzMzlkNDk0ZjFhZjdkOTRhNjgz
MWM2YzZlYzQzY2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5j
bHVkZSAiTGF5b3V0Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lckJv
eC5oIgorI2luY2x1ZGUgIkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCIKICNp
bmNsdWRlICJMYXlvdXRDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5p
bmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCkBAIC0yMjIsOCArMjIzLDggQEAg
T3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dXNlZEF2YWlsYWJs
ZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGMKIAogICAgIGF1dG8gbG9naWNhbFRvcEluRm9ybWF0dGlu
Z0NvbnRleHRSb290Q29vcmRpbmF0ZSA9IFsmXSAoYXV0byYgZmxvYXRBdm9pZGVyKSB7CiAgICAg
ICAgIGF1dG8gdG9wID0gQm94R2VvbWV0cnk6OmJvcmRlckJveFRvcChnZW9tZXRyeUZvckJveChm
bG9hdEF2b2lkZXIpKTsKLSAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9ICZmbG9hdEF2b2lk
ZXIuY29udGFpbmluZ0Jsb2NrKCk7IGFuY2VzdG9yICE9ICZyb290KCk7IGFuY2VzdG9yID0gJmFu
Y2VzdG9yLT5jb250YWluaW5nQmxvY2soKSkKLSAgICAgICAgICAgIHRvcCArPSBCb3hHZW9tZXRy
eTo6Ym9yZGVyQm94VG9wKGdlb21ldHJ5Rm9yQm94KCphbmNlc3RvcikpOworICAgICAgICBmb3Ig
KGF1dG8mIGFuY2VzdG9yIDogY29udGFpbmluZ0Jsb2NrQ2hhaW5XaXRoaW5Gb3JtYXR0aW5nQ29u
dGV4dChmbG9hdEF2b2lkZXIpKQorICAgICAgICAgICAgdG9wICs9IEJveEdlb21ldHJ5Ojpib3Jk
ZXJCb3hUb3AoZ2VvbWV0cnlGb3JCb3goYW5jZXN0b3IpKTsKICAgICAgICAgcmV0dXJuIHRvcDsK
ICAgICB9OwogCkBAIC0yMzEsOCArMjMyLDggQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6dXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGMKICAg
ICAgICAgaWYgKCFmbG9hdENvbnN0cmFpbnRzLmxlZnQgJiYgIWZsb2F0Q29uc3RyYWludHMucmln
aHQpCiAgICAgICAgICAgICByZXR1cm4gRmxvYXRpbmdDb250ZXh0OjpDb25zdHJhaW50cyB7IH07
CiAgICAgICAgIGF1dG8gb2Zmc2V0ID0gTGF5b3V0U2l6ZSB7IH07Ci0gICAgICAgIGZvciAoYXV0
byogYW5jZXN0b3IgPSAmbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOyBhbmNlc3RvciAhPSAm
cm9vdCgpOyBhbmNlc3RvciA9ICZhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2NrKCkpCi0gICAgICAg
ICAgICBvZmZzZXQgKz0gdG9MYXlvdXRTaXplKEJveEdlb21ldHJ5Ojpib3JkZXJCb3hUb3BMZWZ0
KGdlb21ldHJ5Rm9yQm94KCphbmNlc3RvcikpKTsKKyAgICAgICAgZm9yIChhdXRvJiBhbmNlc3Rv
ciA6IGNvbnRhaW5pbmdCbG9ja0NoYWluV2l0aGluRm9ybWF0dGluZ0NvbnRleHQobGF5b3V0Qm94
KSkKKyAgICAgICAgICAgIG9mZnNldCArPSB0b0xheW91dFNpemUoQm94R2VvbWV0cnk6OmJvcmRl
ckJveFRvcExlZnQoZ2VvbWV0cnlGb3JCb3goYW5jZXN0b3IpKSk7CiAgICAgICAgIGlmIChmbG9h
dENvbnN0cmFpbnRzLmxlZnQpCiAgICAgICAgICAgICBmbG9hdENvbnN0cmFpbnRzLmxlZnQgPSBQ
b2ludEluQ29udGV4dFJvb3QgeyAqZmxvYXRDb25zdHJhaW50cy5sZWZ0IC0gb2Zmc2V0IH07CiAg
ICAgICAgIGlmIChmbG9hdENvbnN0cmFpbnRzLnJpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWly
a3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9U
YWJsZUZvcm1hdHRpbmdRdWlya3MuY3BwCmluZGV4IGU1Y2U2NWFiNTQyMTdhMDVjOTljOTNmMTk0
MjllNWQ5ZDg2MzlkYjAuLjA4NGIyMWMzY2NlZGZkYTA5OGFkYjNiZDQ1MGEyYmI1YzcxZDFkZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVGb3JtYXR0aW5nUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTY2
LDE0ICs2NiwxMCBAQCBMYXlvdXRVbml0IFRhYmxlRm9ybWF0dGluZ1F1aXJrczo6aGVpZ2h0VmFs
dWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4ZWRIZQogICAgICAgICByZXR1cm4gaGVp
Z2h0LmlzRml4ZWQoKSA/IHN0ZDo6bWFrZV9vcHRpb25hbChMYXlvdXRVbml0IHsgaGVpZ2h0LnZh
bHVlKCkgfSkgOiBzdGQ6Om51bGxvcHQ7CiAgICAgfTsKIAotICAgIGF1dG8mIHRhYmxlQm94ID0g
Zm9ybWF0dGluZ0NvbnRleHQoKS5yb290KCk7Ci0gICAgZm9yIChhdXRvJiBhbmNlc3RvciA6IGNv
bnRhaW5pbmdCbG9ja0NoYWluKGxheW91dEJveCkpIHsKKyAgICBmb3IgKGF1dG8mIGFuY2VzdG9y
IDogY29udGFpbmluZ0Jsb2NrQ2hhaW4obGF5b3V0Qm94LCBmb3JtYXR0aW5nQ29udGV4dCgpLnJv
b3QoKS5jb250YWluaW5nQmxvY2soKSkpIHsKICAgICAgICAgaWYgKGF1dG8gZml4ZWRIZWlnaHQg
PSBmaXhlZExvZ2ljYWxIZWlnaHQoYW5jZXN0b3IpKQogICAgICAgICAgICAgcmV0dXJuICpmaXhl
ZEhlaWdodDsKLSAgICAgICAgaWYgKCZhbmNlc3RvciA9PSAmdGFibGVCb3gpCi0gICAgICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmNwcAppbmRleCBiYjQxNDY0MWNkNTcxZTYxNjZlNDk0ZGYyZDViZmIzNmYxMjg4MDFkLi5i
YTIyYWYyNDM0ZDhhNTI2ZmU3OWRhODM1NGNjODMwMzExZTJmMmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiTGF5b3V0Q29udGFp
bmVyQm94LmgiCisjaW5jbHVkZSAiTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5o
IgogI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKICNpbmNsdWRlICJM
YXlvdXRQaGFzZS5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCkBAIC00MjQsNiArNDI1LDE3
IEBAIGNvbnN0IEJveCogQm94OjpwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29u
c3QKICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5nOwogfQogCitib29sIEJveDo6aXNEZXNjZW5k
YW50T2YoY29uc3QgQ29udGFpbmVyQm94JiBhbmNlc3RvcikgY29uc3QKK3sKKyAgICBpZiAoYW5j
ZXN0b3IuaXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGZvciAoYXV0byYgY29udGFpbmluZ0Jsb2NrIDogY29udGFpbmluZ0Jsb2NrQ2hhaW4oKnRo
aXMpKSB7CisgICAgICAgIGlmICgmY29udGFpbmluZ0Jsb2NrID09ICZhbmNlc3RvcikKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wg
Qm94Ojppc092ZXJmbG93VmlzaWJsZSgpIGNvbnN0CiB7CiAgICAgYXV0byBpc092ZXJmbG93Vmlz
aWJsZSA9IG1fc3R5bGUub3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlZpc2libGUgfHwgbV9zdHls
ZS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6VmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5kZXggMzAyMTNhMDU3N2RkMTVmNWNlYzJkYzI3
Nzk2NWM5NGExYTBjMjVmMC4uMzQxYzA5ZjQzOWQyYWZhMDYwM2ZkZjkyOTNiNTk1M2RlODg3MTk3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAg
LTE0Niw2ICsxNDYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQm94KiBwcmV2aW91c1NpYmxpbmco
KSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzU2libGluZzsgfQogICAgIGNvbnN0IEJveCogcHJl
dmlvdXNJbkZsb3dTaWJsaW5nKCkgY29uc3Q7CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxv
d09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3Q7CisgICAgYm9vbCBpc0Rlc2NlbmRhbnRPZihjb25z
dCBDb250YWluZXJCb3gmKSBjb25zdDsKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGN1cnJlbnRs
eSBuZWVkZWQgZm9yIHN0eWxlIHVwZGF0ZXMuCiAgICAgQm94KiBuZXh0U2libGluZygpIHsgcmV0
dXJuIG1fbmV4dFNpYmxpbmc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0
b3IuaAppbmRleCAwZWFhNzE0ZTJhYzMzMDBmODk3NzQzZTNmMDgxMjIyZmQyNjc0MjhjLi5kNGFj
ZDJlYzhlYzk1NmQyOTBkYjIxMmFkZTc3MjJkMDJlNjM0MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJh
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFp
bmluZ0Jsb2NrQ2hhaW5JdGVyYXRvci5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBMYXlv
dXQgewogY2xhc3MgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvciB7CiBwdWJsaWM6
CiAgICAgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigpID0gZGVmYXVsdDsKLSAg
ICBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKGNvbnN0IENvbnRhaW5lckJveCYp
OworICAgIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVy
Qm94Kik7CiAgICAgY29uc3QgQ29udGFpbmVyQm94JiBvcGVyYXRvciooKSBjb25zdCB7IHJldHVy
biAqbV9jdXJyZW50OyB9CiAgICAgY29uc3QgQ29udGFpbmVyQm94KiBvcGVyYXRvci0+KCkgY29u
c3QgeyByZXR1cm4gbV9jdXJyZW50OyB9CiAKQEAgLTQ5LDE4ICs0OSwyMSBAQCBwcml2YXRlOgog
CiBjbGFzcyBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlciB7CiBwdWJs
aWM6Ci0gICAgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3Qg
Q29udGFpbmVyQm94Jik7Ci0gICAgYXV0byBiZWdpbigpIHsgcmV0dXJuIExheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3IobV9jb250YWluaW5nQmxvY2spOyB9Ci0gICAgYXV0byBlbmQo
KSB7IHJldHVybiBMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yKCk7IH0KKyAgICBM
YXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcihjb25zdCBDb250YWluZXJC
b3gmLCBjb25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4gPSBudWxscHRyKTsKKyAgICBhdXRv
IGJlZ2luKCkgeyByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvcigmbV9j
b250YWluaW5nQmxvY2spOyB9CisgICAgYXV0byBlbmQoKSB7IHJldHVybiBMYXlvdXRDb250YWlu
aW5nQmxvY2tDaGFpbkl0ZXJhdG9yKG1fc3RheVdpdGhpbik7IH0KIAogcHJpdmF0ZToKICAgICBj
b25zdCBDb250YWluZXJCb3gmIG1fY29udGFpbmluZ0Jsb2NrOworICAgIGNvbnN0IENvbnRhaW5l
ckJveCogbV9zdGF5V2l0aGluIHsgbnVsbHB0ciB9OwogfTsKIAogTGF5b3V0Q29udGFpbmluZ0Js
b2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW4oY29uc3QgQm94Jik7
CitMYXlvdXRDb250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlciBjb250YWluaW5nQmxv
Y2tDaGFpbihjb25zdCBCb3gmLCBjb25zdCBDb250YWluZXJCb3gmIHN0YXlXaXRoaW4pOworTGF5
b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hh
aW5XaXRoaW5Gb3JtYXR0aW5nQ29udGV4dChjb25zdCBCb3gmKTsKIAotaW5saW5lIExheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6OkxheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRl
cmF0b3IoY29uc3QgQ29udGFpbmVyQm94JiBjdXJyZW50KQotICAgIDogbV9jdXJyZW50KCZjdXJy
ZW50KQoraW5saW5lIExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3I6OkxheW91dENv
bnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3IoY29uc3QgQ29udGFpbmVyQm94KiBjdXJyZW50KQor
ICAgIDogbV9jdXJyZW50KGN1cnJlbnQpCiB7CiB9CiAKQEAgLTcxLDggKzc0LDkgQEAgaW5saW5l
IExheW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3ImIExheW91dENvbnRhaW5pbmdCbG9j
a0NoYWluSXRlcmF0b3I6Om8KICAgICByZXR1cm4gKnRoaXM7CiB9CiAKLWlubGluZSBMYXlvdXRD
b250YWluaW5nQmxvY2tDaGFpbkl0ZXJhdG9yQWRhcHRlcjo6TGF5b3V0Q29udGFpbmluZ0Jsb2Nr
Q2hhaW5JdGVyYXRvckFkYXB0ZXIoY29uc3QgQ29udGFpbmVyQm94JiBjb250YWluaW5nQmxvY2sp
CitpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXI6OkxheW91
dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGNvbnN0IENvbnRhaW5lckJveCYg
Y29udGFpbmluZ0Jsb2NrLCBjb25zdCBDb250YWluZXJCb3gqIHN0YXlXaXRoaW4pCiAgICAgOiBt
X2NvbnRhaW5pbmdCbG9jayhjb250YWluaW5nQmxvY2spCisgICAgLCBtX3N0YXlXaXRoaW4oc3Rh
eVdpdGhpbikKIHsKIH0KIApAQCAtODEsNiArODUsMTcgQEAgaW5saW5lIExheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJv
eCYKICAgICByZXR1cm4gTGF5b3V0Q29udGFpbmluZ0Jsb2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIo
bGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKTsKIH0KIAoraW5saW5lIExheW91dENvbnRhaW5p
bmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyIGNvbnRhaW5pbmdCbG9ja0NoYWluKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBDb250YWluZXJCb3gmIHN0YXlXaXRoaW4pCit7CisgICAgQVNT
RVJUKGxheW91dEJveC5pc0Rlc2NlbmRhbnRPZihzdGF5V2l0aGluKSk7CisgICAgcmV0dXJuIExh
eW91dENvbnRhaW5pbmdCbG9ja0NoYWluSXRlcmF0b3JBZGFwdGVyKGxheW91dEJveC5jb250YWlu
aW5nQmxvY2soKSwgJnN0YXlXaXRoaW4pOworfQorCitpbmxpbmUgTGF5b3V0Q29udGFpbmluZ0Js
b2NrQ2hhaW5JdGVyYXRvckFkYXB0ZXIgY29udGFpbmluZ0Jsb2NrQ2hhaW5XaXRoaW5Gb3JtYXR0
aW5nQ29udGV4dChjb25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAgICByZXR1cm4gY29udGFpbmlu
Z0Jsb2NrQ2hhaW4obGF5b3V0Qm94LCBsYXlvdXRCb3guZm9ybWF0dGluZ0NvbnRleHRSb290KCkp
OworfQorCiB9CiB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>