<?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>207814</bug_id>
          
          <creation_ts>2020-02-15 05:35:42 -0800</creation_ts>
          <short_desc>[LFC][BFC] ConstraintsPair is only needed for the pre-computed vertical position</short_desc>
          <delta_ts>2020-02-17 13:39:39 -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>1619408</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-15 05:35:42 -0800</bug_when>
    <thetext>After r256099, ConstraintsPair is only need in few functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619409</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-15 05:36:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/59485612&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619410</commentid>
    <comment_count>2</comment_count>
      <attachid>390865</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-15 05:39:52 -0800</bug_when>
    <thetext>Created attachment 390865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619412</commentid>
    <comment_count>3</comment_count>
      <attachid>390865</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-15 06:18:33 -0800</bug_when>
    <thetext>Comment on attachment 390865
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        After r256099 (Pre-compute vertical position only when we really need it), ConstraintsPair&lt;&gt; is only

Can it be removed entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619416</commentid>
    <comment_count>4</comment_count>
      <attachid>390867</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-15 07:22:36 -0800</bug_when>
    <thetext>Created attachment 390867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619433</commentid>
    <comment_count>5</comment_count>
      <attachid>390871</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-02-15 13:54:58 -0800</bug_when>
    <thetext>Created attachment 390871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619436</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-15 14:01:25 -0800</bug_when>
    <thetext>Committed r256704: &lt;https://trac.webkit.org/changeset/256704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619852</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-02-17 13:39:39 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 390865 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390865&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        After r256099 (Pre-compute vertical position only when we really need it), ConstraintsPair&lt;&gt; is only
&gt; 
&gt; Can it be removed entirely?
Unfortunately not, some quirk functions (when we pre-compute the vertical position on the ancestors) still need both the root and the containing block values.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390865</attachid>
            <date>2020-02-15 05:39:52 -0800</date>
            <delta_ts>2020-02-15 07:22:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207814-20200215053951.patch</filename>
            <type>text/plain</type>
            <size>15318</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk4MzI3YjY1YTA0YjFh
OGM5ZGNhYTVhYWRlZjgyOGI0NDgxNTM5My4uM2NlNDEzNDU2NjUxM2Q2NGIyNTFiM2RkMWE0ZDM1
MTYyMTA2NjI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBDb25zdHJh
aW50c1BhaXIgaXMgb25seSBuZWVkZWQgZm9yIHRoZSBwcmUtY29tcHV0ZWQgdmVydGljYWwgcG9z
aXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzgxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk0ODU2MTI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgcjI1NjA5OSAoUHJlLWNvbXB1
dGUgdmVydGljYWwgcG9zaXRpb24gb25seSB3aGVuIHdlIHJlYWxseSBuZWVkIGl0KSwgQ29uc3Ry
YWludHNQYWlyPD4gaXMgb25seQorICAgICAgICBuZWVkZWQgaW4gZmV3IGZ1bmN0aW9ucy4KKwor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNWZXJ0
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdp
bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oOgorCiAyMDIwLTAyLTE1ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW50cm9kdWNlIE91dE9mRmxvd0hvcml6
b250YWxDb25zdHJhaW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOGJi
N2I2Mzk1ZDE3Y2IwYzY3OTMzYmQyMjI4MDhiMjY3MTgwZGIwNy4uODVhNzVmMzM1ODBlODY4MjNi
NjQ5ZjUyNThhMjYwYmU4MDliZWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CkBAIC05MCwyMSArOTAsMjIgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJ
bkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH07CiAKLSAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zvckxh
eW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSAtPiBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7CisgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNG
b3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgewogICAgICAgICBhdXRv
KiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAg
IEFTU0VSVChjb250YWluaW5nQmxvY2spOwogICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrID09
ICZmb3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAgIHJldHVybiB7IHJvb3RIb3Jpem9udGFsQ29u
c3RyYWludHMsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMgfTsKLSAgICAgICAgcmV0dXJuIHsg
cm9vdEhvcml6b250YWxDb25zdHJhaW50cywgR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50
c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSkgfTsKKyAgICAgICAg
ICAgIHJldHVybiByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzOworICAgICAgICByZXR1cm4gR2Vv
bWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29u
dGFpbmluZ0Jsb2NrKSk7CiAgICAgfTsKIAotICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSAtPiBDb25zdHJhaW50c1Bh
aXI8VmVydGljYWxDb25zdHJhaW50cz4geworICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7CiAgICAgICAgIGF1dG8q
IGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAg
QVNTRVJUKGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2sgPT0g
JmZvcm1hdHRpbmdSb290KQotICAgICAgICAgICAgcmV0dXJuIHsgcm9vdFZlcnRpY2FsQ29uc3Ry
YWludHMsIHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzIH07Ci0gICAgICAgIHJldHVybiB7IHJvb3RW
ZXJ0aWNhbENvbnN0cmFpbnRzLCBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxv
dyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSkgfTsKKyAgICAgICAgICAgIHJldHVy
biByb290VmVydGljYWxDb25zdHJhaW50czsKKyAgICAgICAgcmV0dXJuIEdlb21ldHJ5Ojp2ZXJ0
aWNhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2sp
KTsKICAgICB9OworCiAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJzYWwg
bGF5b3V0LgogICAgIC8vIFRoZSByb290IGNvbnRhaW5lciBsYXlvdXQgaXMgZG9uZSBpbiB0aGUg
Zm9ybWF0dGluZyBjb250ZXh0IGl0IGxpdmVzIGluLCBub3QgdGhhdCBvbmUgaXQgY3JlYXRlcywg
c28gbGV0J3Mgc3RhcnQgd2l0aCB0aGUgZmlyc3QgY2hpbGQuCiAgICAgYXBwZW5kTmV4dFRvTGF5
b3V0UXVldWUoZm9ybWF0dGluZ1Jvb3QsIExheW91dERpcmVjdGlvbjo6Q2hpbGQpOwpAQCAtMTE5
LDcgKzEyMCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29u
dGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICBhdXRvIGhv
cml6b250YWxDb25zdHJhaW50cyA9IGhvcml6b250YWxDb25zdHJhaW50c0ZvckxheW91dEJveChs
YXlvdXRCb3gpOwogICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzID0gdmVydGlj
YWxDb25zdHJhaW50c0ZvckxheW91dEJveChsYXlvdXRCb3gpOwogCi0gICAgICAgICAgICBjb21w
dXRlQm9yZGVyQW5kUGFkZGluZyhsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250
YWluaW5nQmxvY2spOworICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0
Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgICAgICAgICAgY29tcHV0ZVN0YXRpY1Zl
cnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKICAgICAgICAg
ICAgIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCwgaG9y
aXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICAgICAgICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFs
UG9zaXRpb24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwpAQCAtMTI4LDcgKzEy
OSwxMCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQo
SW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICAgICAgICAgIGlmIChpczxD
b250YWluZXJCb3g+KGxheW91dEJveCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRC
b3gpLmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1
dG8mIGNvbnRhaW5lckJveCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KTsKICAg
ICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRoZSBpbmZsb3cgZGVzY2VuZGFudHMgb2YgdGhp
cyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4KLSAgICAgICAgICAgICAgICAgICAgcHJlY29tcHV0
ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChmbG9hdGluZ0NvbnRleHQsIGNvbnRh
aW5lckJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAg
ICAgICAgICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNQYWlyID0gQ29uc3Ry
YWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4geyByb290SG9yaXpvbnRhbENvbnN0cmFp
bnRzLCBob3Jpem9udGFsQ29uc3RyYWludHMgfTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byB2
ZXJ0aWNhbENvbnN0cmFpbnRzUGFpciA9IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFp
bnRzPiB7IHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzIH07Cisg
ICAgICAgICAgICAgICAgICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGlu
Z1Jvb3QoZmxvYXRpbmdDb250ZXh0LCBjb250YWluZXJCb3gsIGhvcml6b250YWxDb25zdHJhaW50
c1BhaXIsIHZlcnRpY2FsQ29uc3RyYWludHNQYWlyKTsKKwogICAgICAgICAgICAgICAgICAgICBh
dXRvJiByb290RGlzcGxheUJveCA9IGdlb21ldHJ5Rm9yQm94KGNvbnRhaW5lckJveCk7CiAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVu
dCA9IEdlb21ldHJ5Ojpob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZsb3cocm9vdERpc3BsYXlC
b3gpOwogICAgICAgICAgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50ID0gR2VvbWV0cnk6OnZlcnRpY2FsQ29uc3RyYWludHNGb3JJbkZsb3cocm9vdERp
c3BsYXlCb3gpOwpAQCAtMTYyLDcgKzE2Niw5IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAg
ICAgICAgICAgICAvLyBSZXNvbHZlIGZpbmFsIHBvc2l0aW9ucy4KICAgICAgICAgICAgIHBsYWNl
SW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KTsKICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdEF2b2lkZXIoKSkgewotICAgICAg
ICAgICAgICAgIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoZmxvYXRpbmdDb250ZXh0LCBs
YXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyk7Cisg
ICAgICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNQYWlyID0gQ29uc3RyYWlu
dHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4geyByb290SG9yaXpvbnRhbENvbnN0cmFpbnRz
LCBob3Jpem9udGFsQ29uc3RyYWludHMgfTsKKyAgICAgICAgICAgICAgICBhdXRvIHZlcnRpY2Fs
Q29uc3RyYWludHNQYWlyID0gQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+IHsg
cm9vdFZlcnRpY2FsQ29uc3RyYWludHMsIHZlcnRpY2FsQ29uc3RyYWludHMgfTsKKyAgICAgICAg
ICAgICAgICBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGZsb2F0aW5nQ29udGV4dCwgbGF5
b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHNQYWlyLCB2ZXJ0aWNhbENvbnN0cmFpbnRzUGFp
cik7CiAgICAgICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgp
KQogICAgICAgICAgICAgICAgICAgICBmbG9hdGluZ0NvbnRleHQuYXBwZW5kKGxheW91dEJveCk7
CiAgICAgICAgICAgICB9CkBAIC0xNzIsNyArMTc4LDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRp
b24KICAgICAgICAgfQogICAgIH0KICAgICAvLyBQbGFjZSB0aGUgaW5mbG93IHBvc2l0aW9uZWQg
Y2hpbGRyZW4uCi0gICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oZm9ybWF0dGluZ1Jv
b3QsIENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+IHsgcm9vdEhvcml6b250
YWxDb25zdHJhaW50cywgcm9vdEhvcml6b250YWxDb25zdHJhaW50cyB9KTsKKyAgICBwbGFjZUlu
Rmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihmb3JtYXR0aW5nUm9vdCwgcm9vdEhvcml6b250YWxDb25z
dHJhaW50cyk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBz
dHJlYW0gPDwgIltFbmRdIC0+IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dCAtPiBmb3JtYXR0aW5n
IHJvb3QoIiA8PCAmcm9vdCgpIDw8ICIpIik7CiB9CiAKQEAgLTIxMiw3ICsyMTgsNyBAQCBPcHRp
b25hbDxMYXlvdXRVbml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lk
dGhGb3JGbG9hdEF2b2lkZXIoYwogICAgIHJldHVybiBhdmFpbGFibGVXaWR0aDsKIH0KIAotdm9p
ZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihj
b25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25z
dHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewog
ICAgIGlmICghaXM8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpKQogICAgICAgICByZXR1cm47CkBA
IC0yMjEsMjAgKzIyNywyMCBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5G
bG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94LAogICAgIGZvciAoYXV0
byYgY2hpbGRCb3ggOiBjaGlsZHJlbk9mVHlwZTxCb3g+KGNvbnRhaW5lckJveCkpIHsKICAgICAg
ICAgaWYgKCFjaGlsZEJveC5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICBhdXRvIHBvc2l0aW9uT2Zmc2V0ID0gZ2VvbWV0cnkoKS5pbkZsb3dQb3Np
dGlvbmVkUG9zaXRpb25PZmZzZXQoY2hpbGRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250
YWluaW5nQmxvY2spOworICAgICAgICBhdXRvIHBvc2l0aW9uT2Zmc2V0ID0gZ2VvbWV0cnkoKS5p
bkZsb3dQb3NpdGlvbmVkUG9zaXRpb25PZmZzZXQoY2hpbGRCb3gsIGhvcml6b250YWxDb25zdHJh
aW50cyk7CiAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3goY2hpbGRCb3gpLm1v
dmUocG9zaXRpb25PZmZzZXQpOwogICAgIH0KICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGlu
Z0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiRW5kOiBtb3ZlIGluLWZsb3cgcG9zaXRpb25lZCBj
aGlsZHJlbiAtPiBwYXJlbnQ6ICIgPDwgJmxheW91dEJveCk7CiB9CiAKLXZvaWQgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBs
YXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVy
dGljYWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0
YXRpY1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFZlcnRpY2Fs
Q29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMpCiB7Ci0gICAgZm9ybWF0dGluZ1N0YXRl
KCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcChnZW9tZXRyeSgpLnN0YXRpY1ZlcnRpY2Fs
UG9zaXRpb24obGF5b3V0Qm94LCB2ZXJ0aWNhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykp
OworICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRUb3AoZ2Vv
bWV0cnkoKS5zdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGxheW91dEJveCwgdmVydGljYWxDb25zdHJh
aW50cykpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNI
b3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRz
UGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMpCit2b2lk
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24o
Y29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYgaG9yaXpv
bnRhbENvbnN0cmFpbnRzKQogewotICAgIGZvcm1hdHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5
b3V0Qm94KS5zZXRMZWZ0KGdlb21ldHJ5KCkuc3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91
dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaykpOworICAgIGZvcm1h
dHRpbmdTdGF0ZSgpLmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRMZWZ0KGdlb21ldHJ5KCkuc3Rh
dGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKSk7
CiB9CiAKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9z
aXRpb24oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYg
aG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2ZXJ0aWNh
bENvbnN0cmFpbnRzKQpAQCAtMzQyLDE5ICszNDgsMTkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRp
bmcKICAgICAgICAgZGlzcGxheUJveC5zZXRIYXNDbGVhcmFuY2UoKTsKIH0KIAotdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgRmxvYXRpbmdD
b250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25z
dHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29u
c3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKIHsK
ICAgICBhdXRvIGNvbXB1dGUgPSBbJl0oT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZFdpZHRoKSAt
PiBDb250ZW50V2lkdGhBbmRNYXJnaW4gewogICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRp
bmdQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5mbG9hdGluZ1dp
ZHRoQW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdC
bG9jaywgeyB1c2VkV2lkdGgsIHsgfSB9KTsKKyAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgp
LmZsb2F0aW5nV2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMs
IHsgdXNlZFdpZHRoLCB7IH0gfSk7CiAKICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0QXZv
aWRlcigpKSB7Ci0gICAgICAgICAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gdXNlZEF2YWlsYWJs
ZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94KS52YWx1ZU9y
KGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2subG9naWNhbFdpZHRoKTsKLSAg
ICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFyZ2luKGxheW91dEJv
eCwgeyBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLmxvZ2ljYWxMZWZ0LCBh
dmFpbGFibGVXaWR0aCB9LCB7IHVzZWRXaWR0aCwgeyB9IH0pOworICAgICAgICAgICAgYXV0byBh
dmFpbGFibGVXaWR0aCA9IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihmbG9hdGlu
Z0NvbnRleHQsIGxheW91dEJveCkudmFsdWVPcihob3Jpem9udGFsQ29uc3RyYWludHMubG9naWNh
bFdpZHRoKTsKKyAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFy
Z2luKGxheW91dEJveCwgeyBob3Jpem9udGFsQ29uc3RyYWludHMubG9naWNhbExlZnQsIGF2YWls
YWJsZVdpZHRoIH0sIHsgdXNlZFdpZHRoLCB7IH0gfSk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobGF5b3V0Qm94LmlzSW5GbG93KCkpCi0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5p
bkZsb3dXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250
YWluaW5nQmxvY2ssIHsgdXNlZFdpZHRoLCB7IH0gfSk7CisgICAgICAgICAgICByZXR1cm4gZ2Vv
bWV0cnkoKS5pbkZsb3dXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJh
aW50cywgeyB1c2VkV2lkdGgsIHsgfSB9KTsKIAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTM2Miw3ICszNjgsNyBAQCB2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBGbG9hdGluZ0NvbnRl
eHQmIGZsb2F0aQogCiAgICAgYXV0byBjb250ZW50V2lkdGhBbmRNYXJnaW4gPSBjb21wdXRlKHsg
fSk7CiAKLSAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNv
bnRhaW5pbmdCbG9jay5sb2dpY2FsV2lkdGg7CisgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGhv
cml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGg7CiAgICAgaWYgKGF1dG8gbWF4V2lkdGgg
PSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBhdmFpbGFibGVXaWR0aCkp
IHsKICAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUobWF4V2lkdGgpOwog
ICAgICAgICBpZiAoY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCA+IG1heFdpZHRo
QW5kTWFyZ2luLmNvbnRlbnRXaWR0aCkKQEAgLTM4MCwxNCArMzg2LDE0IEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0aW5nQ29u
dGV4dCYgZmxvYXRpCiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4o
Y29udGVudFdpZHRoQW5kTWFyZ2luLmNvbXB1dGVkTWFyZ2luKTsKIH0KIAotdm9pZCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpv
bnRhbENvbnN0cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50
cz4mIHZlcnRpY2FsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250
YWxDb25zdHJhaW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0
cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQogewogICAgIGF1dG8gY29tcHV0ZSA9IFsmXShP
cHRpb25hbDxMYXlvdXRVbml0PiB1c2VkSGVpZ2h0KSAtPiBDb250ZW50SGVpZ2h0QW5kTWFyZ2lu
IHsKICAgICAgICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQotICAgICAgICAgICAgcmV0dXJu
IGdlb21ldHJ5KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jaywgeyB1c2VkSGVpZ2h0IH0pOworICAgICAgICAgICAg
cmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpv
bnRhbENvbnN0cmFpbnRzLCB7IHVzZWRIZWlnaHQgfSk7CiAKICAgICAgICAgaWYgKGxheW91dEJv
eC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCku
ZmxvYXRpbmdIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMu
Y29udGFpbmluZ0Jsb2NrLCB7IHVzZWRIZWlnaHQgfSk7CisgICAgICAgICAgICByZXR1cm4gZ2Vv
bWV0cnkoKS5mbG9hdGluZ0hlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25z
dHJhaW50cywgeyB1c2VkSGVpZ2h0IH0pOwogCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4geyB9OwpAQCAtNDI5LDcgKzQzNSw3IEBAIHZvaWQgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJv
eCwgY29uc3QKIAogICAgIEFTU0VSVCghaGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0
Qm94KSB8fCBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpLnVzZWRWYWx1ZSgpID09
IHZlcnRpY2FsTWFyZ2luLmJlZm9yZSgpKTsKICAgICByZW1vdmVQcmVjb21wdXRlZE1hcmdpbkJl
Zm9yZShsYXlvdXRCb3gpOwotICAgIGRpc3BsYXlCb3guc2V0VG9wKHZlcnRpY2FsUG9zaXRpb25X
aXRoTWFyZ2luKGxheW91dEJveCwgdmVydGljYWxNYXJnaW4sIHZlcnRpY2FsQ29uc3RyYWludHMu
Y29udGFpbmluZ0Jsb2NrKSk7CisgICAgZGlzcGxheUJveC5zZXRUb3AodmVydGljYWxQb3NpdGlv
bldpdGhNYXJnaW4obGF5b3V0Qm94LCB2ZXJ0aWNhbE1hcmdpbiwgdmVydGljYWxDb25zdHJhaW50
cykpOwogICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChjb250ZW50SGVpZ2h0QW5k
TWFyZ2luLmNvbnRlbnRIZWlnaHQpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4o
dmVydGljYWxNYXJnaW4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGYxNjcx
MDQyNTE3YmY2YTFhZTIyMTUwYjdmNDIxM2Q2NzNmYWI5MWMuLjM3NGRhMTUzZTI4YzE4OGI2ZjIy
NGUxZTFjNjUwZWJkNzdmODIwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9i
bG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01
NywxMyArNTcsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVCByb290OwogICAgICAgICBj
b25zdCBUIGNvbnRhaW5pbmdCbG9jazsKICAgICB9OwotICAgIHZvaWQgcGxhY2VJbkZsb3dQb3Np
dGlvbmVkQ2hpbGRyZW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250
YWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVu
KGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwogCi0gICAgdm9pZCBj
b21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jiwg
Y29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lk
IGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWly
PEhvcml6b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxD
b25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBGbG9h
dGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsK
KyAgICB2b2lkIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgSG9yaXpv
bnRhbENvbnN0cmFpbnRzJiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYpOwogCi0gICAgdm9p
ZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+Jik7Ci0gICAgdm9pZCBjb21wdXRlU3Rh
dGljVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVy
dGljYWxDb25zdHJhaW50cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9z
aXRpb24oY29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7CisgICAgdm9p
ZCBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBWZXJ0aWNh
bENvbnN0cmFpbnRzJik7CiAgICAgdm9pZCBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNv
bnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29u
c3RyYWludHM+Jik7CiAgICAgdm9pZCBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xl
YXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390867</attachid>
            <date>2020-02-15 07:22:36 -0800</date>
            <delta_ts>2020-02-15 13:54:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207814-20200215072235.patch</filename>
            <type>text/plain</type>
            <size>14677</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NjcwMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTE1ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBDb25zdHJhaW50
c1BhaXIgaXMgb25seSBuZWVkZWQgZm9yIHRoZSBwcmUtY29tcHV0ZWQgdmVydGljYWwgcG9zaXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzgx
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk0ODU2MTI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgQWZ0ZXIgcjI1NjA5OSAoUHJlLWNvbXB1dGUg
dmVydGljYWwgcG9zaXRpb24gb25seSB3aGVuIHdlIHJlYWxseSBuZWVkIGl0KSwgQ29uc3RyYWlu
dHNQYWlyPD4gaXMgb25seQorICAgICAgICBuZWVkZWQgaW4gZmV3IGZ1bmN0aW9ucy4KKworICAg
ICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91
dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNWZXJ0aWNh
bFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbik6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5oOgorCiAyMDIwLTAyLTE1ICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW50cm9kdWNlIE91dE9mRmxvd0hvcml6b250
YWxDb25zdHJhaW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCShyZXZp
c2lvbiAyNTY3MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MCwyMSArOTAsMjIg
QEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsbwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfTsKIAotICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yTGF5
b3V0Qm94ID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIC0+IENvbnN0cmFpbnRzUGFpcjxI
b3Jpem9udGFsQ29uc3RyYWludHM+IHsKKyAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7CiAgICAgICAgIGF1dG8q
IGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAg
QVNTRVJUKGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2sgPT0g
JmZvcm1hdHRpbmdSb290KQotICAgICAgICAgICAgcmV0dXJuIHsgcm9vdEhvcml6b250YWxDb25z
dHJhaW50cywgcm9vdEhvcml6b250YWxDb25zdHJhaW50cyB9OwotICAgICAgICByZXR1cm4geyBy
b290SG9yaXpvbnRhbENvbnN0cmFpbnRzLCBHZW9tZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRz
Rm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2spKSB9OworICAgICAgICAg
ICAgcmV0dXJuIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHM7CisgICAgICAgIHJldHVybiBHZW9t
ZXRyeTo6aG9yaXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250
YWluaW5nQmxvY2spKTsKICAgICB9OwogCi0gICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9y
TGF5b3V0Qm94ID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIC0+IENvbnN0cmFpbnRzUGFp
cjxWZXJ0aWNhbENvbnN0cmFpbnRzPiB7CisgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzRm9y
TGF5b3V0Qm94ID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIHsKICAgICAgICAgYXV0byog
Y29udGFpbmluZ0Jsb2NrID0gbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwogICAgICAgICBB
U1NFUlQoY29udGFpbmluZ0Jsb2NrKTsKICAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jayA9PSAm
Zm9ybWF0dGluZ1Jvb3QpCi0gICAgICAgICAgICByZXR1cm4geyByb290VmVydGljYWxDb25zdHJh
aW50cywgcm9vdFZlcnRpY2FsQ29uc3RyYWludHMgfTsKLSAgICAgICAgcmV0dXJuIHsgcm9vdFZl
cnRpY2FsQ29uc3RyYWludHMsIEdlb21ldHJ5Ojp2ZXJ0aWNhbENvbnN0cmFpbnRzRm9ySW5GbG93
KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2spKSB9OworICAgICAgICAgICAgcmV0dXJu
IHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzOworICAgICAgICByZXR1cm4gR2VvbWV0cnk6OnZlcnRp
Y2FsQ29uc3RyYWludHNGb3JJbkZsb3coZ2VvbWV0cnlGb3JCb3goKmNvbnRhaW5pbmdCbG9jaykp
OwogICAgIH07CisKICAgICAvLyBUaGlzIGlzIGEgcG9zdC1vcmRlciB0cmVlIHRyYXZlcnNhbCBs
YXlvdXQuCiAgICAgLy8gVGhlIHJvb3QgY29udGFpbmVyIGxheW91dCBpcyBkb25lIGluIHRoZSBm
b3JtYXR0aW5nIGNvbnRleHQgaXQgbGl2ZXMgaW4sIG5vdCB0aGF0IG9uZSBpdCBjcmVhdGVzLCBz
byBsZXQncyBzdGFydCB3aXRoIHRoZSBmaXJzdCBjaGlsZC4KICAgICBhcHBlbmROZXh0VG9MYXlv
dXRRdWV1ZShmb3JtYXR0aW5nUm9vdCwgTGF5b3V0RGlyZWN0aW9uOjpDaGlsZCk7CkBAIC0xMTks
NyArMTIwLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsbwogICAg
ICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBob3Jpem9udGFsQ29uc3RyYWlu
dHNGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxDb25z
dHJhaW50cyA9IHZlcnRpY2FsQ29uc3RyYWludHNGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKIAot
ICAgICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcobGF5b3V0Qm94LCBob3Jpem9udGFs
Q29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKTsKKyAgICAgICAgICAgIGNvbXB1dGVCb3JkZXJB
bmRQYWRkaW5nKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICAgICAgICAg
IGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGxheW91dEJveCwgdmVydGljYWxDb25zdHJh
aW50cyk7CiAgICAgICAgICAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4oZmxvYXRpbmdDb250ZXh0
LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAgICAgICAgICAgICBjb21wdXRl
U3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
KTsKQEAgLTEyOCw3ICsxMjksMTAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRJbkZsbwogICAgICAgICAgICAgICAgIGlmIChpczxDb250YWluZXJCb3g+KGxheW91dEJveCkg
JiYgZG93bmNhc3Q8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpLmhhc0luRmxvd09yRmxvYXRpbmdD
aGlsZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRvd25j
YXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KTsKICAgICAgICAgICAgICAgICAgICAgLy8gTGF5
b3V0IHRoZSBpbmZsb3cgZGVzY2VuZGFudHMgb2YgdGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9v
dC4KLSAgICAgICAgICAgICAgICAgICAgcHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3Jt
YXR0aW5nUm9vdChmbG9hdGluZ0NvbnRleHQsIGNvbnRhaW5lckJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBo
b3Jpem9udGFsQ29uc3RyYWludHNQYWlyID0gQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25z
dHJhaW50cz4geyByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzLCBob3Jpem9udGFsQ29uc3RyYWlu
dHMgfTsKKyAgICAgICAgICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzUGFpciA9
IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiB7IHJvb3RWZXJ0aWNhbENvbnN0
cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzIH07CisgICAgICAgICAgICAgICAgICAgIHByZWNv
bXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRm9ybWF0dGluZ1Jvb3QoZmxvYXRpbmdDb250ZXh0LCBj
b250YWluZXJCb3gsIGhvcml6b250YWxDb25zdHJhaW50c1BhaXIsIHZlcnRpY2FsQ29uc3RyYWlu
dHNQYWlyKTsKKwogICAgICAgICAgICAgICAgICAgICBhdXRvJiByb290RGlzcGxheUJveCA9IGdl
b21ldHJ5Rm9yQm94KGNvbnRhaW5lckJveCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gaG9y
aXpvbnRhbENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCA9IEdlb21ldHJ5Ojpob3Jpem9udGFs
Q29uc3RyYWludHNGb3JJbkZsb3cocm9vdERpc3BsYXlCb3gpOwogICAgICAgICAgICAgICAgICAg
ICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50ID0gR2VvbWV0cnk6OnZl
cnRpY2FsQ29uc3RyYWludHNGb3JJbkZsb3cocm9vdERpc3BsYXlCb3gpOwpAQCAtMTYyLDcgKzE2
Niw5IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG8KICAgICAgICAg
ICAgIC8vIFJlc29sdmUgZmluYWwgcG9zaXRpb25zLgogICAgICAgICAgICAgcGxhY2VJbkZsb3dQ
b3NpdGlvbmVkQ2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAg
ICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpKSB7Ci0gICAgICAgICAgICAg
ICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhmbG9hdGluZ0NvbnRleHQsIGxheW91dEJv
eCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFpbnRzKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c1BhaXIgPSBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMsIGhvcml6
b250YWxDb25zdHJhaW50cyB9OworICAgICAgICAgICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJh
aW50c1BhaXIgPSBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4geyByb290VmVy
dGljYWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyB9OworICAgICAgICAgICAgICAg
IGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gs
IGhvcml6b250YWxDb25zdHJhaW50c1BhaXIsIHZlcnRpY2FsQ29uc3RyYWludHNQYWlyKTsKICAg
ICAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCiAgICAg
ICAgICAgICAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5hcHBlbmQobGF5b3V0Qm94KTsKICAgICAg
ICAgICAgIH0KQEAgLTE3Miw3ICsxNzgsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dEluRmxvCiAgICAgICAgIH0KICAgICB9CiAgICAgLy8gUGxhY2UgdGhlIGluZmxvdyBw
b3NpdGlvbmVkIGNoaWxkcmVuLgotICAgIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGZv
cm1hdHRpbmdSb290LCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJv
b3RIb3Jpem9udGFsQ29uc3RyYWludHMsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMgfSk7Cisg
ICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oZm9ybWF0dGluZ1Jvb3QsIHJvb3RIb3Jp
em9udGFsQ29uc3RyYWludHMpOwogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4
dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgLT4g
Zm9ybWF0dGluZyByb290KCIgPDwgJnJvb3QoKSA8PCAiKSIpOwogfQogCkBAIC0yMTIsNyArMjE4
LDcgQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nQ29udAogICAgIHJldHVy
biBhdmFpbGFibGVXaWR0aDsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFj
ZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50
cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hp
bGRyZW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYg
aG9yaXpvbnRhbENvbnN0cmFpbnRzKQogewogICAgIGlmICghaXM8Q29udGFpbmVyQm94PihsYXlv
dXRCb3gpKQogICAgICAgICByZXR1cm47CkBAIC0yMjEsMjAgKzIyNywyMCBAQCB2b2lkIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93CiAgICAgZm9yIChhdXRvJiBjaGlsZEJveCA6
IGNoaWxkcmVuT2ZUeXBlPEJveD4oY29udGFpbmVyQm94KSkgewogICAgICAgICBpZiAoIWNoaWxk
Qm94LmlzSW5GbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgpLmluRmxvd1Bvc2l0aW9uZWRQb3NpdGlv
bk9mZnNldChjaGlsZEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jayk7
CisgICAgICAgIGF1dG8gcG9zaXRpb25PZmZzZXQgPSBnZW9tZXRyeSgpLmluRmxvd1Bvc2l0aW9u
ZWRQb3NpdGlvbk9mZnNldChjaGlsZEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKICAgICAg
ICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChjaGlsZEJveCkubW92ZShwb3NpdGlvbk9m
ZnNldCk7CiAgICAgfQogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91
dCwgc3RyZWFtIDw8ICJFbmQ6IG1vdmUgaW4tZmxvdyBwb3NpdGlvbmVkIGNoaWxkcmVuIC0+IHBh
cmVudDogIiA8PCAmbGF5b3V0Qm94KTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29u
c3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0aWNhbENvbnN0cmFp
bnRzKQordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljVmVydGljYWxQ
b3NpdGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYg
dmVydGljYWxDb25zdHJhaW50cykKIHsKLSAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94
KGxheW91dEJveCkuc2V0VG9wKGdlb21ldHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlv
dXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7CisgICAgZm9ybWF0
dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldFRvcChnZW9tZXRyeSgpLnN0YXRp
Y1ZlcnRpY2FsUG9zaXRpb24obGF5b3V0Qm94LCB2ZXJ0aWNhbENvbnN0cmFpbnRzKSk7CiB9CiAK
LXZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3Np
dGlvbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250
YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25zdCBCb3gmIGxh
eW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWlu
dHMpCiB7Ci0gICAgZm9ybWF0dGluZ1N0YXRlKCkuZGlzcGxheUJveChsYXlvdXRCb3gpLnNldExl
ZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0Qm94LCBob3Jpem9u
dGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrKSk7CisgICAgZm9ybWF0dGluZ1N0YXRlKCku
ZGlzcGxheUJveChsYXlvdXRCb3gpLnNldExlZnQoZ2VvbWV0cnkoKS5zdGF0aWNIb3Jpem9udGFs
UG9zaXRpb24obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpKTsKIH0KIAogdm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihjb25zdCBC
b3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29u
c3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29uc3RyYWludHMp
CkBAIC0zNDIsMTkgKzM0OCwxOSBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVWZXJ0CiAgICAgICAgIGRpc3BsYXlCb3guc2V0SGFzQ2xlYXJhbmNlKCk7CiB9CiAKLXZvaWQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0
aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3Qg
Q29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJh
aW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2lu
KGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91
dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jpem9udGFsQ29uc3RyYWludHMp
CiB7CiAgICAgYXV0byBjb21wdXRlID0gWyZdKE9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRXaWR0
aCkgLT4gQ29udGVudFdpZHRoQW5kTWFyZ2luIHsKICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zs
b2F0aW5nUG9zaXRpb25lZCgpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuZmxvYXRp
bmdXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWlu
aW5nQmxvY2ssIHsgdXNlZFdpZHRoLCB7IH0gfSk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0
cnkoKS5mbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFp
bnRzLCB7IHVzZWRXaWR0aCwgeyB9IH0pOwogCiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9h
dEF2b2lkZXIoKSkgewotICAgICAgICAgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IHVzZWRBdmFp
bGFibGVXaWR0aEZvckZsb2F0QXZvaWRlcihmbG9hdGluZ0NvbnRleHQsIGxheW91dEJveCkudmFs
dWVPcihob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2NrLmxvZ2ljYWxXaWR0aCk7
Ci0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dXaWR0aEFuZE1hcmdpbihsYXlv
dXRCb3gsIHsgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jay5sb2dpY2FsTGVm
dCwgYXZhaWxhYmxlV2lkdGggfSwgeyB1c2VkV2lkdGgsIHsgfSB9KTsKKyAgICAgICAgICAgIGF1
dG8gYXZhaWxhYmxlV2lkdGggPSB1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIoZmxv
YXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpLnZhbHVlT3IoaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxv
Z2ljYWxXaWR0aCk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dXaWR0aEFu
ZE1hcmdpbihsYXlvdXRCb3gsIHsgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmxvZ2ljYWxMZWZ0LCBh
dmFpbGFibGVXaWR0aCB9LCB7IHVzZWRXaWR0aCwgeyB9IH0pOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5
KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMu
Y29udGFpbmluZ0Jsb2NrLCB7IHVzZWRXaWR0aCwgeyB9IH0pOworICAgICAgICAgICAgcmV0dXJu
IGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29u
c3RyYWludHMsIHsgdXNlZFdpZHRoLCB7IH0gfSk7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0zNjIsNyArMzY4LDcgQEAgdm9pZCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdAogCiAgICAgYXV0byBjb250ZW50V2lkdGhB
bmRNYXJnaW4gPSBjb21wdXRlKHsgfSk7CiAKLSAgICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gaG9y
aXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jay5sb2dpY2FsV2lkdGg7CisgICAgYXV0
byBhdmFpbGFibGVXaWR0aCA9IGhvcml6b250YWxDb25zdHJhaW50cy5sb2dpY2FsV2lkdGg7CiAg
ICAgaWYgKGF1dG8gbWF4V2lkdGggPSBnZW9tZXRyeSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0
Qm94LCBhdmFpbGFibGVXaWR0aCkpIHsKICAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9
IGNvbXB1dGUobWF4V2lkdGgpOwogICAgICAgICBpZiAoY29udGVudFdpZHRoQW5kTWFyZ2luLmNv
bnRlbnRXaWR0aCA+IG1heFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCkKQEAgLTM4MCwxNCAr
Mzg2LDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHQKICAgICBk
aXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbihjb250ZW50V2lkdGhBbmRNYXJn
aW4uY29tcHV0ZWRNYXJnaW4pOwogfQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMsIGNv
bnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYgdmVydGljYWxDb25zdHJh
aW50cykKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdp
bihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJiBob3Jp
em9udGFsQ29uc3RyYWludHMsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmIHZlcnRpY2FsQ29u
c3RyYWludHMpCiB7CiAgICAgYXV0byBjb21wdXRlID0gWyZdKE9wdGlvbmFsPExheW91dFVuaXQ+
IHVzZWRIZWlnaHQpIC0+IENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gewogICAgICAgICBpZiAobGF5
b3V0Qm94LmlzSW5GbG93KCkpCi0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dI
ZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmlu
Z0Jsb2NrLCB7IHVzZWRIZWlnaHQgfSk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5p
bkZsb3dIZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIHsg
dXNlZEhlaWdodCB9KTsKIAogICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlv
bmVkKCkpCi0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5mbG9hdGluZ0hlaWdodEFuZE1h
cmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHsg
dXNlZEhlaWdodCB9KTsKKyAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmZsb2F0aW5nSGVp
Z2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB7IHVzZWRIZWln
aHQgfSk7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiB7
IH07CkBAIC00MjksNyArNDM1LDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21w
dXRlSGVpZwogCiAgICAgQVNTRVJUKCFoYXNQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShsYXlvdXRC
b3gpIHx8IHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGxheW91dEJveCkudXNlZFZhbHVlKCkgPT0g
dmVydGljYWxNYXJnaW4uYmVmb3JlKCkpOwogICAgIHJlbW92ZVByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlKGxheW91dEJveCk7Ci0gICAgZGlzcGxheUJveC5zZXRUb3AodmVydGljYWxQb3NpdGlvbldp
dGhNYXJnaW4obGF5b3V0Qm94LCB2ZXJ0aWNhbE1hcmdpbiwgdmVydGljYWxDb25zdHJhaW50cy5j
b250YWluaW5nQmxvY2spKTsKKyAgICBkaXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0aW9u
V2l0aE1hcmdpbihsYXlvdXRCb3gsIHZlcnRpY2FsTWFyZ2luLCB2ZXJ0aWNhbENvbnN0cmFpbnRz
KSk7CiAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94SGVpZ2h0KGNvbnRlbnRIZWlnaHRBbmRN
YXJnaW4uY29udGVudEhlaWdodCk7CiAgICAgZGlzcGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbih2
ZXJ0aWNhbE1hcmdpbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCShyZXZp
c2lvbiAyNTY3MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTMgKzU3LDEzIEBA
IHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFQgcm9vdDsKICAgICAgICAgY29uc3QgVCBjb250YWlu
aW5nQmxvY2s7CiAgICAgfTsKLSAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVu
KGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+
Jik7CisgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmLCBj
b25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKIAotICAgIHZvaWQgY29tcHV0ZVdpZHRoQW5k
TWFyZ2luKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFp
bnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+Jik7Ci0gICAgdm9pZCBjb21wdXRlSGVpZ2h0
QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29u
c3RyYWludHM+JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7
CisgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgRmxvYXRpbmdDb250ZXh0Jiwg
Y29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjb21w
dXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50
cyYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKIAotICAgIHZvaWQgY29tcHV0ZVN0YXRp
Y0hvcml6b250YWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9y
aXpvbnRhbENvbnN0cmFpbnRzPiYpOwotICAgIHZvaWQgY29tcHV0ZVN0YXRpY1ZlcnRpY2FsUG9z
aXRpb24oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWlu
dHM+Jik7CisgICAgdm9pZCBjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJv
eCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRp
Y1ZlcnRpY2FsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYp
OwogICAgIHZvaWQgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhjb25zdCBGbG9hdGluZ0Nv
bnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0
cmFpbnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOwog
ICAgIHZvaWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0
aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390871</attachid>
            <date>2020-02-15 13:54:58 -0800</date>
            <delta_ts>2020-02-15 13:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207814-20200215135457.patch</filename>
            <type>text/plain</type>
            <size>17823</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjk4MzI3YjY1YTA0YjFh
OGM5ZGNhYTVhYWRlZjgyOGI0NDgxNTM5My4uYWRkOWM1MDMxYWIxMzk4MzdkMDIzN2IxODBmZmM1
MDNkOGIwNzRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTAyLTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXSBDb25zdHJh
aW50c1BhaXIgaXMgb25seSBuZWVkZWQgZm9yIHRoZSBwcmUtY29tcHV0ZWQgdmVydGljYWwgcG9z
aXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzgxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk0ODU2MTI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgQWZ0ZXIgcjI1NjA5OSAoUHJlLWNvbXB1
dGUgdmVydGljYWwgcG9zaXRpb24gb25seSB3aGVuIHdlIHJlYWxseSBuZWVkIGl0KSwgQ29uc3Ry
YWludHNQYWlyPD4gaXMgb25seQorICAgICAgICBuZWVkZWQgaW4gZmV3IGZ1bmN0aW9ucy4KKwor
ICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Omxh
eW91dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNWZXJ0
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdp
bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oOgorCiAyMDIwLTAyLTE1ICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW50cm9kdWNlIE91dE9mRmxvd0hvcml6
b250YWxDb25zdHJhaW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOGJi
N2I2Mzk1ZDE3Y2IwYzY3OTMzYmQyMjI4MDhiMjY3MTgwZGIwNy4uMjFlMjE0MDU0NzA0MDI0NmFl
ZTkwZWFlMjk3MjM5N2Y0MDI3NzE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3Bw
CkBAIC05MCwyMSArOTAsMjIgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJ
bkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH07CiAKLSAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c0Zvckxh
eW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSAtPiBDb25zdHJhaW50c1BhaXI8
SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7CisgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNG
b3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgewogICAgICAgICBhdXRv
KiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CiAgICAgICAg
IEFTU0VSVChjb250YWluaW5nQmxvY2spOwogICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrID09
ICZmb3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAgIHJldHVybiB7IHJvb3RIb3Jpem9udGFsQ29u
c3RyYWludHMsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMgfTsKLSAgICAgICAgcmV0dXJuIHsg
cm9vdEhvcml6b250YWxDb25zdHJhaW50cywgR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50
c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSkgfTsKKyAgICAgICAg
ICAgIHJldHVybiByb290SG9yaXpvbnRhbENvbnN0cmFpbnRzOworICAgICAgICByZXR1cm4gR2Vv
bWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhnZW9tZXRyeUZvckJveCgqY29u
dGFpbmluZ0Jsb2NrKSk7CiAgICAgfTsKIAotICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSAtPiBDb25zdHJhaW50c1Bh
aXI8VmVydGljYWxDb25zdHJhaW50cz4geworICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50c0Zv
ckxheW91dEJveCA9IFsmXSAoY29uc3QgYXV0byYgbGF5b3V0Qm94KSB7CiAgICAgICAgIGF1dG8q
IGNvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKTsKICAgICAgICAg
QVNTRVJUKGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2sgPT0g
JmZvcm1hdHRpbmdSb290KQotICAgICAgICAgICAgcmV0dXJuIHsgcm9vdFZlcnRpY2FsQ29uc3Ry
YWludHMsIHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzIH07Ci0gICAgICAgIHJldHVybiB7IHJvb3RW
ZXJ0aWNhbENvbnN0cmFpbnRzLCBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxv
dyhnZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrKSkgfTsKKyAgICAgICAgICAgIHJldHVy
biByb290VmVydGljYWxDb25zdHJhaW50czsKKyAgICAgICAgcmV0dXJuIEdlb21ldHJ5Ojp2ZXJ0
aWNhbENvbnN0cmFpbnRzRm9ySW5GbG93KGdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2sp
KTsKICAgICB9OworCiAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJzYWwg
bGF5b3V0LgogICAgIC8vIFRoZSByb290IGNvbnRhaW5lciBsYXlvdXQgaXMgZG9uZSBpbiB0aGUg
Zm9ybWF0dGluZyBjb250ZXh0IGl0IGxpdmVzIGluLCBub3QgdGhhdCBvbmUgaXQgY3JlYXRlcywg
c28gbGV0J3Mgc3RhcnQgd2l0aCB0aGUgZmlyc3QgY2hpbGQuCiAgICAgYXBwZW5kTmV4dFRvTGF5
b3V0UXVldWUoZm9ybWF0dGluZ1Jvb3QsIExheW91dERpcmVjdGlvbjo6Q2hpbGQpOwpAQCAtMTE5
LDE2ICsxMjAsMjAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dD
b250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb24KICAgICAgICAgICAgIGF1dG8g
aG9yaXpvbnRhbENvbnN0cmFpbnRzID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94
KGxheW91dEJveCk7CiAgICAgICAgICAgICBhdXRvIHZlcnRpY2FsQ29uc3RyYWludHMgPSB2ZXJ0
aWNhbENvbnN0cmFpbnRzRm9yTGF5b3V0Qm94KGxheW91dEJveCk7CiAKLSAgICAgICAgICAgIGNv
bXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNv
bnRhaW5pbmdCbG9jayk7CisgICAgICAgICAgICBjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhsYXlv
dXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAgICAgICAgICAgICBjb21wdXRlU3RhdGlj
VmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWludHMpOwotICAgICAg
ICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94LCBo
b3Jpem9udGFsQ29uc3RyYWludHMpOworCisgICAgICAgICAgICBhdXRvIGhvcml6b250YWxDb25z
dHJhaW50c1BhaXIgPSBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJv
b3RIb3Jpem9udGFsQ29uc3RyYWludHMsIGhvcml6b250YWxDb25zdHJhaW50cyB9OworICAgICAg
ICAgICAgYXV0byB2ZXJ0aWNhbENvbnN0cmFpbnRzUGFpciA9IENvbnN0cmFpbnRzUGFpcjxWZXJ0
aWNhbENvbnN0cmFpbnRzPiB7IHJvb3RWZXJ0aWNhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0
cmFpbnRzIH07CisgICAgICAgICAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4oZmxvYXRpbmdDb250
ZXh0LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50c1BhaXIsIHZlcnRpY2FsQ29uc3Ry
YWludHNQYWlyKTsKICAgICAgICAgICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24o
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogCiAgICAgICAgICAgICBpZiAobGF5
b3V0Qm94LmVzdGFibGlzaGVzRm9ybWF0dGluZ0NvbnRleHQoKSkgewogICAgICAgICAgICAgICAg
IGlmIChpczxDb250YWluZXJCb3g+KGxheW91dEJveCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94
PihsYXlvdXRCb3gpLmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0
Qm94KTsKICAgICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRoZSBpbmZsb3cgZGVzY2VuZGFu
dHMgb2YgdGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4KLSAgICAgICAgICAgICAgICAgICAg
cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGb3JtYXR0aW5nUm9vdChmbG9hdGluZ0NvbnRl
eHQsIGNvbnRhaW5lckJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgICAgICAgICAgcHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JG
b3JtYXR0aW5nUm9vdChmbG9hdGluZ0NvbnRleHQsIGNvbnRhaW5lckJveCwgaG9yaXpvbnRhbENv
bnN0cmFpbnRzUGFpciwgdmVydGljYWxDb25zdHJhaW50c1BhaXIpOworCiAgICAgICAgICAgICAg
ICAgICAgIGF1dG8mIHJvb3REaXNwbGF5Qm94ID0gZ2VvbWV0cnlGb3JCb3goY29udGFpbmVyQm94
KTsKICAgICAgICAgICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50ID0gR2VvbWV0cnk6Omhvcml6b250YWxDb25zdHJhaW50c0ZvckluRmxvdyhyb290
RGlzcGxheUJveCk7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50
c0ZvckluRmxvd0NvbnRlbnQgPSBHZW9tZXRyeTo6dmVydGljYWxDb25zdHJhaW50c0ZvckluRmxv
dyhyb290RGlzcGxheUJveCk7CkBAIC0xNjIsNyArMTY3LDkgQEAgdm9pZCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlk
YXRpb24KICAgICAgICAgICAgIC8vIFJlc29sdmUgZmluYWwgcG9zaXRpb25zLgogICAgICAgICAg
ICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29u
c3RyYWludHMpOwogICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0QXZvaWRlcigpKSB7
Ci0gICAgICAgICAgICAgICAgY29tcHV0ZVBvc2l0aW9uVG9Bdm9pZEZsb2F0cyhmbG9hdGluZ0Nv
bnRleHQsIGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFp
bnRzKTsKKyAgICAgICAgICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50c1BhaXIgPSBD
b25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJvb3RIb3Jpem9udGFsQ29u
c3RyYWludHMsIGhvcml6b250YWxDb25zdHJhaW50cyB9OworICAgICAgICAgICAgICAgIGF1dG8g
dmVydGljYWxDb25zdHJhaW50c1BhaXIgPSBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJh
aW50cz4geyByb290VmVydGljYWxDb25zdHJhaW50cywgdmVydGljYWxDb25zdHJhaW50cyB9Owor
ICAgICAgICAgICAgICAgIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoZmxvYXRpbmdDb250
ZXh0LCBsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50c1BhaXIsIHZlcnRpY2FsQ29uc3Ry
YWludHNQYWlyKTsKICAgICAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3Np
dGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgICAgIGZsb2F0aW5nQ29udGV4dC5hcHBlbmQobGF5
b3V0Qm94KTsKICAgICAgICAgICAgIH0KQEAgLTE3MiwxMSArMTc5LDExIEBAIHZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAgICAgLy8gUGxhY2UgdGhlIGluZmxvdyBw
b3NpdGlvbmVkIGNoaWxkcmVuLgotICAgIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGZv
cm1hdHRpbmdSb290LCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiB7IHJv
b3RIb3Jpem9udGFsQ29uc3RyYWludHMsIHJvb3RIb3Jpem9udGFsQ29uc3RyYWludHMgfSk7Cisg
ICAgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oZm9ybWF0dGluZ1Jvb3QsIHJvb3RIb3Jp
em9udGFsQ29uc3RyYWludHMpOwogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4
dExheW91dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgLT4g
Zm9ybWF0dGluZyByb290KCIgPDwgJnJvb3QoKSA8PCAiKSIpOwogfQogCi1PcHRpb25hbDxMYXlv
dXRVbml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9h
dEF2b2lkZXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiBmbG9hdGluZ0NvbnRleHQsIGNvbnN0IEJv
eCYgbGF5b3V0Qm94KSBjb25zdAorT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6dXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGNvbnN0IEZsb2F0aW5n
Q29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50
cywgY29uc3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+JiB2ZXJ0aWNhbENv
bnN0cmFpbnRzKQogewogICAgIC8vIE5vcm1hbGx5IHRoZSBhdmFpbGFibGUgd2lkdGggZm9yIGFu
IGluLWZsb3cgYmxvY2sgbGV2ZWwgYm94IGlzIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmluZyBi
bG9jaydzIGNvbnRlbnQgYm94LgogICAgIC8vIEhvd2V2ZXIgKGFuZCBjYW4ndCBmaW5kIGl0IGFu
eXdoZXJlIGluIHRoZSBzcGVjKSBub24tZmxvYXRpbmcgcG9zaXRpb25lZCBmbG9hdCBhdm9pZGVy
IGJsb2NrIGxldmVsIGJveGVzIGFyZSBjb25zdHJhaW5lZCBieSBleGlzdGluZyBmbG9hdHMuCkBA
IC0xODQsNiArMTkxLDggQEAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6dXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGMKICAgICBpZiAoZmxvYXRp
bmdDb250ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAvLyBWZXJ0aWNh
bCBzdGF0aWMgcG9zaXRpb24gaXMgbm90IGNvbXB1dGVkIHlldCwgc28gbGV0J3MganVzdCBwcmUt
Y29tcHV0ZSBpdCBmb3Igbm93LgorICAgIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yQW5j
ZXN0b3JzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCB2ZXJ0aWNhbENvbnN0cmFp
bnRzKTsKKyAgICBwcmVjb21wdXRlVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250
YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2ssIHZlcnRpY2FsQ29uc3RyYWludHMuY29udGFp
bmluZ0Jsb2NrKTsKICAgICBhdXRvIHZlcnRpY2FsUG9zaXRpb24gPSBtYXBUb3BUb0Zvcm1hdHRp
bmdDb250ZXh0Um9vdChsYXlvdXRCb3gpOwogICAgIC8vIEZJWE1FOiBDaGVjayBpZiB0aGUgbm9u
LXlldC1jb21wdXRlZCBoZWlnaHQgYWZmZWN0cyB0aGlzIGNvbXB1dGF0aW9uIC0gYW5kIHdoZXRo
ZXIgd2UgaGF2ZSB0byByZXNvbHZlIGl0CiAgICAgLy8gYXQgYSBsYXRlciBwb2ludCBvciBub3Qg
KGNhbid0IGZpbmQgdGhpcyBpbiB0aGUgc3BlYykuCkBAIC0yMTIsNyArMjIxLDcgQEAgT3B0aW9u
YWw8TGF5b3V0VW5pdD4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dXNlZEF2YWlsYWJsZVdpZHRo
Rm9yRmxvYXRBdm9pZGVyKGMKICAgICByZXR1cm4gYXZhaWxhYmxlV2lkdGg7CiB9CiAKLXZvaWQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hpbGRyZW4oY29u
c3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3Ry
YWludHM+JiBob3Jpem9udGFsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OnBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBj
b25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250YWxDb25zdHJhaW50cykKIHsKICAg
ICBpZiAoIWlzPENvbnRhaW5lckJveD4obGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuOwpAQCAt
MjIxLDIwICsyMzAsMjAgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxv
d1Bvc2l0aW9uZWRDaGlsZHJlbihjb25zdCBCb3gmIGxheW91dEJveCwKICAgICBmb3IgKGF1dG8m
IGNoaWxkQm94IDogY2hpbGRyZW5PZlR5cGU8Qm94Pihjb250YWluZXJCb3gpKSB7CiAgICAgICAg
IGlmICghY2hpbGRCb3guaXNJbkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgYXV0byBwb3NpdGlvbk9mZnNldCA9IGdlb21ldHJ5KCkuaW5GbG93UG9zaXRp
b25lZFBvc2l0aW9uT2Zmc2V0KGNoaWxkQm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFp
bmluZ0Jsb2NrKTsKKyAgICAgICAgYXV0byBwb3NpdGlvbk9mZnNldCA9IGdlb21ldHJ5KCkuaW5G
bG93UG9zaXRpb25lZFBvc2l0aW9uT2Zmc2V0KGNoaWxkQm94LCBob3Jpem9udGFsQ29uc3RyYWlu
dHMpOwogICAgICAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGNoaWxkQm94KS5tb3Zl
KHBvc2l0aW9uT2Zmc2V0KTsKICAgICB9CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdD
b250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkVuZDogbW92ZSBpbi1mbG93IHBvc2l0aW9uZWQgY2hp
bGRyZW4gLT4gcGFyZW50OiAiIDw8ICZsYXlvdXRCb3gpOwogfQogCi12b2lkIEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mIHZlcnRp
Y2FsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0
aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBWZXJ0aWNhbENv
bnN0cmFpbnRzJiB2ZXJ0aWNhbENvbnN0cmFpbnRzKQogewotICAgIGZvcm1hdHRpbmdTdGF0ZSgp
LmRpc3BsYXlCb3gobGF5b3V0Qm94KS5zZXRUb3AoZ2VvbWV0cnkoKS5zdGF0aWNWZXJ0aWNhbFBv
c2l0aW9uKGxheW91dEJveCwgdmVydGljYWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spKTsK
KyAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0VG9wKGdlb21l
dHJ5KCkuc3RhdGljVmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIHZlcnRpY2FsQ29uc3RyYWlu
dHMpKTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9y
aXpvbnRhbFBvc2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBDb25zdHJhaW50c1Bh
aXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0cmFpbnRzKQordm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljSG9yaXpvbnRhbFBvc2l0aW9uKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhvcml6b250
YWxDb25zdHJhaW50cykKIHsKLSAgICBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91
dEJveCkuc2V0TGVmdChnZW9tZXRyeSgpLnN0YXRpY0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRC
b3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2spKTsKKyAgICBmb3JtYXR0
aW5nU3RhdGUoKS5kaXNwbGF5Qm94KGxheW91dEJveCkuc2V0TGVmdChnZW9tZXRyeSgpLnN0YXRp
Y0hvcml6b250YWxQb3NpdGlvbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cykpOwog
fQogCiB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0
aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmIGhv
cml6b250YWxDb25zdHJhaW50cywgY29uc3QgVmVydGljYWxDb25zdHJhaW50cyYgdmVydGljYWxD
b25zdHJhaW50cykKQEAgLTM0MiwxOSArMzUxLDIwIEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5n
CiAgICAgICAgIGRpc3BsYXlCb3guc2V0SGFzQ2xlYXJhbmNlKCk7CiB9CiAKLXZvaWQgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0aW5nQ29u
dGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgQ29uc3Ry
YWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxDb25zdHJhaW50cykK
K3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0
IEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwg
Y29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mIGhvcml6b250YWxD
b25zdHJhaW50c1BhaXIsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRz
PiYgdmVydGljYWxDb25zdHJhaW50c1BhaXIpCiB7CisgICAgYXV0byYgaG9yaXpvbnRhbENvbnN0
cmFpbnRzID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzUGFpci5jb250YWluaW5nQmxvY2s7IAogICAg
IGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIC0+IENv
bnRlbnRXaWR0aEFuZE1hcmdpbiB7CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bv
c2l0aW9uZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmZsb2F0aW5nV2lkdGhB
bmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmluZ0Jsb2Nr
LCB7IHVzZWRXaWR0aCwgeyB9IH0pOworICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuZmxv
YXRpbmdXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgeyB1
c2VkV2lkdGgsIHsgfSB9KTsKIAogICAgICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRBdm9pZGVy
KCkpIHsKLSAgICAgICAgICAgIGF1dG8gYXZhaWxhYmxlV2lkdGggPSB1c2VkQXZhaWxhYmxlV2lk
dGhGb3JGbG9hdEF2b2lkZXIoZmxvYXRpbmdDb250ZXh0LCBsYXlvdXRCb3gpLnZhbHVlT3IoaG9y
aXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdCbG9jay5sb2dpY2FsV2lkdGgpOwotICAgICAg
ICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5GbG93V2lkdGhBbmRNYXJnaW4obGF5b3V0Qm94LCB7
IGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxvY2subG9naWNhbExlZnQsIGF2YWls
YWJsZVdpZHRoIH0sIHsgdXNlZFdpZHRoLCB7IH0gfSk7CisgICAgICAgICAgICBhdXRvIGF2YWls
YWJsZVdpZHRoID0gdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGZsb2F0aW5nQ29u
dGV4dCwgbGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHNQYWlyLCB2ZXJ0aWNhbENvbnN0
cmFpbnRzUGFpcikudmFsdWVPcihob3Jpem9udGFsQ29uc3RyYWludHMubG9naWNhbFdpZHRoKTsK
KyAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFyZ2luKGxheW91
dEJveCwgeyBob3Jpem9udGFsQ29uc3RyYWludHMubG9naWNhbExlZnQsIGF2YWlsYWJsZVdpZHRo
IH0sIHsgdXNlZFdpZHRoLCB7IH0gfSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAobGF5b3V0
Qm94LmlzSW5GbG93KCkpCi0gICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5pbkZsb3dXaWR0
aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cy5jb250YWluaW5nQmxv
Y2ssIHsgdXNlZFdpZHRoLCB7IH0gfSk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5p
bkZsb3dXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywgeyB1
c2VkV2lkdGgsIHsgfSB9KTsKIAogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIHsgfTsKQEAgLTM2Miw3ICszNzIsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0
aQogCiAgICAgYXV0byBjb250ZW50V2lkdGhBbmRNYXJnaW4gPSBjb21wdXRlKHsgfSk7CiAKLSAg
ICBhdXRvIGF2YWlsYWJsZVdpZHRoID0gaG9yaXpvbnRhbENvbnN0cmFpbnRzLmNvbnRhaW5pbmdC
bG9jay5sb2dpY2FsV2lkdGg7CisgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGhvcml6b250YWxD
b25zdHJhaW50cy5sb2dpY2FsV2lkdGg7CiAgICAgaWYgKGF1dG8gbWF4V2lkdGggPSBnZW9tZXRy
eSgpLmNvbXB1dGVkTWF4V2lkdGgobGF5b3V0Qm94LCBhdmFpbGFibGVXaWR0aCkpIHsKICAgICAg
ICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUobWF4V2lkdGgpOwogICAgICAgICBp
ZiAoY29udGVudFdpZHRoQW5kTWFyZ2luLmNvbnRlbnRXaWR0aCA+IG1heFdpZHRoQW5kTWFyZ2lu
LmNvbnRlbnRXaWR0aCkKQEAgLTM4MCwxNCArMzkwLDE0IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYgZmxv
YXRpCiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oY29udGVudFdp
ZHRoQW5kTWFyZ2luLmNvbXB1dGVkTWFyZ2luKTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBjb25z
dCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFpbnRzPiYgaG9yaXpvbnRhbENvbnN0
cmFpbnRzLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50cz4mIHZlcnRp
Y2FsQ29uc3RyYWludHMpCit2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWln
aHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IEhvcml6b250YWxDb25zdHJh
aW50cyYgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJiB2
ZXJ0aWNhbENvbnN0cmFpbnRzKQogewogICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxM
YXlvdXRVbml0PiB1c2VkSGVpZ2h0KSAtPiBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIHsKICAgICAg
ICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5
KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRz
LmNvbnRhaW5pbmdCbG9jaywgeyB1c2VkSGVpZ2h0IH0pOworICAgICAgICAgICAgcmV0dXJuIGdl
b21ldHJ5KCkuaW5GbG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0
cmFpbnRzLCB7IHVzZWRIZWlnaHQgfSk7CiAKICAgICAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0
aW5nUG9zaXRpb25lZCgpKQotICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuZmxvYXRpbmdI
ZWlnaHRBbmRNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMuY29udGFpbmlu
Z0Jsb2NrLCB7IHVzZWRIZWlnaHQgfSk7CisgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnkoKS5m
bG9hdGluZ0hlaWdodEFuZE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywg
eyB1c2VkSGVpZ2h0IH0pOwogCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4geyB9OwpAQCAtNDI5LDcgKzQzOSw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QK
IAogICAgIEFTU0VSVCghaGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSB8fCBw
cmVjb21wdXRlZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpLnVzZWRWYWx1ZSgpID09IHZlcnRpY2Fs
TWFyZ2luLmJlZm9yZSgpKTsKICAgICByZW1vdmVQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShsYXlv
dXRCb3gpOwotICAgIGRpc3BsYXlCb3guc2V0VG9wKHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2lu
KGxheW91dEJveCwgdmVydGljYWxNYXJnaW4sIHZlcnRpY2FsQ29uc3RyYWludHMuY29udGFpbmlu
Z0Jsb2NrKSk7CisgICAgZGlzcGxheUJveC5zZXRUb3AodmVydGljYWxQb3NpdGlvbldpdGhNYXJn
aW4obGF5b3V0Qm94LCB2ZXJ0aWNhbE1hcmdpbiwgdmVydGljYWxDb25zdHJhaW50cykpOwogICAg
IGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNv
bnRlbnRIZWlnaHQpOwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4odmVydGljYWxN
YXJnaW4pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGYxNjcxMDQyNTE3YmY2
YTFhZTIyMTUwYjdmNDIxM2Q2NzNmYWI5MWMuLjNjYjI3NjFiOTljY2I2OTIxMzYwYzcyNDZhM2Iz
MjJhMDQxYTllYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01NywxMyArNTcs
MTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVCByb290OwogICAgICAgICBjb25zdCBUIGNv
bnRhaW5pbmdCbG9jazsKICAgICB9OwotICAgIHZvaWQgcGxhY2VJbkZsb3dQb3NpdGlvbmVkQ2hp
bGRyZW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJh
aW50cz4mKTsKKyAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJv
eCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwogCi0gICAgdm9pZCBjb21wdXRlV2lk
dGhBbmRNYXJnaW4oY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgY29uc3QgQ29u
c3RyYWludHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVI
ZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6b250
YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJhaW50
cz4mKTsKKyAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBGbG9hdGluZ0NvbnRl
eHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXI8SG9yaXpvbnRhbENvbnN0cmFp
bnRzPiYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNhbENvbnN0cmFpbnRzPiYpOworICAg
IHZvaWQgY29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFs
Q29uc3RyYWludHMmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CiAKLSAgICB2b2lkIGNv
bXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWlu
dHNQYWlyPEhvcml6b250YWxDb25zdHJhaW50cz4mKTsKLSAgICB2b2lkIGNvbXB1dGVTdGF0aWNW
ZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxWZXJ0aWNh
bENvbnN0cmFpbnRzPiYpOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlv
bihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIGNv
bXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IFZlcnRpY2FsQ29u
c3RyYWludHMmKTsKICAgICB2b2lkIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3Qg
RmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyPEhvcml6
b250YWxDb25zdHJhaW50cz4mLCBjb25zdCBDb25zdHJhaW50c1BhaXI8VmVydGljYWxDb25zdHJh
aW50cz4mKTsKICAgICB2b2lkIGNvbXB1dGVWZXJ0aWNhbFBvc2l0aW9uRm9yRmxvYXRDbGVhcihj
b25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmKTsKIApAQCAtMTYxLDcgKzE2MSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gm
LCBjb25zdCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSYpOwogICAgIHZvaWQgcmVtb3ZlUHJlY29t
cHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIHsgbV9wcmVjb21wdXRlZE1h
cmdpbkJlZm9yZUxpc3QucmVtb3ZlKCZsYXlvdXRCb3gpOyB9CiAgICAgYm9vbCBoYXNQcmVjb21w
dXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKLSAgICBPcHRpb25hbDxMYXlvdXRV
bml0PiB1c2VkQXZhaWxhYmxlV2lkdGhGb3JGbG9hdEF2b2lkZXIoY29uc3QgRmxvYXRpbmdDb250
ZXh0JiwgY29uc3QgQm94JikgY29uc3Q7CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gdXNlZEF2
YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0
IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpcjxIb3Jpem9udGFsQ29uc3RyYWludHM+JiwgY29u
c3QgQ29uc3RyYWludHNQYWlyPFZlcnRpY2FsQ29uc3RyYWludHM+Jik7CiAjaWYgQVNTRVJUX0VO
QUJMRUQKICAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9wcmVjb21wdXRlZE1hcmdp
bkJlZm9yZUxpc3QuZ2V0KCZsYXlvdXRCb3gpOyB9CiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>