<?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>225762</bug_id>
          
          <creation_ts>2021-05-13 04:53:45 -0700</creation_ts>
          <short_desc>[LFC] Move BlockMarginCollapse to its own class</short_desc>
          <delta_ts>2021-05-15 09:22:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759642</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:53:45 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759671</commentid>
    <comment_count>1</comment_count>
      <attachid>428510</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 06:03:16 -0700</bug_when>
    <thetext>Created attachment 428510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760409</commentid>
    <comment_count>2</comment_count>
      <attachid>428726</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 09:19:26 -0700</bug_when>
    <thetext>Created attachment 428726
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760410</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 09:21:49 -0700</bug_when>
    <thetext>Committed r277540 (237768@main): &lt;https://commits.webkit.org/237768@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428726.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760411</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 09:22:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78059117&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428510</attachid>
            <date>2021-05-13 06:03:16 -0700</date>
            <delta_ts>2021-05-15 09:19:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225762-20210513060315.patch</filename>
            <type>text/plain</type>
            <size>46890</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uMTg0MTNlMDM1MDBmMDMwZGQ0ZDE3NWE5MDc4MmQ4
NjUxYWQ5YjU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIEJsb2NrTWFy
Z2luQ29sbGFwc2UgdG8gaXRzIG93biBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGlu
Z1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dXBkYXRlTWFyZ2luQWZ0
ZXJGb3JQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjptYXJnaW5Db2xsYXBzZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdT
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OlF1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6Omdlb21ldHJ5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cXVp
cmtzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OmxheW91dFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omxh
eW91dFN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdDb250ZXh0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6bWFyZ2luQ29sbGFwc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6TWFyZ2lu
Q29sbGFwc2UpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkJsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2luQ29sbGFwc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZv
cmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRo
UGFyZW50TWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGlu
Z01hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJn
aW5CZWZvcmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNv
bGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhTaWJsaW5nTWFyZ2luQmVmb3JlV2l0aENs
ZWFyYW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29s
bGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFm
dGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRo
TGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2li
bGluZ01hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpjb21wdXRlZFBvc2l0aXZlQW5k
TmVnYXRpdmVNYXJnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01h
cmdpbkNvbGxhcHNlOjptYXJnaW5WYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3Jl
SWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrTWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omhh
c0NsZWFyYW5jZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBz
ZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2lu
QmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZp
cnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFy
Z2luQWZ0ZXJDb2xsYXBzZXNXaXRoU2libGluZ01hcmdpbkJlZm9yZVdpdGhDbGVhcmFuY2UgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFy
Z2luQmVmb3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2Vz
V2l0aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFm
dGVyQ29sbGFwc2VzV2l0aExhc3RJbkZsb3dDaGlsZE1hcmdpbkFmdGVyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aE5leHRTaWJsaW5nTWFyZ2luQmVm
b3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2ggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Y29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2lu
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpblZhbHVlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBz
ZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
Ojpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
Ojpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21w
dXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJn
aW5CZWZvcmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNv
bGxhcHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZFBv
c2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0
ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbkZvclRhYmxlQm94
KToKKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdvcmsgdjIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBmMTkzNTNjOWYxYjk1NWU1NGQzZDFhMjFkOTMzZTZjMmE0N2M2MzAzLi4yOTFlZTExNWY5NTIz
YTZlYjZiM2FkNTg0NDA0ZDFkYTFiN2Q2NWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTMzLDYgKzIxMzMsNyBAQAogCQk2
RjNGQkE5ODI1NTZFMzEzMDAzNTMwRkQgLyogTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkYzRkJBOTcyNTU2RTMxMjAwMzUzMEZEIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVu
dEJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY0MERBODEyNTEzMDMzQTAwRUMw
NEI3IC8qIElubGluZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2RjYzODNGNjI0MjdBRjRBMDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENv
bnRhaW5pbmdCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNkY2MzgzRjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dEluaXRpYWxDb250YWluaW5n
QmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk2RjZERjM2RjI2NDcyMkVBMDA5M0U4MzQgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY2REYzNkUyNjQ3MjJF
QTAwOTNFODM0IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyog
TGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJCMkUw
MDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVH
ZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTYyLDYgKzk5NjMs
NyBAQAogCQk2RjYzODNGNDI0MjdBRjQ5MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5p
bmdCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbml0aWFs
Q29udGFpbmluZ0Jsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNjYzOEQ0
MjQ5RTI2OEIwMDE5MjVGQyAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVp
cmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0Nv
bnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjY5QTc5OTI0
RDZGQUI4MDBFNkI4NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmxpbmVMaW5lQm94LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY2REYzNkUy
NjQ3MjJFQTAwOTNFODM0IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tNYXJnaW5Db2xsYXBzZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdD
b250ZXh0R2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxleEZvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjczOTE4QzIx
MDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5pdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5p
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3QjhDRUMyMzYyNkU2NjAwQzlG
RjE1IC8qIElubGluZUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSXRlbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODIzNiw2ICsxODIzOCw3IEBACiAJCQkJ
NkY4RjQ2MDMyMUIwM0JDNjAwNDFBQzNBIC8qIEJsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3Mu
Y3BwICovLAogCQkJCTExNUNGQTc5MjA4QjhEOUQwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdT
dGF0ZS5jcHAgKi8sCiAJCQkJMTE1Q0ZBNzgyMDhCOEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0
dGluZ1N0YXRlLmggKi8sCisJCQkJNkY2REYzNkUyNjQ3MjJFQTAwOTNFODM0IC8qIEJsb2NrTWFy
Z2luQ29sbGFwc2UuaCAqLywKIAkJCQkxMTVDRkE4OTIwOEI5MjFBMDAxRTY5OTEgLyogQmxvY2tN
YXJnaW5Db2xsYXBzZS5jcHAgKi8sCiAJCQkJNkZBRTE2QkEyNDA2REU3RTAwQTQ4NDE0IC8qIFBy
ZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgKi8sCiAJCQkpOwpAQCAtMzU1NTEsNiAr
MzU1NTQsNyBAQAogCQkJCTRCQUZEMEQ5MjE5MjFFQTAwMEMwQUI2NCAvKiBUeXBlZE9NQ1NTVW5w
YXJzZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUEwOTlFNjQ5MjAwNTZFNTgx
IC8qIFR5cGluZ0NvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MTUyQjZFMjFDRDk5NUQw
MDBDMzdDQSAvKiBVMmZDb21tYW5kQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTZG
NkRGMzZGMjY0NzIyRUEwMDkzRTgzNCAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzE1MkI3QzIxREQ4QkExMDAwQzM3Q0EgLyogVTJmUmVzcG9uc2VDb252ZXJ0
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRFMEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0ZFN0NBNzFEQTlGMUE3MDAzNzIzN0MgLyogVUlF
dmVudEluaXQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDcx
MTAyNTU4OGVjNGEwM2Q5ZTM1YTBhYzkzMGE3NzZjNjIzZjg0NDQuLjJkYTUyYjY1MzllZTZjMzBm
NmM4Mzc2NThjNzJhOTNmYWNhMmU4YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTEw
OCwxMSArMTA4LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBDb250YWluZXJCb3gmIHJvb3QoKSBj
b25zdCB7IHJldHVybiAqbV9yb290OyB9CiAKICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUo
KSBjb25zdDsKKyAgICBjb25zdCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRlOyB9CiAKIHByb3RlY3RlZDoKICAgICB1c2lu
ZyBMYXlvdXRRdWV1ZSA9IFZlY3Rvcjxjb25zdCBCb3gqPjsKIAotICAgIGNvbnN0IEZvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3Rh
dGU7IH0KICAgICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJuIG1f
Zm9ybWF0dGluZ1N0YXRlOyB9CiAKICAgICB2b2lkIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNv
bnN0IEJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggMGY1NTVmODE5MzgxZTczYWYz
ZTE5YzAyZjM4YjBmY2YzYmQxMjA0Yi4uZDM3NDUzOTY4ZjdhOGJkZjU5ZmRiMjJmNjQ2MTYwNmQ3
NDI0ZGQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCiAKICNpbmNsdWRlICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgorI2luY2x1ZGUgIkJsb2Nr
TWFyZ2luQ29sbGFwc2UuaCIKICNpbmNsdWRlICJGbG9hdGluZ0NvbnRleHQuaCIKICNpbmNsdWRl
ICJGbG9hdGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKQEAgLTQy
MCw3ICs0MjEsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRB
bmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAgICAgYm94R2VvbWV0cnkuc2V0
Q29udGVudEJveEhlaWdodChjb250ZW50SGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWlnaHQpOwog
ICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHsgbWFyZ2luQmVmb3JlKHZlcnRpY2Fs
TWFyZ2luKSwgbWFyZ2luQWZ0ZXIodmVydGljYWxNYXJnaW4pIH0pOwogICAgIC8vIEFkanVzdCB0
aGUgcHJldmlvdXMgc2libGluZydzIG1hcmdpbiBib3R0b20gbm93IHRoYXQgdGhpcyBib3gncyB2
ZXJ0aWNhbCBtYXJnaW4gaXMgY29tcHV0ZWQuCi0gICAgTWFyZ2luQ29sbGFwc2U6OnVwZGF0ZU1h
cmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKCp0aGlzLCBtYXJnaW5Db2xsYXBzZSwgbGF5b3V0
Qm94KTsKKyAgICB1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZyhsYXlvdXRCb3gp
OwogfQogCiBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKQpA
QCAtNTU3LDYgKzU1OCw1MyBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnZl
cnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0IEJveCYgbGF5b3V0QgogICAgIHJldHVybiBj
b250YWluaW5nQmxvY2tDb250ZW50Qm94VG9wICsgbWFyZ2luQmVmb3JlKHZlcnRpY2FsTWFyZ2lu
KTsKIH0KIAordm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojp1cGRhdGVNYXJnaW5BZnRlckZv
clByZXZpb3VzU2libGluZyhjb25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAgICBhdXRvIG1hcmdp
bkNvbGxhcHNlID0gdGhpcy0+bWFyZ2luQ29sbGFwc2UoKTsKKyAgICBhdXRvJiBmb3JtYXR0aW5n
U3RhdGUgPSB0aGlzLT5mb3JtYXR0aW5nU3RhdGUoKTsKKyAgICAvLyAxLiBHZXQgdGhlIG1hcmdp
biBiZWZvcmUgdmFsdWUgZnJvbSB0aGUgbmV4dCBpbi1mbG93IHNpYmxpbmcuIFRoaXMgaXMgdGhl
IHNhbWUgYXMgdGhpcyBib3gncyBtYXJnaW4gYWZ0ZXIgdmFsdWUgbm93IHNpbmNlIHRoZXkgYXJl
IGNvbGxhcHNlZC4KKyAgICAvLyAyLiBVcGRhdGUgdGhlIGNvbGxhcHNlZCBtYXJnaW4gYWZ0ZXIg
dmFsdWUgYXMgd2VsbCBhcyB0aGUgcG9zaXRpdmUvbmVnYXRpdmUgY2FjaGUuCisgICAgLy8gMy4g
Q2hlY2sgaWYgdGhlIGJveCdzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3VnaC4KKyAgICAvLyA0LiBJ
ZiBzbywgdXBkYXRlIHRoZSBwb3NpdGl2ZS9uZWdhdGl2ZSBjYWNoZS4KKyAgICAvLyA1LiBJbiBj
YXNlIG9mIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdpbnMgY2hlY2sgaWYgdGhlIGJlZm9yZSBtYXJn
aW4gY29sbGFwZXMgd2l0aCB0aGUgcHJldmlvdXMgaW5mbG93IHNpYmxpbmcncyBhZnRlciBtYXJn
aW4uCisgICAgLy8gNi4gSWYgc28sIGp1bXAgdG8gIzIuCisgICAgLy8gNy4gTm8gbmVlZCB0byBw
cm9wYWdhdGUgdG8gcGFyZW50IGJlY2F1c2UgaXRzIG1hcmdpbiBpcyBub3QgY29tcHV0ZWQgeWV0
IChwcmUtY29tcHV0ZWQgYXQgbW9zdCkuCisgICAgYXV0byogY3VycmVudEJveCA9ICZsYXlvdXRC
b3g7CisgICAgd2hpbGUgKG1hcmdpbkNvbGxhcHNlLm1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQ
cmV2aW91c1NpYmxpbmdNYXJnaW5BZnRlcigqY3VycmVudEJveCkpIHsKKyAgICAgICAgYXV0byYg
cHJldmlvdXNTaWJsaW5nID0gKmN1cnJlbnRCb3gtPnByZXZpb3VzSW5GbG93U2libGluZygpOwor
ICAgICAgICBhdXRvIHByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luID0gZm9ybWF0dGluZ1N0
YXRlLnVzZWRWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcpOworCisgICAgICAgIGF1dG8g
Y29sbGFwc2VkVmVydGljYWxNYXJnaW5CZWZvcmUgPSBwcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1h
cmdpbi5jb2xsYXBzZWRWYWx1ZXMuYmVmb3JlOworICAgICAgICBhdXRvIGNvbGxhcHNlZFZlcnRp
Y2FsTWFyZ2luQWZ0ZXIgPSBnZW9tZXRyeUZvckJveCgqY3VycmVudEJveCkubWFyZ2luQmVmb3Jl
KCk7CisKKyAgICAgICAgYXV0byBtYXJnaW5zQ29sbGFwc2VUaHJvdWdoID0gbWFyZ2luQ29sbGFw
c2UubWFyZ2luc0NvbGxhcHNlVGhyb3VnaChwcmV2aW91c1NpYmxpbmcpOworICAgICAgICBpZiAo
bWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkKKyAgICAgICAgICAgIGNvbGxhcHNlZFZlcnRpY2FsTWFy
Z2luQmVmb3JlID0gY29sbGFwc2VkVmVydGljYWxNYXJnaW5BZnRlcjsKKworICAgICAgICAvLyBV
cGRhdGUgcG9zaXRpdmUvbmVnYXRpdmUgY2FjaGUuCisgICAgICAgIGF1dG8gcHJldmlvdXNTaWJs
aW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbiA9IGZvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGljYWxN
YXJnaW4ocHJldmlvdXNTaWJsaW5nKS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzOworICAgICAg
ICBhdXRvIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUgPSBmb3JtYXR0aW5nU3RhdGUudXNl
ZFZlcnRpY2FsTWFyZ2luKCpjdXJyZW50Qm94KS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmJl
Zm9yZTsKKworICAgICAgICBhdXRvIGFkanVzdGVkUHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJn
aW4gPSBwcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbjsKKyAgICAgICAgYWRqdXN0ZWRQcmV2
aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmFmdGVy
ID0gbWFyZ2luQ29sbGFwc2UuY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKHBvc2l0
aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUsIHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVN
YXJnaW4uYWZ0ZXIpOworICAgICAgICBpZiAobWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkgeworICAg
ICAgICAgICAgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFu
ZE5lZ2F0aXZlVmFsdWVzLmJlZm9yZSA9IG1hcmdpbkNvbGxhcHNlLmNvbXB1dGVkUG9zaXRpdmVB
bmROZWdhdGl2ZU1hcmdpbihwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luLmJl
Zm9yZSwgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFuZE5l
Z2F0aXZlVmFsdWVzLmFmdGVyKTsKKyAgICAgICAgICAgIGFkanVzdGVkUHJldmlvdXNTaWJsaW5n
VmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5hZnRlciA9IGFkanVzdGVk
UHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5i
ZWZvcmU7CisgICAgICAgIH0KKyAgICAgICAgZm9ybWF0dGluZ1N0YXRlLnNldFVzZWRWZXJ0aWNh
bE1hcmdpbihwcmV2aW91c1NpYmxpbmcsIGFkanVzdGVkUHJldmlvdXNTaWJsaW5nVmVydGljYWxN
YXJnaW4pOworCisgICAgICAgIGlmICghbWFyZ2luc0NvbGxhcHNlVGhyb3VnaCkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIGN1cnJlbnRCb3ggPSAmcHJldmlvdXNTaWJsaW5nOworICAg
IH0KK30KKworQmxvY2tNYXJnaW5Db2xsYXBzZSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjptYXJn
aW5Db2xsYXBzZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEJsb2NrTWFyZ2luQ29sbGFwc2UoKnRo
aXMpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmgKaW5kZXggNjNkOTk2OTNlODdjZDBiMGYxMzJlYWM3MTM2OTBlMGI3MDUyZTEyOS4uYmY4
OTAzMGRlOWRhNTVjZTQxY2UwZmI3MTIxNTVjNWQxYzgzZTBkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgTGF5
b3V0VW5pdDsKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBCb3g7CitjbGFzcyBCbG9ja01h
cmdpbkNvbGxhcHNlOwogY2xhc3MgRmxvYXRpbmdDb250ZXh0OwogCiAvLyBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgdGhlIGxheW91dCBsb2dpYyBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cy4K
QEAgLTUxLDI2ICs1MiwyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXlvdXRJbkZsb3dDb250ZW50
KEludmFsaWRhdGlvblN0YXRlJiwgY29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50Jikg
b3ZlcnJpZGU7CiAgICAgTGF5b3V0VW5pdCB1c2VkQ29udGVudEhlaWdodCgpIGNvbnN0IG92ZXJy
aWRlOwogCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IENvbnN0cmFpbnRzUGFpciB7Ci0gICAgICAg
IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBmb3JtYXR0aW5nQ29udGV4dFJvb3Q7Ci0gICAg
ICAgIENvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudCBjb250YWluaW5nQmxvY2s7Ci0gICAgfTsK
LSAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IENvbnRhaW5lckJv
eCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOworICAgIGNvbnN0IEJsb2NrRm9ybWF0
dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxCbG9j
a0Zvcm1hdHRpbmdTdGF0ZT4oRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsg
fQogCi0gICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgRmxvYXRpbmdDb250ZXh0
JiwgY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyJik7Ci0gICAgdm9pZCBjb21wdXRl
SGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29u
dGVudCYpOworICAgIGNsYXNzIFF1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVp
cmtzIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFF1aXJrcyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0Jik7CiAKLSAgICB2b2lkIGNvbXB1dGVTdGF0aWNIb3Jpem9udGFsUG9zaXRpb24oY29u
c3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7Ci0gICAgdm9pZCBjb21wdXRl
U3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBWZXJ0aWNhbENvbnN0cmFp
bnRzJik7Ci0gICAgdm9pZCBjb21wdXRlUG9zaXRpb25Ub0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0
aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpciYpOwotICAgIHZv
aWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9hdENsZWFyKGNvbnN0IEZsb2F0aW5nQ29u
dGV4dCYsIGNvbnN0IEJveCYpOworICAgICAgICBib29sIG5lZWRzU3RyZXRjaGluZyhjb25zdCBC
b3gmKSBjb25zdDsKKyAgICAgICAgTGF5b3V0VW5pdCBzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29u
c3QgQm94JiwgQ29udGVudEhlaWdodEFuZE1hcmdpbik7CiAKLSAgICB2b2lkIHByZWNvbXB1dGVW
ZXJ0aWNhbFBvc2l0aW9uRm9yQm94QW5kQW5jZXN0b3JzKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0
cmFpbnRzUGFpciYpOworICAgICAgICBib29sIHNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFy
Z2luKGNvbnN0IEJveCYpIGNvbnN0OworICAgICAgICBib29sIHNob3VsZENvbGxhcHNlTWFyZ2lu
QmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKKyAgICAgICAg
Ym9vbCBzaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0
IEJveCYpIGNvbnN0OwogCi0gICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZElu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBvdmVycmlkZTsKKyAgICAgICAgY29uc3QgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3du
Y2FzdDxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpm
b3JtYXR0aW5nQ29udGV4dCgpKTsgfQorICAgICAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2Vv
bWV0cnkoKTsgfQogCi0gICAgTGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uV2l0aE1hcmdpbihj
b25zdCBCb3gmLCBjb25zdCBVc2VkVmVydGljYWxNYXJnaW4mLCBjb25zdCBWZXJ0aWNhbENvbnN0
cmFpbnRzJikgY29uc3Q7CisgICAgfTsKKyAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWly
a3MgcXVpcmtzKCkgY29uc3QgeyByZXR1cm4gUXVpcmtzKCp0aGlzKTsgfQogCiAgICAgLy8gVGhp
cyBjbGFzcyBpbXBsZW1lbnRzIHBvc2l0aW9uaW5nIGFuZCBzaXppbmcgZm9yIGJveGVzIHBhcnRp
Y2lwYXRpbmcgaW4gYSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCiAgICAgY2xhc3MgR2VvbWV0
cnkgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IHsKQEAgLTk3LDczICs5Niwz
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgfTsKICAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeSBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIEdlb21ldHJ5KCp0aGlzKTsgfQogCi0gICAg
Ly8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBzaW5nIGZvciBibG9jayBmb3Jt
YXR0aW5nIGNvbnRleHQuCi0gICAgY2xhc3MgTWFyZ2luQ29sbGFwc2UgewotICAgIHB1YmxpYzoK
LSAgICAgICAgVXNlZFZlcnRpY2FsTWFyZ2luIGNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGNvbnN0
IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKTsKLQotICAgICAg
ICBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBC
b3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgICAgIExh
eW91dFVuaXQgbWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gm
LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgICAgIHN0YXRp
YyB2b2lkIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQmLCBjb25zdCBNYXJnaW5Db2xsYXBzZSYsIGNvbnN0IEJveCYpOwotCi0gICAgICAg
IGJvb2wgbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBC
b3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJ
bkZsb3dDaGlsZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBt
YXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JikgY29u
c3Q7Ci0gICAgICAgIGJvb2wgbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGlu
Z01hcmdpbkFmdGVyKGNvbnN0IEJveCYpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgbWFyZ2luQWZ0
ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JikgY29uc3Q7Ci0gICAg
ICAgIGJvb2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0
ZXIoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIGJvb2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNX
aXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBib29sIG1h
cmdpbkFmdGVyQ29sbGFwc2VzV2l0aE5leHRTaWJsaW5nTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYp
IGNvbnN0OwotICAgICAgICBib29sIG1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFNpYmxpbmdNYXJn
aW5CZWZvcmVXaXRoQ2xlYXJhbmNlKGNvbnN0IEJveCYpIGNvbnN0OwotCi0gICAgICAgIGJvb2wg
bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChjb25zdCBCb3gmKSBjb25zdDsKLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OwotICAgICAgICBN
YXJnaW5Db2xsYXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7Ci0KLSAgICAgICAg
ZW51bSBjbGFzcyBNYXJnaW5UeXBlIHsgQmVmb3JlLCBBZnRlciB9OwotICAgICAgICBVc2VkVmVy
dGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdh
dGl2ZVZhbHVlcyhjb25zdCBCb3gmLCBNYXJnaW5UeXBlKSBjb25zdDsKLSAgICAgICAgVXNlZFZl
cnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBvc2l0aXZlTmVn
YXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMpIGNvbnN0OwotICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0
IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKLQot
ICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1
ZXMgcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVz
ZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKLSAgICAgICAgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1
dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmKSBjb25zdDsKLQotICAgICAgICBV
c2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgY29tcHV0
ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXI6OlZhbHVlcywgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzKSBjb25zdDsKLSAgICAgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4g
bWFyZ2luVmFsdWUoVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6
VmFsdWVzKSBjb25zdDsKLQotICAgICAgICBib29sIGhhc0NsZWFyYW5jZShjb25zdCBCb3gmKSBj
b25zdDsKLQotICAgICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Js
b2NrRm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgICAgICBjb25zdCBMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgICAgICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5n
Q29udGV4dDsgfQotCi0gICAgICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIG1fYmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDsKK3Byb3RlY3RlZDoKKyAgICBzdHJ1Y3QgQ29uc3RyYWludHNQ
YWlyIHsKKyAgICAgICAgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGZvcm1hdHRpbmdDb250
ZXh0Um9vdDsKKyAgICAgICAgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGNvbnRhaW5pbmdC
bG9jazsKICAgICB9OwotICAgIE1hcmdpbkNvbGxhcHNlIG1hcmdpbkNvbGxhcHNlKCkgY29uc3Qg
eyByZXR1cm4gTWFyZ2luQ29sbGFwc2UoKnRoaXMpOyB9CisgICAgdm9pZCBwbGFjZUluRmxvd1Bv
c2l0aW9uZWRDaGlsZHJlbihjb25zdCBDb250YWluZXJCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29u
c3RyYWludHMmKTsKIAotICAgIGNsYXNzIFF1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4
dDo6UXVpcmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFF1aXJrcyhjb25zdCBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0Jik7CisgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgRmxv
YXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyJik7CisgICAg
dm9pZCBjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRz
Rm9ySW5GbG93Q29udGVudCYpOwogCi0gICAgICAgIGJvb2wgbmVlZHNTdHJldGNoaW5nKGNvbnN0
IEJveCYpIGNvbnN0OwotICAgICAgICBMYXlvdXRVbml0IHN0cmV0Y2hlZEluRmxvd0hlaWdodChj
b25zdCBCb3gmLCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luKTsKKyAgICB2b2lkIGNvbXB1dGVTdGF0
aWNIb3Jpem9udGFsUG9zaXRpb24oY29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFp
bnRzJik7CisgICAgdm9pZCBjb21wdXRlU3RhdGljVmVydGljYWxQb3NpdGlvbihjb25zdCBCb3gm
LCBjb25zdCBWZXJ0aWNhbENvbnN0cmFpbnRzJik7CisgICAgdm9pZCBjb21wdXRlUG9zaXRpb25U
b0F2b2lkRmxvYXRzKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYsIGNvbnN0IENv
bnN0cmFpbnRzUGFpciYpOworICAgIHZvaWQgY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JGbG9h
dENsZWFyKGNvbnN0IEZsb2F0aW5nQ29udGV4dCYsIGNvbnN0IEJveCYpOwogCi0gICAgICAgIGJv
b2wgc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4oY29uc3QgQm94JikgY29uc3Q7Ci0g
ICAgICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFyZ2luQmVm
b3JlKGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBib29sIHNob3VsZENvbGxhcHNlTWFyZ2lu
QWZ0ZXJXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JikgY29uc3Q7CisgICAgdm9pZCBw
cmVjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckJveEFuZEFuY2VzdG9ycyhjb25zdCBCb3gmLCBj
b25zdCBDb25zdHJhaW50c1BhaXImKTsKIAotICAgICAgICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmZvcm1hdHRpbmdD
b250ZXh0KCkpOyB9Ci0gICAgICAgIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdl
b21ldHJ5KCkgY29uc3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgpOyB9
CisgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21wdXRlZEludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMoKSBvdmVycmlkZTsKIAotICAgIH07Ci0gICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6UXVpcmtzIHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygqdGhpcyk7IH0KKyAgICBM
YXlvdXRVbml0IHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVz
ZWRWZXJ0aWNhbE1hcmdpbiYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKSBjb25zdDsKIAog
ICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRBdmFpbGFibGVXaWR0aEZvckZsb2F0QXZvaWRl
cihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBDb25zdHJhaW50c1Bh
aXImKTsKKyAgICB2b2lkIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKGNvbnN0
IEJveCYpOwogCi0gICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0
aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CisgICAgQmxvY2tNYXJnaW5Db2xsYXBz
ZSBtYXJnaW5Db2xsYXBzZSgpIGNvbnN0OwogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3Jt
YXR0aW5nU3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9y
bWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQogCiAjaWYgQVNTRVJUX0VOQUJM
RUQKQEAgLTE4NSwxMSArMTQyLDYgQEAgaW5saW5lIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1
aXJrczo6UXVpcmtzKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGJsb2MKIHsKIH0KIAot
aW5saW5lIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpNYXJnaW5Db2xs
YXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0
KQotICAgIDogbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0KGJsb2NrRm9ybWF0dGluZ0NvbnRleHQp
Ci17Ci19Ci0KIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHAKaW5kZXggZjFmZDViYmUyMmExYWI5MmU4NTFkODUwZGUwZjRhNmFkMTg3MTBkYi4uYjk4M2Nl
NDRjNmZhMTMxNzYxYTk5YTcyZTNkZjYxYzk0ZGJiMzI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNs
dWRlICJCbG9ja01hcmdpbkNvbGxhcHNlLmgiCiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkKIApAQCAtODEsNyArODEsMTIgQEAgc3RhdGljIGJvb2wgZXN0YWJsaXNoZXNC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgIHJldHVybiBs
YXlvdXRCb3guZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7CiB9CiAKLWJvb2wg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omhhc0NsZWFyYW5jZShjb25z
dCBCb3gmIGxheW91dEJveCkgY29uc3QKK0Jsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2lu
Q29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgYmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCkKKyAgICA6IG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dChibG9ja0Zvcm1hdHRpbmdDb250
ZXh0KQoreworfQorCitib29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Omhhc0NsZWFyYW5jZShjb25z
dCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBpZiAoIWxheW91dEJveC5oYXNGbG9hdENs
ZWFyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTkwLDcgKzk1LDcgQEAgYm9vbCBCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6aGFzQ2xlYXJhbmNlKGNvbnN0IEJv
eCYgbGF5b3V0Qm94KQogICAgIHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdT
dGF0ZSgpLmhhc0NsZWFyYW5jZShsYXlvdXRCb3gpOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50
TWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0Citib29sIEJsb2NrTWFyZ2lu
Q29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlcihjb25z
dCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICAvLyAxLiBUaGlzIGlzIHRoZSBsYXN0IGlu
LWZsb3cgY2hpbGQgYW5kIGl0cyBtYXJnaW5zIGNvbGxhcHNlIHRocm91Z2ggYW5kIHRoZSBtYXJn
aW4gYWZ0ZXIgY29sbGFwc2VzIHdpdGggcGFyZW50J3MgbWFyZ2luIGFmdGVyIG9yCiAgICAgLy8g
Mi4gVGhpcyBib3gncyBtYXJnaW4gYWZ0ZXIgY29sbGFwc2VzIHdpdGggdGhlIG5leHQgc2libGlu
ZydzIG1hcmdpbiBiZWZvcmUgYW5kIHRoYXQgc2libGluZyBjb2xsYXBzZXMgdGhyb3VnaCBhbmQK
QEAgLTEwOCw3ICsxMTMsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZwogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29s
bGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QK
IHsKICAgICAvLyBUaGUgZmlyc3QgaW5mbG93IGNoaWxkIGNvdWxkIHByb3BhZ2F0ZSBpdHMgdG9w
IG1hcmdpbiB0byBwYXJlbnQuCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIxL2Jv
eC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucwpAQCAtMTUxLDcgKzE1Niw3IEBAIGJvb2wgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dp
dGhQYXJlbnRNYXJnCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQcmV2aW91
c1NpYmxpbmdNYXJnaW5BZnRlcihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxv
Y2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGlu
Z01hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewogICAgIEFTU0VSVChs
YXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogCkBAIC0xODAsNyArMTg1LDcgQEAgYm9vbCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFw
c2VzV2l0aFByZXZpb3VzU2kKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZp
cnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0Citi
b29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJzdElu
Rmxvd0NoaWxkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewogICAg
IEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIC8vIE1hcmdpbnMgb2Yg
ZWxlbWVudHMgdGhhdCBlc3RhYmxpc2ggbmV3IGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dHMgZG8g
bm90IGNvbGxhcHNlIHdpdGggdGhlaXIgaW4tZmxvdyBjaGlsZHJlbi4KQEAgLTIxNCw3ICsyMTks
NyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5C
ZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsbwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxh
cHNlc1dpdGhTaWJsaW5nTWFyZ2luQmVmb3JlV2l0aENsZWFyYW5jZShjb25zdCBCb3gmIGxheW91
dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBz
ZXNXaXRoU2libGluZ01hcmdpbkJlZm9yZVdpdGhDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMgb2YgYW4g
ZWxlbWVudCB3aXRoIGNsZWFyYW5jZSBhcmUgYWRqb2luaW5nLCBpdHMgbWFyZ2lucyBjb2xsYXBz
ZSB3aXRoIHRoZSBhZGpvaW5pbmcgbWFyZ2lucwogICAgIC8vIG9mIGZvbGxvd2luZyBzaWJsaW5n
cyBidXQgdGhhdCByZXN1bHRpbmcgbWFyZ2luIGRvZXMgbm90IGNvbGxhcHNlIHdpdGggdGhlIGJv
dHRvbSBtYXJnaW4gb2YgdGhlIHBhcmVudCBibG9jay4KQEAgLTIzMCw3ICsyMzUsNyBAQCBib29s
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxh
cHNlc1dpdGhTaWJsaW5nTWFyZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRo
UGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAorYm9vbCBCbG9j
a01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZv
cmUoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAgICAgLy8gMS4gVGhpcyBpcyB0aGUg
Zmlyc3QgaW4tZmxvdyBjaGlsZCBhbmQgaXRzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3VnaCBhbmQg
dGhlIG1hcmdpbiBiZWZvcmUgY29sbGFwc2VzIHdpdGggcGFyZW50J3MgbWFyZ2luIGJlZm9yZSBv
cgogICAgIC8vIDIuIFRoaXMgYm94J3MgbWFyZ2luIGJlZm9yZSBjb2xsYXBzZXMgd2l0aCB0aGUg
cHJldmlvdXMgc2libGluZydzIG1hcmdpbiBhZnRlciBhbmQgdGhhdCBzaWJsaW5nIGNvbGxhcHNl
cyB0aHJvdWdoIGFuZApAQCAtMjQ4LDcgKzI1Myw3IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1h
cmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlcihj
b25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFy
Z2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAK
QEAgLTMwMCw3ICszMDUsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpt
YXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5GbG93Q2hpbGRNYXJnaW5BZnRlcihjb25zdCBC
b3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0
ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7
CiAKQEAgLTM0OSw3ICszNTQsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5GbG93QwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2libGluZ01hcmdpbkJlZm9yZShjb25zdCBC
b3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0
ZXJDb2xsYXBzZXNXaXRoTmV4dFNpYmxpbmdNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRC
b3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAK
QEAgLTM1OSw3ICszNjQsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2libGluZwogICAgIHJldHVybiBt
YXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0ZXIoKmxheW91
dEJveC5uZXh0SW5GbG93U2libGluZygpKTsKIH0KIAotYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChjb25zdCBCb3gmIGxh
eW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luc0NvbGxhcHNl
VGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBBU1NFUlQobGF5b3V0
Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKIApAQCAtNDMxLDcgKzQzNiw3IEBAIGJvb2wgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2go
Y29uc3QgQm94JiBsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6
UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6Y29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKFVzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBhLCBVc2VkVmVydGlj
YWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgYikgY29uc3QKK1VzZWRW
ZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdp
bkNvbGxhcHNlOjpjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oVXNlZFZlcnRpY2Fs
TWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIGEsIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBiKSBjb25zdAogewogICAgIFVz
ZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBjb21wdXRl
ZFZhbHVlczsKICAgICBpZiAoYS5wb3NpdGl2ZSAmJiBiLnBvc2l0aXZlKQpAQCAtNDU0LDcgKzQ1
OSw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnCiAgICAgcmV0dXJuIGNvbXB1dGVkVmFsdWVz
OwogfQogCi1PcHRpb25hbDxMYXlvdXRVbml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luVmFsdWUoVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzIG1hcmdpblZhbHVlcykgY29uc3QKK09wdGlvbmFsPExheW91dFVu
aXQ+IEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpblZhbHVlKFVzZWRWZXJ0aWNhbE1hcmdpbjo6
UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBtYXJnaW5WYWx1ZXMpIGNvbnN0CiB7CiAg
ICAgLy8gV2hlbiB0d28gb3IgbW9yZSBtYXJnaW5zIGNvbGxhcHNlLCB0aGUgcmVzdWx0aW5nIG1h
cmdpbiB3aWR0aCBpcyB0aGUgbWF4aW11bSBvZiB0aGUgY29sbGFwc2luZyBtYXJnaW5zJyB3aWR0
aHMuCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgbmVnYXRpdmUgbWFyZ2lucywgdGhlIG1heGltdW0g
b2YgdGhlIGFic29sdXRlIHZhbHVlcyBvZiB0aGUgbmVnYXRpdmUgYWRqb2luaW5nIG1hcmdpbnMg
aXMgZGVkdWN0ZWQgZnJvbSB0aGUgbWF4aW11bQpAQCAtNDY4LDQ4ICs0NzMsNyBAQCBPcHRpb25h
bDxMYXlvdXRVbml0PiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFy
Z2luVmFsdWUoVXNlZFZlcgogICAgIHJldHVybiAqbWFyZ2luVmFsdWVzLnBvc2l0aXZlICsgKm1h
cmdpblZhbHVlcy5uZWdhdGl2ZTsKIH0KIAotdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCYgYmxvY2tGb3JtYXR0aW5nQ29udGV4dCwgY29uc3QgTWFyZ2luQ29s
bGFwc2UmIG1hcmdpbkNvbGxhcHNlLCBjb25zdCBCb3gmIGxheW91dEJveCkKLXsKLSAgICAvLyAx
LiBHZXQgdGhlIG1hcmdpbiBiZWZvcmUgdmFsdWUgZnJvbSB0aGUgbmV4dCBpbi1mbG93IHNpYmxp
bmcuIFRoaXMgaXMgdGhlIHNhbWUgYXMgdGhpcyBib3gncyBtYXJnaW4gYWZ0ZXIgdmFsdWUgbm93
IHNpbmNlIHRoZXkgYXJlIGNvbGxhcHNlZC4KLSAgICAvLyAyLiBVcGRhdGUgdGhlIGNvbGxhcHNl
ZCBtYXJnaW4gYWZ0ZXIgdmFsdWUgYXMgd2VsbCBhcyB0aGUgcG9zaXRpdmUvbmVnYXRpdmUgY2Fj
aGUuCi0gICAgLy8gMy4gQ2hlY2sgaWYgdGhlIGJveCdzIG1hcmdpbnMgY29sbGFwc2UgdGhyb3Vn
aC4KLSAgICAvLyA0LiBJZiBzbywgdXBkYXRlIHRoZSBwb3NpdGl2ZS9uZWdhdGl2ZSBjYWNoZS4K
LSAgICAvLyA1LiBJbiBjYXNlIG9mIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdpbnMgY2hlY2sgaWYg
dGhlIGJlZm9yZSBtYXJnaW4gY29sbGFwZXMgd2l0aCB0aGUgcHJldmlvdXMgaW5mbG93IHNpYmxp
bmcncyBhZnRlciBtYXJnaW4uCi0gICAgLy8gNi4gSWYgc28sIGp1bXAgdG8gIzIuCi0gICAgLy8g
Ny4gTm8gbmVlZCB0byBwcm9wYWdhdGUgdG8gcGFyZW50IGJlY2F1c2UgaXRzIG1hcmdpbiBpcyBu
b3QgY29tcHV0ZWQgeWV0IChwcmUtY29tcHV0ZWQgYXQgbW9zdCkuCi0gICAgYXV0byogY3VycmVu
dEJveCA9ICZsYXlvdXRCb3g7Ci0gICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBibG9j
a0Zvcm1hdHRpbmdDb250ZXh0LmZvcm1hdHRpbmdTdGF0ZSgpOwotICAgIHdoaWxlIChtYXJnaW5D
b2xsYXBzZS5tYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0
ZXIoKmN1cnJlbnRCb3gpKSB7Ci0gICAgICAgIGF1dG8mIHByZXZpb3VzU2libGluZyA9ICpjdXJy
ZW50Qm94LT5wcmV2aW91c0luRmxvd1NpYmxpbmcoKTsKLSAgICAgICAgYXV0byBwcmV2aW91c1Np
YmxpbmdWZXJ0aWNhbE1hcmdpbiA9IGJsb2NrRm9ybWF0dGluZ1N0YXRlLnVzZWRWZXJ0aWNhbE1h
cmdpbihwcmV2aW91c1NpYmxpbmcpOwotCi0gICAgICAgIGF1dG8gY29sbGFwc2VkVmVydGljYWxN
YXJnaW5CZWZvcmUgPSBwcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5jb2xsYXBzZWRWYWx1
ZXMuYmVmb3JlOwotICAgICAgICBhdXRvIGNvbGxhcHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXIgPSBi
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjdXJyZW50Qm94KS5tYXJnaW5C
ZWZvcmUoKTsKLQotICAgICAgICBhdXRvIG1hcmdpbnNDb2xsYXBzZVRocm91Z2ggPSBtYXJnaW5D
b2xsYXBzZS5tYXJnaW5zQ29sbGFwc2VUaHJvdWdoKHByZXZpb3VzU2libGluZyk7Ci0gICAgICAg
IGlmIChtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKQotICAgICAgICAgICAgY29sbGFwc2VkVmVydGlj
YWxNYXJnaW5CZWZvcmUgPSBjb2xsYXBzZWRWZXJ0aWNhbE1hcmdpbkFmdGVyOwotCi0gICAgICAg
IC8vIFVwZGF0ZSBwb3NpdGl2ZS9uZWdhdGl2ZSBjYWNoZS4KLSAgICAgICAgYXV0byBwcmV2aW91
c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luID0gYmxvY2tGb3JtYXR0aW5nU3RhdGUudXNl
ZFZlcnRpY2FsTWFyZ2luKHByZXZpb3VzU2libGluZykucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVl
czsKLSAgICAgICAgYXV0byBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlID0gYmxvY2tGb3Jt
YXR0aW5nU3RhdGUudXNlZFZlcnRpY2FsTWFyZ2luKCpjdXJyZW50Qm94KS5wb3NpdGl2ZUFuZE5l
Z2F0aXZlVmFsdWVzLmJlZm9yZTsKLQotICAgICAgICBhdXRvIGFkanVzdGVkUHJldmlvdXNTaWJs
aW5nVmVydGljYWxNYXJnaW4gPSBwcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbjsKLSAgICAg
ICAgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0
aXZlVmFsdWVzLmFmdGVyID0gbWFyZ2luQ29sbGFwc2UuY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0
aXZlTWFyZ2luKHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUsIHByZXZpb3VzU2libGluZ1Bv
c2l0aXZlTmVnYXRpdmVNYXJnaW4uYWZ0ZXIpOwotICAgICAgICBpZiAobWFyZ2luc0NvbGxhcHNl
VGhyb3VnaCkgewotICAgICAgICAgICAgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1h
cmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmJlZm9yZSA9IG1hcmdpbkNvbGxhcHNlLmNv
bXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luLmJlZm9yZSwgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdp
bi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmFmdGVyKTsKLSAgICAgICAgICAgIGFkanVzdGVk
UHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5h
ZnRlciA9IGFkanVzdGVkUHJldmlvdXNTaWJsaW5nVmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmRO
ZWdhdGl2ZVZhbHVlcy5iZWZvcmU7Ci0gICAgICAgIH0KLSAgICAgICAgYmxvY2tGb3JtYXR0aW5n
U3RhdGUuc2V0VXNlZFZlcnRpY2FsTWFyZ2luKHByZXZpb3VzU2libGluZywgYWRqdXN0ZWRQcmV2
aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbik7Ci0KLSAgICAgICAgaWYgKCFtYXJnaW5zQ29sbGFw
c2VUaHJvdWdoKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY3VycmVudEJveCA9ICZw
cmV2aW91c1NpYmxpbmc7Ci0gICAgfQotfQotCi1Vc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29s
bGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRCb3gsIE1hcmdp
blR5cGUgbWFyZ2luVHlwZSkgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmRO
ZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZl
VmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBNYXJnaW5UeXBlIG1hcmdpblR5cGUpIGNvbnN0
CiB7CiAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gZm9ybWF0dGluZ0NvbnRleHQoKS5mb3Jt
YXR0aW5nU3RhdGUoKTsKICAgICAvLyBCeSB0aGUgdGltZSB3ZSBnZXQgaGVyZSBpbiBCRkMgbGF5
b3V0IHRvIGdhdGhlciBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2luIHZhbHVlcyBmb3IgZWl0
aGVyIGEgcHJldmlvdXMgc2libGluZyBvciBhIGNoaWxkIGJveCwKQEAgLTUxOSw3ICs0ODMsNyBA
QCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZwogICAgIHJldHVybiBtYXJnaW5UeXBlID09IE1hcmdp
blR5cGU6OkJlZm9yZSA/IHBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbi5iZWZvcmUg
OiBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4uYWZ0ZXI7IAogfQogCi1Vc2VkVmVy
dGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRp
dmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJn
aW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAg
YXV0byBmaXJzdENoaWxkQ29sbGFwc2VkTWFyZ2luQmVmb3JlID0gWyZdKCkgLT4gVXNlZFZlcnRp
Y2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHsKICAgICAgICAgaWYg
KCFtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsb3dDaGlsZE1hcmdpbkJlZm9yZShs
YXlvdXRCb3gpKQpAQCAtNTQ5LDcgKzUxMyw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRp
dmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnCiAg
ICAgcmV0dXJuIGNvbXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihjb2xsYXBzZWRNYXJn
aW5CZWZvcmUsIG5vbkNvbGxhcHNlZEJlZm9yZSk7CiB9CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6
UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBz
ZWRWYWx1ZXMpIGNvbnN0CitVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQ
YWlyOjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFm
dGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNl
ZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgYXV0byBsYXN0Q2hpbGRD
b2xsYXBzZWRNYXJnaW5BZnRlciA9IFsmXSgpIC0+IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRp
dmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyB7CiAgICAgICAgIGlmICghbWFyZ2luQWZ0ZXJDb2xs
YXBzZXNXaXRoTGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIobGF5b3V0Qm94KSkKQEAgLTU2OCwx
MyArNTMyLDEzIEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6
OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnCiAgICAgcmV0dXJuIGNvbXB1dGVk
UG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihsYXN0Q2hpbGRDb2xsYXBzZWRNYXJnaW5BZnRlcigp
LCBub25Db2xsYXBzZWRBZnRlcik7CiB9CiAKLUxheW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUlnbm9yaW5nQ29sbGFwc2luZ1Rocm91
Z2goY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2Vk
VmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykKK0xheW91dFVuaXQgQmxvY2tNYXJnaW5Db2xsYXBz
ZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91
dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2Vk
VmFsdWVzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAg
IHJldHVybiBtYXJnaW5WYWx1ZShwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJv
eCwgbm9uQ29sbGFwc2VkVmFsdWVzKSkudmFsdWVPcihub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3Jl
KTsKIH0KIAotVXNlZFZlcnRpY2FsTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVz
KQorVXNlZFZlcnRpY2FsTWFyZ2luIEJsb2NrTWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRp
Y2FsVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNv
bGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpCiB7CiAgICAgQVNTRVJUKGxheW91dEJv
eC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAgICAgLy8gMS4gR2V0IG1pbi9tYXggbWFyZ2luIHRvcCB2
YWx1ZXMgZnJvbSB0aGUgZmlyc3QgaW4tZmxvdyBjaGlsZCBpZiB3ZSBhcmUgY29sbGFwc2luZyBt
YXJnaW4gdG9wIHdpdGggaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZkMGUzODc5YWI1OGNmNTk3NmU5YmIzNDdmZTVkYjdkYTFiMmI5MzMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworbmFtZXNwYWNlIExheW91dCB7CisKKy8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBtYXJn
aW4gY29sbGFwc2luZyBmb3IgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0LgorY2xhc3MgQmxvY2tN
YXJnaW5Db2xsYXBzZSB7CitwdWJsaWM6CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luIGNvbGxhcHNl
ZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFw
c2VkVmFsdWVzKTsKKworICAgIFByZWNvbXB1dGVkTWFyZ2luQmVmb3JlIHByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzKTsKKyAgICBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZUlnbm9yaW5nQ29sbGFwc2luZ1Rocm91
Z2goY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwor
CisgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGNv
bnN0IEJveCYpIGNvbnN0OworICAgIGJvb2wgbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0
SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7CisgICAgYm9vbCBtYXJn
aW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JikgY29uc3Q7
CisgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2lu
QWZ0ZXIoY29uc3QgQm94JikgY29uc3Q7CisKKyAgICBib29sIG1hcmdpbkFmdGVyQ29sbGFwc2Vz
V2l0aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYpIGNvbnN0OworICAgIGJvb2wgbWFyZ2lu
QWZ0ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIoY29uc3QgQm94Jikg
Y29uc3Q7CisgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZv
cmUoY29uc3QgQm94JikgY29uc3Q7CisgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhO
ZXh0U2libGluZ01hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsKKyAgICBib29sIG1hcmdp
bkFmdGVyQ29sbGFwc2VzV2l0aFNpYmxpbmdNYXJnaW5CZWZvcmVXaXRoQ2xlYXJhbmNlKGNvbnN0
IEJveCYpIGNvbnN0OworCisgICAgYm9vbCBtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJv
eCYpIGNvbnN0OworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OworICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCYpOworCisgICAgZW51bSBjbGFzcyBNYXJnaW5UeXBlIHsgQmVmb3JlLCBBZnRlciB9Owor
ICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBw
b3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0OworICAg
IFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3Np
dGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKKyAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0
aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyKGNv
bnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsK
KworICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OworICAgIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwcmVjb21wdXRlZFBv
c2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JikgY29uc3Q7CisKKyAgICBVc2VkVmVydGlj
YWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgY29tcHV0ZWRQb3NpdGl2
ZUFuZE5lZ2F0aXZlTWFyZ2luKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2
ZVBhaXI6OlZhbHVlcywgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFp
cjo6VmFsdWVzKSBjb25zdDsKKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBtYXJnaW5WYWx1ZShV
c2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMpIGNvbnN0
OworCisgICAgYm9vbCBoYXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7CisKKyAgICBMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
bGF5b3V0U3RhdGUoKTsgfQorICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9Cisg
ICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7IH0KKworICAgIGNvbnN0IEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQmIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dDsKK307CisKK30KK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tN
YXJnaW5Db2xsYXBzZS5jcHAKaW5kZXggZGVmYjNkNTU0ZmU2OGRlNDI3MzFmZjhlMmQ0YjIwZWFi
ZjY1OWVjMi4uMDIwMzRhYzM1ZDIzMWQ4YmNmMDE2ZDYyZmJjOWVkYTEzNzM4N2Q0MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVj
b21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNl
LmNwcApAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiQmxvY2tNYXJnaW5Db2xs
YXBzZS5oIgogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKQEAgLTM4
LDcgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1V
c2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdh
dGl2ZVZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK1VzZWRWZXJ0aWNhbE1hcmdp
bjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpw
cmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNv
bnN0CiB7CiAgICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBkb3duY2FzdDxCbG9ja0Zv
cm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUoKS5mb3JtYXR0aW5nU3RhdGVGb3JCb3gobGF5b3V0
Qm94KSk7CiAgICAgaWYgKGJsb2NrRm9ybWF0dGluZ1N0YXRlLmhhc1VzZWRWZXJ0aWNhbE1hcmdp
bihsYXlvdXRCb3gpKQpAQCAtNTEsNyArNTEsNyBAQCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0
aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZwog
ICAgIHJldHVybiBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUobGF5b3V0
Qm94LCBub25Db2xsYXBzZWRNYXJnaW4pOwogfQogCi1Vc2VkVmVydGljYWxNYXJnaW46OlBvc2l0
aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBC
b3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9u
Q29sbGFwc2VkVmFsdWVzKSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRp
dmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAogewog
ICAgIGF1dG8gZmlyc3RDaGlsZENvbGxhcHNlZE1hcmdpbkJlZm9yZSA9IFsmXSgpIC0+IFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyB7CiAgICAgICAg
IGlmICghbWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZv
cmUobGF5b3V0Qm94KSkKQEAgLTgzLDcgKzgzLDcgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3Np
dGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcK
ICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKGNvbGxhcHNlZE1h
cmdpbkJlZm9yZSwgbm9uQ29sbGFwc2VkQmVmb3JlKTsKIH0KIAotUHJlY29tcHV0ZWRNYXJnaW5C
ZWZvcmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVk
TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luKQorUHJlY29tcHV0ZWRNYXJn
aW5CZWZvcmUgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29u
c3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVz
IHVzZWROb25Db2xsYXBzZWRNYXJnaW4pCiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2Nr
TGV2ZWxCb3goKSk7CiAgICAgLy8gRG9uJ3QgcHJlLWNvbXB1dGUgdmVydGljYWwgbWFyZ2lucyBm
b3Igb3V0IG9mIGZsb3cgYm94ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQuY3BwCmluZGV4IGFjNmRmNjVjYTRiYjcxMzYwNGVhYjcwMDE2Y2Y3ZGVmMWMyMmYwNGQuLmYw
ZDFjNTEzYzYzMWEzNzU5MWE5ZWU1NDk1MjA1ZDJiMGE1Zjk5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1Rh
YmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBUYWJs
ZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luRm9y
VGFibGVCb3goY29uc3QKICAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94SGVpZ2h0KGhlaWdo
dEFuZE1hcmdpbi5jb250ZW50SGVpZ2h0KTsKICAgICBib3hHZW9tZXRyeS5zZXRWZXJ0aWNhbE1h
cmdpbih7IG1hcmdpbkJlZm9yZSh2ZXJ0aWNhbE1hcmdpbiksIG1hcmdpbkFmdGVyKHZlcnRpY2Fs
TWFyZ2luKSB9KTsKICAgICAvLyBBZGp1c3QgdGhlIHByZXZpb3VzIHNpYmxpbmcncyBtYXJnaW4g
Ym90dG9tIG5vdyB0aGF0IHRoaXMgYm94J3MgdmVydGljYWwgbWFyZ2luIGlzIGNvbXB1dGVkLgot
ICAgIE1hcmdpbkNvbGxhcHNlOjp1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZygq
dGhpcywgbWFyZ2luQ29sbGFwc2UsIHRhYmxlQm94KTsKKyAgICB1cGRhdGVNYXJnaW5BZnRlckZv
clByZXZpb3VzU2libGluZyh0YWJsZUJveCk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428726</attachid>
            <date>2021-05-15 09:19:26 -0700</date>
            <delta_ts>2021-05-15 09:21:49 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-225762-20210515091926.patch</filename>
            <type>text/plain</type>
            <size>46868</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2YTRkNmMwYzJiZTU5
YzhmNDMxMGUwZjEwZTdkMzNjNzZhZTc3Zi4uZjQzZDMxZDU4MzUzZTE4YTFlNmNmOWVhNWM5ZDZk
OTQxM2U5ZGQ4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIEJsb2NrTWFy
Z2luQ29sbGFwc2UgdG8gaXRzIG93biBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkg
S29pdmlzdG8uCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGlu
Z1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dXBkYXRlTWFyZ2luQWZ0
ZXJGb3JQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjptYXJnaW5Db2xsYXBzZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdT
dGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ6OlF1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6Omdlb21ldHJ5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6cXVp
cmtzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29u
dGV4dDo6TWFyZ2luQ29sbGFwc2U6OmxheW91dFN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omxh
eW91dFN0YXRlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdDb250ZXh0IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6bWFyZ2luQ29sbGFwc2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6TWFyZ2lu
Q29sbGFwc2UpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkJsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2luQ29sbGFwc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZv
cmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRo
UGFyZW50TWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGlu
Z01hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJn
aW5CZWZvcmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNv
bGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhTaWJsaW5nTWFyZ2luQmVmb3JlV2l0aENs
ZWFyYW5jZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29s
bGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFm
dGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRo
TGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2li
bGluZ01hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpjb21wdXRlZFBvc2l0aXZlQW5k
TmVnYXRpdmVNYXJnaW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01h
cmdpbkNvbGxhcHNlOjptYXJnaW5WYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5l
Z2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkFmdGVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3Jl
SWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrTWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omhh
c0NsZWFyYW5jZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBz
ZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2lu
QmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZp
cnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFy
Z2luQWZ0ZXJDb2xsYXBzZXNXaXRoU2libGluZ01hcmdpbkJlZm9yZVdpdGhDbGVhcmFuY2UgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFy
Z2luQmVmb3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2Vz
V2l0aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFm
dGVyQ29sbGFwc2VzV2l0aExhc3RJbkZsb3dDaGlsZE1hcmdpbkFmdGVyIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aE5leHRTaWJsaW5nTWFyZ2luQmVm
b3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbnNDb2xsYXBzZVRocm91Z2ggY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Y29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2lu
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpblZhbHVlIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBz
ZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
Ojpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
Ojpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21w
dXRlZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJn
aW5CZWZvcmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdpbkNv
bGxhcHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRlZFBv
c2l0aXZlTmVnYXRpdmVWYWx1ZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0
ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVXcmFwcGVy
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbkZvclRhYmxlQm94
KToKKwogMjAyMS0wNS0xNSAgQWxleGFuZGVyIE1pa2hheWxlbmtvICA8YWxleG1AZ25vbWUub3Jn
PgogCiAgICAgICAgIFtHVEtdIFJFR1JFU1NJT046IEtpbmV0aWMgc2Nyb2xsaW5nIG9uIHRvdWNo
cGFkIGRvZXNuJ3Qgd29yayB3aXRoIGFzeW5jIHNjcm9sbGluZyBvZmYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxMjczYTRjNjU4
OGQzMmYxZTBjNGU0NmQyNTE5ZjAyOTk2MWZhYjVmLi4xMjk1NDY3OWQ2MDZmNDc0ZWU5Y2NmNDZj
ZDIwYzA0ZGM4MTJlN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTM0LDYgKzIxMzQsNyBAQAogCQk2RjNGQkE5ODI1NTZF
MzEzMDAzNTMwRkQgLyogTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkYzRkJBOTcyNTU2
RTMxMjAwMzUzMEZEIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjQwREE4
MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY0MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGlu
ZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2RjYzODNGNjI0MjdBRjRBMDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9j
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY2Mzgz
RjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk2RjZERjM2RjI2
NDcyMkVBMDA5M0U4MzQgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY2REYzNkUyNjQ3MjJFQTAwOTNFODM0IC8q
IEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M0
MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRp
bmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNkY5MTQyMTEyNTE1MjEzODAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY5MTQyMEYyNTE1
MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTYzLDYgKzk5NjQsNyBAQAogCQk2RjYz
ODNGNDI0MjdBRjQ5MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Js
b2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNjYzOEQ0MjQ5RTI2OEIwMDE5
MjVGQyAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3Mu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjY5QTc5OTI0RDZGQUI4MDBFNkI4
NUQgLyogSW5saW5lTGluZUJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmxpbmVMaW5lQm94
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY2REYzNkUyNjQ3MjJFQTAwOTNF
ODM0IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQmxvY2tNYXJnaW5Db2xsYXBzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RjcwREVERDI1MTEyNkYzMDBGMEZDNzggLyogRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmxleEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjczOTE4QzIxMDZDRUREMDA2QUYy
NjIgLyogTGF5b3V0VW5pdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5pdHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY3QjhDRUMyMzYyNkU2NjAwQzlGRjE1IC8qIElubGlu
ZUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lSXRlbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODIzMiw2ICsxODIzNCw3IEBACiAJCQkJMTE1Q0ZBNzkyMDhC
OEQ5RDAwMUU2OTkxIC8qIEJsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcCAqLywKIAkJCQkxMTVDRkE3
ODIwOEI4RDlEMDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nU3RhdGUuaCAqLywKIAkJCQkxMTVD
RkE4OTIwOEI5MjFBMDAxRTY5OTEgLyogQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgKi8sCisJCQkJ
NkY2REYzNkUyNjQ3MjJFQTAwOTNFODM0IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLywKIAkJ
CQk2RkFFMTZCQTI0MDZERTdFMDBBNDg0MTQgLyogUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxh
cHNlLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gYmxvY2s7CkBAIC0zMTY2NSw2ICszMTY2OCw3
IEBACiAJCQkJOTc2RDZDN0YxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTExNUNGQTZFMjA4QUZBQjcwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE3QTIwOEI4RDlEMDAxRTY5OTEgLyogQmxv
Y2tGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTZGNkRGMzZGMjY0NzIyRUEw
MDkzRTgzNCAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVF
QjVFMTBFODFCRTg3MDBCMjU5NjUgLyogQm9yZGVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTg5NTU2RUQxOEQ0QTQ0MDAwNzY0QjAzIC8qIEJvcmRlckVkZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCNURCMEU4MUI3RUEwMEIyNTk2NSAvKiBCb3JkZXJWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNzExMDI1NTg4ZWM0YTAzZDllMzVhMGFj
OTMwYTc3NmM2MjNmODQ0NC4uMmRhNTJiNjUzOWVlNmMzMGY2YzgzNzY1OGM3MmE5M2ZhY2EyZThj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtMTA4LDExICsxMDgsMTEgQEAgcHVibGlj
OgogICAgIGNvbnN0IENvbnRhaW5lckJveCYgcm9vdCgpIGNvbnN0IHsgcmV0dXJuICptX3Jvb3Q7
IH0KIAogICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0OworICAgIGNvbnN0IEZv
cm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0
aW5nU3RhdGU7IH0KIAogcHJvdGVjdGVkOgogICAgIHVzaW5nIExheW91dFF1ZXVlID0gVmVjdG9y
PGNvbnN0IEJveCo+OwogCi0gICAgY29uc3QgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQogICAgIEZvcm1hdHRpbmdT
dGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KIAog
ICAgIHZvaWQgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiwgY29uc3QgSG9yaXpv
bnRhbENvbnN0cmFpbnRzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAppbmRleCAwZjU1NWY4MTkzODFlNzNhZjNlMTljMDJmMzhiMGZjZjNiZDEyMDRi
Li5kMzc0NTM5NjhmN2E4YmRmNTlmZGIyMmY2NDYxNjA2ZDc0MjRkZDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2luY2x1ZGUgIkJsb2Nr
Rm9ybWF0dGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiQmxvY2tNYXJnaW5Db2xsYXBzZS5oIgogI2lu
Y2x1ZGUgIkZsb2F0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkZsb2F0aW5nU3RhdGUuaCIKICNp
bmNsdWRlICJJbnZhbGlkYXRpb25TdGF0ZS5oIgpAQCAtNDIwLDcgKzQyMSw3IEBAIHZvaWQgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxh
eW91dEJveCwgY29uc3QKICAgICBib3hHZW9tZXRyeS5zZXRDb250ZW50Qm94SGVpZ2h0KGNvbnRl
bnRIZWlnaHRBbmRNYXJnaW4uY29udGVudEhlaWdodCk7CiAgICAgYm94R2VvbWV0cnkuc2V0VmVy
dGljYWxNYXJnaW4oeyBtYXJnaW5CZWZvcmUodmVydGljYWxNYXJnaW4pLCBtYXJnaW5BZnRlcih2
ZXJ0aWNhbE1hcmdpbikgfSk7CiAgICAgLy8gQWRqdXN0IHRoZSBwcmV2aW91cyBzaWJsaW5nJ3Mg
bWFyZ2luIGJvdHRvbSBub3cgdGhhdCB0aGlzIGJveCdzIHZlcnRpY2FsIG1hcmdpbiBpcyBjb21w
dXRlZC4KLSAgICBNYXJnaW5Db2xsYXBzZTo6dXBkYXRlTWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1Np
YmxpbmcoKnRoaXMsIG1hcmdpbkNvbGxhcHNlLCBsYXlvdXRCb3gpOworICAgIHVwZGF0ZU1hcmdp
bkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKGxheW91dEJveCk7CiB9CiAKIEZvcm1hdHRpbmdDb250
ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpCkBAIC01NTcsNiArNTU4LDUzIEBAIExh
eW91dFVuaXQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhNYXJn
aW4oY29uc3QgQm94JiBsYXlvdXRCCiAgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRC
b3hUb3AgKyBtYXJnaW5CZWZvcmUodmVydGljYWxNYXJnaW4pOwogfQogCit2b2lkIEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OnVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKGNvbnN0
IEJveCYgbGF5b3V0Qm94KQoreworICAgIGF1dG8gbWFyZ2luQ29sbGFwc2UgPSB0aGlzLT5tYXJn
aW5Db2xsYXBzZSgpOworICAgIGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IHRoaXMtPmZvcm1hdHRp
bmdTdGF0ZSgpOworICAgIC8vIDEuIEdldCB0aGUgbWFyZ2luIGJlZm9yZSB2YWx1ZSBmcm9tIHRo
ZSBuZXh0IGluLWZsb3cgc2libGluZy4gVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGlzIGJveCdzIG1h
cmdpbiBhZnRlciB2YWx1ZSBub3cgc2luY2UgdGhleSBhcmUgY29sbGFwc2VkLgorICAgIC8vIDIu
IFVwZGF0ZSB0aGUgY29sbGFwc2VkIG1hcmdpbiBhZnRlciB2YWx1ZSBhcyB3ZWxsIGFzIHRoZSBw
b3NpdGl2ZS9uZWdhdGl2ZSBjYWNoZS4KKyAgICAvLyAzLiBDaGVjayBpZiB0aGUgYm94J3MgbWFy
Z2lucyBjb2xsYXBzZSB0aHJvdWdoLgorICAgIC8vIDQuIElmIHNvLCB1cGRhdGUgdGhlIHBvc2l0
aXZlL25lZ2F0aXZlIGNhY2hlLgorICAgIC8vIDUuIEluIGNhc2Ugb2YgY29sbGFwc2VkIHRocm91
Z2ggbWFyZ2lucyBjaGVjayBpZiB0aGUgYmVmb3JlIG1hcmdpbiBjb2xsYXBlcyB3aXRoIHRoZSBw
cmV2aW91cyBpbmZsb3cgc2libGluZydzIGFmdGVyIG1hcmdpbi4KKyAgICAvLyA2LiBJZiBzbywg
anVtcCB0byAjMi4KKyAgICAvLyA3LiBObyBuZWVkIHRvIHByb3BhZ2F0ZSB0byBwYXJlbnQgYmVj
YXVzZSBpdHMgbWFyZ2luIGlzIG5vdCBjb21wdXRlZCB5ZXQgKHByZS1jb21wdXRlZCBhdCBtb3N0
KS4KKyAgICBhdXRvKiBjdXJyZW50Qm94ID0gJmxheW91dEJveDsKKyAgICB3aGlsZSAobWFyZ2lu
Q29sbGFwc2UubWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGluZ01hcmdpbkFm
dGVyKCpjdXJyZW50Qm94KSkgeworICAgICAgICBhdXRvJiBwcmV2aW91c1NpYmxpbmcgPSAqY3Vy
cmVudEJveC0+cHJldmlvdXNJbkZsb3dTaWJsaW5nKCk7CisgICAgICAgIGF1dG8gcHJldmlvdXNT
aWJsaW5nVmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRpY2FsTWFyZ2lu
KHByZXZpb3VzU2libGluZyk7CisKKyAgICAgICAgYXV0byBjb2xsYXBzZWRWZXJ0aWNhbE1hcmdp
bkJlZm9yZSA9IHByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLmNvbGxhcHNlZFZhbHVlcy5i
ZWZvcmU7CisgICAgICAgIGF1dG8gY29sbGFwc2VkVmVydGljYWxNYXJnaW5BZnRlciA9IGdlb21l
dHJ5Rm9yQm94KCpjdXJyZW50Qm94KS5tYXJnaW5CZWZvcmUoKTsKKworICAgICAgICBhdXRvIG1h
cmdpbnNDb2xsYXBzZVRocm91Z2ggPSBtYXJnaW5Db2xsYXBzZS5tYXJnaW5zQ29sbGFwc2VUaHJv
dWdoKHByZXZpb3VzU2libGluZyk7CisgICAgICAgIGlmIChtYXJnaW5zQ29sbGFwc2VUaHJvdWdo
KQorICAgICAgICAgICAgY29sbGFwc2VkVmVydGljYWxNYXJnaW5CZWZvcmUgPSBjb2xsYXBzZWRW
ZXJ0aWNhbE1hcmdpbkFmdGVyOworCisgICAgICAgIC8vIFVwZGF0ZSBwb3NpdGl2ZS9uZWdhdGl2
ZSBjYWNoZS4KKyAgICAgICAgYXV0byBwcmV2aW91c1NpYmxpbmdQb3NpdGl2ZU5lZ2F0aXZlTWFy
Z2luID0gZm9ybWF0dGluZ1N0YXRlLnVzZWRWZXJ0aWNhbE1hcmdpbihwcmV2aW91c1NpYmxpbmcp
LnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXM7CisgICAgICAgIGF1dG8gcG9zaXRpdmVOZWdhdGl2
ZU1hcmdpbkJlZm9yZSA9IGZvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGljYWxNYXJnaW4oKmN1cnJl
bnRCb3gpLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYmVmb3JlOworCisgICAgICAgIGF1dG8g
YWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbiA9IHByZXZpb3VzU2libGluZ1Zl
cnRpY2FsTWFyZ2luOworICAgICAgICBhZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFy
Z2luLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYWZ0ZXIgPSBtYXJnaW5Db2xsYXBzZS5jb21w
dXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9y
ZSwgcHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5hZnRlcik7CisgICAgICAg
IGlmIChtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKSB7CisgICAgICAgICAgICBhZGp1c3RlZFByZXZp
b3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYmVmb3Jl
ID0gbWFyZ2luQ29sbGFwc2UuY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKHByZXZp
b3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYmVmb3JlLCBhZGp1c3RlZFByZXZpb3Vz
U2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYWZ0ZXIpOwor
ICAgICAgICAgICAgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2
ZUFuZE5lZ2F0aXZlVmFsdWVzLmFmdGVyID0gYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNh
bE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmJlZm9yZTsKKyAgICAgICAgfQorICAg
ICAgICBmb3JtYXR0aW5nU3RhdGUuc2V0VXNlZFZlcnRpY2FsTWFyZ2luKHByZXZpb3VzU2libGlu
ZywgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbik7CisKKyAgICAgICAgaWYg
KCFtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
Y3VycmVudEJveCA9ICZwcmV2aW91c1NpYmxpbmc7CisgICAgfQorfQorCitCbG9ja01hcmdpbkNv
bGxhcHNlIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Om1hcmdpbkNvbGxhcHNlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gQmxvY2tNYXJnaW5Db2xsYXBzZSgqdGhpcyk7Cit9CisKIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA2M2Q5OTY5M2U4
N2NkMGIwZjEzMmVhYzcxMzY5MGUwYjcwNTJlMTI5Li5iZjg5MDMwZGU5ZGE1NWNlNDFjZTBmYjcx
MjE1NWM1ZDFjODNlMGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBMYXlvdXRVbml0OwogbmFtZXNwYWNlIExh
eW91dCB7CiAKIGNsYXNzIEJveDsKK2NsYXNzIEJsb2NrTWFyZ2luQ29sbGFwc2U7CiBjbGFzcyBG
bG9hdGluZ0NvbnRleHQ7CiAKIC8vIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgbGF5b3V0IGxv
Z2ljIGZvciBibG9jayBmb3JtYXR0aW5nIGNvbnRleHRzLgpAQCAtNTEsMjYgKzUyLDI0IEBAIHB1
YmxpYzoKICAgICB2b2lkIGxheW91dEluRmxvd0NvbnRlbnQoSW52YWxpZGF0aW9uU3RhdGUmLCBj
b25zdCBDb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQmKSBvdmVycmlkZTsKICAgICBMYXlvdXRV
bml0IHVzZWRDb250ZW50SGVpZ2h0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLXByb3RlY3RlZDoKLSAg
ICBzdHJ1Y3QgQ29uc3RyYWludHNQYWlyIHsKLSAgICAgICAgQ29uc3RyYWludHNGb3JJbkZsb3dD
b250ZW50IGZvcm1hdHRpbmdDb250ZXh0Um9vdDsKLSAgICAgICAgQ29uc3RyYWludHNGb3JJbkZs
b3dDb250ZW50IGNvbnRhaW5pbmdCbG9jazsKLSAgICB9OwotICAgIHZvaWQgcGxhY2VJbkZsb3dQ
b3NpdGlvbmVkQ2hpbGRyZW4oY29uc3QgQ29udGFpbmVyQm94JiwgY29uc3QgSG9yaXpvbnRhbENv
bnN0cmFpbnRzJik7CisgICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihGb3Jt
YXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CiAKLSAgICB2b2lkIGNvbXB1dGVX
aWR0aEFuZE1hcmdpbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBCb3gmLCBjb25zdCBD
b25zdHJhaW50c1BhaXImKTsKLSAgICB2b2lkIGNvbXB1dGVIZWlnaHRBbmRNYXJnaW4oY29uc3Qg
Qm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50Jik7CisgICAgY2xhc3MgUXVp
cmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3MgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgUXVpcmtzKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKIAotICAgIHZvaWQg
Y29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9u
dGFsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNvbXB1dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9u
KGNvbnN0IEJveCYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKTsKLSAgICB2b2lkIGNvbXB1
dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94
JiwgY29uc3QgQ29uc3RyYWludHNQYWlyJik7Ci0gICAgdm9pZCBjb21wdXRlVmVydGljYWxQb3Np
dGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdDb250ZXh0JiwgY29uc3QgQm94Jik7Cisg
ICAgICAgIGJvb2wgbmVlZHNTdHJldGNoaW5nKGNvbnN0IEJveCYpIGNvbnN0OworICAgICAgICBM
YXlvdXRVbml0IHN0cmV0Y2hlZEluRmxvd0hlaWdodChjb25zdCBCb3gmLCBDb250ZW50SGVpZ2h0
QW5kTWFyZ2luKTsKIAotICAgIHZvaWQgcHJlY29tcHV0ZVZlcnRpY2FsUG9zaXRpb25Gb3JCb3hB
bmRBbmNlc3RvcnMoY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyJik7CisgICAgICAg
IGJvb2wgc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4oY29uc3QgQm94JikgY29uc3Q7
CisgICAgICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFyZ2lu
QmVmb3JlKGNvbnN0IEJveCYpIGNvbnN0OworICAgICAgICBib29sIHNob3VsZENvbGxhcHNlTWFy
Z2luQWZ0ZXJXaXRoUGFyZW50TWFyZ2luQWZ0ZXIoY29uc3QgQm94JikgY29uc3Q7CiAKLSAgICBJ
bnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50
cygpIG92ZXJyaWRlOworICAgICAgICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBmb3Jt
YXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ+KEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmZvcm1hdHRpbmdDb250ZXh0KCkpOyB9
CisgICAgICAgIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdlb21ldHJ5KCkgY29u
c3QgeyByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgpOyB9CiAKLSAgICBMYXlv
dXRVbml0IHZlcnRpY2FsUG9zaXRpb25XaXRoTWFyZ2luKGNvbnN0IEJveCYsIGNvbnN0IFVzZWRW
ZXJ0aWNhbE1hcmdpbiYsIGNvbnN0IFZlcnRpY2FsQ29uc3RyYWludHMmKSBjb25zdDsKKyAgICB9
OworICAgIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyBxdWlya3MoKSBjb25zdCB7IHJl
dHVybiBRdWlya3MoKnRoaXMpOyB9CiAKICAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9z
aXRpb25pbmcgYW5kIHNpemluZyBmb3IgYm94ZXMgcGFydGljaXBhdGluZyBpbiBhIGJsb2NrIGZv
cm1hdHRpbmcgY29udGV4dC4KICAgICBjbGFzcyBHZW9tZXRyeSA6IHB1YmxpYyBGb3JtYXR0aW5n
Q29udGV4dDo6R2VvbWV0cnkgewpAQCAtOTcsNzMgKzk2LDMxIEBAIHByb3RlY3RlZDoKICAgICB9
OwogICAgIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdlb21ldHJ5KCkgY29uc3Qg
eyByZXR1cm4gR2VvbWV0cnkoKnRoaXMpOyB9CiAKLSAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVu
dHMgbWFyZ2luIGNvbGxhcHNpbmcgZm9yIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dC4KLSAgICBj
bGFzcyBNYXJnaW5Db2xsYXBzZSB7Ci0gICAgcHVibGljOgotICAgICAgICBVc2VkVmVydGljYWxN
YXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFy
Z2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOwotCi0gICAgICAgIFByZWNvbXB1dGVkTWFyZ2luQmVm
b3JlIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdp
bjo6Tm9uQ29sbGFwc2VkVmFsdWVzKTsKLSAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW5CZWZvcmVJ
Z25vcmluZ0NvbGxhcHNpbmdUaHJvdWdoKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzKTsKLSAgICAgICAgc3RhdGljIHZvaWQgdXBkYXRlTWFyZ2luQWZ0
ZXJGb3JQcmV2aW91c1NpYmxpbmcoQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYsIGNvbnN0IE1hcmdp
bkNvbGxhcHNlJiwgY29uc3QgQm94Jik7Ci0KLSAgICAgICAgYm9vbCBtYXJnaW5CZWZvcmVDb2xs
YXBzZXNXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBi
b29sIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJzdEluRmxvd0NoaWxkTWFyZ2luQmVmb3Jl
KGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBib29sIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dp
dGhQYXJlbnRNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBtYXJn
aW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0ZXIoY29uc3QgQm94
JikgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRN
YXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBtYXJnaW5BZnRlckNv
bGxhcHNlc1dpdGhMYXN0SW5GbG93Q2hpbGRNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsK
LSAgICAgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIGJvb2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRo
TmV4dFNpYmxpbmdNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIGJvb2wg
bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoU2libGluZ01hcmdpbkJlZm9yZVdpdGhDbGVhcmFuY2Uo
Y29uc3QgQm94JikgY29uc3Q7Ci0KLSAgICAgICAgYm9vbCBtYXJnaW5zQ29sbGFwc2VUaHJvdWdo
KGNvbnN0IEJveCYpIGNvbnN0OwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZnJpZW5kIGNsYXNz
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAgIE1hcmdpbkNvbGxhcHNlKGNvbnN0IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKLQotICAgICAgICBlbnVtIGNsYXNzIE1hcmdpblR5cGUg
eyBCZWZvcmUsIEFmdGVyIH07Ci0gICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYs
IE1hcmdpblR5cGUpIGNvbnN0OwotICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7Ci0g
ICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFy
Z2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwotCi0gICAgICAgIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwcmVjb21wdXRlZFBvc2l0aXZl
TmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25D
b2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwotICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0
aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFs
dWVzKGNvbnN0IEJveCYpIGNvbnN0OwotCi0gICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVN
YXJnaW4oVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVz
LCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMpIGNv
bnN0OwotICAgICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBtYXJnaW5WYWx1ZShVc2VkVmVydGlj
YWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMpIGNvbnN0OwotCi0gICAg
ICAgIGJvb2wgaGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYpIGNvbnN0OwotCi0gICAgICAgIExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5s
YXlvdXRTdGF0ZSgpOyB9Ci0gICAgICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9
Ci0gICAgICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0
KCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0OyB9Ci0KLSAgICAgICAg
Y29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0Owor
cHJvdGVjdGVkOgorICAgIHN0cnVjdCBDb25zdHJhaW50c1BhaXIgeworICAgICAgICBDb25zdHJh
aW50c0ZvckluRmxvd0NvbnRlbnQgZm9ybWF0dGluZ0NvbnRleHRSb290OworICAgICAgICBDb25z
dHJhaW50c0ZvckluRmxvd0NvbnRlbnQgY29udGFpbmluZ0Jsb2NrOwogICAgIH07Ci0gICAgTWFy
Z2luQ29sbGFwc2UgbWFyZ2luQ29sbGFwc2UoKSBjb25zdCB7IHJldHVybiBNYXJnaW5Db2xsYXBz
ZSgqdGhpcyk7IH0KKyAgICB2b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0
IENvbnRhaW5lckJveCYsIGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOwogCi0gICAgY2xh
c3MgUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3MgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgUXVpcmtzKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKKyAgICB2
b2lkIGNvbXB1dGVXaWR0aEFuZE1hcmdpbihjb25zdCBGbG9hdGluZ0NvbnRleHQmLCBjb25zdCBC
b3gmLCBjb25zdCBDb25zdHJhaW50c1BhaXImKTsKKyAgICB2b2lkIGNvbXB1dGVIZWlnaHRBbmRN
YXJnaW4oY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50Jik7CiAK
LSAgICAgICAgYm9vbCBuZWVkc1N0cmV0Y2hpbmcoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAg
IExheW91dFVuaXQgc3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYsIENvbnRlbnRIZWln
aHRBbmRNYXJnaW4pOworICAgIHZvaWQgY29tcHV0ZVN0YXRpY0hvcml6b250YWxQb3NpdGlvbihj
b25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKKyAgICB2b2lkIGNvbXB1
dGVTdGF0aWNWZXJ0aWNhbFBvc2l0aW9uKGNvbnN0IEJveCYsIGNvbnN0IFZlcnRpY2FsQ29uc3Ry
YWludHMmKTsKKyAgICB2b2lkIGNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3QgRmxv
YXRpbmdDb250ZXh0JiwgY29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNQYWlyJik7CisgICAg
dm9pZCBjb21wdXRlVmVydGljYWxQb3NpdGlvbkZvckZsb2F0Q2xlYXIoY29uc3QgRmxvYXRpbmdD
b250ZXh0JiwgY29uc3QgQm94Jik7CiAKLSAgICAgICAgYm9vbCBzaG91bGRJZ25vcmVDb2xsYXBz
ZWRRdWlya01hcmdpbihjb25zdCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBzaG91bGRDb2xs
YXBzZU1hcmdpbkJlZm9yZVdpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7
Ci0gICAgICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5B
ZnRlcihjb25zdCBCb3gmKSBjb25zdDsKKyAgICB2b2lkIHByZWNvbXB1dGVWZXJ0aWNhbFBvc2l0
aW9uRm9yQm94QW5kQW5jZXN0b3JzKGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpciYp
OwogCi0gICAgICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250
ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9y
bWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KLSAgICAgICAg
QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVy
biBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCk7IH0KKyAgICBJbnRyaW5zaWNXaWR0aENv
bnN0cmFpbnRzIGNvbXB1dGVkSW50cmluc2ljV2lkdGhDb25zdHJhaW50cygpIG92ZXJyaWRlOwog
Ci0gICAgfTsKLSAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3MgcXVpcmtzKCkgY29u
c3QgeyByZXR1cm4gUXVpcmtzKCp0aGlzKTsgfQorICAgIExheW91dFVuaXQgdmVydGljYWxQb3Np
dGlvbldpdGhNYXJnaW4oY29uc3QgQm94JiwgY29uc3QgVXNlZFZlcnRpY2FsTWFyZ2luJiwgY29u
c3QgVmVydGljYWxDb25zdHJhaW50cyYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8TGF5b3V0VW5p
dD4gdXNlZEF2YWlsYWJsZVdpZHRoRm9yRmxvYXRBdm9pZGVyKGNvbnN0IEZsb2F0aW5nQ29udGV4
dCYsIGNvbnN0IEJveCYsIGNvbnN0IENvbnN0cmFpbnRzUGFpciYpOworICAgIHZvaWQgdXBkYXRl
TWFyZ2luQWZ0ZXJGb3JQcmV2aW91c1NpYmxpbmcoY29uc3QgQm94Jik7CiAKLSAgICBjb25zdCBC
bG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgY29uc3QgeyByZXR1cm4gZG93
bmNhc3Q8QmxvY2tGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5n
U3RhdGUoKSk7IH0KKyAgICBCbG9ja01hcmdpbkNvbGxhcHNlIG1hcmdpbkNvbGxhcHNlKCkgY29u
c3Q7CiAgICAgQmxvY2tGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJu
IGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihGb3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0
dGluZ1N0YXRlKCkpOyB9CiAKICNpZiBBU1NFUlRfRU5BQkxFRApAQCAtMTg1LDExICsxNDIsNiBA
QCBpbmxpbmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpRdWlya3MoY29uc3QgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCYgYmxvYwogewogfQogCi1pbmxpbmUgQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Ok1hcmdpbkNvbGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmIGJsb2NrRm9ybWF0dGluZ0NvbnRleHQpCi0gICAgOiBtX2Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQoYmxvY2tGb3JtYXR0aW5nQ29udGV4dCkKLXsKLX0KLQogfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Js
b2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCBmMWZkNWJiZTIyYTFh
YjkyZTg1MWQ4NTBkZTBmNGE2YWQxODcxMGRiLi5iOTgzY2U0NGM2ZmExMzE3NjFhOTlhNzJlM2Rm
NjFjOTRkYmIzMjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5j
cHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkJsb2NrTWFyZ2luQ29sbGFw
c2UuaCIKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCkBAIC04MSw3
ICs4MSwxMiBAQCBzdGF0aWMgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQo
Y29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgcmV0dXJuIGxheW91dEJveC5lc3RhYmxpc2hlc0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQoKTsKIH0KIAotYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpNYXJnaW5Db2xsYXBzZTo6aGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25z
dAorQmxvY2tNYXJnaW5Db2xsYXBzZTo6QmxvY2tNYXJnaW5Db2xsYXBzZShjb25zdCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0KQorICAgIDogbV9ibG9ja0Zv
cm1hdHRpbmdDb250ZXh0KGJsb2NrRm9ybWF0dGluZ0NvbnRleHQpCit7Cit9CisKK2Jvb2wgQmxv
Y2tNYXJnaW5Db2xsYXBzZTo6aGFzQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25z
dAogewogICAgIGlmICghbGF5b3V0Qm94Lmhhc0Zsb2F0Q2xlYXIoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTAsNyArOTUsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1h
cmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpCiAgICAgcmV0
dXJuIGZvcm1hdHRpbmdDb250ZXh0KCkuZm9ybWF0dGluZ1N0YXRlKCkuaGFzQ2xlYXJhbmNlKGxh
eW91dEJveCk7CiB9CiAKLWJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlcihjb25zdCBCb3gm
IGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3Jl
Q29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25z
dAogewogICAgIC8vIDEuIFRoaXMgaXMgdGhlIGxhc3QgaW4tZmxvdyBjaGlsZCBhbmQgaXRzIG1h
cmdpbnMgY29sbGFwc2UgdGhyb3VnaCBhbmQgdGhlIG1hcmdpbiBhZnRlciBjb2xsYXBzZXMgd2l0
aCBwYXJlbnQncyBtYXJnaW4gYWZ0ZXIgb3IKICAgICAvLyAyLiBUaGlzIGJveCdzIG1hcmdpbiBh
ZnRlciBjb2xsYXBzZXMgd2l0aCB0aGUgbmV4dCBzaWJsaW5nJ3MgbWFyZ2luIGJlZm9yZSBhbmQg
dGhhdCBzaWJsaW5nIGNvbGxhcHNlcyB0aHJvdWdoIGFuZApAQCAtMTA4LDcgKzExMyw3IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNv
bGxhcHNlc1dpdGhQYXJlbnRNYXJnCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNX
aXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAorYm9vbCBC
bG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2lu
QmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewogICAgIC8vIFRoZSBmaXJzdCBp
bmZsb3cgY2hpbGQgY291bGQgcHJvcGFnYXRlIGl0cyB0b3AgbWFyZ2luIHRvIHBhcmVudC4KICAg
ICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMjEvYm94Lmh0bWwjY29sbGFwc2luZy1tYXJn
aW5zCkBAIC0xNTEsNyArMTU2LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmcKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBz
ZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFByZXZpb3VzU2libGluZ01hcmdpbkFmdGVyKGNv
bnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAorYm9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJn
aW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaWJsaW5nTWFyZ2luQWZ0ZXIoY29uc3QgQm94
JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Jsb2NrTGV2ZWxC
b3goKSk7CiAKQEAgLTE4MCw3ICsxODUsNyBAQCBib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUHJldmlvdXNTaQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNv
bGxhcHNlOjptYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsb3dDaGlsZE1hcmdpbkJl
Zm9yZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKK2Jvb2wgQmxvY2tNYXJnaW5Db2xsYXBz
ZTo6bWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aEZpcnN0SW5GbG93Q2hpbGRNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGxheW91dEJveC5pc0Js
b2NrTGV2ZWxCb3goKSk7CiAgICAgLy8gTWFyZ2lucyBvZiBlbGVtZW50cyB0aGF0IGVzdGFibGlz
aCBuZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cyBkbyBub3QgY29sbGFwc2Ugd2l0aCB0aGVp
ciBpbi1mbG93IGNoaWxkcmVuLgpAQCAtMjE0LDcgKzIxOSw3IEBAIGJvb2wgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhGaXJz
dEluRmxvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFNpYmxpbmdNYXJnaW5C
ZWZvcmVXaXRoQ2xlYXJhbmNlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAorYm9vbCBCbG9j
a01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhTaWJsaW5nTWFyZ2luQmVm
b3JlV2l0aENsZWFyYW5jZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICAvLyBJ
ZiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2lucyBvZiBhbiBlbGVtZW50IHdpdGggY2xlYXJhbmNl
IGFyZSBhZGpvaW5pbmcsIGl0cyBtYXJnaW5zIGNvbGxhcHNlIHdpdGggdGhlIGFkam9pbmluZyBt
YXJnaW5zCiAgICAgLy8gb2YgZm9sbG93aW5nIHNpYmxpbmdzIGJ1dCB0aGF0IHJlc3VsdGluZyBt
YXJnaW4gZG9lcyBub3QgY29sbGFwc2Ugd2l0aCB0aGUgYm90dG9tIG1hcmdpbiBvZiB0aGUgcGFy
ZW50IGJsb2NrLgpAQCAtMjMwLDcgKzIzNSw3IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFNpYmxpbmdNYXJnCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdp
bkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29u
c3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0Citib29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdp
bkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJv
eCkgY29uc3QKIHsKICAgICAvLyAxLiBUaGlzIGlzIHRoZSBmaXJzdCBpbi1mbG93IGNoaWxkIGFu
ZCBpdHMgbWFyZ2lucyBjb2xsYXBzZSB0aHJvdWdoIGFuZCB0aGUgbWFyZ2luIGJlZm9yZSBjb2xs
YXBzZXMgd2l0aCBwYXJlbnQncyBtYXJnaW4gYmVmb3JlIG9yCiAgICAgLy8gMi4gVGhpcyBib3gn
cyBtYXJnaW4gYmVmb3JlIGNvbGxhcHNlcyB3aXRoIHRoZSBwcmV2aW91cyBzaWJsaW5nJ3MgbWFy
Z2luIGFmdGVyIGFuZCB0aGF0IHNpYmxpbmcgY29sbGFwc2VzIHRocm91Z2ggYW5kCkBAIC0yNDgs
NyArMjUzLDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2kKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFm
dGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBj
b25zdAorYm9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQ
YXJlbnRNYXJnaW5BZnRlcihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBBU1NF
UlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKIApAQCAtMzAwLDcgKzMwNSw3IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29s
bGFwc2VzV2l0aFBhcmVudE1hcmdpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQmxvY2tG
b3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aExhc3RJbkZsb3dDaGlsZE1hcmdpbkFmdGVyKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAor
Ym9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5G
bG93Q2hpbGRNYXJnaW5BZnRlcihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBB
U1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKIApAQCAtMzQ5LDcgKzM1NCw3IEBA
IGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVy
Q29sbGFwc2VzV2l0aExhc3RJbkZsb3dDCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2Vz
V2l0aE5leHRTaWJsaW5nTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAor
Ym9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2li
bGluZ01hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBBU1NF
UlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKIApAQCAtMzU5LDcgKzM2NCw3IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29s
bGFwc2VzV2l0aE5leHRTaWJsaW5nCiAgICAgcmV0dXJuIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dp
dGhQcmV2aW91c1NpYmxpbmdNYXJnaW5BZnRlcigqbGF5b3V0Qm94Lm5leHRJbkZsb3dTaWJsaW5n
KCkpOwogfQogCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpt
YXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAorYm9vbCBC
bG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJveCYgbGF5
b3V0Qm94KSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkp
OwogCkBAIC00MzEsNyArNDM2LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6bWFyZ2luc0NvbGxhcHNlVGhyb3VnaChjb25zdCBCb3gmIGwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFp
cjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb21wdXRl
ZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFu
ZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIGEsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmRO
ZWdhdGl2ZVBhaXI6OlZhbHVlcyBiKSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2
ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OmNvbXB1dGVkUG9z
aXRpdmVBbmROZWdhdGl2ZU1hcmdpbihVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVn
YXRpdmVQYWlyOjpWYWx1ZXMgYSwgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0
aXZlUGFpcjo6VmFsdWVzIGIpIGNvbnN0CiB7CiAgICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3Np
dGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIGNvbXB1dGVkVmFsdWVzOwogICAgIGlmIChhLnBv
c2l0aXZlICYmIGIucG9zaXRpdmUpCkBAIC00NTQsNyArNDU5LDcgQEAgVXNlZFZlcnRpY2FsTWFy
Z2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6Ok1hcmcKICAgICByZXR1cm4gY29tcHV0ZWRWYWx1ZXM7CiB9CiAKLU9wdGlvbmFsPExheW91
dFVuaXQ+IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5WYWx1
ZShVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgbWFy
Z2luVmFsdWVzKSBjb25zdAorT3B0aW9uYWw8TGF5b3V0VW5pdD4gQmxvY2tNYXJnaW5Db2xsYXBz
ZTo6bWFyZ2luVmFsdWUoVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFp
cjo6VmFsdWVzIG1hcmdpblZhbHVlcykgY29uc3QKIHsKICAgICAvLyBXaGVuIHR3byBvciBtb3Jl
IG1hcmdpbnMgY29sbGFwc2UsIHRoZSByZXN1bHRpbmcgbWFyZ2luIHdpZHRoIGlzIHRoZSBtYXhp
bXVtIG9mIHRoZSBjb2xsYXBzaW5nIG1hcmdpbnMnIHdpZHRocy4KICAgICAvLyBJbiB0aGUgY2Fz
ZSBvZiBuZWdhdGl2ZSBtYXJnaW5zLCB0aGUgbWF4aW11bSBvZiB0aGUgYWJzb2x1dGUgdmFsdWVz
IG9mIHRoZSBuZWdhdGl2ZSBhZGpvaW5pbmcgbWFyZ2lucyBpcyBkZWR1Y3RlZCBmcm9tIHRoZSBt
YXhpbXVtCkBAIC00NjgsNDggKzQ3Myw3IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IEJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjptYXJnaW5WYWx1ZShVc2VkVmVyCiAgICAg
cmV0dXJuICptYXJnaW5WYWx1ZXMucG9zaXRpdmUgKyAqbWFyZ2luVmFsdWVzLm5lZ2F0aXZlOwog
fQogCi12b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjp1cGRhdGVN
YXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZyhCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBibG9j
a0Zvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBNYXJnaW5Db2xsYXBzZSYgbWFyZ2luQ29sbGFwc2Us
IGNvbnN0IEJveCYgbGF5b3V0Qm94KQotewotICAgIC8vIDEuIEdldCB0aGUgbWFyZ2luIGJlZm9y
ZSB2YWx1ZSBmcm9tIHRoZSBuZXh0IGluLWZsb3cgc2libGluZy4gVGhpcyBpcyB0aGUgc2FtZSBh
cyB0aGlzIGJveCdzIG1hcmdpbiBhZnRlciB2YWx1ZSBub3cgc2luY2UgdGhleSBhcmUgY29sbGFw
c2VkLgotICAgIC8vIDIuIFVwZGF0ZSB0aGUgY29sbGFwc2VkIG1hcmdpbiBhZnRlciB2YWx1ZSBh
cyB3ZWxsIGFzIHRoZSBwb3NpdGl2ZS9uZWdhdGl2ZSBjYWNoZS4KLSAgICAvLyAzLiBDaGVjayBp
ZiB0aGUgYm94J3MgbWFyZ2lucyBjb2xsYXBzZSB0aHJvdWdoLgotICAgIC8vIDQuIElmIHNvLCB1
cGRhdGUgdGhlIHBvc2l0aXZlL25lZ2F0aXZlIGNhY2hlLgotICAgIC8vIDUuIEluIGNhc2Ugb2Yg
Y29sbGFwc2VkIHRocm91Z2ggbWFyZ2lucyBjaGVjayBpZiB0aGUgYmVmb3JlIG1hcmdpbiBjb2xs
YXBlcyB3aXRoIHRoZSBwcmV2aW91cyBpbmZsb3cgc2libGluZydzIGFmdGVyIG1hcmdpbi4KLSAg
ICAvLyA2LiBJZiBzbywganVtcCB0byAjMi4KLSAgICAvLyA3LiBObyBuZWVkIHRvIHByb3BhZ2F0
ZSB0byBwYXJlbnQgYmVjYXVzZSBpdHMgbWFyZ2luIGlzIG5vdCBjb21wdXRlZCB5ZXQgKHByZS1j
b21wdXRlZCBhdCBtb3N0KS4KLSAgICBhdXRvKiBjdXJyZW50Qm94ID0gJmxheW91dEJveDsKLSAg
ICBhdXRvJiBibG9ja0Zvcm1hdHRpbmdTdGF0ZSA9IGJsb2NrRm9ybWF0dGluZ0NvbnRleHQuZm9y
bWF0dGluZ1N0YXRlKCk7Ci0gICAgd2hpbGUgKG1hcmdpbkNvbGxhcHNlLm1hcmdpbkJlZm9yZUNv
bGxhcHNlc1dpdGhQcmV2aW91c1NpYmxpbmdNYXJnaW5BZnRlcigqY3VycmVudEJveCkpIHsKLSAg
ICAgICAgYXV0byYgcHJldmlvdXNTaWJsaW5nID0gKmN1cnJlbnRCb3gtPnByZXZpb3VzSW5GbG93
U2libGluZygpOwotICAgICAgICBhdXRvIHByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luID0g
YmxvY2tGb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRpY2FsTWFyZ2luKHByZXZpb3VzU2libGluZyk7
Ci0KLSAgICAgICAgYXV0byBjb2xsYXBzZWRWZXJ0aWNhbE1hcmdpbkJlZm9yZSA9IHByZXZpb3Vz
U2libGluZ1ZlcnRpY2FsTWFyZ2luLmNvbGxhcHNlZFZhbHVlcy5iZWZvcmU7Ci0gICAgICAgIGF1
dG8gY29sbGFwc2VkVmVydGljYWxNYXJnaW5BZnRlciA9IGJsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Z2VvbWV0cnlGb3JCb3goKmN1cnJlbnRCb3gpLm1hcmdpbkJlZm9yZSgpOwotCi0gICAgICAgIGF1
dG8gbWFyZ2luc0NvbGxhcHNlVGhyb3VnaCA9IG1hcmdpbkNvbGxhcHNlLm1hcmdpbnNDb2xsYXBz
ZVRocm91Z2gocHJldmlvdXNTaWJsaW5nKTsKLSAgICAgICAgaWYgKG1hcmdpbnNDb2xsYXBzZVRo
cm91Z2gpCi0gICAgICAgICAgICBjb2xsYXBzZWRWZXJ0aWNhbE1hcmdpbkJlZm9yZSA9IGNvbGxh
cHNlZFZlcnRpY2FsTWFyZ2luQWZ0ZXI7Ci0KLSAgICAgICAgLy8gVXBkYXRlIHBvc2l0aXZlL25l
Z2F0aXZlIGNhY2hlLgotICAgICAgICBhdXRvIHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRp
dmVNYXJnaW4gPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGljYWxNYXJnaW4ocHJldmlv
dXNTaWJsaW5nKS5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzOwotICAgICAgICBhdXRvIHBvc2l0
aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUgPSBibG9ja0Zvcm1hdHRpbmdTdGF0ZS51c2VkVmVydGlj
YWxNYXJnaW4oKmN1cnJlbnRCb3gpLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYmVmb3JlOwot
Ci0gICAgICAgIGF1dG8gYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbiA9IHBy
ZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luOwotICAgICAgICBhZGp1c3RlZFByZXZpb3VzU2li
bGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYWZ0ZXIgPSBtYXJn
aW5Db2xsYXBzZS5jb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4ocG9zaXRpdmVOZWdh
dGl2ZU1hcmdpbkJlZm9yZSwgcHJldmlvdXNTaWJsaW5nUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbi5h
ZnRlcik7Ci0gICAgICAgIGlmIChtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKSB7Ci0gICAgICAgICAg
ICBhZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRp
dmVWYWx1ZXMuYmVmb3JlID0gbWFyZ2luQ29sbGFwc2UuY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0
aXZlTWFyZ2luKHByZXZpb3VzU2libGluZ1Bvc2l0aXZlTmVnYXRpdmVNYXJnaW4uYmVmb3JlLCBh
ZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFyZ2luLnBvc2l0aXZlQW5kTmVnYXRpdmVW
YWx1ZXMuYWZ0ZXIpOwotICAgICAgICAgICAgYWRqdXN0ZWRQcmV2aW91c1NpYmxpbmdWZXJ0aWNh
bE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmFmdGVyID0gYWRqdXN0ZWRQcmV2aW91
c1NpYmxpbmdWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFsdWVzLmJlZm9yZTsK
LSAgICAgICAgfQotICAgICAgICBibG9ja0Zvcm1hdHRpbmdTdGF0ZS5zZXRVc2VkVmVydGljYWxN
YXJnaW4ocHJldmlvdXNTaWJsaW5nLCBhZGp1c3RlZFByZXZpb3VzU2libGluZ1ZlcnRpY2FsTWFy
Z2luKTsKLQotICAgICAgICBpZiAoIW1hcmdpbnNDb2xsYXBzZVRocm91Z2gpCi0gICAgICAgICAg
ICBicmVhazsKLQotICAgICAgICBjdXJyZW50Qm94ID0gJnByZXZpb3VzU2libGluZzsKLSAgICB9
Ci19Ci0KLVVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdmVOZWdhdGl2
ZVZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgTWFyZ2luVHlwZSBtYXJnaW5UeXBlKSBjb25z
dAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJs
b2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiBsYXlv
dXRCb3gsIE1hcmdpblR5cGUgbWFyZ2luVHlwZSkgY29uc3QKIHsKICAgICBhdXRvJiBmb3JtYXR0
aW5nU3RhdGUgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdTdGF0ZSgpOwogICAgIC8v
IEJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlIGluIEJGQyBsYXlvdXQgdG8gZ2F0aGVyIHBvc2l0aXZl
IGFuZCBuZWdhdGl2ZSBtYXJnaW4gdmFsdWVzIGZvciBlaXRoZXIgYSBwcmV2aW91cyBzaWJsaW5n
IG9yIGEgY2hpbGQgYm94LApAQCAtNTE5LDcgKzQ4Myw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnCiAgICAgcmV0dXJuIG1hcmdpblR5cGUgPT0gTWFyZ2luVHlwZTo6QmVmb3JlID8gcG9zaXRp
dmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luLmJlZm9yZSA6IHBvc2l0aXZlQW5kTmVnYXRpdmVW
ZXJ0aWNhbE1hcmdpbi5hZnRlcjsgCiB9CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xs
YXBzZTo6cG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVz
KSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFs
dWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29u
c3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVz
IG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKIHsKICAgICBhdXRvIGZpcnN0Q2hpbGRDb2xsYXBz
ZWRNYXJnaW5CZWZvcmUgPSBbJl0oKSAtPiBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5k
TmVnYXRpdmVQYWlyOjpWYWx1ZXMgewogICAgICAgICBpZiAoIW1hcmdpbkJlZm9yZUNvbGxhcHNl
c1dpdGhGaXJzdEluRmxvd0NoaWxkTWFyZ2luQmVmb3JlKGxheW91dEJveCkpCkBAIC01NDksNyAr
NTEzLDcgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFs
dWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcKICAgICByZXR1cm4gY29tcHV0ZWRQb3Np
dGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKGNvbGxhcHNlZE1hcmdpbkJlZm9yZSwgbm9uQ29sbGFwc2Vk
QmVmb3JlKTsKIH0KIAotVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFp
cjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2
ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKK1VzZWRW
ZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdp
bkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiBsYXlvdXRC
b3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxhcHNlZFZh
bHVlcykgY29uc3QKIHsKICAgICBhdXRvIGxhc3RDaGlsZENvbGxhcHNlZE1hcmdpbkFmdGVyID0g
WyZdKCkgLT4gVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFs
dWVzIHsKICAgICAgICAgaWYgKCFtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0SW5GbG93Q2hp
bGRNYXJnaW5BZnRlcihsYXlvdXRCb3gpKQpAQCAtNTY4LDEzICs1MzIsMTMgQEAgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Ok1hcmcKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFy
Z2luKGxhc3RDaGlsZENvbGxhcHNlZE1hcmdpbkFmdGVyKCksIG5vbkNvbGxhcHNlZEFmdGVyKTsK
IH0KIAotTGF5b3V0VW5pdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6
bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJv
eCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFs
dWVzKQorTGF5b3V0VW5pdCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5CZWZvcmVJZ25vcmlu
Z0NvbGxhcHNpbmdUaHJvdWdoKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJn
aW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpCiB7CiAgICAgQVNTRVJU
KGxheW91dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAgICAgcmV0dXJuIG1hcmdpblZhbHVlKHBv
c2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBub25Db2xsYXBzZWRWYWx1ZXMp
KS52YWx1ZU9yKG5vbkNvbGxhcHNlZFZhbHVlcy5iZWZvcmUpOwogfQogCi1Vc2VkVmVydGljYWxN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmNvbGxhcHNlZFZl
cnRpY2FsVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpCitVc2VkVmVydGljYWxNYXJnaW4g
QmxvY2tNYXJnaW5Db2xsYXBzZTo6Y29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiBs
YXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIG5vbkNvbGxh
cHNlZFZhbHVlcykKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsK
ICAgICAvLyAxLiBHZXQgbWluL21heCBtYXJnaW4gdG9wIHZhbHVlcyBmcm9tIHRoZSBmaXJzdCBp
bi1mbG93IGNoaWxkIGlmIHdlIGFyZSBjb2xsYXBzaW5nIG1hcmdpbiB0b3Agd2l0aCBpdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2sv
QmxvY2tNYXJnaW5Db2xsYXBzZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQwZTM4Nzlh
YjU4Y2Y1OTc2ZTliYjM0N2ZlNWRiN2RhMWIyYjkzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xs
YXBzZS5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAiQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0
IHsKKworLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBzaW5nIGZvciBibG9j
ayBmb3JtYXR0aW5nIGNvbnRleHQuCitjbGFzcyBCbG9ja01hcmdpbkNvbGxhcHNlIHsKK3B1Ymxp
YzoKKyAgICBVc2VkVmVydGljYWxNYXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3Qg
Qm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworCisgICAgUHJl
Y29tcHV0ZWRNYXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94Jiwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAgIExheW91dFVuaXQg
bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gmLCBVc2VkVmVy
dGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CisKKyAgICBib29sIG1hcmdpbkJlZm9y
ZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94JikgY29uc3Q7CisgICAg
Ym9vbCBtYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoRmlyc3RJbkZsb3dDaGlsZE1hcmdpbkJlZm9y
ZShjb25zdCBCb3gmKSBjb25zdDsKKyAgICBib29sIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQ
YXJlbnRNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsKKyAgICBib29sIG1hcmdpbkJlZm9y
ZUNvbGxhcHNlc1dpdGhQcmV2aW91c1NpYmxpbmdNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25z
dDsKKworICAgIGJvb2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIo
Y29uc3QgQm94JikgY29uc3Q7CisgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhMYXN0
SW5GbG93Q2hpbGRNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsKKyAgICBib29sIG1hcmdp
bkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBjb25zdDsK
KyAgICBib29sIG1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aE5leHRTaWJsaW5nTWFyZ2luQmVmb3Jl
KGNvbnN0IEJveCYpIGNvbnN0OworICAgIGJvb2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoU2li
bGluZ01hcmdpbkJlZm9yZVdpdGhDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7CisKKyAgICBi
b29sIG1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29uc3QgQm94JikgY29uc3Q7CisKK3ByaXZhdGU6
CisgICAgZnJpZW5kIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ7CisgICAgQmxvY2tNYXJn
aW5Db2xsYXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CisKKyAgICBlbnVtIGNs
YXNzIE1hcmdpblR5cGUgeyBCZWZvcmUsIEFmdGVyIH07CisgICAgVXNlZFZlcnRpY2FsTWFyZ2lu
OjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMo
Y29uc3QgQm94JiwgTWFyZ2luVHlwZSkgY29uc3Q7CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQ
b3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZv
cmUoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNv
bnN0OworICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQWZ0ZXIoY29uc3QgQm94JiwgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OworCisgICAgVXNlZFZlcnRpY2FsTWFy
Z2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVO
ZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNv
bGxhcHNlZFZhbHVlcykgY29uc3Q7CisgICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFu
ZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyhj
b25zdCBCb3gmKSBjb25zdDsKKworICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmRO
ZWdhdGl2ZVBhaXI6OlZhbHVlcyBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oVXNl
ZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzLCBVc2VkVmVy
dGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMpIGNvbnN0OworICAg
IE9wdGlvbmFsPExheW91dFVuaXQ+IG1hcmdpblZhbHVlKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcykgY29uc3Q7CisKKyAgICBib29sIGhhc0NsZWFy
YW5jZShjb25zdCBCb3gmKSBjb25zdDsKKworICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgp
IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CisgICAg
Y29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KKyAgICBjb25zdCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDsgfQorCisgICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgbV9i
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OworfTsKKworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0
ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRl
eCBkZWZiM2Q1NTRmZTY4ZGU0MjczMWZmOGUyZDRiMjBlYWJmNjU5ZWMyLi4wMjAzNGFjMzVkMjMx
ZDhiY2YwMTZkNjJmYmM5ZWRhMTM3Mzg3ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xs
YXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCkBAIC0yNCw3ICsyNCw3IEBA
CiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJCbG9ja01hcmdpbkNvbGxhcHNlLmgiCiAKICNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIApAQCAtMzgsNyArMzgsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJn
aW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYg
bGF5b3V0Qm94KSBjb25zdAorVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZl
UGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdh
dGl2ZVZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBhdXRvJiBibG9j
a0Zvcm1hdHRpbmdTdGF0ZSA9IGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRT
dGF0ZSgpLmZvcm1hdHRpbmdTdGF0ZUZvckJveChsYXlvdXRCb3gpKTsKICAgICBpZiAoYmxvY2tG
b3JtYXR0aW5nU3RhdGUuaGFzVXNlZFZlcnRpY2FsTWFyZ2luKGxheW91dEJveCkpCkBAIC01MSw3
ICs1MSw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnCiAgICAgcmV0dXJuIHByZWNvbXB1dGVk
UG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZE1hcmdp
bik7CiB9CiAKLVVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQ
b3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVy
dGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0
CitVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxv
Y2tNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRQb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3Jl
KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZh
bHVlcyBub25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgYXV0byBmaXJzdENoaWxkQ29s
bGFwc2VkTWFyZ2luQmVmb3JlID0gWyZdKCkgLT4gVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2
ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHsKICAgICAgICAgaWYgKCFtYXJnaW5CZWZvcmVDb2xs
YXBzZXNXaXRoRmlyc3RJbkZsb3dDaGlsZE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQpAQCAtODMs
NyArODMsNyBAQCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpW
YWx1ZXMgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZwogICAgIHJldHVybiBjb21wdXRlZFBv
c2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oY29sbGFwc2VkTWFyZ2luQmVmb3JlLCBub25Db2xsYXBz
ZWRCZWZvcmUpOwogfQogCi1QcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94
JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzIHVzZWRO
b25Db2xsYXBzZWRNYXJnaW4pCitQcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBCbG9ja01hcmdpbkNv
bGxhcHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMgdXNlZE5vbkNvbGxhcHNlZE1hcmdp
bikKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKICAgICAvLyBE
b24ndCBwcmUtY29tcHV0ZSB2ZXJ0aWNhbCBtYXJnaW5zIGZvciBvdXQgb2YgZmxvdyBib3hlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxv
Y2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBw
ZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggYWM2ZGY2NWNh
NGJiNzEzNjA0ZWFiNzAwMTZjZjdkZWYxYzIyZjA0ZC4uZjBkMWM1MTNjNjMxYTM3NTkxYTllZTU0
OTUyMDVkMmIwYTVmOTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHAKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW5Gb3JUYWJsZUJveChjb25zdAogICAgIGJv
eEdlb21ldHJ5LnNldENvbnRlbnRCb3hIZWlnaHQoaGVpZ2h0QW5kTWFyZ2luLmNvbnRlbnRIZWln
aHQpOwogICAgIGJveEdlb21ldHJ5LnNldFZlcnRpY2FsTWFyZ2luKHsgbWFyZ2luQmVmb3JlKHZl
cnRpY2FsTWFyZ2luKSwgbWFyZ2luQWZ0ZXIodmVydGljYWxNYXJnaW4pIH0pOwogICAgIC8vIEFk
anVzdCB0aGUgcHJldmlvdXMgc2libGluZydzIG1hcmdpbiBib3R0b20gbm93IHRoYXQgdGhpcyBi
b3gncyB2ZXJ0aWNhbCBtYXJnaW4gaXMgY29tcHV0ZWQuCi0gICAgTWFyZ2luQ29sbGFwc2U6OnVw
ZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKCp0aGlzLCBtYXJnaW5Db2xsYXBzZSwg
dGFibGVCb3gpOworICAgIHVwZGF0ZU1hcmdpbkFmdGVyRm9yUHJldmlvdXNTaWJsaW5nKHRhYmxl
Qm94KTsKIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>