<?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>206119</bug_id>
          
          <creation_ts>2020-01-10 18:57:55 -0800</creation_ts>
          <short_desc>[LFC] Introduce BlockFormattingContext::ConstraintsPair</short_desc>
          <delta_ts>2020-01-11 16:03:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1605463</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-10 18:57:55 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605464</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-10 18:58:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/58498745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605465</commentid>
    <comment_count>2</comment_count>
      <attachid>387413</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-10 19:00:28 -0800</bug_when>
    <thetext>Created attachment 387413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605555</commentid>
    <comment_count>3</comment_count>
      <attachid>387442</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-01-11 12:27:32 -0800</bug_when>
    <thetext>Created attachment 387442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605573</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-01-11 16:03:18 -0800</bug_when>
    <thetext>Committed r254403: &lt;https://trac.webkit.org/changeset/254403&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387413</attachid>
            <date>2020-01-10 19:00:28 -0800</date>
            <delta_ts>2020-01-11 12:27:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206119-20200110190027.patch</filename>
            <type>text/plain</type>
            <size>17683</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTM1ZWEwNWIyZTM3YWY5
ZTJjNGUwZTYxNmRjYjA5OGVmYjNmNDc4ZC4uODNhZDg2NzhkMDZjYjdiZGM1MWYyZGE5NGE3MTAw
OTE4MGZmMmIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81ODQ5ODc0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBwYXNzaW5nIHJvb3RIb3Jpem9udGFs
Q29uc3RyYWludHMgYWxsIHRoZSB3YXkgdG8gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oKS4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcjxUPjo6Q29uc3Ry
YWludHNQYWlyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93
UG9zaXRpb25lZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9y
aXpvbnRhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhl
aWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNQYWly
Ojpyb290IGNvbnN0KToKKwogMjAyMC0wMS0wOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdIFJlcGxhY2UgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5
cGVzIHdpdGggRXNjYXBlUmVhc29ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggN2Y3ZDFkZjA2ZjE4NTgwMjVkYjZhZTVjMDdiNGRkYTk5MzlmMjBhZi4uMGI0YjFmMTkwNGVi
Y2JkMmViNGMxZmIyYmViZTZlOTUzNzJiNTE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCkBAIC00NiwxMiArNDYsMTggQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KTsKIAordGVtcGxhdGU8
dHlwZW5hbWUgVD4KK0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcjxUPjo6
Q29uc3RyYWludHNQYWlyKGNvbnN0IFQmIHJvb3QsIGNvbnN0IFQmIGNvbnRhaW5pbmdCbG9jaykK
KyAgICA6IG1fcm9vdChyb290KQorICAgICwgbV9jb250YWluaW5nQmxvY2soY29udGFpbmluZ0Js
b2NrKQoreworfQorCiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0KGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290LCBCbG9ja0Zvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQogICAgIDogRm9ybWF0dGluZ0NvbnRleHQoZm9ybWF0
dGluZ0NvbnRleHRSb290LCBmb3JtYXR0aW5nU3RhdGUpCiB7CiB9CiAKLWVudW0gY2xhc3MgTGF5
b3V0RGlyZWN0aW9uIHsgQ2hpbGQsIFNpYmxpbmcgfTsKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9u
U3RhdGUsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgcm9vdEhvcml6b250YWxDb25zdHJh
aW50cywgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYgcm9vdFZlcnRpY2FsQ29uc3RyYWludHMp
CiB7CiAgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cwpAQCAtNjMsNiArNjks
NyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgIGF1dG8gZmxvYXRpbmdDb250ZXh0ID0g
RmxvYXRpbmdDb250ZXh0IHsgZm9ybWF0dGluZ1Jvb3QsICp0aGlzLCBmb3JtYXR0aW5nU3RhdGUo
KS5mbG9hdGluZ1N0YXRlKCkgfTsKIAogICAgIExheW91dFF1ZXVlIGxheW91dFF1ZXVlOworICAg
IGVudW0gY2xhc3MgTGF5b3V0RGlyZWN0aW9uIHsgQ2hpbGQsIFNpYmxpbmcgfTsKICAgICBhdXRv
IGFwcGVuZE5leHRUb0xheW91dFF1ZXVlID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gsIGF1
dG8gZGlyZWN0aW9uKSB7CiAgICAgICAgIGlmIChkaXJlY3Rpb24gPT0gTGF5b3V0RGlyZWN0aW9u
OjpDaGlsZCkgewogICAgICAgICAgICAgaWYgKCFpczxDb250YWluZXI+KGxheW91dEJveCkpCkBA
IC04OSwyMCArOTYsMjAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZs
b3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH07CiAKLSAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0ZvckxheW91
dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7CisgICAgYXV0byBob3Jpem9udGFs
Q29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgLT4g
Q29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4gewogICAgICAgICBhdXRvKiBj
b250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAgIEFT
U0VSVChjb250YWluaW5nQmxvY2spOwogICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrID09ICZm
b3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAgIHJldHVybiByb290SG9yaXpvbnRhbENvbnN0cmFp
bnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0Zvcklu
RmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSk7CisgICAgICAgICAgICByZXR1
cm4geyByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzLCByb290SG9yaXpvbnRhbENvbnN0cmFpbnRz
IH07CisgICAgICAgIHJldHVybiB7IHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMsIEdlb21ldHJ5
Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5p
bmdCbG9jaykpIH07CiAgICAgfTsKIAotICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zvckxh
eW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7CisgICAgYXV0byB2ZXJ0aWNh
bENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94ID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIC0+
IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiB7CiAgICAgICAgIGF1dG8qIGNv
bnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAgQVNT
RVJUKGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2sgPT0gJmZv
cm1hdHRpbmdSb290KQotICAgICAgICAgICAgcmV0dXJuIHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRz
OwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JJbkZsb3co
Z2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOworICAgICAgICAgICAgcmV0dXJuIHsg
cm9vdFZlcnRpY2FsQ29uc3RyYWludHMsIHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzIH07CisgICAg
ICAgIHJldHVybiB7IHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzLCBHZW9tZXRyeTo6dmVydGljYWxD
b25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSkgfTsK
ICAgICB9OwogICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVyIHRyZWUgdHJhdmVyc2FsIGxheW91
dC4KICAgICAvLyBUaGUgcm9vdCBjb250YWluZXIgbGF5b3V0IGlzIGRvbmUgaW4gdGhlIGZvcm1h
dHRpbmcgY29udGV4dCBpdCBsaXZlcyBpbiwgbm90IHRoYXQgb25lIGl0IGNyZWF0ZXMsIHNvIGxl
dCdzIHN0YXJ0IHdpdGggdGhlIGZpcnN0IGNoaWxkLgpAQCAtMTI2LDcgKzEzMyw3IEBAIHZvaWQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25T
dGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY29tcHV0ZUJvcmRl
ckFuZFBhZGRpbmcobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAgICAgICAg
ICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCAqaG9yaXpvbnRhbENvbnN0cmFp
bnRzKTsKICAgICAgICAgICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6
b250YWxDb25zdHJhaW50cyk7CiAgICAgICAgICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24oZmxv
YXRpbmdDb250ZXh0LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxD
b25zdHJhaW50cyk7CiAgICAgICAgICAgICBpZiAoIWFwcGVuZE5leHRUb0xheW91dFF1ZXVlKGxh
eW91dEJveCwgTGF5b3V0RGlyZWN0aW9uOjpDaGlsZCkpCkBAIC0xNDIsMTMgKzE0OSwxMyBAQCB2
b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0
aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICAgICAgQVNTRVJUKCFsYXlvdXRCb3guZXN0
YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICAgICAgICAgIGNvbXB1dGVIZWlnaHRB
bmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAg
Ly8gTW92ZSBpbi1mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4gdG8gdGhlaXIgZmluYWwgcG9zaXRp
b24uCi0gICAgICAgICAgICBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihsYXlvdXRCb3gp
OworICAgICAgICAgICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4obGF5b3V0Qm94LCBo
b3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAgaWYgKGFwcGVuZE5leHRUb0xheW91
dFF1ZXVlKGxheW91dEJveCwgTGF5b3V0RGlyZWN0aW9uOjpTaWJsaW5nKSkKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KICAgICAvLyBQbGFjZSB0aGUgaW5mbG93IHBv
c2l0aW9uZWQgY2hpbGRyZW4uCi0gICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oZm9y
bWF0dGluZ1Jvb3QsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMpOworICAgIHBsYWNlSW5GbG93
UG9zaXRpb25lZENoaWxkcmVuKGZvcm1hdHRpbmdSb290LCBDb25zdHJhaW50c1BhaXI8SG9yaXpv
bnRhbENvbnN0cmFpbnRzPiB7IHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMsIHJvb3RIb3Jpem9u
dGFsQ29uc3RyYWludHMgfSk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0
TGF5b3V0LCBzdHJlYW0gPDwgIltFbmRdIC0+IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCAtPiBm
b3JtYXR0aW5nIHJvb3QoIiA8PCAmcm9vdCgpIDw8ICIpIik7CiB9CiAKQEAgLTE4NiwxNyArMTkz
LDIwIEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRB
dmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihjCiAgICAgcmV0dXJuIGF2YWlsYWJsZVdpZHRo
OwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250
ZXh0Um9vdChjb25zdCBCb3gmIGxheW91dEJveCwgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0Nv
bnRleHQsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSwgY29uc3QgSG9yaXpv
bnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29u
c3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGxheW91dEJveCwgRmxv
YXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlk
YXRpb25TdGF0ZSwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4m
IGhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29u
c3RyYWludHM+JiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3gu
ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKICAgICAvLyBTdGFydCBsYXlpbmcgb3V0
IHRoaXMgZm9ybWF0dGluZyByb290IGluIHRoZSBmb3JtYXR0aW5nIGNvbnRlbnh0IGl0IGxpdmVz
IGluLgogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFt
IDw8ICJbQ29tcHV0ZV0gLT4gW1Bvc2l0aW9uXVtCb3JkZXJdW1BhZGRpbmddW1dpZHRoXVtNYXJn
aW5dIC0+IGZvciBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgYXV0byBh
ZGp1c3RlZEhvcml6b250YWxDb25zdHJhaW50cyA9IGhvcml6b250YWxDb25zdHJhaW50czsKKyAg
ICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gKCpob3Jpem9udGFsQ29uc3RyYWludHMpLmxvZ2ljYWxX
aWR0aDsKICAgICBhdXRvIGhvcml6b250YWxBdmFpbGFibGVTcGFjZUlzQ29uc3RyYWluZWRCeUV4
aXN0aW5nRmxvYXRzID0gbGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVyKCkgJiYgIWxheW91dEJveC5p
c0Zsb2F0aW5nUG9zaXRpb25lZCgpOwotICAgIGlmIChob3Jpem9udGFsQXZhaWxhYmxlU3BhY2VJ
c0NvbnN0cmFpbmVkQnlFeGlzdGluZ0Zsb2F0cykKLSAgICAgICAgYWRqdXN0ZWRIb3Jpem9udGFs
Q29uc3RyYWludHMubG9naWNhbFdpZHRoID0gdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9p
ZGVyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94KS52YWx1ZU9yKGhvcml6b250YWxDb25zdHJh
aW50cy5sb2dpY2FsV2lkdGgpOworICAgIGlmIChob3Jpem9udGFsQXZhaWxhYmxlU3BhY2VJc0Nv
bnN0cmFpbmVkQnlFeGlzdGluZ0Zsb2F0cykgeworICAgICAgICBpZiAoYXV0byBhZGp1c3RlZEF2
YWlsYWJsZVdpZHRoID0gdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGZsb2F0aW5n
Q29udGV4dCwgbGF5b3V0Qm94KSkKKyAgICAgICAgICAgIGF2YWlsYWJsZVdpZHRoID0gKmFkanVz
dGVkQXZhaWxhYmxlV2lkdGg7CisgICAgfQorICAgIGF1dG8gYWRqdXN0ZWRIb3Jpem9udGFsQ29u
c3RyYWludHMgPSBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IGhvcml6
b250YWxDb25zdHJhaW50cy5yb290KCksIHsgKCpob3Jpem9udGFsQ29uc3RyYWludHMpLmxvZ2lj
YWxMZWZ0LCBhdmFpbGFibGVXaWR0aCB9IH07CiAKLSAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGlu
ZyhsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21wdXRl
Qm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gsICphZGp1c3RlZEhvcml6b250YWxDb25zdHJhaW50
cyk7CiAgICAgY29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBs
YXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdp
bihsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICBjb21wdXRl
U3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgYWRqdXN0ZWRIb3Jpem9udGFsQ29u
c3RyYWludHMpOwpAQCAtMjIzLDM4ICsyMzMsMzYgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQm94JiBsYXlvdXRCb3gsIEYK
ICAgICAgICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhmbG9hdGluZ0NvbnRleHQsIGxh
eW91dEJveCk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQ
b3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIE9wdGlvbmFsPEhvcml6b250
YWxDb25zdHJhaW50cz4gaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6
b250YWxDb25zdHJhaW50cykKIHsKICAgICBpZiAoIWlzPENvbnRhaW5lcj4obGF5b3V0Qm94KSkK
ICAgICAgICAgcmV0dXJuOwogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExh
eW91dCwgc3RyZWFtIDw8ICJTdGFydDogbW92ZSBpbi1mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4g
LT4gcGFyZW50OiAiIDw8ICZsYXlvdXRCb3gpOwotCi0gICAgYXV0byB1c2VkSG9yaXpvbnRhbENv
bnN0cmFpbnRzID0gSG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgaG9yaXpvbnRhbENvbnN0cmFpbnRz
ID8gKmhvcml6b250YWxDb25zdHJhaW50cyA6IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWlu
dHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KSkgfTsKICAgICBhdXRvJiBjb250
YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCk7CiAgICAgZm9yIChhdXRvJiBj
aGlsZEJveCA6IGNoaWxkcmVuT2ZUeXBlPEJveD4oY29udGFpbmVyKSkgewogICAgICAgICBpZiAo
IWNoaWxkQm94LmlzSW5GbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgpLmluRmxvd1Bvc2l0aW9uZWRQ
b3NpdGlvbk9mZnNldChjaGlsZEJveCwgdXNlZEhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAg
ICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgpLmluRmxvd1Bvc2l0aW9uZWRQb3Np
dGlvbk9mZnNldChjaGlsZEJveCwgKmhvcml6b250YWxDb25zdHJhaW50cyk7CiAgICAgICAgIGZv
cm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3goY2hpbGRCb3gpLm1vdmUocG9zaXRpb25PZmZzZXQp
OwogICAgIH0KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0
cmVhbSA8PCAiRW5kOiBtb3ZlIGluLWZsb3cgcG9zaXRpb25lZCBjaGlsZHJlbiAtPiBwYXJlbnQ6
ICIgPDwgJmxheW91dEJveCk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGlu
Z0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRz
JiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5n
Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0
aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICBmb3JtYXR0aW5n
U3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVy
dGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMpKTsKKyAgICBmb3Jt
YXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wKGdlb21ldHJ5KCkuc3Rh
dGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsICp2ZXJ0aWNhbENvbnN0cmFpbnRzKSk7CiAg
ICAgaWYgKGxheW91dEJveC5oYXNGbG9hdENsZWFyKCkpCiAgICAgICAgIGNvbXB1dGVFc3RpbWF0
ZWRWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJv
eCk7CiAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQo
KSkKICAgICAgICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5n
Um9vdChsYXlvdXRCb3gpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhv
cml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRz
PiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3Bs
YXlCb3gobGF5b3V0Qm94KS5zZXRMZWZ0KGdlb21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0
aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKSk7CisgICAgZm9ybWF0dGluZ1N0
YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldExlZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jp
em9udGFsUG9zaXRpb24obGF5b3V0Qm94LCAqaG9yaXpvbnRhbENvbnN0cmFpbnRzKSk7CiB9CiAK
LXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0
IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwg
Y29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNvbnN0
IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRl
eHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJh
aW50cykKIHsKICAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGluZ0NvbnRl
eHQsIGxheW91dEJveCwgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVN0YXRpY0hv
cml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CkBAIC0z
NzgsMTQgKzM4NiwxNCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3Np
dGlvblRvQXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JgogICAgICAgICBmb3JtYXR0
aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wTGVmdCgqYWRqdXN0ZWRQb3Np
dGlvbik7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5k
TWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMm
IGhvcml6b250YWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29t
cHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50
c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewog
ICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIC0+
IENvbnRlbnRXaWR0aEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3co
KSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFyZ2luKGxh
eW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRXaWR0aCwgeyB9IH0pOworICAg
ICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94
LCAqaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRXaWR0aCwgeyB9IH0pOwogCiAgICAgICAg
IGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHJldHVy
biBnZW9tZXRyeSgpLmZsb2F0aW5nV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFs
Q29uc3RyYWludHMsIHsgdXNlZFdpZHRoLCB7IH0gfSk7CisgICAgICAgICAgICByZXR1cm4gZ2Vv
bWV0cnkoKS5mbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgKmhvcml6b250YWxDb25z
dHJhaW50cywgeyB1c2VkV2lkdGgsIHsgfSB9KTsKIAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTM5Myw3ICs0MDEsNyBAQCB2b2lkIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgSAogCiAgICAgYXV0byBjb250ZW50V2lkdGhBbmRNYXJnaW4gPSBjb21wdXRl
KHsgfSk7CiAKLSAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gaG9yaXpvbnRhbENvbnN0cmFpbnRz
LmxvZ2ljYWxXaWR0aDsKKyAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gKCpob3Jpem9udGFsQ29u
c3RyYWludHMpLmxvZ2ljYWxXaWR0aDsKICAgICBpZiAoYXV0byBtYXhXaWR0aCA9IGdlb21ldHJ5
KCkuY29tcHV0ZWRNYXhXaWR0aChsYXlvdXRCb3gsIGF2YWlsYWJsZVdpZHRoKSkgewogICAgICAg
ICBhdXRvIG1heFdpZHRoQW5kTWFyZ2luID0gY29tcHV0ZShtYXhXaWR0aCk7CiAgICAgICAgIGlm
IChjb250ZW50V2lkdGhBbmRNYXJnaW4uY29udGVudFdpZHRoID4gbWF4V2lkdGhBbmRNYXJnaW4u
Y29udGVudFdpZHRoKQpAQCAtNDExLDE0ICs0MTksMTQgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0
IEgKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250ZW50V2lk
dGhBbmRNYXJnaW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0
IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKQogewogICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkSGVpZ2h0KSAtPiBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIHsKICAgICAg
ICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5
KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
LCB7IHVzZWRIZWlnaHQgfSk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dI
ZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCAqaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRI
ZWlnaHQgfSk7CiAKICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
KQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4o
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHsgdXNlZEhlaWdodCB9KTsKKyAgICAg
ICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmZsb2F0aW5nSGVpZ2h0QW5kTWFyZ2luKGxheW91dEJv
eCwgKmhvcml6b250YWxDb25zdHJhaW50cywgeyB1c2VkSGVpZ2h0IH0pOwogCiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuaAppbmRleCAwZDc2NTcyNzk5NDViMDA5MDE0ZmViMzlmYTViNjY1NDZiYjU4MGZi
Li5lZGMwMDBhZWFhYjgxNjM5MWNkOWRhNzUyYWI1NDljZjI2MjcyYmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuaApAQCAtNTEsMTUgKzUxLDI4IEBAIHB1YmxpYzoKICAgICB2b2lkIGxh
eW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBIb3Jpem9udGFsQ29u
c3RyYWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJikgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQm94JiwgRmxv
YXRpbmdDb250ZXh0JiwgSW52YWxpZGF0aW9uU3RhdGUmLCBjb25zdCBIb3Jpem9udGFsQ29uc3Ry
YWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7Ci0gICAgdm9pZCBwbGFjZUluRmxv
d1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmLCBPcHRpb25hbDxIb3Jpem9udGFsQ29uc3Ry
YWludHM+ID0gV1RGOjpudWxsb3B0KTsKIAotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5kTWFyZ2lu
KGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwotICAgIHZvaWQgY29t
cHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWlu
dHMmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBDb25zdHJhaW50c1Bh
aXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgQ29uc3RyYWludHNQYWlyKGNvbnN0IFQmIHJvb3Qs
IGNvbnN0IFQmIGNvbnRhaW5pbmdCbG9jayk7CisKKyAgICAgICAgY29uc3QgVCYgb3BlcmF0b3Iq
KCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluaW5nQmxvY2s7IH0KKyAgICAgICAgY29uc3QgVCYg
cm9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
Y29uc3QgVCBtX3Jvb3Q7CisgICAgICAgIGNvbnN0IFQgbV9jb250YWluaW5nQmxvY2s7CisgICAg
fTsKKyAgICB2b2lkIGxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmLCBGbG9h
dGluZ0NvbnRleHQmLCBJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29u
c3RyYWludHM+Jik7CisgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25z
dCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYpOwor
CisgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3Ry
YWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVIZWln
aHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxD
b25zdHJhaW50cz4mKTsKIAotICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlv
bihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNv
bXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0
IEJveCYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVTdGF0
aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBIb3Jp
em9udGFsQ29uc3RyYWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisgICAgdm9p
ZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+Jik7CisgICAgdm9pZCBjb21wdXRlU3Rh
dGljVmVydGljYWxQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBj
b25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNv
bXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBj
b25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogICAgIHZvaWQgY29tcHV0ZUZsb2F0
aW5nUG9zaXRpb24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgdm9p
ZCBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNv
bnN0IEJveCYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387442</attachid>
            <date>2020-01-11 12:27:32 -0800</date>
            <delta_ts>2020-01-11 13:43:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206119-20200111122731.patch</filename>
            <type>text/plain</type>
            <size>17272</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0Mjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI4ZjljMTNlYWRlYjI1
NTEzNmE3NDg5OWU2YWJhMTI1MGY3N2EzMy4uMDg2NjI5NzUyYjYwZWNjOGRlM2RiMzY3Y2Q2ZDRm
OWUxODM2OWQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MTE5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81ODQ5ODc0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciBwYXNzaW5nIHJvb3RIb3Jpem9udGFs
Q29uc3RyYWludHMgYWxsIHRoZSB3YXkgdG8gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb24oKS4KKworICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcjxUPjo6Q29uc3Ry
YWludHNQYWlyKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93
UG9zaXRpb25lZENoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9y
aXpvbnRhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhl
aWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzUGFpcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNQYWly
Ojpyb290IGNvbnN0KToKKwogMjAyMC0wMS0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZW5jb2RlcnMgYW5kIGRlY29kZXJzIGZv
ciBtb3JlIGZvbnQtcmVsYXRlZCBlbnRpdGllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggN2Y3ZDFkZjA2ZjE4NTgwMjVkYjZhZTVjMDdiNGRkYTk5MzlmMjBhZi4uYzY2MTc0
Yzc4YmZhMTE4MjFkODkyNjZlMmI1Y2RmYzA3NTFmMTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC01MSw3ICs1MSw2IEBAIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4CiB7
CiB9CiAKLWVudW0gY2xhc3MgTGF5b3V0RGlyZWN0aW9uIHsgQ2hpbGQsIFNpYmxpbmcgfTsKIHZv
aWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRp
b25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYg
cm9vdEhvcml6b250YWxDb25zdHJhaW50cywgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYgcm9v
dFZlcnRpY2FsQ29uc3RyYWludHMpCiB7CiAgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cwpAQCAtNjMsNiArNjIsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgIGF1
dG8gZmxvYXRpbmdDb250ZXh0ID0gRmxvYXRpbmdDb250ZXh0IHsgZm9ybWF0dGluZ1Jvb3QsICp0
aGlzLCBmb3JtYXR0aW5nU3RhdGUoKS5mbG9hdGluZ1N0YXRlKCkgfTsKIAogICAgIExheW91dFF1
ZXVlIGxheW91dFF1ZXVlOworICAgIGVudW0gY2xhc3MgTGF5b3V0RGlyZWN0aW9uIHsgQ2hpbGQs
IFNpYmxpbmcgfTsKICAgICBhdXRvIGFwcGVuZE5leHRUb0xheW91dFF1ZXVlID0gWyZdIChjb25z
dCBhdXRvJiBsYXlvdXRCb3gsIGF1dG8gZGlyZWN0aW9uKSB7CiAgICAgICAgIGlmIChkaXJlY3Rp
b24gPT0gTGF5b3V0RGlyZWN0aW9uOjpDaGlsZCkgewogICAgICAgICAgICAgaWYgKCFpczxDb250
YWluZXI+KGxheW91dEJveCkpCkBAIC04OSwyMCArODksMjAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlk
YXRpb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH07CiAKLSAgICBhdXRvIGhvcml6b250
YWxDb25zdHJhaW50c0ZvckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7
CisgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0
IGF1dG8mIGxheW91dEJveCkgLT4gQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50
cz4gewogICAgICAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmlu
Z0Jsb2NrKCk7CiAgICAgICAgIEFTU0VSVChjb250YWluaW5nQmxvY2spOwogICAgICAgICBpZiAo
Y29udGFpbmluZ0Jsb2NrID09ICZmb3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAgIHJldHVybiBy
b290SG9yaXpvbnRhbENvbnN0cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6Omhvcml6
b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2Nr
KSk7CisgICAgICAgICAgICByZXR1cm4geyByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzLCByb290
SG9yaXpvbnRhbENvbnN0cmFpbnRzIH07CisgICAgICAgIHJldHVybiB7IHJvb3RIb3Jpem9udGFs
Q29uc3RyYWludHMsIEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coZ2Vv
bWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpIH07CiAgICAgfTsKIAotICAgIGF1dG8gdmVy
dGljYWxDb25zdHJhaW50c0ZvckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94
KSB7CisgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94ID0gWyZdIChjb25z
dCBhdXRvJiBsYXlvdXRCb3gpIC0+IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRz
PiB7CiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5n
QmxvY2soKTsKICAgICAgICAgQVNTRVJUKGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGlmIChj
b250YWluaW5nQmxvY2sgPT0gJmZvcm1hdHRpbmdSb290KQotICAgICAgICAgICAgcmV0dXJuIHJv
b3RWZXJ0aWNhbENvbnN0cmFpbnRzOwotICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRpY2Fs
Q29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykpOwor
ICAgICAgICAgICAgcmV0dXJuIHsgcm9vdFZlcnRpY2FsQ29uc3RyYWludHMsIHJvb3RWZXJ0aWNh
bENvbnN0cmFpbnRzIH07CisgICAgICAgIHJldHVybiB7IHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRz
LCBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgq
Y29udGFpbmluZ0Jsb2NrKSkgfTsKICAgICB9OwogICAgIC8vIFRoaXMgaXMgYSBwb3N0LW9yZGVy
IHRyZWUgdHJhdmVyc2FsIGxheW91dC4KICAgICAvLyBUaGUgcm9vdCBjb250YWluZXIgbGF5b3V0
IGlzIGRvbmUgaW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCBpdCBsaXZlcyBpbiwgbm90IHRoYXQg
b25lIGl0IGNyZWF0ZXMsIHNvIGxldCdzIHN0YXJ0IHdpdGggdGhlIGZpcnN0IGNoaWxkLgpAQCAt
MTI2LDcgKzEyNiw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93
Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCBob3Jpem9udGFsQ29u
c3RyYWludHMpOworICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94
LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKICAgICAgICAgICAgIGNv
bXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAg
ICAgICAgICAgICBjb21wdXRlU3RhdGljUG9zaXRpb24oZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRC
b3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgICAg
ICAgICBpZiAoIWFwcGVuZE5leHRUb0xheW91dFF1ZXVlKGxheW91dEJveCwgTGF5b3V0RGlyZWN0
aW9uOjpDaGlsZCkpCkBAIC0xNDIsMTMgKzE0MiwxMyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlv
bgogICAgICAgICAgICAgQVNTRVJUKCFsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29u
dGV4dCgpKTsKICAgICAgICAgICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBo
b3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAgLy8gTW92ZSBpbi1mbG93IHBvc2l0
aW9uZWQgY2hpbGRyZW4gdG8gdGhlaXIgZmluYWwgcG9zaXRpb24uCi0gICAgICAgICAgICBwbGFj
ZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihsYXlvdXRCb3gpOworICAgICAgICAgICAgcGxhY2VJ
bkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMp
OwogICAgICAgICAgICAgaWYgKGFwcGVuZE5leHRUb0xheW91dFF1ZXVlKGxheW91dEJveCwgTGF5
b3V0RGlyZWN0aW9uOjpTaWJsaW5nKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgIH0KICAgICAvLyBQbGFjZSB0aGUgaW5mbG93IHBvc2l0aW9uZWQgY2hpbGRyZW4uCi0g
ICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oZm9ybWF0dGluZ1Jvb3QsIHJvb3RIb3Jp
em9udGFsQ29uc3RyYWludHMpOworICAgIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGZv
cm1hdHRpbmdSb290LCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJv
b3RIb3Jpem9udGFsQ29uc3RyYWludHMsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMgfSk7CiAg
ICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltF
bmRdIC0+IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCAtPiBmb3JtYXR0aW5nIHJvb3QoIiA8PCAm
cm9vdCgpIDw8ICIpIik7CiB9CiAKQEAgLTE4NiwxNyArMTg2LDIwIEBAIE9wdGlvbmFsPExheW91
dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0
QXZvaWRlcihjCiAgICAgcmV0dXJuIGF2YWlsYWJsZVdpZHRoOwogfQogCi12b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmIGxh
eW91dEJveCwgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIEludmFsaWRhdGlvblN0
YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jp
em9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29u
c3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdD
b250ZXh0Um9vdChjb25zdCBCb3gmIGxheW91dEJveCwgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGlu
Z0NvbnRleHQsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50
cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0aWNhbENv
bnN0cmFpbnRzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guZXN0YWJsaXNoZXNGb3JtYXR0aW5n
Q29udGV4dCgpKTsKICAgICAvLyBTdGFydCBsYXlpbmcgb3V0IHRoaXMgZm9ybWF0dGluZyByb290
IGluIHRoZSBmb3JtYXR0aW5nIGNvbnRlbnh0IGl0IGxpdmVzIGluLgogICAgIExPR19XSVRIX1NU
UkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbQ29tcHV0ZV0gLT4gW1Bv
c2l0aW9uXVtCb3JkZXJdW1BhZGRpbmddW1dpZHRoXVtNYXJnaW5dIC0+IGZvciBsYXlvdXRCb3go
IiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7Ci0gICAgYXV0byBhZGp1c3RlZEhvcml6b250YWxDb25z
dHJhaW50cyA9IGhvcml6b250YWxDb25zdHJhaW50czsKKyAgICBhdXRvIGF2YWlsYWJsZVdpZHRo
ID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jay5sb2dpY2FsV2lkdGg7CiAg
ICAgYXV0byBob3Jpem9udGFsQXZhaWxhYmxlU3BhY2VJc0NvbnN0cmFpbmVkQnlFeGlzdGluZ0Zs
b2F0cyA9IGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpICYmICFsYXlvdXRCb3guaXNGbG9hdGlu
Z1Bvc2l0aW9uZWQoKTsKLSAgICBpZiAoaG9yaXpvbnRhbEF2YWlsYWJsZVNwYWNlSXNDb25zdHJh
aW5lZEJ5RXhpc3RpbmdGbG9hdHMpCi0gICAgICAgIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFp
bnRzLmxvZ2ljYWxXaWR0aCA9IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihmbG9h
dGluZ0NvbnRleHQsIGxheW91dEJveCkudmFsdWVPcihob3Jpem9udGFsQ29uc3RyYWludHMubG9n
aWNhbFdpZHRoKTsKKyAgICBpZiAoaG9yaXpvbnRhbEF2YWlsYWJsZVNwYWNlSXNDb25zdHJhaW5l
ZEJ5RXhpc3RpbmdGbG9hdHMpIHsKKyAgICAgICAgaWYgKGF1dG8gYWRqdXN0ZWRBdmFpbGFibGVX
aWR0aCA9IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihmbG9hdGluZ0NvbnRleHQs
IGxheW91dEJveCkpCisgICAgICAgICAgICBhdmFpbGFibGVXaWR0aCA9ICphZGp1c3RlZEF2YWls
YWJsZVdpZHRoOworICAgIH0KKyAgICBhdXRvIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRz
ID0gQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4geyBob3Jpem9udGFsQ29u
c3RyYWludHMucm9vdCwgeyBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLmxv
Z2ljYWxMZWZ0LCBhdmFpbGFibGVXaWR0aCB9IH07CiAKLSAgICBjb21wdXRlQm9yZGVyQW5kUGFk
ZGluZyhsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICBjb21w
dXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFp
bnRzLmNvbnRhaW5pbmdCbG9jayk7CiAgICAgY29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24o
ZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMpOwogICAgIGNv
bXB1dGVXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGFkanVzdGVkSG9yaXpvbnRhbENvbnN0cmFp
bnRzKTsKICAgICBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgYWRq
dXN0ZWRIb3Jpem9udGFsQ29uc3RyYWludHMpOwpAQCAtMjIzLDM4ICsyMjYsMzYgQEAgdm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIEYKICAgICAgICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhm
bG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94JiBsYXlvdXRCb3gs
IE9wdGlvbmFsPEhvcml6b250YWxDb25zdHJhaW50cz4gaG9yaXpvbnRhbENvbnN0cmFpbnRzKQor
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJl
bihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxD
b25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50cykKIHsKICAgICBpZiAoIWlzPENvbnRh
aW5lcj4obGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuOwogICAgIExPR19XSVRIX1NUUkVBTShG
b3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJTdGFydDogbW92ZSBpbi1mbG93IHBv
c2l0aW9uZWQgY2hpbGRyZW4gLT4gcGFyZW50OiAiIDw8ICZsYXlvdXRCb3gpOwotCi0gICAgYXV0
byB1c2VkSG9yaXpvbnRhbENvbnN0cmFpbnRzID0gSG9yaXpvbnRhbENvbnN0cmFpbnRzIHsgaG9y
aXpvbnRhbENvbnN0cmFpbnRzID8gKmhvcml6b250YWxDb25zdHJhaW50cyA6IEdlb21ldHJ5Ojpo
b3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KSkg
fTsKICAgICBhdXRvJiBjb250YWluZXIgPSBkb3duY2FzdDxDb250YWluZXI+KGxheW91dEJveCk7
CiAgICAgZm9yIChhdXRvJiBjaGlsZEJveCA6IGNoaWxkcmVuT2ZUeXBlPEJveD4oY29udGFpbmVy
KSkgewogICAgICAgICBpZiAoIWNoaWxkQm94LmlzSW5GbG93UG9zaXRpb25lZCgpKQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgp
LmluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbk9mZnNldChjaGlsZEJveCwgdXNlZEhvcml6b250YWxD
b25zdHJhaW50cyk7CisgICAgICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgpLmlu
Rmxvd1Bvc2l0aW9uZWRQb3NpdGlvbk9mZnNldChjaGlsZEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLmNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlC
b3goY2hpbGRCb3gpLm1vdmUocG9zaXRpb25PZmZzZXQpOwogICAgIH0KICAgICBMT0dfV0lUSF9T
VFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBtb3ZlIGluLWZs
b3cgcG9zaXRpb25lZCBjaGlsZHJlbiAtPiBwYXJlbnQ6ICIgPDwgJmxheW91dEJveCk7CiB9CiAK
LXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRp
b24oY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQor
dm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlv
bihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlv
dXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGlj
YWxDb25zdHJhaW50cykKIHsKLSAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91
dEJveCkuc2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gs
IHZlcnRpY2FsQ29uc3RyYWludHMpKTsKKyAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94
KGxheW91dEJveCkuc2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7CiAgICAgaWYgKGxh
eW91dEJveC5oYXNGbG9hdENsZWFyKCkpCiAgICAgICAgIGNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNh
bFBvc2l0aW9uRm9yRmxvYXRDbGVhcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCk7CiAgICAg
ZWxzZSBpZiAobGF5b3V0Qm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSkKICAgICAg
ICAgY29tcHV0ZUVzdGltYXRlZFZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChsYXlv
dXRCb3gpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNI
b3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxD
b25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpv
bnRhbENvbnN0cmFpbnRzKQogewotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5
b3V0Qm94KS5zZXRMZWZ0KGdlb21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKSk7CisgICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlz
cGxheUJveChsYXlvdXRCb3gpLnNldExlZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jpem9udGFsUG9z
aXRpb24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7
CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0aW9u
KGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMs
IGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGlu
Z0NvbnRleHQmIGZsb2F0aW5nQ29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENv
bnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWlu
dHMsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxD
b25zdHJhaW50cykKIHsKICAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihmbG9hdGlu
Z0NvbnRleHQsIGxheW91dEJveCwgdmVydGljYWxDb25zdHJhaW50cyk7CiAgICAgY29tcHV0ZVN0
YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7
CkBAIC0zNzgsMTQgKzM3OSwxNCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JgogICAgICAgICBm
b3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wTGVmdCgqYWRqdXN0
ZWRQb3NpdGlvbik7CiB9CiAKLXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdp
ZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3Ry
YWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25z
dHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KQogewogICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lk
dGgpIC0+IENvbnRlbnRXaWR0aEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJ
bkZsb3coKSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFy
Z2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRXaWR0aCwgeyB9IH0p
OworICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLCB7IHVzZWRXaWR0
aCwgeyB9IH0pOwogCiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQo
KSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmZsb2F0aW5nV2lkdGhBbmRNYXJnaW4o
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHsgdXNlZFdpZHRoLCB7IH0gfSk7Cisg
ICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5mbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywgeyB1c2VkV2lkdGgs
IHsgfSB9KTsKIAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTM5Myw3ICszOTQsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSAogCiAgICAg
YXV0byBjb250ZW50V2lkdGhBbmRNYXJnaW4gPSBjb21wdXRlKHsgfSk7CiAKLSAgICBhdXRvIGF2
YWlsYWJsZVdpZHRoID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxvZ2ljYWxXaWR0aDsKKyAgICBh
dXRvIGF2YWlsYWJsZVdpZHRoID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9j
ay5sb2dpY2FsV2lkdGg7CiAgICAgaWYgKGF1dG8gbWF4V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1
dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBhdmFpbGFibGVXaWR0aCkpIHsKICAgICAgICAgYXV0byBt
YXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUobWF4V2lkdGgpOwogICAgICAgICBpZiAoY29udGVu
dFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCA+IG1heFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRX
aWR0aCkKQEAgLTQxMSwxNCArNDEyLDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBICiAgICAg
ZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oY29udGVudFdpZHRoQW5kTWFy
Z2luLmNvbXB1dGVkTWFyZ2luKTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9u
dGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwg
Y29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxD
b25zdHJhaW50cykKIHsKICAgICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5p
dD4gdXNlZEhlaWdodCkgLT4gQ29udGVudEhlaWdodEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChs
YXlvdXRCb3guaXNJbkZsb3coKSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxv
d0hlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgeyB1c2Vk
SGVpZ2h0IH0pOworICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93SGVpZ2h0QW5k
TWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywg
eyB1c2VkSGVpZ2h0IH0pOwogCiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0
aW9uZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmZsb2F0aW5nSGVpZ2h0QW5k
TWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRIZWlnaHQgfSk7
CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5mbG9hdGluZ0hlaWdodEFuZE1hcmdpbihs
YXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHsgdXNlZEhl
aWdodCB9KTsKIAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggMGQ3NjU3Mjc5OTQ1YjAwOTAx
NGZlYjM5ZmE1YjY2NTQ2YmI1ODBmYi4uYTIyMjdiNmNhMmVlMTE0MTlmODQ5M2JhNWM2ZTQ0Yzdj
N2VjMzE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTUxLDE1ICs1MSwyMiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRl
JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50
cyYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRSb290KGNvbnN0IEJveCYsIEZsb2F0aW5nQ29udGV4dCYsIEludmFsaWRhdGlvblN0YXRlJiwg
Y29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYp
OwotICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94JiwgT3B0
aW9uYWw8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiA9IFdURjo6bnVsbG9wdCk7CiAKLSAgICB2b2lk
IGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3Ry
YWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29u
c3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAg
ICBzdHJ1Y3QgQ29uc3RyYWludHNQYWlyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGNvbnN0IFQg
cm9vdDsKKyAgICAgICAgY29uc3QgVCBjb250YWluaW5nQmxvY2s7CisgICAgfTsKKyAgICB2b2lk
IGxheW91dEZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmLCBGbG9hdGluZ0NvbnRleHQm
LCBJbnZhbGlkYXRpb25TdGF0ZSYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29u
c3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7
CisgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmLCBjb25z
dCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYpOworCisgICAgdm9pZCBj
b21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhv
cml6b250YWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4o
Y29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4m
KTsKIAotICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25zdCBCb3gm
LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVTdGF0aWNW
ZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0
IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVTdGF0aWNQb3NpdGlvbihj
b25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3Ry
YWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjb21wdXRlU3Rh
dGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+Jik7CisgICAgdm9pZCBjb21wdXRlU3RhdGljVmVydGljYWxQ
b3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJh
aW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVTdGF0aWNQ
b3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJh
aW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxW
ZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwogICAgIHZvaWQgY29tcHV0ZUZsb2F0aW5nUG9zaXRpb24o
Y29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgdm9pZCBjb21wdXRlUG9z
aXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwog
Cg==
</data>
<flag name="review"
          id="403233"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>