<?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>211161</bug_id>
          
          <creation_ts>2020-04-28 20:05:33 -0700</creation_ts>
          <short_desc>[LFC] FormattingContext::constraintsForInFlow/OutOfFlowContent should take const ContainerBox&amp;</short_desc>
          <delta_ts>2020-04-29 09:07:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1646812</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-04-28 20:05:33 -0700</bug_when>
    <thetext>a leaf box should not need to compute constraints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646816</commentid>
    <comment_count>1</comment_count>
      <attachid>397919</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-28 20:12:16 -0700</bug_when>
    <thetext>Created attachment 397919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646999</commentid>
    <comment_count>2</comment_count>
      <attachid>397962</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-04-29 08:25:59 -0700</bug_when>
    <thetext>Created attachment 397962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647013</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-29 09:06:36 -0700</bug_when>
    <thetext>Committed r260898: &lt;https://trac.webkit.org/changeset/260898&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 397962.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647014</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-29 09:07:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/62603839&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397919</attachid>
            <date>2020-04-28 20:12:16 -0700</date>
            <delta_ts>2020-04-29 08:25:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211161-20200428201215.patch</filename>
            <type>text/plain</type>
            <size>21348</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwM2M1NTNkODYzMGQ4
NTNmMDE4NGE2MjQ2MGQwYmQ4NTQ5MjgyNy4uNzM2M2ZjNWEyNWRjYWI0MjRlNjIwODI1MjhiZmZm
ZDkyYjc1NzA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA0LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbnN0cmFpbnRzRm9ySW5GbG93L091dE9mRmxvd0NvbnRlbnQgc2hvdWxkIHRha2Ug
Y29uc3QgQ29udGFpbmVyQm94JgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExMTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTGVhZiBib3hlcyBzaG91bGQgbm90IG5lZWQgdG8gY29tcHV0ZSBjb25zdHJh
aW50cyAoYXMgYnkgZGVmaW5pdGlvbiB0aGV5IGRvbid0IGhhdmUgaW4vb3V0LW9mLWZsb3cgZGVz
Y2VuZGFudHMpLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxv
d0NvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAg
ICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91
dE9mRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCk6CisgICAgICAgICog
bGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250
YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVy
dGljYWxQb3NpdGlvbkZvckJveEFuZEFuY2VzdG9ycyk6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJ
bkZsb3dIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0
ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVO
ZWdhdGl2ZVZhbHVlcyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgICog
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Q2VsbCk6
CisKIDIwMjAtMDQtMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXSBJbnRyb2R1Y2UgRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93Q29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAK
aW5kZXggMTFkOGYwZWUwYjRiOTI5YzE2MGViOWYxMzc0MGQxZjk5NjljZDMwMS4uMTlkZTFmZmU2
NmM2NTkwZjVjMzRiMzVhY2I1ZjU4N2Q3YjIyYzEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52
YWxpZGF0aW9uU3QKIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNv
bnN0IGF1dG8mIG91dE9mRmxvd0JveCkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sg
PSBvdXRPZkZsb3dCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAgIHJldHVybiAmY29udGFp
bmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IEdlb21ldHJ5Ojpjb25zdHJhaW50
c0Zvck91dE9mRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7Cisg
ICAgICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6
IGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9j
ayk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZm9ybWF0dGluZ1N0
YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewpAQCAtMTU2LDE3ICsxNTYsMTIgQEAgdm9pZCBGb3Jt
YXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uU3QKICAgICAgICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRy
eSgqb3V0T2ZGbG93Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7CiAgICAgICAgIGlm
IChpczxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpKSB7CiAgICAgICAgICAgICBhdXRvJiBj
b250YWluZXJCb3ggPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpvdXRPZkZsb3dCb3gpOwotICAg
ICAgICAgICAgYXV0byYgY29udGFpbmVyRGlzcGxheUJveCA9IGdlb21ldHJ5Rm9yQm94KGNvbnRh
aW5lckJveCk7Ci0KLSAgICAgICAgICAgIGlmIChjb250YWluZXJCb3guaGFzSW5GbG93T3JGbG9h
dGluZ0NoaWxkKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0ID0g
TGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29udGFpbmVyQm94LCBsYXlv
dXRTdGF0ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0SW5G
bG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5G
bG93Q29udGVudChjb250YWluZXJEaXNwbGF5Qm94KSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0ID0gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0
dGluZ0NvbnRleHQoY29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKTsKKyAgICAgICAgICAgIGlm
IChjb250YWluZXJCb3guaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpCisgICAgICAgICAgICAg
ICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3Rh
dGUsIGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkp
OwogICAgICAgICAgICAgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkoY29udGFpbmVy
Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoY29udGFp
bmVyQm94Lmhhc0NoaWxkKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGZvcm1hdHRpbmdDb250
ZXh0ID0gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29udGFpbmVyQm94
LCBsYXlvdXRTdGF0ZSgpKTsKLSAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5
b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFp
bnRzRm9yT3V0T2ZGbG93Q29udGVudChjb250YWluZXJEaXNwbGF5Qm94KSk7Ci0gICAgICAgICAg
ICB9CisgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0NoaWxkKCkpCisgICAgICAgICAg
ICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0
aW9uU3RhdGUsIGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRh
aW5lckJveCkpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dW
ZXJ0aWNhbEdlb21ldHJ5KCpvdXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRz
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4
IGM4MTgwNzljN2MyOTdmMjI2NWEwMmY2NGU4OGZlMDQ4M2JkZGZmNzcuLjU4OTc1Y2U4YTU1NmVj
Mjc2ZGRkZjc2ZGFhYmU3Zjc4ZWQ3NGY5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5oCkBAIC0xNTcsOCArMTU3LDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAg
IExheW91dFVuaXQgY29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBC
b3gmKSBjb25zdDsKIAotICAgICAgICBzdGF0aWMgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250
ZW50IGNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChjb25zdCBEaXNwbGF5OjpCb3gmIGNv
bnRhaW5pbmdCbG9ja0dlb21ldHJ5KTsKLSAgICAgICAgc3RhdGljIENvbnN0cmFpbnRzRm9ySW5G
bG93Q29udGVudCBjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgRGlzcGxheTo6Qm94
JiBjb250YWluaW5nQmxvY2tHZW9tZXRyeSk7CisgICAgICAgIENvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93Q29udGVudCBjb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29udGFpbmVy
Qm94Jik7CisgICAgICAgIENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdHJhaW50c0Zv
ckluRmxvd0NvbnRlbnQoY29uc3QgQ29udGFpbmVyQm94JiwgT3B0aW9uYWw8RXNjYXBlUmVhc29u
PiA9IFdURjo6bnVsbG9wdCk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBGb3JtYXR0aW5nQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9G
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCBjZTFkNTc1MTM3OWU0MGU3MjlkNjM1YzE3
ZWIyZmQ5OTFiZDEzYzA2Li4yNDY0YjEzNWM0YjY5NGFjY2IwMmY0NjViZTJkZDk1OGM4YTBiZDA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwCkBAIC0xMDk4LDE3ICsxMDk4LDE5IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRy
aW5zaWNXaWR0aENvbnN0cmFpbnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3Ry
CiAgICAgcmV0dXJuIGludHJpbnNpY1dpZHRoOwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6Q29u
c3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
Y29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFp
bmluZ0Jsb2NrR2VvbWV0cnkpCitGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRP
ZkZsb3dDb250ZW50IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JP
dXRPZkZsb3dDb250ZW50KGNvbnN0IENvbnRhaW5lckJveCYgY29udGFpbmVyQm94KQogeworICAg
IGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChj
b250YWluZXJCb3gpOwogICAgIHJldHVybiB7Ci0gICAgICAgIHsgY29udGFpbmluZ0Jsb2NrR2Vv
bWV0cnkucGFkZGluZ0JveExlZnQoKSwgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0Jv
eFdpZHRoKCkgfSwKLSAgICAgICAgeyBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5wYWRkaW5nQm94
VG9wKCksIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hIZWlnaHQoKSB9LAotICAg
ICAgICBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94V2lkdGgoKSB9OworICAgICAg
ICB7IGJveEdlb21ldHJ5LnBhZGRpbmdCb3hMZWZ0KCksIGJveEdlb21ldHJ5LnBhZGRpbmdCb3hX
aWR0aCgpIH0sCisgICAgICAgIHsgYm94R2VvbWV0cnkucGFkZGluZ0JveFRvcCgpLCBib3hHZW9t
ZXRyeS5wYWRkaW5nQm94SGVpZ2h0KCkgfSwKKyAgICAgICAgYm94R2VvbWV0cnkuY29udGVudEJv
eFdpZHRoKCkgfTsKIH0KIAotRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9ySW5GbG93
Q29udGVudCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93
Q29udGVudChjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQorRm9y
bWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb25zdCBDb250YWlu
ZXJCb3gmIGNvbnRhaW5lckJveCwgT3B0aW9uYWw8RXNjYXBlUmVhc29uPiBlc2NhcGVSZWFzb24p
CiB7Ci0gICAgcmV0dXJuIHsgeyBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94TGVm
dCgpLCBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94V2lkdGgoKSB9LCB7IGNvbnRh
aW5pbmdCbG9ja0dlb21ldHJ5LmNvbnRlbnRCb3hUb3AoKSwgeyB9IH0gfTsKKyAgICBhdXRvJiBi
b3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmVy
Qm94LCBlc2NhcGVSZWFzb24pOworICAgIHJldHVybiB7IHsgYm94R2VvbWV0cnkuY29udGVudEJv
eExlZnQoKSwgYm94R2VvbWV0cnkuY29udGVudEJveFdpZHRoKCkgfSwgeyBib3hHZW9tZXRyeS5j
b250ZW50Qm94VG9wKCksIHsgfSB9IH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCmluZGV4IDhlYmFlMjllZDhmMjhkOGUy
ZTkzMDY3ZGQzNGNjZjY2MWJhZmY5M2IuLjE0NjM3NWE4YzlhZTQ0MmMzNTkyZGVjMzNlMjA0ODVi
ZmIxOGViNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcApAQCAtNTAsMTEgKzUwLDEyIEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0Nv
bnRleHQ6OlF1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4
CiAgICAgICAgIC8vIElmIHRoZSBvbmx5IGZpeGVkIHZhbHVlIGJveCB3ZSBmaW5kIGlzIHRoZSBJ
Q0IsIHRoZW4gaWdub3JlIHRoZSBib2R5IGFuZCB0aGUgZG9jdW1lbnQgKHZlcnRpY2FsKSBtYXJn
aW4sIHBhZGRpbmcgYW5kIGJvcmRlci4gU28gbXVjaCBxdWlya2luZXNzLgogICAgICAgICAvLyAt
YW5kIGl0J3MgdG90YWxseSBpbnNhbmUgYmVjYXVzZSBub3cgd2UgZnJlZWx5IHRyYXZlbCBhY3Jv
c3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJpZXMgYW5kIGNvbXB1dGVkIG1hcmdpbnMgYXJl
IG5vbmV4aXN0ZW50LgogICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrLT5pc0JvZHlCb3goKSB8
fCBjb250YWluaW5nQmxvY2stPmlzRG9jdW1lbnRCb3goKSkgewotICAgICAgICAgICAgYXV0byYg
Ym94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmlu
Z0Jsb2NrLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRB
bmNlc3RvclF1aXJrKTsKIAotICAgICAgICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrRGlzcGxh
eUJveCA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9jay0+
Y29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRG
aXhlZEhlaWdodEFuY2VzdG9yUXVpcmspOwotICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29u
c3RyYWludHMgPSBHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5p
bmdCbG9ja0Rpc3BsYXlCb3gpLmhvcml6b250YWw7Ci0gICAgICAgICAgICBhdXRvIHZlcnRpY2Fs
TWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFy
Z2luKCpjb250YWluaW5nQmxvY2ssIGhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAgICAgICAg
ICBhdXRvIGdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKTsKKyAgICAgICAg
ICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gZ2VvbWV0cnkuY29uc3RyYWludHNGb3JJ
bkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRp
bmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspLmhv
cml6b250YWw7CisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkuY29t
cHV0ZWRWZXJ0aWNhbE1hcmdpbigqY29udGFpbmluZ0Jsb2NrLCBob3Jpem9udGFsQ29uc3RyYWlu
dHMpOworCisgICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0
Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2Nh
cGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspOwogICAgICAgICAgICAgYXV0
byB2ZXJ0aWNhbFBhZGRpbmcgPSBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFsdWVPcigwKSAr
IGJveEdlb21ldHJ5LnBhZGRpbmdCb3R0b20oKS52YWx1ZU9yKDApOwogICAgICAgICAgICAgYXV0
byB2ZXJ0aWNhbEJvcmRlciA9IGJveEdlb21ldHJ5LmJvcmRlclRvcCgpICsgYm94R2VvbWV0cnku
Ym9yZGVyQm90dG9tKCk7CiAgICAgICAgICAgICBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdp
blBhZGRpbmdBbmRCb3JkZXIgKz0gdmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCkgKyB2
ZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApICsgdmVydGljYWxQYWRkaW5nICsgdmVydGlj
YWxCb3JkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA2Njc3YzliYTA4
ZDZmNzE5YWU1MjQ2NTgwNTI5NGVmNmNjYjNlOTE1Li40YmRkZDVhZjM1YjRjMTUyZTcwZmViODkw
ZGIzNzE1N2E2MzIzMWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTkz
LDkgKzkzLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250
ZW50KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb24KIAogICAgIGF1dG8gY29uc3RyYWlu
dHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgewogICAgICAgICBh
dXRvJiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAg
ICAgIGlmICgmY29udGFpbmluZ0Jsb2NrID09ICZmb3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAg
IHJldHVybiBjb25zdHJhaW50czsKLSAgICAgICAgcmV0dXJuIEdlb21ldHJ5Ojpjb25zdHJhaW50
c0ZvckluRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7CisgICAg
ICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZmb3JtYXR0aW5nUm9vdCA/IGNvbnN0cmFp
bnRzIDogZ2VvbWV0cnkoKS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmluZ0Js
b2NrKTsKICAgICB9OwogCiAgICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJz
YWwgbGF5b3V0LgpAQCAtMTEzLDcgKzExMSw2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAK
ICAgICAgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCwgY29udGFpbmlu
Z0Jsb2NrQ29uc3RyYWludHMuaG9yaXpvbnRhbCk7CiAgICAgICAgICAgICBjb21wdXRlU3RhdGlj
VmVydGljYWxQb3NpdGlvbihsYXlvdXRCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzLnZl
cnRpY2FsKTsKLQogICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZsb2F0aW5nQ29u
dGV4dCwgbGF5b3V0Qm94LCB7IGNvbnN0cmFpbnRzLCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50
cyB9KTsKICAgICAgICAgICAgIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0
Qm94LCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cy5ob3Jpem9udGFsKTsKIApAQCAtMTMxLDcg
KzEyOCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVu
dChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0
IHRoZSBpbmZsb3cgZGVzY2VuZGFudHMgb2YgdGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4K
LSAgICAgICAgICAgICAgICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRl
eHQoY29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKS0+bGF5b3V0SW5GbG93Q29udGVudChpbnZh
bGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChnZW9t
ZXRyeUZvckJveChjb250YWluZXJCb3gpKSk7CisgICAgICAgICAgICAgICAgICAgIExheW91dENv
bnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUo
KSktPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGdlb21ldHJ5KCkuY29u
c3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE1Miw3ICsxNDks
NyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvbgogICAgICAgICAgICAgICAgIC8vIE5vdyB0aGF0
IHdlIGNvbXB1dGVkIHRoZSByb290J3MgaGVpZ2h0LCB3ZSBjYW4gbGF5b3V0IHRoZSBvdXQtb2Yt
ZmxvdyBkZXNjZW5kYW50cy4KICAgICAgICAgICAgICAgICBpZiAoaXM8Q29udGFpbmVyQm94Pihs
YXlvdXRCb3gpICYmIGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KS5oYXNDaGlsZCgp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRvd25jYXN0PENv
bnRhaW5lckJveD4obGF5b3V0Qm94KTsKLSAgICAgICAgICAgICAgICAgICAgTGF5b3V0Q29udGV4
dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKS0+
bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0
cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChnZW9tZXRyeUZvckJveChjb250YWluZXJCb3gpKSk7
CisgICAgICAgICAgICAgICAgICAgIExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250
ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSktPmxheW91dE91dE9mRmxvd0NvbnRlbnQo
aW52YWxpZGF0aW9uU3RhdGUsIGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250
ZW50KGNvbnRhaW5lckJveCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIC8vIFJlc29sdmUgZmluYWwgcG9zaXRpb25zLgpAQCAtMjU3LDcgKzI1NCw3IEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25G
b3JCb3hBbmRBbmNlc3RvcnMoY29uc3QKICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmxheW91
dEJveDsgYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3IgPSAmYW5jZXN0
b3ItPmNvbnRhaW5pbmdCbG9jaygpKSB7CiAgICAgICAgIGF1dG8gY29uc3RyYWludHNGb3JBbmNl
c3RvciA9IFsmXSB7CiAgICAgICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBhbmNlc3Rv
ci0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdCbG9j
ayA9PSAmcm9vdCgpID8gY29uc3RyYWludHNQYWlyLmZvcm1hdHRpbmdDb250ZXh0Um9vdCA6IEdl
b21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFp
bmluZ0Jsb2NrKSk7CisgICAgICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdCbG9jayA9PSAmcm9v
dCgpID8gY29uc3RyYWludHNQYWlyLmZvcm1hdHRpbmdDb250ZXh0Um9vdCA6IGdlb21ldHJ5KCku
Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIH0o
KTsKIAogICAgICAgICBhdXRvIGNvbXB1dGVkVmVydGljYWxNYXJnaW4gPSBnZW9tZXRyeSgpLmNv
bXB1dGVkVmVydGljYWxNYXJnaW4oKmFuY2VzdG9yLCBjb25zdHJhaW50c0ZvckFuY2VzdG9yLmhv
cml6b250YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKaW5k
ZXggZGNmODcyNTJiMzFhMDgwOTEzZTA2MjVlYTcxZTJhNmQ0NGE5ZmQwMC4uZTZkYzJlZTFkZGM3
ZGQxOTk1Mjc5OTMyZWYwYzdmZGY2YjAwN2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHRRdWlya3MuY3BwCkBAIC03Myw3ICs3Myw4IEBAIExheW91dFVuaXQgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JiBs
YXlvCiAKICAgICAvLyBIZXJlIGlzIHRoZSBxdWlya3kgcGFydCBmb3IgYm9keSBib3ggd2hlbiBp
dCBzdHJldGNoZXMgYWxsIHRoZSB3YXkgdG8gdGhlIElDQiBldmVuIHdoZW4gdGhlIGRvY3VtZW50
IGJveCBkb2VzIG5vdCAoZS5nLiBvdXQtb2YtZmxvdyBwb3NpdGlvbmVkKS4KICAgICBBU1NFUlQo
bGF5b3V0Qm94LmlzQm9keUJveCgpKTsKLSAgICBhdXRvJiBpbml0aWFsQ29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRCb3guaW5p
dGlhbENvbnRhaW5pbmdCbG9jaygpLCBFc2NhcGVSZWFzb246OkJvZHlTdHJlY2hlc1RvVmlld3Bv
cnRRdWlyayk7CisgICAgYXV0byYgaW5pdGlhbENvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5p
bml0aWFsQ29udGFpbmluZ0Jsb2NrKCk7CisgICAgYXV0byYgaW5pdGlhbENvbnRhaW5pbmdCbG9j
a0dlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goaW5pdGlhbENvbnRh
aW5pbmdCbG9jaywgRXNjYXBlUmVhc29uOjpCb2R5U3RyZWNoZXNUb1ZpZXdwb3J0UXVpcmspOwog
ICAgIC8vIFN0YXJ0IHRoZSBjb250ZW50IGhlaWdodCB3aXRoIHRoZSBJQ0IuCiAgICAgYXV0byBi
b2R5Qm94Q29udGVudEhlaWdodCA9IGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250
ZW50Qm94SGVpZ2h0KCk7CiAgICAgLy8gQm9keSBib3gncyBvd24gYm9yZGVyIGFuZCBwYWRkaW5n
IHNocmluayB0aGUgY29udGVudCBoZWlnaHQuCkBAIC05MSw3ICs5Miw4IEBAIExheW91dFVuaXQg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29u
c3QgQm94JiBsYXlvCiAgICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gZG9jdW1lbnRCb3hHZW9t
ZXRyeS52ZXJ0aWNhbEJvcmRlcigpICsgZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbFBhZGRp
bmcoKS52YWx1ZU9yKDApOwogICAgIC8vIEhvd2V2ZXIgdGhlIG5vbi1pbi1mbG93IGRvY3VtZW50
IGJveCdzIHZlcnRpY2FsIG1hcmdpbnMgYXJlIGlnbm9yZWQuIFRoZXkgZG9uJ3QgYWZmZWN0IHRo
ZSBib2R5IGJveCdzIGNvbnRlbnQgaGVpZ2h0LgogICAgIGlmIChkb2N1bWVudEJveC5pc0luRmxv
dygpKSB7Ci0gICAgICAgIGF1dG8gcHJlY29tcHV0ZURvY3VtZW50Qm94VmVydGljYWxNYXJnaW4g
PSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4oZG9j
dW1lbnRCb3gsIEdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoaW5pdGlhbENv
bnRhaW5pbmdCbG9ja0dlb21ldHJ5KS5ob3Jpem9udGFsKTsKKyAgICAgICAgYXV0byBnZW9tZXRy
eSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5KCk7CisgICAgICAgIGF1dG8gcHJlY29tcHV0
ZURvY3VtZW50Qm94VmVydGljYWxNYXJnaW4gPSBnZW9tZXRyeS5jb21wdXRlZFZlcnRpY2FsTWFy
Z2luKGRvY3VtZW50Qm94LCBnZW9tZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoaW5p
dGlhbENvbnRhaW5pbmdCbG9jaywgRXNjYXBlUmVhc29uOjpCb2R5U3RyZWNoZXNUb1ZpZXdwb3J0
UXVpcmspLmhvcml6b250YWwpOwogICAgICAgICBib2R5Qm94Q29udGVudEhlaWdodCAtPSBwcmVj
b21wdXRlRG9jdW1lbnRCb3hWZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSArIHByZWNv
bXB1dGVEb2N1bWVudEJveFZlcnRpY2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCk7CiAgICAgfQog
ICAgIHJldHVybiBzdGQ6Om1heChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWlnaHQs
ICBib2R5Qm94Q29udGVudEhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJn
aW5Db2xsYXBzZS5jcHAKaW5kZXggNGM3ODg3ZTA5M2E2YTU1MTc3ZmJhMzJlYTg0ODliY2FiODRl
NTEwZS4uYTU4YzVmNmQ0NDQ2MmNjM2YwMmNkN2UzMzExYWI4YWRiMTI4ZDJiOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2Nr
TWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtNDQsOCArNDQsOSBA
QCBQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZQogICAgIGlmIChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5o
YXNQb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4obGF5b3V0Qm94KSkKICAgICAgICAg
cmV0dXJuIGJsb2NrRm9ybWF0dGluZ1N0YXRlLnBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1h
cmdpbihsYXlvdXRCb3gpLmJlZm9yZTsKIAotICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRz
ID0gR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChmb3JtYXR0aW5nQ29udGV4
dCgpLmdlb21ldHJ5Rm9yQm94KGxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkpLmhvcml6b250
YWw7Ci0gICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQo
KS5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFs
Q29uc3RyYWludHMpOworICAgIGF1dG8gZ2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdl
b21ldHJ5KCk7CisgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBnZW9tZXRyeS5jb25z
dHJhaW50c0ZvckluRmxvd0NvbnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5ob3Jp
em9udGFsOworICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5LmNvbXB1
dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAg
IGF1dG8gbm9uQ29sbGFwc2VkTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBz
ZWRWYWx1ZXMgeyBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApLCBjb21w
dXRlZFZlcnRpY2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCkgfTsKICAgICByZXR1cm4gcHJlY29t
cHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9uQ29sbGFwc2Vk
TWFyZ2luKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBmYTVk
MjRhNzg4NzRiMDIxYzczNGY2MmUxNTZiOTgwNTQyZTY5ODM0Li5hNmFiOGQxODM4NWMxMGE4YmFk
MWRjYWQ5OGIwMWQ3YTQyNjE2MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC05MiwyMCArOTIsMTYgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5
b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW8KICAgICAgICAg
ICAgIC8vIElubGluZS1ibG9ja3MsIGlubGluZS10YWJsZXMgYW5kIHJlcGxhY2VkIGVsZW1lbnRz
IChpbWcsIHZpZGVvKSBjYW4gYmUgc2l6ZWQgYnV0IG5vdCB5ZXQgcG9zaXRpb25lZC4KICAgICAg
ICAgICAgIGlmIChpczxDb250YWluZXJCb3g+KGxheW91dEJveCkgJiYgbGF5b3V0Qm94LT5lc3Rh
Ymxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobGF5
b3V0Qm94LT5pc0lubGluZUJsb2NrQm94KCkgfHwgbGF5b3V0Qm94LT5pc0lubGluZVRhYmxlQm94
KCkgfHwgbGF5b3V0Qm94LT5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKLSAgICAgICAgICAgICAg
ICBhdXRvJiBjb250YWluZXJCb3ggPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpsYXlvdXRCb3gp
OwotICAgICAgICAgICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnRhaW5lckJveCwg
Y29uc3RyYWludHMuaG9yaXpvbnRhbCk7Ci0gICAgICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5k
TWFyZ2luKGNvbnRhaW5lckJveCwgY29uc3RyYWludHMuaG9yaXpvbnRhbCk7Ci0KLSAgICAgICAg
ICAgICAgICBhdXRvJiBmb3JtYXR0aW5nUm9vdERpc3BsYXlCb3ggPSBnZW9tZXRyeUZvckJveChj
b250YWluZXJCb3gpOwotICAgICAgICAgICAgICAgIGlmIChjb250YWluZXJCb3guaGFzSW5GbG93
T3JGbG9hdGluZ0NoaWxkKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5n
Q29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5l
ckJveCwgbGF5b3V0U3RhdGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250
ZXh0LT5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6Y29u
c3RyYWludHNGb3JJbkZsb3dDb250ZW50KGZvcm1hdHRpbmdSb290RGlzcGxheUJveCkpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNv
bnRhaW5lckJveCwgY29uc3RyYWludHMuaG9yaXpvbnRhbCk7Ci0gICAgICAgICAgICAgICAgaWYg
KGNvbnRhaW5lckJveC5oYXNDaGlsZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gZm9y
bWF0dGluZ0NvbnRleHQgPSBMYXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChj
b250YWluZXJCb3gsIGxheW91dFN0YXRlKCkpOwotICAgICAgICAgICAgICAgICAgICBmb3JtYXR0
aW5nQ29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2Vv
bWV0cnk6OmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudChmb3JtYXR0aW5nUm9vdERpc3Bs
YXlCb3gpKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0
dGluZ1Jvb3QgPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpsYXlvdXRCb3gpOworICAgICAgICAg
ICAgICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGZvcm1hdHRpbmdSb290LCBjb25zdHJhaW50
cy5ob3Jpem9udGFsKTsKKyAgICAgICAgICAgICAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4oZm9y
bWF0dGluZ1Jvb3QsIGNvbnN0cmFpbnRzLmhvcml6b250YWwpOworCisgICAgICAgICAgICAgICAg
YXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdD
b250ZXh0KGZvcm1hdHRpbmdSb290LCBsYXlvdXRTdGF0ZSgpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoZm9ybWF0dGluZ1Jvb3QuaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpCisgICAgICAgICAg
ICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRh
dGlvblN0YXRlLCBnZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChmb3JtYXR0
aW5nUm9vdCkpOworICAgICAgICAgICAgICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oZm9ybWF0
dGluZ1Jvb3QsIGNvbnN0cmFpbnRzLmhvcml6b250YWwpOworICAgICAgICAgICAgICAgIGlmIChm
b3JtYXR0aW5nUm9vdC5oYXNDaGlsZCgpKQorICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5n
Q29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgZ2VvbWV0
cnkoKS5jb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ1Jvb3QpKTsKICAg
ICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZWQgYW5kIG90aGVy
IHR5cGUgb2YgbGVhZiBhdG9taWMgaW5saW5lIGJveGVzLgogICAgICAgICAgICAgICAgIGNvbXB1
dGVCb3JkZXJBbmRQYWRkaW5nKCpsYXlvdXRCb3gsIGNvbnN0cmFpbnRzLmhvcml6b250YWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZv
cm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRp
bmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggOTg4ZjVlZDY0NmU2YzQzNzdmNzg5
NzNkZTczY2Q3NDI5ZTYwZWJkNS4uZjI0OTM0ODc2OTkyMjg5OTZlNjEyYzczMTdiOGIwMzVhNjUw
OWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFi
bGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNzcsNyArMTc3LDcg
QEAgdm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRDZWxsKGNvbnN0IFRhYmxlR3Jp
ZDo6Q2VsbCYgY2VsbCwgTGF5b3V0VW5pdAogCiAgICAgaWYgKGNlbGxCb3guaGFzSW5GbG93T3JG
bG9hdGluZ0NoaWxkKCkpIHsKICAgICAgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0ZSA9IEludmFs
aWRhdGlvblN0YXRlIHsgfTsKLSAgICAgICAgYXV0byBjb25zdHJhaW50c0ZvckNlbGxDb250ZW50
ID0gR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjZWxsRGlzcGxheUJveCk7
CisgICAgICAgIGF1dG8gY29uc3RyYWludHNGb3JDZWxsQ29udGVudCA9IGdlb21ldHJ5KCkuY29u
c3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNlbGxCb3gpOwogICAgICAgICBjb25zdHJhaW50c0Zv
ckNlbGxDb250ZW50LnZlcnRpY2FsLmxvZ2ljYWxIZWlnaHQgPSB1c2VkQ2VsbEhlaWdodDsKICAg
ICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY2VsbEJveCwgbGF5
b3V0U3RhdGUoKSktPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGNvbnN0
cmFpbnRzRm9yQ2VsbENvbnRlbnQpOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397962</attachid>
            <date>2020-04-29 08:25:59 -0700</date>
            <delta_ts>2020-04-29 09:06:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211161-20200429082559.patch</filename>
            <type>text/plain</type>
            <size>21685</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwM2M1NTNkODYzMGQ4
NTNmMDE4NGE2MjQ2MGQwYmQ4NTQ5MjgyNy4uNzM2M2ZjNWEyNWRjYWI0MjRlNjIwODI1MjhiZmZm
ZDkyYjc1NzA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIwLTA0LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbnN0cmFpbnRzRm9ySW5GbG93L091dE9mRmxvd0NvbnRlbnQgc2hvdWxkIHRha2Ug
Y29uc3QgQ29udGFpbmVyQm94JgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExMTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTGVhZiBib3hlcyBzaG91bGQgbm90IG5lZWQgdG8gY29tcHV0ZSBjb25zdHJh
aW50cyAoYXMgYnkgZGVmaW5pdGlvbiB0aGV5IGRvbid0IGhhdmUgaW4vb3V0LW9mLWZsb3cgZGVz
Y2VuZGFudHMpLgorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dE91dE9mRmxv
d0NvbnRlbnQpOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAg
ICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91
dE9mRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCk6CisgICAgICAgICog
bGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250
YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwcmVjb21wdXRlVmVy
dGljYWxQb3NpdGlvbkZvckJveEFuZEFuY2VzdG9ycyk6CisgICAgICAgICogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJ
bkZsb3dIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0
ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVO
ZWdhdGl2ZVZhbHVlcyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudCk6CisgICAgICAgICog
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Q2VsbCk6
CisKIDIwMjAtMDQtMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXSBJbnRyb2R1Y2UgRm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9yT3V0T2ZG
bG93Q29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAK
aW5kZXggMTFkOGYwZWUwYjRiOTI5YzE2MGViOWYxMzc0MGQxZjk5NjljZDMwMS4uZmU2NDk2YjNk
ZTEyYWI0NTI2YTY4MzI3MDg2OGUwZTU1YTQxZDkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBGb3JtYXR0
aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52
YWxpZGF0aW9uU3QKIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBbJl0gKGNv
bnN0IGF1dG8mIG91dE9mRmxvd0JveCkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sg
PSBvdXRPZkZsb3dCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAgIHJldHVybiAmY29udGFp
bmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6IEdlb21ldHJ5Ojpjb25zdHJhaW50
c0Zvck91dE9mRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7Cisg
ICAgICAgIHJldHVybiAmY29udGFpbmluZ0Jsb2NrID09ICZyb290KCkgPyBjb25zdHJhaW50cyA6
IGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9j
ayk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgb3V0T2ZGbG93Qm94IDogZm9ybWF0dGluZ1N0
YXRlKCkub3V0T2ZGbG93Qm94ZXMoKSkgewpAQCAtMTU0LDE5ICsxNTQsMTQgQEAgdm9pZCBGb3Jt
YXR0aW5nQ29udGV4dDo6bGF5b3V0T3V0T2ZGbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0ZSYg
aW52YWxpZGF0aW9uU3QKICAgICAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoKm91dE9mRmxv
d0JveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzRm9yQm9yZGVyQW5kUGFkZGluZyk7CiAKICAgICAg
ICAgY29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeSgqb3V0T2ZGbG93Qm94LCBjb250
YWluaW5nQmxvY2tDb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChpczxDb250YWluZXJCb3g+KCpv
dXRPZkZsb3dCb3gpKSB7CisgICAgICAgIGF1dG8gb3V0T2ZGbG93Qm94SGFzQ29udGVudCA9IGlz
PENvbnRhaW5lckJveD4oKm91dE9mRmxvd0JveCkgJiYgZG93bmNhc3Q8Q29udGFpbmVyQm94Pigq
b3V0T2ZGbG93Qm94KS5oYXNDaGlsZCgpOworICAgICAgICBpZiAob3V0T2ZGbG93Qm94SGFzQ29u
dGVudCkgewogICAgICAgICAgICAgYXV0byYgY29udGFpbmVyQm94ID0gZG93bmNhc3Q8Q29udGFp
bmVyQm94Pigqb3V0T2ZGbG93Qm94KTsKLSAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lckRpc3Bs
YXlCb3ggPSBnZW9tZXRyeUZvckJveChjb250YWluZXJCb3gpOwotCi0gICAgICAgICAgICBpZiAo
Y29udGFpbmVyQm94Lmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKSB7Ci0gICAgICAgICAgICAg
ICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRp
bmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSk7Ci0gICAgICAgICAgICAgICAg
Zm9ybWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUs
IEdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmVyRGlzcGxheUJv
eCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9
IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5
b3V0U3RhdGUoKSk7CisgICAgICAgICAgICBpZiAoY29udGFpbmVyQm94Lmhhc0luRmxvd09yRmxv
YXRpbmdDaGlsZCgpKQorICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJ
bkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBnZW9tZXRyeSgpLmNvbnN0cmFpbnRzRm9y
SW5GbG93Q29udGVudChjb250YWluZXJCb3gpKTsKICAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZs
b3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnRhaW5lckJveCwgY29udGFpbmluZ0Jsb2NrQ29uc3RyYWlu
dHMpOwotICAgICAgICAgICAgaWYgKGNvbnRhaW5lckJveC5oYXNDaGlsZCgpKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZv
cm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSk7Ci0gICAgICAgICAg
ICAgICAgZm9ybWF0dGluZ0NvbnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0
aW9uU3RhdGUsIEdlb21ldHJ5Ojpjb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29udGFp
bmVyRGlzcGxheUJveCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9ybWF0dGluZ0Nv
bnRleHQtPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGdlb21ldHJ5
KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkpOwogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIGNvbXB1dGVPdXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KCpv
dXRPZkZsb3dCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGM4MTgwNzljN2MyOTdmMjI2
NWEwMmY2NGU4OGZlMDQ4M2JkZGZmNzcuLjU4OTc1Y2U4YTU1NmVjMjc2ZGRkZjc2ZGFhYmU3Zjc4
ZWQ3NGY5N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBA
IC0xNTcsOCArMTU3LDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIExheW91dFVuaXQgY29udGVu
dEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjb25zdCBCb3gmKSBjb25zdDsKIAotICAg
ICAgICBzdGF0aWMgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IGNvbnN0cmFpbnRzRm9y
T3V0T2ZGbG93Q29udGVudChjb25zdCBEaXNwbGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5KTsKLSAgICAgICAgc3RhdGljIENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdHJh
aW50c0ZvckluRmxvd0NvbnRlbnQoY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5nQmxvY2tH
ZW9tZXRyeSk7CisgICAgICAgIENvbnN0cmFpbnRzRm9yT3V0T2ZGbG93Q29udGVudCBjb25zdHJh
aW50c0Zvck91dE9mRmxvd0NvbnRlbnQoY29uc3QgQ29udGFpbmVyQm94Jik7CisgICAgICAgIENv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29u
c3QgQ29udGFpbmVyQm94JiwgT3B0aW9uYWw8RXNjYXBlUmVhc29uPiA9IFdURjo6bnVsbG9wdCk7
CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBGb3JtYXR0aW5nQ29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdl
b21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21l
dHJ5LmNwcAppbmRleCBjZTFkNTc1MTM3OWU0MGU3MjlkNjM1YzE3ZWIyZmQ5OTFiZDEzYzA2Li4y
NDY0YjEzNWM0YjY5NGFjY2IwMmY0NjViZTJkZDk1OGM4YTBiZDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xMDk4
LDE3ICsxMDk4LDE5IEBAIEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFp
bnRzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyCiAgICAgcmV0dXJuIGludHJp
bnNpY1dpZHRoOwogfQogCi1Gb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZs
b3dDb250ZW50IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRP
ZkZsb3dDb250ZW50KGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkp
CitGb3JtYXR0aW5nQ29udGV4dDo6Q29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNv
bnN0IENvbnRhaW5lckJveCYgY29udGFpbmVyQm94KQogeworICAgIGF1dG8mIGJveEdlb21ldHJ5
ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChjb250YWluZXJCb3gpOwogICAg
IHJldHVybiB7Ci0gICAgICAgIHsgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveExl
ZnQoKSwgY29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveFdpZHRoKCkgfSwKLSAgICAg
ICAgeyBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5wYWRkaW5nQm94VG9wKCksIGNvbnRhaW5pbmdC
bG9ja0dlb21ldHJ5LnBhZGRpbmdCb3hIZWlnaHQoKSB9LAotICAgICAgICBjb250YWluaW5nQmxv
Y2tHZW9tZXRyeS5jb250ZW50Qm94V2lkdGgoKSB9OworICAgICAgICB7IGJveEdlb21ldHJ5LnBh
ZGRpbmdCb3hMZWZ0KCksIGJveEdlb21ldHJ5LnBhZGRpbmdCb3hXaWR0aCgpIH0sCisgICAgICAg
IHsgYm94R2VvbWV0cnkucGFkZGluZ0JveFRvcCgpLCBib3hHZW9tZXRyeS5wYWRkaW5nQm94SGVp
Z2h0KCkgfSwKKyAgICAgICAgYm94R2VvbWV0cnkuY29udGVudEJveFdpZHRoKCkgfTsKIH0KIAot
Rm9ybWF0dGluZ0NvbnRleHQ6OkNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb25zdCBEaXNw
bGF5OjpCb3gmIGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5KQorRm9ybWF0dGluZ0NvbnRleHQ6OkNv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb25zdCBDb250YWluZXJCb3gmIGNvbnRhaW5lckJv
eCwgT3B0aW9uYWw8RXNjYXBlUmVhc29uPiBlc2NhcGVSZWFzb24pCiB7Ci0gICAgcmV0dXJuIHsg
eyBjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94TGVmdCgpLCBjb250YWluaW5nQmxv
Y2tHZW9tZXRyeS5jb250ZW50Qm94V2lkdGgoKSB9LCB7IGNvbnRhaW5pbmdCbG9ja0dlb21ldHJ5
LmNvbnRlbnRCb3hUb3AoKSwgeyB9IH0gfTsKKyAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goY29udGFpbmVyQm94LCBlc2NhcGVSZWFzb24p
OworICAgIHJldHVybiB7IHsgYm94R2VvbWV0cnkuY29udGVudEJveExlZnQoKSwgYm94R2VvbWV0
cnkuY29udGVudEJveFdpZHRoKCkgfSwgeyBib3hHZW9tZXRyeS5jb250ZW50Qm94VG9wKCksIHsg
fSB9IH07CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHRRdWlya3MuY3BwCmluZGV4IDhlYmFlMjllZDhmMjhkOGUyZTkzMDY3ZGQzNGNjZjY2MWJh
ZmY5M2IuLjE0NjM3NWE4YzlhZTQ0MmMzNTkyZGVjMzNlMjA0ODViZmIxOGViNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcApAQCAt
NTAsMTEgKzUwLDEyIEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVp
Z2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4CiAgICAgICAgIC8vIElmIHRo
ZSBvbmx5IGZpeGVkIHZhbHVlIGJveCB3ZSBmaW5kIGlzIHRoZSBJQ0IsIHRoZW4gaWdub3JlIHRo
ZSBib2R5IGFuZCB0aGUgZG9jdW1lbnQgKHZlcnRpY2FsKSBtYXJnaW4sIHBhZGRpbmcgYW5kIGJv
cmRlci4gU28gbXVjaCBxdWlya2luZXNzLgogICAgICAgICAvLyAtYW5kIGl0J3MgdG90YWxseSBp
bnNhbmUgYmVjYXVzZSBub3cgd2UgZnJlZWx5IHRyYXZlbCBhY3Jvc3MgZm9ybWF0dGluZyBjb250
ZXh0IGJvdW5kYXJpZXMgYW5kIGNvbXB1dGVkIG1hcmdpbnMgYXJlIG5vbmV4aXN0ZW50LgogICAg
ICAgICBpZiAoY29udGFpbmluZ0Jsb2NrLT5pc0JvZHlCb3goKSB8fCBjb250YWluaW5nQmxvY2st
PmlzRG9jdW1lbnRCb3goKSkgewotICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3Jt
YXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5n
Q29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3RvclF1aXJrKTsKIAot
ICAgICAgICAgICAgYXV0byYgY29udGFpbmluZ0Jsb2NrRGlzcGxheUJveCA9IGZvcm1hdHRpbmdD
b250ZXh0Lmdlb21ldHJ5Rm9yQm94KGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCks
IEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9y
UXVpcmspOwotICAgICAgICAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBHZW9tZXRy
eTo6Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3gp
Lmhvcml6b250YWw7Ci0gICAgICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGlu
Z0NvbnRleHQuZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKCpjb250YWluaW5nQmxv
Y2ssIGhvcml6b250YWxDb25zdHJhaW50cyk7CisgICAgICAgICAgICBhdXRvIGdlb21ldHJ5ID0g
Zm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKTsKKyAgICAgICAgICAgIGF1dG8gaG9yaXpvbnRh
bENvbnN0cmFpbnRzID0gZ2VvbWV0cnkuY29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRh
aW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVS
ZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspLmhvcml6b250YWw7CisgICAgICAg
ICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkuY29tcHV0ZWRWZXJ0aWNhbE1hcmdp
bigqY29udGFpbmluZ0Jsb2NrLCBob3Jpem9udGFsQ29uc3RyYWludHMpOworCisgICAgICAgICAg
ICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpj
b250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhl
ZEhlaWdodEFuY2VzdG9yUXVpcmspOwogICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbFBhZGRpbmcg
PSBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFsdWVPcigwKSArIGJveEdlb21ldHJ5LnBhZGRp
bmdCb3R0b20oKS52YWx1ZU9yKDApOwogICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbEJvcmRlciA9
IGJveEdlb21ldHJ5LmJvcmRlclRvcCgpICsgYm94R2VvbWV0cnkuYm9yZGVyQm90dG9tKCk7CiAg
ICAgICAgICAgICBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpblBhZGRpbmdBbmRCb3JkZXIg
Kz0gdmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCkgKyB2ZXJ0aWNhbE1hcmdpbi5hZnRl
ci52YWx1ZU9yKDApICsgdmVydGljYWxQYWRkaW5nICsgdmVydGljYWxCb3JkZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA2Njc3YzliYTA4ZDZmNzE5YWU1MjQ2NTgwNTI5
NGVmNmNjYjNlOTE1Li40YmRkZDVhZjM1YjRjMTUyZTcwZmViODkwZGIzNzE1N2E2MzIzMWM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTkzLDkgKzkzLDcgQEAgdm9pZCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KEludmFsaWRhdGlvblN0
YXRlJiBpbnZhbGlkYXRpb24KIAogICAgIGF1dG8gY29uc3RyYWludHNGb3JMYXlvdXRCb3ggPSBb
Jl0gKGNvbnN0IGF1dG8mIGxheW91dEJveCkgewogICAgICAgICBhdXRvJiBjb250YWluaW5nQmxv
Y2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgICAgIGlmICgmY29udGFpbmlu
Z0Jsb2NrID09ICZmb3JtYXR0aW5nUm9vdCkKLSAgICAgICAgICAgIHJldHVybiBjb25zdHJhaW50
czsKLSAgICAgICAgcmV0dXJuIEdlb21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQo
Z2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7CisgICAgICAgIHJldHVybiAmY29udGFp
bmluZ0Jsb2NrID09ICZmb3JtYXR0aW5nUm9vdCA/IGNvbnN0cmFpbnRzIDogZ2VvbWV0cnkoKS5j
b25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY29udGFpbmluZ0Jsb2NrKTsKICAgICB9OwogCiAg
ICAgLy8gVGhpcyBpcyBhIHBvc3Qtb3JkZXIgdHJlZSB0cmF2ZXJzYWwgbGF5b3V0LgpAQCAtMTEz
LDcgKzExMSw2IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29u
dGVudChJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uCiAKICAgICAgICAgICAgIGNvbXB1
dGVCb3JkZXJBbmRQYWRkaW5nKGxheW91dEJveCwgY29udGFpbmluZ0Jsb2NrQ29uc3RyYWludHMu
aG9yaXpvbnRhbCk7CiAgICAgICAgICAgICBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihs
YXlvdXRCb3gsIGNvbnRhaW5pbmdCbG9ja0NvbnN0cmFpbnRzLnZlcnRpY2FsKTsKLQogICAgICAg
ICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGZsb2F0aW5nQ29udGV4dCwgbGF5b3V0Qm94LCB7
IGNvbnN0cmFpbnRzLCBjb250YWluaW5nQmxvY2tDb25zdHJhaW50cyB9KTsKICAgICAgICAgICAg
IGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24obGF5b3V0Qm94LCBjb250YWluaW5nQmxv
Y2tDb25zdHJhaW50cy5ob3Jpem9udGFsKTsKIApAQCAtMTMxLDcgKzEyOCw3IEBAIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJbnZhbGlkYXRpb25TdGF0
ZSYgaW52YWxpZGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgLy8gTGF5b3V0IHRoZSBpbmZsb3cgZGVzY2Vu
ZGFudHMgb2YgdGhpcyBmb3JtYXR0aW5nIGNvbnRleHQgcm9vdC4KLSAgICAgICAgICAgICAgICAg
ICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29udGFpbmVyQm94LCBs
YXlvdXRTdGF0ZSgpKS0+bGF5b3V0SW5GbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2Vv
bWV0cnk6OmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChnZW9tZXRyeUZvckJveChjb250YWlu
ZXJCb3gpKSk7CisgICAgICAgICAgICAgICAgICAgIExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1h
dHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUoKSktPmxheW91dEluRmxvd0Nv
bnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JJbkZsb3dD
b250ZW50KGNvbnRhaW5lckJveCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE1Miw3ICsxNDksNyBAQCB2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmIGlu
dmFsaWRhdGlvbgogICAgICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGNvbXB1dGVkIHRoZSBy
b290J3MgaGVpZ2h0LCB3ZSBjYW4gbGF5b3V0IHRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cy4K
ICAgICAgICAgICAgICAgICBpZiAoaXM8Q29udGFpbmVyQm94PihsYXlvdXRCb3gpICYmIGRvd25j
YXN0PENvbnRhaW5lckJveD4obGF5b3V0Qm94KS5oYXNDaGlsZCgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGF1dG8mIGNvbnRhaW5lckJveCA9IGRvd25jYXN0PENvbnRhaW5lckJveD4obGF5b3V0
Qm94KTsKLSAgICAgICAgICAgICAgICAgICAgTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGlu
Z0NvbnRleHQoY29udGFpbmVyQm94LCBsYXlvdXRTdGF0ZSgpKS0+bGF5b3V0T3V0T2ZGbG93Q29u
dGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRzRm9yT3V0T2ZGbG93
Q29udGVudChnZW9tZXRyeUZvckJveChjb250YWluZXJCb3gpKSk7CisgICAgICAgICAgICAgICAg
ICAgIExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwg
bGF5b3V0U3RhdGUoKSktPmxheW91dE91dE9mRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUs
IGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50KGNvbnRhaW5lckJveCkp
OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIC8vIFJlc29s
dmUgZmluYWwgcG9zaXRpb25zLgpAQCAtMjU3LDcgKzI1NCw3IEBAIHZvaWQgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6cHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JCb3hBbmRBbmNlc3RvcnMo
Y29uc3QKICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gJmxheW91dEJveDsgYW5jZXN0b3IgJiYg
YW5jZXN0b3IgIT0gJnJvb3QoKTsgYW5jZXN0b3IgPSAmYW5jZXN0b3ItPmNvbnRhaW5pbmdCbG9j
aygpKSB7CiAgICAgICAgIGF1dG8gY29uc3RyYWludHNGb3JBbmNlc3RvciA9IFsmXSB7CiAgICAg
ICAgICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSBhbmNlc3Rvci0+Y29udGFpbmluZ0Jsb2Nr
KCk7Ci0gICAgICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpID8gY29u
c3RyYWludHNQYWlyLmZvcm1hdHRpbmdDb250ZXh0Um9vdCA6IEdlb21ldHJ5Ojpjb25zdHJhaW50
c0ZvckluRmxvd0NvbnRlbnQoZ2VvbWV0cnlGb3JCb3goY29udGFpbmluZ0Jsb2NrKSk7CisgICAg
ICAgICAgICByZXR1cm4gJmNvbnRhaW5pbmdCbG9jayA9PSAmcm9vdCgpID8gY29uc3RyYWludHNQ
YWlyLmZvcm1hdHRpbmdDb250ZXh0Um9vdCA6IGdlb21ldHJ5KCkuY29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50KGNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBhdXRv
IGNvbXB1dGVkVmVydGljYWxNYXJnaW4gPSBnZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJn
aW4oKmFuY2VzdG9yLCBjb25zdHJhaW50c0ZvckFuY2VzdG9yLmhvcml6b250YWwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKaW5kZXggZGNmODcyNTJiMzFhMDgw
OTEzZTA2MjVlYTcxZTJhNmQ0NGE5ZmQwMC4uZTZkYzJlZTFkZGM3ZGQxOTk1Mjc5OTMyZWYwYzdm
ZGY2YjAwN2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CkBAIC03Myw3ICs3Myw4IEBAIExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVp
cmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JiBsYXlvCiAKICAgICAvLyBIZXJl
IGlzIHRoZSBxdWlya3kgcGFydCBmb3IgYm9keSBib3ggd2hlbiBpdCBzdHJldGNoZXMgYWxsIHRo
ZSB3YXkgdG8gdGhlIElDQiBldmVuIHdoZW4gdGhlIGRvY3VtZW50IGJveCBkb2VzIG5vdCAoZS5n
LiBvdXQtb2YtZmxvdyBwb3NpdGlvbmVkKS4KICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQm9keUJv
eCgpKTsKLSAgICBhdXRvJiBpbml0aWFsQ29udGFpbmluZ0Jsb2NrR2VvbWV0cnkgPSBmb3JtYXR0
aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRCb3guaW5pdGlhbENvbnRhaW5pbmdCbG9j
aygpLCBFc2NhcGVSZWFzb246OkJvZHlTdHJlY2hlc1RvVmlld3BvcnRRdWlyayk7CisgICAgYXV0
byYgaW5pdGlhbENvbnRhaW5pbmdCbG9jayA9IGxheW91dEJveC5pbml0aWFsQ29udGFpbmluZ0Js
b2NrKCk7CisgICAgYXV0byYgaW5pdGlhbENvbnRhaW5pbmdCbG9ja0dlb21ldHJ5ID0gZm9ybWF0
dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jaywgRXNjYXBl
UmVhc29uOjpCb2R5U3RyZWNoZXNUb1ZpZXdwb3J0UXVpcmspOwogICAgIC8vIFN0YXJ0IHRoZSBj
b250ZW50IGhlaWdodCB3aXRoIHRoZSBJQ0IuCiAgICAgYXV0byBib2R5Qm94Q29udGVudEhlaWdo
dCA9IGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94SGVpZ2h0KCk7CiAg
ICAgLy8gQm9keSBib3gncyBvd24gYm9yZGVyIGFuZCBwYWRkaW5nIHNocmluayB0aGUgY29udGVu
dCBoZWlnaHQuCkBAIC05MSw3ICs5Miw4IEBAIExheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JiBsYXlvCiAgICAg
Ym9keUJveENvbnRlbnRIZWlnaHQgLT0gZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbEJvcmRl
cigpICsgZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0aWNhbFBhZGRpbmcoKS52YWx1ZU9yKDApOwog
ICAgIC8vIEhvd2V2ZXIgdGhlIG5vbi1pbi1mbG93IGRvY3VtZW50IGJveCdzIHZlcnRpY2FsIG1h
cmdpbnMgYXJlIGlnbm9yZWQuIFRoZXkgZG9uJ3QgYWZmZWN0IHRoZSBib2R5IGJveCdzIGNvbnRl
bnQgaGVpZ2h0LgogICAgIGlmIChkb2N1bWVudEJveC5pc0luRmxvdygpKSB7Ci0gICAgICAgIGF1
dG8gcHJlY29tcHV0ZURvY3VtZW50Qm94VmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4
dC5nZW9tZXRyeSgpLmNvbXB1dGVkVmVydGljYWxNYXJnaW4oZG9jdW1lbnRCb3gsIEdlb21ldHJ5
Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoaW5pdGlhbENvbnRhaW5pbmdCbG9ja0dlb21l
dHJ5KS5ob3Jpem9udGFsKTsKKyAgICAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5KCk7CisgICAgICAgIGF1dG8gcHJlY29tcHV0ZURvY3VtZW50Qm94VmVydGlj
YWxNYXJnaW4gPSBnZW9tZXRyeS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGRvY3VtZW50Qm94LCBn
ZW9tZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoaW5pdGlhbENvbnRhaW5pbmdCbG9j
aywgRXNjYXBlUmVhc29uOjpCb2R5U3RyZWNoZXNUb1ZpZXdwb3J0UXVpcmspLmhvcml6b250YWwp
OwogICAgICAgICBib2R5Qm94Q29udGVudEhlaWdodCAtPSBwcmVjb21wdXRlRG9jdW1lbnRCb3hW
ZXJ0aWNhbE1hcmdpbi5iZWZvcmUudmFsdWVPcigwKSArIHByZWNvbXB1dGVEb2N1bWVudEJveFZl
cnRpY2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCk7CiAgICAgfQogICAgIHJldHVybiBzdGQ6Om1h
eChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWlnaHQsICBib2R5Qm94Q29udGVudEhl
aWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5k
ZXggNGM3ODg3ZTA5M2E2YTU1MTc3ZmJhMzJlYTg0ODliY2FiODRlNTEwZS4uYTU4YzVmNmQ0NDQ2
MmNjM2YwMmNkN2UzMzExYWI4YWRiMTI4ZDJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0ZWRC
bG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtNDQsOCArNDQsOSBAQCBQb3NpdGl2ZUFuZE5lZ2F0
aXZlVmVydGljYWxNYXJnaW46OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZQogICAgIGlmIChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5oYXNQb3NpdGl2ZUFuZE5lZ2F0
aXZlVmVydGljYWxNYXJnaW4obGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuIGJsb2NrRm9ybWF0
dGluZ1N0YXRlLnBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gpLmJl
Zm9yZTsKIAotICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gR2VvbWV0cnk6OmNvbnN0
cmFpbnRzRm9ySW5GbG93Q29udGVudChmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94
KGxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkpLmhvcml6b250YWw7Ci0gICAgYXV0byBjb21w
dXRlZFZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgpLmNvbXB1
dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOworICAg
IGF1dG8gZ2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCk7CisgICAgYXV0
byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBnZW9tZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0Nv
bnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5ob3Jpem9udGFsOworICAgIGF1dG8g
Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5LmNvbXB1dGVkVmVydGljYWxNYXJnaW4o
bGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwogICAgIGF1dG8gbm9uQ29sbGFwc2Vk
TWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgeyBjb21wdXRl
ZFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApLCBjb21wdXRlZFZlcnRpY2FsTWFyZ2lu
LmFmdGVyLnZhbHVlT3IoMCkgfTsKICAgICByZXR1cm4gcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0
aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9uQ29sbGFwc2VkTWFyZ2luKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBmYTVkMjRhNzg4NzRiMDIxYzczNGY2
MmUxNTZiOTgwNTQyZTY5ODM0Li5iODFhMTM3ZmFkOTIxNGM5MjcxNjU2NmY2OGJjNGViYTEwMTI3
YTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC05MiwyMCArOTIs
MTggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0SW5GbG93Q29udGVudChJ
bnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW8KICAgICAgICAgICAgIC8vIElubGluZS1ibG9j
a3MsIGlubGluZS10YWJsZXMgYW5kIHJlcGxhY2VkIGVsZW1lbnRzIChpbWcsIHZpZGVvKSBjYW4g
YmUgc2l6ZWQgYnV0IG5vdCB5ZXQgcG9zaXRpb25lZC4KICAgICAgICAgICAgIGlmIChpczxDb250
YWluZXJCb3g+KGxheW91dEJveCkgJiYgbGF5b3V0Qm94LT5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobGF5b3V0Qm94LT5pc0lubGluZUJs
b2NrQm94KCkgfHwgbGF5b3V0Qm94LT5pc0lubGluZVRhYmxlQm94KCkgfHwgbGF5b3V0Qm94LT5p
c0Zsb2F0aW5nUG9zaXRpb25lZCgpKTsKLSAgICAgICAgICAgICAgICBhdXRvJiBjb250YWluZXJC
b3ggPSBkb3duY2FzdDxDb250YWluZXJCb3g+KCpsYXlvdXRCb3gpOwotICAgICAgICAgICAgICAg
IGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnRhaW5lckJveCwgY29uc3RyYWludHMuaG9yaXpv
bnRhbCk7Ci0gICAgICAgICAgICAgICAgY29tcHV0ZVdpZHRoQW5kTWFyZ2luKGNvbnRhaW5lckJv
eCwgY29uc3RyYWludHMuaG9yaXpvbnRhbCk7Ci0KLSAgICAgICAgICAgICAgICBhdXRvJiBmb3Jt
YXR0aW5nUm9vdERpc3BsYXlCb3ggPSBnZW9tZXRyeUZvckJveChjb250YWluZXJCb3gpOwotICAg
ICAgICAgICAgICAgIGlmIChjb250YWluZXJCb3guaGFzSW5GbG93T3JGbG9hdGluZ0NoaWxkKCkp
IHsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4dCA9IExheW91dENv
bnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnRhaW5lckJveCwgbGF5b3V0U3RhdGUo
KSk7Ci0gICAgICAgICAgICAgICAgICAgIGZvcm1hdHRpbmdDb250ZXh0LT5sYXlvdXRJbkZsb3dD
b250ZW50KGludmFsaWRhdGlvblN0YXRlLCBHZW9tZXRyeTo6Y29uc3RyYWludHNGb3JJbkZsb3dD
b250ZW50KGZvcm1hdHRpbmdSb290RGlzcGxheUJveCkpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnRhaW5lckJveCwgY29uc3Ry
YWludHMuaG9yaXpvbnRhbCk7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnRhaW5lckJveC5oYXND
aGlsZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSBM
YXlvdXRDb250ZXh0OjpjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb250YWluZXJCb3gsIGxheW91
dFN0YXRlKCkpOwotICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC0+bGF5b3V0
T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgR2VvbWV0cnk6OmNvbnN0cmFpbnRz
Rm9yT3V0T2ZGbG93Q29udGVudChmb3JtYXR0aW5nUm9vdERpc3BsYXlCb3gpKTsKLSAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byYgZm9ybWF0dGluZ1Jvb3QgPSBkb3duY2Fz
dDxDb250YWluZXJCb3g+KCpsYXlvdXRCb3gpOworICAgICAgICAgICAgICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKGZvcm1hdHRpbmdSb290LCBjb25zdHJhaW50cy5ob3Jpem9udGFsKTsKKyAg
ICAgICAgICAgICAgICBjb21wdXRlV2lkdGhBbmRNYXJnaW4oZm9ybWF0dGluZ1Jvb3QsIGNvbnN0
cmFpbnRzLmhvcml6b250YWwpOworCisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRpbmdSb290
Lmhhc0NoaWxkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBmb3JtYXR0aW5nQ29udGV4
dCA9IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdSb290
LCBsYXlvdXRTdGF0ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRpbmdSb290
Lmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9y
bWF0dGluZ0NvbnRleHQtPmxheW91dEluRmxvd0NvbnRlbnQoaW52YWxpZGF0aW9uU3RhdGUsIGdl
b21ldHJ5KCkuY29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGZvcm1hdHRpbmdSb290KSk7Cisg
ICAgICAgICAgICAgICAgICAgIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oZm9ybWF0dGluZ1Jvb3Qs
IGNvbnN0cmFpbnRzLmhvcml6b250YWwpOworICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5n
Q29udGV4dC0+bGF5b3V0T3V0T2ZGbG93Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgZ2VvbWV0
cnkoKS5jb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQoZm9ybWF0dGluZ1Jvb3QpKTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgY29tcHV0ZUhlaWdodEFu
ZE1hcmdpbihmb3JtYXR0aW5nUm9vdCwgY29uc3RyYWludHMuaG9yaXpvbnRhbCk7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2VkIGFuZCBvdGhlciB0eXBl
IG9mIGxlYWYgYXRvbWljIGlubGluZSBib3hlcy4KICAgICAgICAgICAgICAgICBjb21wdXRlQm9y
ZGVyQW5kUGFkZGluZygqbGF5b3V0Qm94LCBjb25zdHJhaW50cy5ob3Jpem9udGFsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0
aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDk4OGY1ZWQ2NDZlNmM0Mzc3Zjc4OTczZGU3
M2NkNzQyOWU2MGViZDUuLmYyNDkzNDg3Njk5MjI4OTk2ZTYxMmM3MzE3YjhiMDM1YTY1MDllOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVG
b3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIHZv
aWQgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0Q2VsbChjb25zdCBUYWJsZUdyaWQ6OkNl
bGwmIGNlbGwsIExheW91dFVuaXQKIAogICAgIGlmIChjZWxsQm94Lmhhc0luRmxvd09yRmxvYXRp
bmdDaGlsZCgpKSB7CiAgICAgICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRp
b25TdGF0ZSB7IH07Ci0gICAgICAgIGF1dG8gY29uc3RyYWludHNGb3JDZWxsQ29udGVudCA9IEdl
b21ldHJ5Ojpjb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoY2VsbERpc3BsYXlCb3gpOworICAg
ICAgICBhdXRvIGNvbnN0cmFpbnRzRm9yQ2VsbENvbnRlbnQgPSBnZW9tZXRyeSgpLmNvbnN0cmFp
bnRzRm9ySW5GbG93Q29udGVudChjZWxsQm94KTsKICAgICAgICAgY29uc3RyYWludHNGb3JDZWxs
Q29udGVudC52ZXJ0aWNhbC5sb2dpY2FsSGVpZ2h0ID0gdXNlZENlbGxIZWlnaHQ7CiAgICAgICAg
IExheW91dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNlbGxCb3gsIGxheW91dFN0
YXRlKCkpLT5sYXlvdXRJbkZsb3dDb250ZW50KGludmFsaWRhdGlvblN0YXRlLCBjb25zdHJhaW50
c0ZvckNlbGxDb250ZW50KTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>