<?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>229985</bug_id>
          
          <creation_ts>2021-09-07 02:26:36 -0700</creation_ts>
          <short_desc>Remove -webkit-line-clamp behaviour where last link is placed after ellipsis box</short_desc>
          <delta_ts>2021-09-07 09:47:44 -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>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230005</dependson>
          <blocked>202920</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1790902</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-07 02:26:36 -0700</bug_when>
    <thetext>Remove this bizarre and buggy legacy behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790914</commentid>
    <comment_count>1</comment_count>
      <attachid>437472</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-07 02:43:34 -0700</bug_when>
    <thetext>Created attachment 437472
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1790919</commentid>
    <comment_count>2</comment_count>
      <attachid>437475</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-07 02:50:54 -0700</bug_when>
    <thetext>Created attachment 437475
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791024</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-07 08:30:35 -0700</bug_when>
    <thetext>Committed r282086 (241386@main): &lt;https://commits.webkit.org/241386@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 437475.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791027</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-07 08:31:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/82822912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791057</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-09-07 09:39:12 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 230005</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437472</attachid>
            <date>2021-09-07 02:43:34 -0700</date>
            <delta_ts>2021-09-07 02:50:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ellipsis-link-remove.patch</filename>
            <type>text/plain</type>
            <size>15596</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZTYzZGQ5MjVkYjIuLjlmOTNlZjJlMTNlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA5LTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgLXdlYmtpdC1saW5lLWNsYW1wIGJlaGF2aW91ciB3aGVyZSBsYXN0IGxpbmsgaXMg
cGxhY2VkIGFmdGVyIGVsbGlwc2lzIGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvbGluZS1jbGFtcC1saW5rLWFmdGVyLWVs
bGlwc2lzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvbGlu
ZS1jbGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLmh0bWw6IFJlbW92ZWQuCisKIDIwMjEtMDktMDYg
IENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBHYXJkZW5pbmcgb2YgdHdvIGZsYWt5IHRlc3RzIGFuZCB0aW1lb3V0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRl
ci1lbGxpcHNpcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvbGluZS1j
bGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjQ3MTQzNGNmZTYwLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0IHRoYXQgbGlua3MgcGFpbnRlZCBh
ZnRlciB0aGUgZWxsaXBzaXMgb2YgYSBmbGV4Ym94IHVzaW5nIC13ZWJraXQtbGluZS1jbGFtcCBp
cyBoaXQtdGVzdGFibGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJylbMF0udGV4dENvbnRlbnQgaXMgImNsaWNr
ZWQiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLWxp
bmUgb25lCi1saW5lIHR3b2NsaWNrZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
bGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2U5ODVlMzZjNDkuLjAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvbGluZS1jbGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzdHlsZT4KLXNwYW4jY29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IC8qIGNsYW1wIHRoZSB3aWR0aCBvZiB0aGUgZW5jbG9zaW5nIFAgdG8gaXRzIGNvbnRl
bnRzICovCi19Ci0KLWRpdiNmbGV4Ym94IHsKLSAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRp
Y2FsOwotICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWJv
eDsKLSAgICBvdmVyZmxvdy15OiBoaWRkZW47Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08c3BhbiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJmbGV4Ym94Ij5saW5lIG9uZTxi
cj5saW5lIHR3bzxhIGlkPSJsaW5rIiBocmVmPSIjIiBvbmNsaWNrPSJ0aGlzLnRleHRDb250ZW50
PSdjbGlja2VkJyI+bm90IGNsaWNrZWQ8L2E+PC9kaXY+Ci08L3NwYW4+Ci08c2NyaXB0PgotZGVz
Y3JpcHRpb24oJ1Rlc3QgdGhhdCBsaW5rcyBwYWludGVkIGFmdGVyIHRoZSBlbGxpcHNpcyBvZiBh
IGZsZXhib3ggdXNpbmcgLXdlYmtpdC1saW5lLWNsYW1wIGlzIGhpdC10ZXN0YWJsZS4nKTsKLQot
dmFyIGRpdlJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmxleGJveCIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotdmFyIGFSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxp
bmsiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLXZhciBjbGlja1ggPSBkaXZSZWN0LmxlZnQg
KyBkaXZSZWN0LndpZHRoIC0gKGFSZWN0LndpZHRoIC8gMik7Ci12YXIgY2xpY2tZID0gZGl2UmVj
dC50b3AgKyBkaXZSZWN0LmhlaWdodCAgLSAoYVJlY3QuaGVpZ2h0IC8gMik7Ci0KLWlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNs
aWNrWSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotfQotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdhJylbMF0udGV4dENvbnRlbnQiLCAiY2xpY2tlZCIpOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDRjMDc4ZTRmZWYwYy4uNTRmZDIzZTVhYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMjEtMDktMDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSAtd2Via2l0LWxpbmUtY2xhbXAgYmVoYXZpb3VyIHdoZXJlIGxhc3QgbGluayBpcyBw
bGFjZWQgYWZ0ZXIgZWxsaXBzaXMgYm94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjk5ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXAgaGFzIGEgYml6YXJyZSBhbmQgcmFu
ZG9tIGJlaGF2aW9yIHdoZXJlIHRoZSBsYXN0IGxpbmsgaW4gYSBwYXJhZ3JhcGggZ2V0cworICAg
ICAgICByZW5kZXJlZCBhZnRlciB0aGUgZWxsaXBzaXMgYm94LiBJdCB3YXMgZXhpc3RzIHRvIHN1
cHBvcnQgc29tZSBsb25nLWRlYWQgVUkuIE5vIG90aGVyIGVuZ2luZSBkb2VzIHRoaXMuCisgICAg
ICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBidWdneSBhbmQgb25seSB3b3JrcyBhdCBhbGwgdW5k
ZXIgYSBuYXJyb3cgc2V0IG9mIGNpY3J1bXN0YW5jZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBy
ZW1vdmVzIHRoZSBiZWhhdmlvci4KKworICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lFbGxpcHNp
c0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0JveDo6TGVnYWN5RWxs
aXBzaXNCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5RWxsaXBzaXNCb3g6OnBhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUVsbGlwc2lzQm94Ojpub2RlQXRQb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0JveDo6bWFya3VwQm94IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUVsbGlwc2lzQm94OjpwYWludE1hcmt1cEJveCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5Um9vdElubGluZUJveDo6cGxhY2VFbGxpcHNpcyk6CisgICAgICAgICogcmVuZGVy
aW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVw
cmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXApOgorCiAyMDIxLTA5LTA2ICBBbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVtb3Zl
IHJlZHVuZGFudCBOb25Sb290SW5saW5lQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5RWxsaXBzaXNCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUVsbGlwc2lzQm94LmNwcAppbmRleCAyN2U1ZDIxMTg0MGUuLmU0MzU0YzhkZjAzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5RWxsaXBzaXNCb3guY3BwCkBA
IC0zNCw5ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKExlZ2FjeUVsbGlwc2lzQm94KTsKIAotTGVnYWN5RWxsaXBzaXNCb3g6OkxlZ2Fj
eUVsbGlwc2lzQm94KFJlbmRlckJsb2NrRmxvdyYgcmVuZGVyZXIsIGNvbnN0IEF0b21TdHJpbmcm
IGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxpbmVGbG93Qm94KiBwYXJlbnQsIGludCB3aWR0aCwgaW50
IGhlaWdodCwgaW50IHksIGJvb2wgZmlyc3RMaW5lLCBib29sIGlzSG9yaXpvbnRhbCwgTGVnYWN5
SW5saW5lQm94KiBtYXJrdXBCb3gpCitMZWdhY3lFbGxpcHNpc0JveDo6TGVnYWN5RWxsaXBzaXNC
b3goUmVuZGVyQmxvY2tGbG93JiByZW5kZXJlciwgY29uc3QgQXRvbVN0cmluZyYgZWxsaXBzaXNT
dHIsIExlZ2FjeUlubGluZUZsb3dCb3gqIHBhcmVudCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBp
bnQgeSwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNIb3Jpem9udGFsKQogICAgIDogTGVnYWN5SW5s
aW5lRWxlbWVudEJveChyZW5kZXJlciwgRmxvYXRQb2ludCgwLCB5KSwgd2lkdGgsIGZpcnN0TGlu
ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBpc0hvcml6b250YWwsIDAsIDAsIHBhcmVudCkKLSAgICAs
IG1fc2hvdWxkUGFpbnRNYXJrdXBCb3gobWFya3VwQm94KQogICAgICwgbV9oZWlnaHQoaGVpZ2h0
KQogICAgICwgbV9zdHIoZWxsaXBzaXNTdHIpCiB7CkBAIC00NSw3ICs0NCw3IEBAIExlZ2FjeUVs
bGlwc2lzQm94OjpMZWdhY3lFbGxpcHNpc0JveChSZW5kZXJCbG9ja0Zsb3cmIHJlbmRlcmVyLCBj
b25zdCBBdG9tU3RyaW5nCiAjZW5kaWYKIH0KIAotdm9pZCBMZWdhY3lFbGxpcHNpc0JveDo6cGFp
bnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
TGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pCit2b2lkIExlZ2FjeUVs
bGlwc2lzQm94OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0LCBMYXlvdXRVbml0LCBMYXlvdXRVbml0KQogewogICAgIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0KCk7CiAgICAgY29uc3QgUmVuZGVyU3R5
bGUmIGxpbmVTdHlsZSA9IHRoaXMtPmxpbmVTdHlsZSgpOwpAQCAtNzgsMzggKzc3LDYgQEAgdm9p
ZCBMZWdhY3lFbGxpcHNpc0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnMKIAogICAgIGlmIChzZXRTaGFkb3cpCiAgICAgICAgIGNvbnRl
eHQuY2xlYXJTaGFkb3coKTsKLQotICAgIHBhaW50TWFya3VwQm94KHBhaW50SW5mbywgcGFpbnRP
ZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20sIGxpbmVTdHlsZSk7Ci19Ci0KLUxlZ2FjeUlubGlu
ZUJveCogTGVnYWN5RWxsaXBzaXNCb3g6Om1hcmt1cEJveCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFt
X3Nob3VsZFBhaW50TWFya3VwQm94KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIExlZ2FjeVJv
b3RJbmxpbmVCb3gqIGxhc3RMaW5lID0gYmxvY2tGbG93KCkubGFzdFJvb3RCb3goKTsKLSAgICBp
ZiAoIWxhc3RMaW5lKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIElmIHRoZSBsYXN0IGxp
bmUtYm94IG9uIHRoZSBsYXN0IGxpbmUgb2YgYSBibG9jayBpcyBhIGxpbmssIC13ZWJraXQtbGlu
ZS1jbGFtcCBwYWludHMgdGhhdCBib3ggYWZ0ZXIgdGhlIGVsbGlwc2lzLgotICAgIC8vIEl0IGRv
ZXMgbm90IGFjdHVhbGx5IG1vdmUgdGhlIGxpbmsuCi0gICAgTGVnYWN5SW5saW5lQm94KiBhbmNo
b3JCb3ggPSBsYXN0TGluZS0+bGFzdENoaWxkKCk7Ci0gICAgaWYgKCFhbmNob3JCb3ggfHwgIWFu
Y2hvckJveC0+cmVuZGVyZXIoKS5zdHlsZSgpLmlzTGluaygpKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIHJldHVybiBhbmNob3JCb3g7Ci19Ci0KLXZvaWQgTGVnYWN5RWxsaXBzaXNCb3g6OnBh
aW50TWFya3VwQm94KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tLCBjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCi17Ci0gICAgTGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3gg
PSB0aGlzLT5tYXJrdXBCb3goKTsKLSAgICBpZiAoIW1hcmt1cEJveCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQYWludE9mZnNldCA9IHBhaW50T2Zmc2V0Owot
ICAgIGFkanVzdGVkUGFpbnRPZmZzZXQubW92ZSh4KCkgKyBsb2dpY2FsV2lkdGgoKSAtIG1hcmt1
cEJveC0+eCgpLAotICAgICAgICB5KCkgKyBzdHlsZS5mb250TWV0cmljcygpLmFzY2VudCgpIC0g
KG1hcmt1cEJveC0+eSgpICsgbWFya3VwQm94LT5saW5lU3R5bGUoKS5mb250TWV0cmljcygpLmFz
Y2VudCgpKSk7Ci0gICAgbWFya3VwQm94LT5wYWludChwYWludEluZm8sIGFkanVzdGVkUGFpbnRP
ZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20pOwogfQogCiBJbnRSZWN0IExlZ2FjeUVsbGlwc2lz
Qm94OjpzZWxlY3Rpb25SZWN0KCkKQEAgLTE0NSwyMSArMTEyLDEwIEBAIHZvaWQgTGVnYWN5RWxs
aXBzaXNCb3g6OnBhaW50U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
TGF5b3V0UG9pCiAgICAgY29udGV4dC5maWxsUmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzV2l0
aFdyaXRpbmdEaXJlY3Rpb24oc2VsZWN0aW9uUmVjdCwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRl
dmljZVNjYWxlRmFjdG9yKCksIHJ1bi5sdHIoKSksIGMpOwogfQogCi1ib29sIExlZ2FjeUVsbGlw
c2lzQm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20sIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikK
K2Jvb2wgTGVnYWN5RWxsaXBzaXNCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYg
bG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
LCBMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBIaXRUZXN0QWN0aW9uKQogewogICAgIExheW91dFBv
aW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNldCArIExheW91dFBvaW50KHRv
cExlZnQoKSk7CiAKLSAgICAvLyBIaXQgdGVzdCB0aGUgbWFya3VwIGJveC4KLSAgICBpZiAoTGVn
YWN5SW5saW5lQm94KiBtYXJrdXBCb3ggPSB0aGlzLT5tYXJrdXBCb3goKSkgewotICAgICAgICBj
b25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlID0gdGhpcy0+bGluZVN0eWxlKCk7Ci0gICAgICAg
IExheW91dFVuaXQgbXR4IHsgYWRqdXN0ZWRMb2NhdGlvbi54KCkgKyBsb2dpY2FsV2lkdGgoKSAt
IG1hcmt1cEJveC0+eCgpIH07Ci0gICAgICAgIExheW91dFVuaXQgbXR5IHsgYWRqdXN0ZWRMb2Nh
dGlvbi55KCkgKyBsaW5lU3R5bGUuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSAtIChtYXJrdXBCb3gt
PnkoKSArIG1hcmt1cEJveC0+bGluZVN0eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgfTsK
LSAgICAgICAgaWYgKG1hcmt1cEJveC0+bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2Nh
dGlvbkluQ29udGFpbmVyLCBMYXlvdXRQb2ludChtdHgsIG10eSksIGxpbmVUb3AsIGxpbmVCb3R0
b20sIGhpdFRlc3RBY3Rpb24pKSB7Ci0gICAgICAgICAgICBibG9ja0Zsb3coKS51cGRhdGVIaXRU
ZXN0UmVzdWx0KHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lci5wb2ludCgpIC0gTGF5b3V0U2l6
ZShtdHgsIG10eSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9
Ci0KICAgICBhdXRvIGJvdW5kc1JlY3QgPSBMYXlvdXRSZWN0IHsgYWRqdXN0ZWRMb2NhdGlvbiwg
TGF5b3V0U2l6ZShMYXlvdXRVbml0KGxvZ2ljYWxXaWR0aCgpKSwgbV9oZWlnaHQpIH07CiAgICAg
aWYgKHZpc2libGVUb0hpdFRlc3RpbmcocmVxdWVzdCkgJiYgbG9jYXRpb25JbkNvbnRhaW5lci5p
bnRlcnNlY3RzKGJvdW5kc1JlY3QpKSB7CiAgICAgICAgIGJsb2NrRmxvdygpLnVwZGF0ZUhpdFRl
c3RSZXN1bHQocmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLnBvaW50KCkgLSB0b0xheW91dFNp
emUoYWRqdXN0ZWRMb2NhdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xlZ2FjeUVsbGlwc2lzQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5
RWxsaXBzaXNCb3guaAppbmRleCA4YTg1YjEwYzcyYTguLjhhZGQyNmU2ZWY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmgKQEAgLTMwLDcgKzMwLDcg
QEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIExlZ2FjeUVsbGlwc2lzQm94IGZpbmFsIDog
cHVibGljIExlZ2FjeUlubGluZUVsZW1lbnRCb3ggewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoTGVnYWN5RWxsaXBzaXNCb3gpOwogcHVibGljOgotICAgIExlZ2FjeUVsbGlwc2lzQm94KFJl
bmRlckJsb2NrRmxvdyYsIGNvbnN0IEF0b21TdHJpbmcmIGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxp
bmVGbG93Qm94KiBwYXJlbnQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHksIGJvb2wgZmly
c3RMaW5lLCBib29sIGlzSG9yaXpvbnRhbCwgTGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3gpOwor
ICAgIExlZ2FjeUVsbGlwc2lzQm94KFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IEF0b21TdHJpbmcm
IGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxpbmVGbG93Qm94KiBwYXJlbnQsIGludCB3aWR0aCwgaW50
IGhlaWdodCwgaW50IHksIGJvb2wgZmlyc3RMaW5lLCBib29sIGlzSG9yaXpvbnRhbCk7CiAgICAg
dm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaXQgbGlu
ZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBvdmVycmlkZTsKICAgICBib29sIG5vZGVBdFBv
aW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSwgSGl0
VGVzdEFjdGlvbikgZmluYWw7CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShSZW5kZXJPYmpl
Y3Q6OkhpZ2hsaWdodFN0YXRlIHMpIHsgbV9zZWxlY3Rpb25TdGF0ZSA9IHM7IH0KQEAgLTM5LDEz
ICszOSwxMCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2tGbG93JiBibG9ja0Zsb3coKSBjb25z
dCB7IHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KExlZ2FjeUlubGluZUJveDo6cmVu
ZGVyZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHBhaW50TWFya3VwQm94KFBhaW50SW5m
byYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBM
YXlvdXRVbml0IGxpbmVCb3R0b20sIGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgaW50IGhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGln
aHRTdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIG92ZXJyaWRlIHsgcmV0dXJuIG1fc2VsZWN0aW9uU3Rh
dGU7IH0KICAgICB2b2lkIHBhaW50U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExh
eW91dFBvaW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250Q2FzY2FkZSYpOwotICAg
IExlZ2FjeUlubGluZUJveCogbWFya3VwQm94KCkgY29uc3Q7CiAKLSAgICBib29sIG1fc2hvdWxk
UGFpbnRNYXJrdXBCb3g7CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBtX3NlbGVj
dGlvblN0YXRlIHsgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6Tm9uZSB9OwogICAgIGlu
dCBtX2hlaWdodDsKICAgICBBdG9tU3RyaW5nIG1fc3RyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCmluZGV4IDE4NWYyZWY3MjUwYi4uYmNi
NTc1OGMwODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9v
dElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJ
bmxpbmVCb3guY3BwCkBAIC0xMjcsMTMgKzEyNywxMyBAQCBib29sIExlZ2FjeVJvb3RJbmxpbmVC
b3g6OmxpbmVDYW5BY2NvbW1vZGF0ZUVsbGlwc2lzKGJvb2wgbHRyLCBpbnQgYmxvY2tFZGdlLCBp
bgogICAgIHJldHVybiBMZWdhY3lJbmxpbmVGbG93Qm94OjpjYW5BY2NvbW1vZGF0ZUVsbGlwc2lz
KGx0ciwgYmxvY2tFZGdlLCBlbGxpcHNpc1dpZHRoKTsKIH0KIAotZmxvYXQgTGVnYWN5Um9vdElu
bGluZUJveDo6cGxhY2VFbGxpcHNpcyhjb25zdCBBdG9tU3RyaW5nJiBlbGxpcHNpc1N0ciwgIGJv
b2wgbHRyLCBmbG9hdCBibG9ja0xlZnRFZGdlLCBmbG9hdCBibG9ja1JpZ2h0RWRnZSwgZmxvYXQg
ZWxsaXBzaXNXaWR0aCwgTGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3gpCitmbG9hdCBMZWdhY3lS
b290SW5saW5lQm94OjpwbGFjZUVsbGlwc2lzKGNvbnN0IEF0b21TdHJpbmcmIGVsbGlwc2lzU3Ry
LCBib29sIGx0ciwgZmxvYXQgYmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZs
b2F0IGVsbGlwc2lzV2lkdGgpCiB7CiAgICAgaWYgKCFnRWxsaXBzaXNCb3hNYXApCiAgICAgICAg
IGdFbGxpcHNpc0JveE1hcCA9IG5ldyBFbGxpcHNpc0JveE1hcCgpOwogCiAgICAgQVNTRVJUKCFo
YXNFbGxpcHNpc0JveCgpKTsKLSAgICBhdXRvKiBlbGxpcHNpc0JveCA9IGdFbGxpcHNpc0JveE1h
cC0+c2V0KHRoaXMsIG1ha2VVbmlxdWU8TGVnYWN5RWxsaXBzaXNCb3g+KGJsb2NrRmxvdygpLCBl
bGxpcHNpc1N0ciwgdGhpcywgZWxsaXBzaXNXaWR0aCAtIChtYXJrdXBCb3ggPyBtYXJrdXBCb3gt
PmxvZ2ljYWxXaWR0aCgpIDogMCksIGxvZ2ljYWxIZWlnaHQoKSwgeSgpLCAhcHJldlJvb3RCb3go
KSwgaXNIb3Jpem9udGFsKCksIG1hcmt1cEJveCkpLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAg
ICBhdXRvKiBlbGxpcHNpc0JveCA9IGdFbGxpcHNpc0JveE1hcC0+c2V0KHRoaXMsIG1ha2VVbmlx
dWU8TGVnYWN5RWxsaXBzaXNCb3g+KGJsb2NrRmxvdygpLCBlbGxpcHNpc1N0ciwgdGhpcywgZWxs
aXBzaXNXaWR0aCwgbG9naWNhbEhlaWdodCgpLCB5KCksICFwcmV2Um9vdEJveCgpLCBpc0hvcml6
b250YWwoKSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKICAgICBzZXRIYXNFbGxpcHNpc0JveCh0
cnVlKTsKICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCBhbiBSVEwgdmVyc2lvbiBvZiB0aGlzPwog
ICAgIGlmIChsdHIgJiYgKHgoKSArIGxvZ2ljYWxXaWR0aCgpICsgZWxsaXBzaXNXaWR0aCkgPD0g
YmxvY2tSaWdodEVkZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lSb290SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9v
dElubGluZUJveC5oCmluZGV4IDQzOGMxNmJhMWRmOS4uMzk0YTY5MjJiMzBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmgKQEAgLTEwNyw3ICsx
MDcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGxpbmVDYW5BY2NvbW1vZGF0ZUVsbGlwc2lzKGJv
b2wgbHRyLCBpbnQgYmxvY2tFZGdlLCBpbnQgbGluZUJveEVkZ2UsIGludCBlbGxpcHNpc1dpZHRo
KTsKICAgICAvLyBSZXR1cm4gdGhlIHRydW5jYXRlZFdpZHRoLCB0aGUgd2lkdGggb2YgdGhlIHRy
dW5jYXRlZCB0ZXh0ICsgZWxsaXBzaXMuCi0gICAgZmxvYXQgcGxhY2VFbGxpcHNpcyhjb25zdCBB
dG9tU3RyaW5nJiBlbGxpcHNpc1N0ciwgYm9vbCBsdHIsIGZsb2F0IGJsb2NrTGVmdEVkZ2UsIGZs
b2F0IGJsb2NrUmlnaHRFZGdlLCBmbG9hdCBlbGxpcHNpc1dpZHRoLCBMZWdhY3lJbmxpbmVCb3gq
IG1hcmt1cEJveCA9IG51bGxwdHIpOworICAgIGZsb2F0IHBsYWNlRWxsaXBzaXMoY29uc3QgQXRv
bVN0cmluZyYgZWxsaXBzaXNTdHIsIGJvb2wgbHRyLCBmbG9hdCBibG9ja0xlZnRFZGdlLCBmbG9h
dCBibG9ja1JpZ2h0RWRnZSwgZmxvYXQgZWxsaXBzaXNXaWR0aCk7CiAgICAgLy8gUmV0dXJuIHRo
ZSBwb3NpdGlvbiBvZiB0aGUgTGVnYWN5RWxsaXBzaXNCb3ggb3IgLTEuCiAgICAgZmxvYXQgcGxh
Y2VFbGxpcHNpc0JveChib29sIGx0ciwgZmxvYXQgYmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tS
aWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lkdGgsIGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9v
bCYgZm91bmRCb3gpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IDdlMThmZjBhNmU1Zi4u
NWQ5N2YyMGJhYjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMTA2MSwxNiArMTA2MSw3IEBAIHZv
aWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRl
cmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5
bGUgPSBudW1WaXNpYmxlTGluZXMgPT0gMSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwog
ICAgICAgICBjb25zdCBGb250Q2FzY2FkZSYgZm9udCA9IGxpbmVTdHlsZS5mb250Q2FzY2FkZSgp
OwogCi0gICAgICAgIC8vIEdldCBlbGxpcHNpcyB3aWR0aCwgYW5kIGlmIHRoZSBsYXN0IGNoaWxk
IGlzIGFuIGFuY2hvciwgaXQgd2lsbCBnbyBhZnRlciB0aGUgZWxsaXBzaXMsIHNvIGFkZCBpbiBh
IHNwYWNlIGFuZCB0aGUgYW5jaG9yIHdpZHRoIHRvbwotICAgICAgICBMYXlvdXRVbml0IHRvdGFs
V2lkdGg7Ci0gICAgICAgIExlZ2FjeUlubGluZUJveCogYW5jaG9yQm94ID0gbGFzdExpbmUtPmxh
c3RDaGlsZCgpOwotICAgICAgICBhdXRvJiBsYXN0VmlzaWJsZVJlbmRlcmVyID0gbGFzdFZpc2li
bGVMaW5lLT5maXJzdENoaWxkKCktPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChhbmNob3JCb3gg
JiYgYW5jaG9yQm94LT5yZW5kZXJlcigpLnN0eWxlKCkuaXNMaW5rKCkgJiYgJmxhc3RWaXNpYmxl
UmVuZGVyZXIgIT0gJmFuY2hvckJveC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHRvdGFsV2lk
dGggPSBhbmNob3JCb3gtPmxvZ2ljYWxXaWR0aCgpICsgZm9udC53aWR0aChjb25zdHJ1Y3RUZXh0
UnVuKGVsbGlwc2lzQW5kU3BhY2UsIDIsIHN0eWxlKCkpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICBhbmNob3JCb3ggPSBudWxscHRyOwotICAgICAgICAgICAgdG90YWxXaWR0aCA9IGZv
bnQud2lkdGgoY29uc3RydWN0VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBzdHlsZSgp
KSk7Ci0gICAgICAgIH0KKyAgICAgICAgYXV0byB0b3RhbFdpZHRoID0gZm9udC53aWR0aChjb25z
dHJ1Y3RUZXh0UnVuKCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkpKTsKIAogICAgICAg
ICAvLyBTZWUgaWYgdGhpcyB3aWR0aCBjYW4gYmUgYWNjb21tb2RhdGVkIG9uIHRoZSBsYXN0IHZp
c2libGUgbGluZQogICAgICAgICBSZW5kZXJCbG9ja0Zsb3cmIGRlc3RCbG9jayA9IGxhc3RWaXNp
YmxlTGluZS0+YmxvY2tGbG93KCk7CkBAIC0xMDkxLDcgKzEwODIsNyBAQCB2b2lkIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVy
YXRvciwgYm9vbAogICAgICAgICAvLyBMZXQgdGhlIHRydW5jYXRpb24gY29kZSBraWNrIGluLgog
ICAgICAgICAvLyBGSVhNRTogdGhlIHRleHQgYWxpZ25tZW50IHNob3VsZCBiZSByZWNvbXB1dGVk
IGFmdGVyIHRoZSB3aWR0aCBjaGFuZ2VzIGR1ZSB0byB0cnVuY2F0aW9uLgogICAgICAgICBMYXlv
dXRVbml0IGJsb2NrTGVmdEVkZ2UgPSBkZXN0QmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5l
KExheW91dFVuaXQobGFzdFZpc2libGVMaW5lLT55KCkpLCBEb05vdEluZGVudFRleHQpOwotICAg
ICAgICBsYXN0VmlzaWJsZUxpbmUtPnBsYWNlRWxsaXBzaXMoYW5jaG9yQm94ID8gZWxsaXBzaXNB
bmRTcGFjZVN0ciA6IGVsbGlwc2lzU3RyLCBsZWZ0VG9SaWdodCwgYmxvY2tMZWZ0RWRnZSwgYmxv
Y2tSaWdodEVkZ2UsIHRvdGFsV2lkdGgsIGFuY2hvckJveCk7CisgICAgICAgIGxhc3RWaXNpYmxl
TGluZS0+cGxhY2VFbGxpcHNpcyhlbGxpcHNpc1N0ciwgbGVmdFRvUmlnaHQsIGJsb2NrTGVmdEVk
Z2UsIGJsb2NrUmlnaHRFZGdlLCB0b3RhbFdpZHRoKTsKICAgICAgICAgZGVzdEJsb2NrLnNldEhh
c01hcmt1cFRydW5jYXRpb24odHJ1ZSk7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437475</attachid>
            <date>2021-09-07 02:50:54 -0700</date>
            <delta_ts>2021-09-07 08:30:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>ellipsis-link-remove-3.patch</filename>
            <type>text/plain</type>
            <size>16610</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZTYzZGQ5MjVkYjIuLjlmOTNlZjJlMTNlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA5LTA3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgLXdlYmtpdC1saW5lLWNsYW1wIGJlaGF2aW91ciB3aGVyZSBsYXN0IGxpbmsgaXMg
cGxhY2VkIGFmdGVyIGVsbGlwc2lzIGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5OTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvbGluZS1jbGFtcC1saW5rLWFmdGVyLWVs
bGlwc2lzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvbGlu
ZS1jbGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLmh0bWw6IFJlbW92ZWQuCisKIDIwMjEtMDktMDYg
IENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS11bV1BFXSBHYXJkZW5pbmcgb2YgdHdvIGZsYWt5IHRlc3RzIGFuZCB0aW1lb3V0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRl
ci1lbGxpcHNpcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvbGluZS1j
bGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjQ3MTQzNGNmZTYwLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UZXN0IHRoYXQgbGlua3MgcGFpbnRlZCBh
ZnRlciB0aGUgZWxsaXBzaXMgb2YgYSBmbGV4Ym94IHVzaW5nIC13ZWJraXQtbGluZS1jbGFtcCBp
cyBoaXQtdGVzdGFibGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJylbMF0udGV4dENvbnRlbnQgaXMgImNsaWNr
ZWQiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLWxp
bmUgb25lCi1saW5lIHR3b2NsaWNrZWQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
bGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mbGV4Ym94L2xpbmUtY2xhbXAtbGluay1hZnRlci1lbGxpcHNpcy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2U5ODVlMzZjNDkuLjAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvbGluZS1jbGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzdHlsZT4KLXNwYW4jY29udGFpbmVyIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IC8qIGNsYW1wIHRoZSB3aWR0aCBvZiB0aGUgZW5jbG9zaW5nIFAgdG8gaXRzIGNvbnRl
bnRzICovCi19Ci0KLWRpdiNmbGV4Ym94IHsKLSAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRp
Y2FsOwotICAgIC13ZWJraXQtbGluZS1jbGFtcDogMTsKLSAgICBkaXNwbGF5OiAtd2Via2l0LWJv
eDsKLSAgICBvdmVyZmxvdy15OiBoaWRkZW47Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08c3BhbiBpZD0iY29udGFpbmVyIj4KLSAgICA8ZGl2IGlkPSJmbGV4Ym94Ij5saW5lIG9uZTxi
cj5saW5lIHR3bzxhIGlkPSJsaW5rIiBocmVmPSIjIiBvbmNsaWNrPSJ0aGlzLnRleHRDb250ZW50
PSdjbGlja2VkJyI+bm90IGNsaWNrZWQ8L2E+PC9kaXY+Ci08L3NwYW4+Ci08c2NyaXB0PgotZGVz
Y3JpcHRpb24oJ1Rlc3QgdGhhdCBsaW5rcyBwYWludGVkIGFmdGVyIHRoZSBlbGxpcHNpcyBvZiBh
IGZsZXhib3ggdXNpbmcgLXdlYmtpdC1saW5lLWNsYW1wIGlzIGhpdC10ZXN0YWJsZS4nKTsKLQot
dmFyIGRpdlJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmxleGJveCIpLmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpOwotdmFyIGFSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxp
bmsiKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLXZhciBjbGlja1ggPSBkaXZSZWN0LmxlZnQg
KyBkaXZSZWN0LndpZHRoIC0gKGFSZWN0LndpZHRoIC8gMik7Ci12YXIgY2xpY2tZID0gZGl2UmVj
dC50b3AgKyBkaXZSZWN0LmhlaWdodCAgLSAoYVJlY3QuaGVpZ2h0IC8gMik7Ci0KLWlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKLSAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjbGlja1gsIGNs
aWNrWSk7Ci0gICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOwotfQotCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdhJylbMF0udGV4dENvbnRlbnQiLCAiY2xpY2tlZCIpOwotPC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkYjE0YjNkODkzYjcuLjI1MDBkMmUw
ZDg1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU2
NCw3ICs1NjQsNiBAQCBmYXN0L2ZpbGVzL2ZpbGUtcmVhZGVyLWRpcmVjdG9yeS1jcmFzaC5odG1s
IFsgU2tpcCBdCiBmYXN0L2ZpbGVzL2ZpbGVyZWFkZXItemlwLWJ1bmRsZS5odG1sIFsgU2tpcCBd
CiBmYXN0L2ZpbGVzL251bGwtb3JpZ2luLXN0cmluZy5odG1sIFsgU2tpcCBdCiBmYXN0L2ZpbGVz
L3dvcmtlcnMvd29ya2VyLWFwcGx5LWJsb2ItdXJsLXRvLXhoci5odG1sIFsgU2tpcCBdCi1mYXN0
L2ZsZXhib3gvbGluZS1jbGFtcC1saW5rLWFmdGVyLWVsbGlwc2lzLmh0bWwgWyBTa2lwIF0KIGZh
c3QvZm9ybXMvMjUxNTMuaHRtbCBbIFNraXAgXQogZmFzdC9mb3Jtcy9kaXNhYmxlZC1tb3VzZWRv
d24tZXZlbnQuaHRtbCBbIFNraXAgXQogZmFzdC9mb3Jtcy9kaXNhYmxlZC1zZWFyY2gtaW5wdXQu
aHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRjMDc4ZTRmZWYwYy4uNTRmZDIzZTVhYjdiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDktMDcgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSAtd2Via2l0LWxpbmUtY2xhbXAgYmVo
YXZpb3VyIHdoZXJlIGxhc3QgbGluayBpcyBwbGFjZWQgYWZ0ZXIgZWxsaXBzaXMgYm94CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk5ODUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtd2Via2l0LWxpbmUt
Y2xhbXAgaGFzIGEgYml6YXJyZSBhbmQgcmFuZG9tIGJlaGF2aW9yIHdoZXJlIHRoZSBsYXN0IGxp
bmsgaW4gYSBwYXJhZ3JhcGggZ2V0cworICAgICAgICByZW5kZXJlZCBhZnRlciB0aGUgZWxsaXBz
aXMgYm94LiBJdCB3YXMgZXhpc3RzIHRvIHN1cHBvcnQgc29tZSBsb25nLWRlYWQgVUkuIE5vIG90
aGVyIGVuZ2luZSBkb2VzIHRoaXMuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBidWdn
eSBhbmQgb25seSB3b3JrcyBhdCBhbGwgdW5kZXIgYSBuYXJyb3cgc2V0IG9mIGNpY3J1bXN0YW5j
ZXMuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBiZWhhdmlvci4KKworICAgICAg
ICAqIHJlbmRlcmluZy9MZWdhY3lFbGxpcHNpc0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
ZWdhY3lFbGxpcHNpc0JveDo6TGVnYWN5RWxsaXBzaXNCb3gpOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5RWxsaXBzaXNCb3g6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUVsbGlw
c2lzQm94Ojpub2RlQXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lFbGxpcHNpc0Jv
eDo6bWFya3VwQm94IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeUVs
bGlwc2lzQm94OjpwYWludE1hcmt1cEJveCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5n
L0xlZ2FjeUVsbGlwc2lzQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5Um9vdElubGluZUJveDo6cGxhY2VF
bGxpcHNpcyk6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAp
OgorCiAyMDIxLTA5LTA2ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJbnRlZ3JhdGlvbl0gUmVtb3ZlIHJlZHVuZGFudCBOb25Sb290SW5saW5lQm94CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5RWxsaXBzaXNCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcAppbmRleCAy
N2U1ZDIxMTg0MGUuLmU0MzU0YzhkZjAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGVnYWN5RWxsaXBzaXNCb3guY3BwCkBAIC0zNCw5ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKExlZ2FjeUVsbGlwc2lzQm94KTsK
IAotTGVnYWN5RWxsaXBzaXNCb3g6OkxlZ2FjeUVsbGlwc2lzQm94KFJlbmRlckJsb2NrRmxvdyYg
cmVuZGVyZXIsIGNvbnN0IEF0b21TdHJpbmcmIGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxpbmVGbG93
Qm94KiBwYXJlbnQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHksIGJvb2wgZmlyc3RMaW5l
LCBib29sIGlzSG9yaXpvbnRhbCwgTGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3gpCitMZWdhY3lF
bGxpcHNpc0JveDo6TGVnYWN5RWxsaXBzaXNCb3goUmVuZGVyQmxvY2tGbG93JiByZW5kZXJlciwg
Y29uc3QgQXRvbVN0cmluZyYgZWxsaXBzaXNTdHIsIExlZ2FjeUlubGluZUZsb3dCb3gqIHBhcmVu
dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgeSwgYm9vbCBmaXJzdExpbmUsIGJvb2wgaXNI
b3Jpem9udGFsKQogICAgIDogTGVnYWN5SW5saW5lRWxlbWVudEJveChyZW5kZXJlciwgRmxvYXRQ
b2ludCgwLCB5KSwgd2lkdGgsIGZpcnN0TGluZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBpc0hvcml6
b250YWwsIDAsIDAsIHBhcmVudCkKLSAgICAsIG1fc2hvdWxkUGFpbnRNYXJrdXBCb3gobWFya3Vw
Qm94KQogICAgICwgbV9oZWlnaHQoaGVpZ2h0KQogICAgICwgbV9zdHIoZWxsaXBzaXNTdHIpCiB7
CkBAIC00NSw3ICs0NCw3IEBAIExlZ2FjeUVsbGlwc2lzQm94OjpMZWdhY3lFbGxpcHNpc0JveChS
ZW5kZXJCbG9ja0Zsb3cmIHJlbmRlcmVyLCBjb25zdCBBdG9tU3RyaW5nCiAjZW5kaWYKIH0KIAot
dm9pZCBMZWdhY3lFbGxpcHNpc0JveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0
IGxpbmVCb3R0b20pCit2b2lkIExlZ2FjeUVsbGlwc2lzQm94OjpwYWludChQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBMYXlvdXRVbml0LCBMYXlv
dXRVbml0KQogewogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0KCk7CiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIGxpbmVTdHlsZSA9IHRoaXMtPmxpbmVTdHls
ZSgpOwpAQCAtNzgsMzggKzc3LDYgQEAgdm9pZCBMZWdhY3lFbGxpcHNpc0JveDo6cGFpbnQoUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKIAogICAgIGlm
IChzZXRTaGFkb3cpCiAgICAgICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKLQotICAgIHBhaW50
TWFya3VwQm94KHBhaW50SW5mbywgcGFpbnRPZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20sIGxp
bmVTdHlsZSk7Ci19Ci0KLUxlZ2FjeUlubGluZUJveCogTGVnYWN5RWxsaXBzaXNCb3g6Om1hcmt1
cEJveCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX3Nob3VsZFBhaW50TWFya3VwQm94KQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIExlZ2FjeVJvb3RJbmxpbmVCb3gqIGxhc3RMaW5lID0gYmxvY2tG
bG93KCkubGFzdFJvb3RCb3goKTsKLSAgICBpZiAoIWxhc3RMaW5lKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIC8vIElmIHRoZSBsYXN0IGxpbmUtYm94IG9uIHRoZSBsYXN0IGxpbmUgb2YgYSBi
bG9jayBpcyBhIGxpbmssIC13ZWJraXQtbGluZS1jbGFtcCBwYWludHMgdGhhdCBib3ggYWZ0ZXIg
dGhlIGVsbGlwc2lzLgotICAgIC8vIEl0IGRvZXMgbm90IGFjdHVhbGx5IG1vdmUgdGhlIGxpbmsu
Ci0gICAgTGVnYWN5SW5saW5lQm94KiBhbmNob3JCb3ggPSBsYXN0TGluZS0+bGFzdENoaWxkKCk7
Ci0gICAgaWYgKCFhbmNob3JCb3ggfHwgIWFuY2hvckJveC0+cmVuZGVyZXIoKS5zdHlsZSgpLmlz
TGluaygpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBhbmNob3JCb3g7Ci19Ci0K
LXZvaWQgTGVnYWN5RWxsaXBzaXNCb3g6OnBhaW50TWFya3VwQm94KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lQm90dG9tLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCi17Ci0gICAg
TGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3ggPSB0aGlzLT5tYXJrdXBCb3goKTsKLSAgICBpZiAo
IW1hcmt1cEJveCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQ
YWludE9mZnNldCA9IHBhaW50T2Zmc2V0OwotICAgIGFkanVzdGVkUGFpbnRPZmZzZXQubW92ZSh4
KCkgKyBsb2dpY2FsV2lkdGgoKSAtIG1hcmt1cEJveC0+eCgpLAotICAgICAgICB5KCkgKyBzdHls
ZS5mb250TWV0cmljcygpLmFzY2VudCgpIC0gKG1hcmt1cEJveC0+eSgpICsgbWFya3VwQm94LT5s
aW5lU3R5bGUoKS5mb250TWV0cmljcygpLmFzY2VudCgpKSk7Ci0gICAgbWFya3VwQm94LT5wYWlu
dChwYWludEluZm8sIGFkanVzdGVkUGFpbnRPZmZzZXQsIGxpbmVUb3AsIGxpbmVCb3R0b20pOwog
fQogCiBJbnRSZWN0IExlZ2FjeUVsbGlwc2lzQm94OjpzZWxlY3Rpb25SZWN0KCkKQEAgLTE0NSwy
MSArMTEyLDEwIEBAIHZvaWQgTGVnYWN5RWxsaXBzaXNCb3g6OnBhaW50U2VsZWN0aW9uKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5b3V0UG9pCiAgICAgY29udGV4dC5maWxsUmVj
dChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzV2l0aFdyaXRpbmdEaXJlY3Rpb24oc2VsZWN0aW9uUmVj
dCwgcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCksIHJ1bi5sdHIoKSks
IGMpOwogfQogCi1ib29sIExlZ2FjeUVsbGlwc2lzQm94Ojpub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0
TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVs
YXRlZE9mZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20sIEhp
dFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKK2Jvb2wgTGVnYWN5RWxsaXBzaXNCb3g6Om5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBIaXRU
ZXN0QWN0aW9uKQogewogICAgIExheW91dFBvaW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVs
YXRlZE9mZnNldCArIExheW91dFBvaW50KHRvcExlZnQoKSk7CiAKLSAgICAvLyBIaXQgdGVzdCB0
aGUgbWFya3VwIGJveC4KLSAgICBpZiAoTGVnYWN5SW5saW5lQm94KiBtYXJrdXBCb3ggPSB0aGlz
LT5tYXJrdXBCb3goKSkgewotICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlID0g
dGhpcy0+bGluZVN0eWxlKCk7Ci0gICAgICAgIExheW91dFVuaXQgbXR4IHsgYWRqdXN0ZWRMb2Nh
dGlvbi54KCkgKyBsb2dpY2FsV2lkdGgoKSAtIG1hcmt1cEJveC0+eCgpIH07Ci0gICAgICAgIExh
eW91dFVuaXQgbXR5IHsgYWRqdXN0ZWRMb2NhdGlvbi55KCkgKyBsaW5lU3R5bGUuZm9udE1ldHJp
Y3MoKS5hc2NlbnQoKSAtIChtYXJrdXBCb3gtPnkoKSArIG1hcmt1cEJveC0+bGluZVN0eWxlKCku
Zm9udE1ldHJpY3MoKS5hc2NlbnQoKSkgfTsKLSAgICAgICAgaWYgKG1hcmt1cEJveC0+bm9kZUF0
UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBMYXlvdXRQb2ludCht
dHgsIG10eSksIGxpbmVUb3AsIGxpbmVCb3R0b20sIGhpdFRlc3RBY3Rpb24pKSB7Ci0gICAgICAg
ICAgICBibG9ja0Zsb3coKS51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgbG9jYXRpb25JbkNv
bnRhaW5lci5wb2ludCgpIC0gTGF5b3V0U2l6ZShtdHgsIG10eSkpOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBhdXRvIGJvdW5kc1JlY3QgPSBMYXlv
dXRSZWN0IHsgYWRqdXN0ZWRMb2NhdGlvbiwgTGF5b3V0U2l6ZShMYXlvdXRVbml0KGxvZ2ljYWxX
aWR0aCgpKSwgbV9oZWlnaHQpIH07CiAgICAgaWYgKHZpc2libGVUb0hpdFRlc3RpbmcocmVxdWVz
dCkgJiYgbG9jYXRpb25JbkNvbnRhaW5lci5pbnRlcnNlY3RzKGJvdW5kc1JlY3QpKSB7CiAgICAg
ICAgIGJsb2NrRmxvdygpLnVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCBsb2NhdGlvbkluQ29u
dGFpbmVyLnBvaW50KCkgLSB0b0xheW91dFNpemUoYWRqdXN0ZWRMb2NhdGlvbikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVsbGlwc2lzQm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5RWxsaXBzaXNCb3guaAppbmRleCA4YTg1YjEwYzcy
YTguLjhhZGQyNmU2ZWY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xl
Z2FjeUVsbGlwc2lzQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUVs
bGlwc2lzQm94LmgKQEAgLTMwLDcgKzMwLDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNz
IExlZ2FjeUVsbGlwc2lzQm94IGZpbmFsIDogcHVibGljIExlZ2FjeUlubGluZUVsZW1lbnRCb3gg
ewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGVnYWN5RWxsaXBzaXNCb3gpOwogcHVibGlj
OgotICAgIExlZ2FjeUVsbGlwc2lzQm94KFJlbmRlckJsb2NrRmxvdyYsIGNvbnN0IEF0b21TdHJp
bmcmIGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxpbmVGbG93Qm94KiBwYXJlbnQsIGludCB3aWR0aCwg
aW50IGhlaWdodCwgaW50IHksIGJvb2wgZmlyc3RMaW5lLCBib29sIGlzSG9yaXpvbnRhbCwgTGVn
YWN5SW5saW5lQm94KiBtYXJrdXBCb3gpOworICAgIExlZ2FjeUVsbGlwc2lzQm94KFJlbmRlckJs
b2NrRmxvdyYsIGNvbnN0IEF0b21TdHJpbmcmIGVsbGlwc2lzU3RyLCBMZWdhY3lJbmxpbmVGbG93
Qm94KiBwYXJlbnQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHksIGJvb2wgZmlyc3RMaW5l
LCBib29sIGlzSG9yaXpvbnRhbCk7CiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBM
YXlvdXRQb2ludCYsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKSBv
dmVycmlkZTsKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUJvdHRvbSwgSGl0VGVzdEFjdGlvbikgZmluYWw7CiAgICAgdm9pZCBz
ZXRTZWxlY3Rpb25TdGF0ZShSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIHMpIHsgbV9zZWxl
Y3Rpb25TdGF0ZSA9IHM7IH0KQEAgLTM5LDEzICszOSwxMCBAQCBwdWJsaWM6CiAgICAgUmVuZGVy
QmxvY2tGbG93JiBibG9ja0Zsb3coKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxSZW5kZXJCbG9j
a0Zsb3c+KExlZ2FjeUlubGluZUJveDo6cmVuZGVyZXIoKSk7IH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIHBhaW50TWFya3VwQm94KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20sIGNvbnN0IFJl
bmRlclN0eWxlJik7CiAgICAgaW50IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9
CiAgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBzZWxlY3Rpb25TdGF0ZSgpIG92ZXJy
aWRlIHsgcmV0dXJuIG1fc2VsZWN0aW9uU3RhdGU7IH0KICAgICB2b2lkIHBhaW50U2VsZWN0aW9u
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgUmVuZGVyU3R5bGUm
LCBjb25zdCBGb250Q2FzY2FkZSYpOwotICAgIExlZ2FjeUlubGluZUJveCogbWFya3VwQm94KCkg
Y29uc3Q7CiAKLSAgICBib29sIG1fc2hvdWxkUGFpbnRNYXJrdXBCb3g7CiAgICAgUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZSBtX3NlbGVjdGlvblN0YXRlIHsgUmVuZGVyT2JqZWN0OjpIaWdo
bGlnaHRTdGF0ZTo6Tm9uZSB9OwogICAgIGludCBtX2hlaWdodDsKICAgICBBdG9tU3RyaW5nIG1f
c3RyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxp
bmVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3gu
Y3BwCmluZGV4IDE4NWYyZWY3MjUwYi4uYmNiNTc1OGMwODY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCkBAIC0xMjcsMTMgKzEyNywx
MyBAQCBib29sIExlZ2FjeVJvb3RJbmxpbmVCb3g6OmxpbmVDYW5BY2NvbW1vZGF0ZUVsbGlwc2lz
KGJvb2wgbHRyLCBpbnQgYmxvY2tFZGdlLCBpbgogICAgIHJldHVybiBMZWdhY3lJbmxpbmVGbG93
Qm94OjpjYW5BY2NvbW1vZGF0ZUVsbGlwc2lzKGx0ciwgYmxvY2tFZGdlLCBlbGxpcHNpc1dpZHRo
KTsKIH0KIAotZmxvYXQgTGVnYWN5Um9vdElubGluZUJveDo6cGxhY2VFbGxpcHNpcyhjb25zdCBB
dG9tU3RyaW5nJiBlbGxpcHNpc1N0ciwgIGJvb2wgbHRyLCBmbG9hdCBibG9ja0xlZnRFZGdlLCBm
bG9hdCBibG9ja1JpZ2h0RWRnZSwgZmxvYXQgZWxsaXBzaXNXaWR0aCwgTGVnYWN5SW5saW5lQm94
KiBtYXJrdXBCb3gpCitmbG9hdCBMZWdhY3lSb290SW5saW5lQm94OjpwbGFjZUVsbGlwc2lzKGNv
bnN0IEF0b21TdHJpbmcmIGVsbGlwc2lzU3RyLCBib29sIGx0ciwgZmxvYXQgYmxvY2tMZWZ0RWRn
ZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lkdGgpCiB7CiAgICAgaWYg
KCFnRWxsaXBzaXNCb3hNYXApCiAgICAgICAgIGdFbGxpcHNpc0JveE1hcCA9IG5ldyBFbGxpcHNp
c0JveE1hcCgpOwogCiAgICAgQVNTRVJUKCFoYXNFbGxpcHNpc0JveCgpKTsKLSAgICBhdXRvKiBl
bGxpcHNpc0JveCA9IGdFbGxpcHNpc0JveE1hcC0+c2V0KHRoaXMsIG1ha2VVbmlxdWU8TGVnYWN5
RWxsaXBzaXNCb3g+KGJsb2NrRmxvdygpLCBlbGxpcHNpc1N0ciwgdGhpcywgZWxsaXBzaXNXaWR0
aCAtIChtYXJrdXBCb3ggPyBtYXJrdXBCb3gtPmxvZ2ljYWxXaWR0aCgpIDogMCksIGxvZ2ljYWxI
ZWlnaHQoKSwgeSgpLCAhcHJldlJvb3RCb3goKSwgaXNIb3Jpem9udGFsKCksIG1hcmt1cEJveCkp
Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAgICBhdXRvKiBlbGxpcHNpc0JveCA9IGdFbGxpcHNp
c0JveE1hcC0+c2V0KHRoaXMsIG1ha2VVbmlxdWU8TGVnYWN5RWxsaXBzaXNCb3g+KGJsb2NrRmxv
dygpLCBlbGxpcHNpc1N0ciwgdGhpcywgZWxsaXBzaXNXaWR0aCwgbG9naWNhbEhlaWdodCgpLCB5
KCksICFwcmV2Um9vdEJveCgpLCBpc0hvcml6b250YWwoKSkpLml0ZXJhdG9yLT52YWx1ZS5nZXQo
KTsKICAgICBzZXRIYXNFbGxpcHNpc0JveCh0cnVlKTsKICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCBhbiBSVEwgdmVyc2lvbiBvZiB0aGlzPwogICAgIGlmIChsdHIgJiYgKHgoKSArIGxvZ2ljYWxX
aWR0aCgpICsgZWxsaXBzaXNXaWR0aCkgPD0gYmxvY2tSaWdodEVkZ2UpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5oCmluZGV4IDQzOGMxNmJhMWRm
OS4uMzk0YTY5MjJiMzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVn
YWN5Um9vdElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lS
b290SW5saW5lQm94LmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGxp
bmVDYW5BY2NvbW1vZGF0ZUVsbGlwc2lzKGJvb2wgbHRyLCBpbnQgYmxvY2tFZGdlLCBpbnQgbGlu
ZUJveEVkZ2UsIGludCBlbGxpcHNpc1dpZHRoKTsKICAgICAvLyBSZXR1cm4gdGhlIHRydW5jYXRl
ZFdpZHRoLCB0aGUgd2lkdGggb2YgdGhlIHRydW5jYXRlZCB0ZXh0ICsgZWxsaXBzaXMuCi0gICAg
ZmxvYXQgcGxhY2VFbGxpcHNpcyhjb25zdCBBdG9tU3RyaW5nJiBlbGxpcHNpc1N0ciwgYm9vbCBs
dHIsIGZsb2F0IGJsb2NrTGVmdEVkZ2UsIGZsb2F0IGJsb2NrUmlnaHRFZGdlLCBmbG9hdCBlbGxp
cHNpc1dpZHRoLCBMZWdhY3lJbmxpbmVCb3gqIG1hcmt1cEJveCA9IG51bGxwdHIpOworICAgIGZs
b2F0IHBsYWNlRWxsaXBzaXMoY29uc3QgQXRvbVN0cmluZyYgZWxsaXBzaXNTdHIsIGJvb2wgbHRy
LCBmbG9hdCBibG9ja0xlZnRFZGdlLCBmbG9hdCBibG9ja1JpZ2h0RWRnZSwgZmxvYXQgZWxsaXBz
aXNXaWR0aCk7CiAgICAgLy8gUmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGUgTGVnYWN5RWxsaXBz
aXNCb3ggb3IgLTEuCiAgICAgZmxvYXQgcGxhY2VFbGxpcHNpc0JveChib29sIGx0ciwgZmxvYXQg
YmxvY2tMZWZ0RWRnZSwgZmxvYXQgYmxvY2tSaWdodEVkZ2UsIGZsb2F0IGVsbGlwc2lzV2lkdGgs
IGZsb2F0ICZ0cnVuY2F0ZWRXaWR0aCwgYm9vbCYgZm91bmRCb3gpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwCmluZGV4IDdlMThmZjBhNmU1Zi4uNjYyNjM4OTZlZjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cApAQCAtMTA1NSwyMiArMTA1NSwxMSBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJv
eDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAogICAgICAg
ICBpZiAoIWxhc3RWaXNpYmxlTGluZSB8fCAhbGFzdFZpc2libGVMaW5lLT5maXJzdENoaWxkKCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBjb25zdCBVQ2hhciBlbGxpcHNpc0Fu
ZFNwYWNlWzJdID0geyBob3Jpem9udGFsRWxsaXBzaXMsICcgJyB9OwotICAgICAgICBzdGF0aWMg
TWFpblRocmVhZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IGVsbGlwc2lzQW5kU3Bh
Y2VTdHIoZWxsaXBzaXNBbmRTcGFjZSwgMik7CiAgICAgICAgIHN0YXRpYyBNYWluVGhyZWFkTmV2
ZXJEZXN0cm95ZWQ8Y29uc3QgQXRvbVN0cmluZz4gZWxsaXBzaXNTdHIoJmhvcml6b250YWxFbGxp
cHNpcywgMSk7CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBsaW5lU3R5bGUgPSBudW1WaXNp
YmxlTGluZXMgPT0gMSA/IGZpcnN0TGluZVN0eWxlKCkgOiBzdHlsZSgpOwogICAgICAgICBjb25z
dCBGb250Q2FzY2FkZSYgZm9udCA9IGxpbmVTdHlsZS5mb250Q2FzY2FkZSgpOwogCi0gICAgICAg
IC8vIEdldCBlbGxpcHNpcyB3aWR0aCwgYW5kIGlmIHRoZSBsYXN0IGNoaWxkIGlzIGFuIGFuY2hv
ciwgaXQgd2lsbCBnbyBhZnRlciB0aGUgZWxsaXBzaXMsIHNvIGFkZCBpbiBhIHNwYWNlIGFuZCB0
aGUgYW5jaG9yIHdpZHRoIHRvbwotICAgICAgICBMYXlvdXRVbml0IHRvdGFsV2lkdGg7Ci0gICAg
ICAgIExlZ2FjeUlubGluZUJveCogYW5jaG9yQm94ID0gbGFzdExpbmUtPmxhc3RDaGlsZCgpOwot
ICAgICAgICBhdXRvJiBsYXN0VmlzaWJsZVJlbmRlcmVyID0gbGFzdFZpc2libGVMaW5lLT5maXJz
dENoaWxkKCktPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChhbmNob3JCb3ggJiYgYW5jaG9yQm94
LT5yZW5kZXJlcigpLnN0eWxlKCkuaXNMaW5rKCkgJiYgJmxhc3RWaXNpYmxlUmVuZGVyZXIgIT0g
JmFuY2hvckJveC0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHRvdGFsV2lkdGggPSBhbmNob3JC
b3gtPmxvZ2ljYWxXaWR0aCgpICsgZm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVuKGVsbGlwc2lz
QW5kU3BhY2UsIDIsIHN0eWxlKCkpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhbmNo
b3JCb3ggPSBudWxscHRyOwotICAgICAgICAgICAgdG90YWxXaWR0aCA9IGZvbnQud2lkdGgoY29u
c3RydWN0VGV4dFJ1bigmaG9yaXpvbnRhbEVsbGlwc2lzLCAxLCBzdHlsZSgpKSk7Ci0gICAgICAg
IH0KKyAgICAgICAgYXV0byB0b3RhbFdpZHRoID0gZm9udC53aWR0aChjb25zdHJ1Y3RUZXh0UnVu
KCZob3Jpem9udGFsRWxsaXBzaXMsIDEsIHN0eWxlKCkpKTsKIAogICAgICAgICAvLyBTZWUgaWYg
dGhpcyB3aWR0aCBjYW4gYmUgYWNjb21tb2RhdGVkIG9uIHRoZSBsYXN0IHZpc2libGUgbGluZQog
ICAgICAgICBSZW5kZXJCbG9ja0Zsb3cmIGRlc3RCbG9jayA9IGxhc3RWaXNpYmxlTGluZS0+Ymxv
Y2tGbG93KCk7CkBAIC0xMDkxLDcgKzEwODAsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4
aWJsZUJveDo6YXBwbHlMaW5lQ2xhbXAoRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbAog
ICAgICAgICAvLyBMZXQgdGhlIHRydW5jYXRpb24gY29kZSBraWNrIGluLgogICAgICAgICAvLyBG
SVhNRTogdGhlIHRleHQgYWxpZ25tZW50IHNob3VsZCBiZSByZWNvbXB1dGVkIGFmdGVyIHRoZSB3
aWR0aCBjaGFuZ2VzIGR1ZSB0byB0cnVuY2F0aW9uLgogICAgICAgICBMYXlvdXRVbml0IGJsb2Nr
TGVmdEVkZ2UgPSBkZXN0QmxvY2subG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQo
bGFzdFZpc2libGVMaW5lLT55KCkpLCBEb05vdEluZGVudFRleHQpOwotICAgICAgICBsYXN0Vmlz
aWJsZUxpbmUtPnBsYWNlRWxsaXBzaXMoYW5jaG9yQm94ID8gZWxsaXBzaXNBbmRTcGFjZVN0ciA6
IGVsbGlwc2lzU3RyLCBsZWZ0VG9SaWdodCwgYmxvY2tMZWZ0RWRnZSwgYmxvY2tSaWdodEVkZ2Us
IHRvdGFsV2lkdGgsIGFuY2hvckJveCk7CisgICAgICAgIGxhc3RWaXNpYmxlTGluZS0+cGxhY2VF
bGxpcHNpcyhlbGxpcHNpc1N0ciwgbGVmdFRvUmlnaHQsIGJsb2NrTGVmdEVkZ2UsIGJsb2NrUmln
aHRFZGdlLCB0b3RhbFdpZHRoKTsKICAgICAgICAgZGVzdEJsb2NrLnNldEhhc01hcmt1cFRydW5j
YXRpb24odHJ1ZSk7CiAgICAgfQogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>