<?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>204743</bug_id>
          
          <creation_ts>2019-12-02 04:19:33 -0800</creation_ts>
          <short_desc>[LFC][Integration] Setup root box properties</short_desc>
          <delta_ts>2019-12-03 02:52:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</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>1594547</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-02 04:19:33 -0800</bug_when>
    <thetext>Line layout needs to know about border and padding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594548</commentid>
    <comment_count>1</comment_count>
      <attachid>384608</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-02 04:26:29 -0800</bug_when>
    <thetext>Created attachment 384608
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594551</commentid>
    <comment_count>2</comment_count>
      <attachid>384611</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-02 04:49:41 -0800</bug_when>
    <thetext>Created attachment 384611
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594728</commentid>
    <comment_count>3</comment_count>
      <attachid>384644</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-02 11:56:08 -0800</bug_when>
    <thetext>Created attachment 384644
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594930</commentid>
    <comment_count>4</comment_count>
      <attachid>384695</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-02 23:55:09 -0800</bug_when>
    <thetext>Created attachment 384695
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594946</commentid>
    <comment_count>5</comment_count>
      <attachid>384699</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-03 02:08:04 -0800</bug_when>
    <thetext>Created attachment 384699
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594954</commentid>
    <comment_count>6</comment_count>
      <attachid>384699</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 02:51:53 -0800</bug_when>
    <thetext>Comment on attachment 384699
patch

Clearing flags on attachment: 384699

Committed r253032: &lt;https://trac.webkit.org/changeset/253032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594955</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 02:51:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594956</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-03 02:52:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/57586511&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384608</attachid>
            <date>2019-12-02 04:26:29 -0800</date>
            <delta_ts>2019-12-02 04:49:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-border-padding.patch</filename>
            <type>text/plain</type>
            <size>15831</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWVhOGE2M2VlNC4uMGQxYWUyM2VkODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEx
LTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6Om1fd3JpdGVDb3VudCB3aGVuIHNhbXBs
ZVJhdGUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGFkODI0MGI4OTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ct
aW50ZWdyYXRpb24tYmFzaWMuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4
dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8c3R5bGU+
CisubWFyZ2luIHsgbWFyZ2luOiAxMHB4IDQwMHB4IDIwcHggNXB4OyB9CisuYm9yZGVyIHsgYm9y
ZGVyLWxlZnQ6IDEwcHggc29saWQgYmxhY2s7IGJvcmRlci10b3A6IDVweCBzb2xpZCBibGFjazsg
Ym9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlk
IGJsYWNrOyB9CisucGFkZGluZyB7IHBhZGRpbmc6IDEwcHggNTBweCAyMHB4IDVweDsgfQorPC9z
dHlsZT4KKzxkaXYgY2xhc3M9Im1hcmdpbiI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IDwv
ZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0
ZXh0IDwvZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciBwYWRkaW5nIj5UZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRl
eHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI5ZGJmNDFl
N2QuLjk1OTllZjg1ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMTItMDIg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBTZXR1cCByb290IGJveCBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250
ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMuaHRtbAorCisgICAgICAgIExpbmUgbGF5b3V0IG5l
ZWRzIHRvIGtub3cgYWJvdXQgYm9yZGVycyBhbmQgcGFkZGluZy4KKworICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxheW91dENvbnRleHQ6OmxheW91dCk6CisKKyAgICAgICAgU3BsaXQgc2V0dXAgYW5kIGxh
eW91dCB0byBzZXBhcmF0ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29u
dGV4dC5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmNwcC4KKworICAgICAgICBNb3ZlZCB0byBpbnRlZ3JhdGlvbiBzdWJk
aXJlY3RvcnkuCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tG
bG93TGluZUxheW91dDo6cHJlcGFyZVJvb3RCb3hQcm9wZXJ0aWVzRm9yTGF5b3V0KToKKworICAg
ICAgICBTZXR1cCBtYXJnaW4vcGFkZGluZy9ib3JkZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50IGNv
bnN0KToKKworICAgICAgICBDb21wdXRlIGNvbnRlbnQgaGVpZ2h0IGNvcnJlY3RseSBpbiBwcmVz
ZW5jZSBvZiBib3JkZXJzL3BhZGRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dDo6cm9vdExheW91dEJveCBjb25zdCk6CisgICAgICAgICog
bGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmguCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRl
bnRMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKworICAgICAgICBVc2UgYSBtZW1iZXIgdG8gcGFzcyBj
b250ZW50IGhlaWdodC4KKworICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVC
dWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFRyZWVDb250ZW50Ojps
YXlvdXRCb3hGb3JSZW5kZXJlciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dExG
Q0xpbmVzKToKKwogMjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bUmVuZGVyIHRyZWVdIFN1cHBvcnQgTEZDIGluIExpbmVMYXlvdXRU
cmF2ZXJzYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZjM2ZjYwZGUxMDcuLmI4ZWY1YjkzNThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMTQyMiw3ICsxNDIyLDYgQEAgbGF5b3V0L0xheW91dENvbnRleHQuY3Bw
CiBsYXlvdXQvTGF5b3V0UGhhc2UuY3BwCiBsYXlvdXQvTGF5b3V0U3RhdGUuY3BwCiBsYXlvdXQv
TGF5b3V0VW5pdHMuY3BwCi1sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKIGxh
eW91dC9WZXJpZmljYXRpb24uY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHAKQEAgLTE0NDUsNiArMTQ0NCw3IEBAIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lVGV4dEl0ZW0uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4
dC5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4dFV0aWwuY3BwCitsYXlvdXQv
aW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKIGxheW91dC9pbnZhbGlk
YXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5jcHAKIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxp
ZGF0aW9uU3RhdGUuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmE0
Nzg1YmZjZmYuLjUzYTE2MmNmYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYzMSw2ICsxNjYzMSw3IEBACiAJCQkJMTE5
OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRpc3BsYXl0cmVlICovLAogCQkJCTZGQ0ZDMDU1MjEy
REFDQzIwMDc2OTVEMiAvKiBmbG9hdHMgKi8sCiAJCQkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkx
IC8qIGlubGluZWZvcm1hdHRpbmcgKi8sCisJCQkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8q
IGludGVncmF0aW9uICovLAogCQkJCTZGOTVERTRBMjM3Qjg4MzAwMEU1MTdFMSAvKiBpbnZhbGlk
YXRpb24gKi8sCiAJCQkJMTE1Q0ZBOTAyMDhCOTQ0MTAwMUU2OTkxIC8qIGxheW91dHRyZWUgKi8s
CiAJCQkJNkZDNUNBOTEyMkUzNTkzMzAwQjEzRTExIC8qIHRhYmxlZm9ybWF0dGluZyAqLywKQEAg
LTE2NjQ5LDggKzE2NjUwLDYgQEAKIAkJCQkxMTVDQTgzMDIzMzI4QjFFMDBGRDNCMDggLyogTGF5
b3V0VW5pdHMuY3BwICovLAogCQkJCTZGNzM5MThDMjEwNkNFREQwMDZBRjI2MiAvKiBMYXlvdXRV
bml0cy5oICovLAogCQkJCTZGRTdBQTI2MjFDMzdCNjMwMDI5NkRDRCAvKiBNYXJnaW5UeXBlcy5o
ICovLAotCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmNwcCAqLywKLQkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dC5oICovLAogCQkJCTExRkYwMkQ1MjBCQTNDODEwMDgzRjI1QiAvKiBW
ZXJpZmljYXRpb24uY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBsYXlvdXQ7CkBAIC0xNjY5Myw2
ICsxNjY5Miw3IEBACiAJCTExNUNGQTlBMjA4QkMxNDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0
aW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFNDM1
NTA1MjIzOTUzNDU3MDA0ODI5QzAgLyogaW50ZWdyYXRpb24gKi8sCiAJCQkJNkZFN0REREQyMEVD
NkU4QjAwOEI1QjRFIC8qIHRleHQgKi8sCiAJCQkJNkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8q
IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAy
RjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywKQEAgLTI3MDI0LDYgKzI3MDI0
LDEzIEBACiAJCQlwYXRoID0gZG9taml0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMwIC8qIGludGVncmF0aW9uICovID0geworCQkJ
aXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCSk7CisJCQlwYXRoID0gaW50ZWdy
YXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFNDZFOTc4NjBEQUFE
NjFCMDA3MUU4OTQgLyogYW5pbWF0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKQEAgLTI3MTQ3LDYgKzI3MTU0LDE1IEBACiAJCQlwYXRoID0gdXBkYXRpbmc7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFNEZCNEIxRTIzOTUzNTZGMDAz
QzMzNkEgLyogaW50ZWdyYXRpb24gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0LmNwcCAqLywKKwkJCQlFNEFCQUJEQjIzNjA4OEZEMDBGQTQzNDUgLyogUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBpbnRlZ3JhdGlvbjsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUVENTAxREM5MEIyNDlGMzkwMEFF
MThEOSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCmluZGV4IGRlNjFiZmRjNGY3Li42
YTU2MzkwNDBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAt
NTgsNyArNTgsNiBAQCBMYXlvdXRDb250ZXh0OjpMYXlvdXRDb250ZXh0KExheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSkKIAogdm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXQoY29uc3QgTGF5b3V0U2l6
ZSYgcm9vdENvbnRlbnRCb3hTaXplLCBJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3Rh
dGUpCiB7Ci0gICAgUGhhc2VTY29wZSBzY29wZShQaGFzZTo6VHlwZTo6TGF5b3V0KTsKICAgICAv
LyBTZXQgdGhlIGdlb21ldHJ5IG9uIHRoZSByb290LgogICAgIC8vIE5vdGUgdGhhdCB3ZSBuZXZl
ciBsYXlvdXQgdGhlIHJvb3QgYm94LiBJdCBoYXMgdG8gaGF2ZSBhbiBhbHJlYWR5IGNvbXB1dGVk
IGdlb21ldHJ5IChpbiBjYXNlIG9mIElDQiwgaXQncyB0aGUgdmlldyBnZW9tZXRyeSkuCiAgICAg
Ly8gSUNCIGVzdGFibGlzaGVzIHRoZSBpbml0aWFsIEJGQywgYnV0IGl0IGRvZXMgbm90IGxpdmUg
aW4gYSBmb3JtYXR0aW5nIGNvbnRleHQgYW5kIHdoaWxlIGEgbm9uLUlDQiByb290KHN1YnRyZWUg
bGF5b3V0KSBoYXMgdG8gaGF2ZSBhIGZvcm1hdHRpbmcgY29udGV4dCwKQEAgLTczLDYgKzcyLDEz
IEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250
ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhCiAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94
SGVpZ2h0KHJvb3RDb250ZW50Qm94U2l6ZS5oZWlnaHQoKSk7CiAgICAgZGlzcGxheUJveC5zZXRD
b250ZW50Qm94V2lkdGgocm9vdENvbnRlbnRCb3hTaXplLndpZHRoKCkpOwogCisgICAgbGF5b3V0
KGludmFsaWRhdGlvblN0YXRlKTsKK30KKwordm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXQoSW52
YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQoreworICAgIFBoYXNlU2NvcGUgc2Nv
cGUoUGhhc2U6OlR5cGU6OkxheW91dCk7CisKICAgICBhdXRvJiBmb3JtYXR0aW5nQ29udGV4dFJv
b3RzRm9yTGF5b3V0ID0gaW52YWxpZGF0aW9uU3RhdGUuZm9ybWF0dGluZ0NvbnRleHRSb290cygp
OwogICAgIC8vIFdoZW4gaW52YWxpZGF0aW9uIGlzIGVtcHR5LCB3ZSBhc3N1bWUgY29uc3RyYWlu
dCBtdXRhdGlvbiBhbmQgc3RhcnQgcnVubmluZyBsYXlvdXQgb24gdGhlIGNvbnRleHQgcm9vdC4g
TGF5b3V0IGxvZ2ljIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgdGhlIGRhbWFnZS4KICAg
ICBpZiAoZm9ybWF0dGluZ0NvbnRleHRSb290c0ZvckxheW91dC5jb21wdXRlc0VtcHR5KCkpCkBA
IC04Miw2ICs4OCw3IEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNp
emUmIHJvb3RDb250ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhCiAgICAgICAgIGxheW91dEZv
cm1hdHRpbmdDb250ZXh0U3VidHJlZShmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGludmFsaWRhdGlv
blN0YXRlKTsKIH0KIAorCiB2b2lkIExheW91dENvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250
ZXh0U3VidHJlZShjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW52YWxp
ZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGZv
cm1hdHRpbmdDb250ZXh0Um9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggMWI5YmU0MGVhZTIuLmQ0NWMxYzAz
MjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKQEAgLTUzLDYgKzUzLDcg
QEAgY2xhc3MgTGF5b3V0Q29udGV4dCB7CiBwdWJsaWM6CiAgICAgTGF5b3V0Q29udGV4dChMYXlv
dXRTdGF0ZSYpOwogICAgIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250ZW50
Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhdGUmKTsKKyAgICB2b2lkIGxheW91dChJbnZhbGlkYXRp
b25TdGF0ZSYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4
dD4gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29u
dGV4dFJvb3QsIExheW91dFN0YXRlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApzaW1pbGFyaXR5IGlu
ZGV4IDc5JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAppbmRleCBlYTUxNDRmOGVmNC4uMTA3ODM1
ODI5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKQEAgLTc0LDI2ICs3NCwzOSBAQCB2b2lkIFJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91dCgpCiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQog
ICAgICAgICBtX2xheW91dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNv
bnRlbnQpOwogCi0gICAgYXV0byYgcm9vdENvbnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3Qo
KTsKKyAgICBwcmVwYXJlUm9vdEJveFByb3BlcnRpZXNGb3JMYXlvdXQoKTsKKworICAgIGF1dG8m
IHJvb3RDb250YWluZXIgPSByb290TGF5b3V0Qm94KCk7CiAgICAgYXV0byBsYXlvdXRDb250ZXh0
ID0gTGF5b3V0Q29udGV4dCB7ICptX2xheW91dFN0YXRlIH07CiAgICAgYXV0byBpbnZhbGlkYXRp
b25TdGF0ZSA9IEludmFsaWRhdGlvblN0YXRlIHsgfTsKLSAgICBsYXlvdXRDb250ZXh0LmxheW91
dChtX2Zsb3cuY29udGVudFNpemUoKSwgaW52YWxpZGF0aW9uU3RhdGUpOwogCi0gICAgYXV0byYg
bGluZUJveGVzID0gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRl
LT5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShyb290Q29udGFpbmVyKSkuZGlzcGxheUlubGlu
ZUNvbnRlbnQoKS0+bGluZUJveGVzOwotICAgIGF1dG8gaGVpZ2h0ID0gbGluZUJveGVzLmxhc3Qo
KS5sb2dpY2FsQm90dG9tKCk7CisgICAgbGF5b3V0Q29udGV4dC5sYXlvdXQoaW52YWxpZGF0aW9u
U3RhdGUpOwogCi0gICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlC
b3hGb3JMYXlvdXRCb3gocm9vdENvbnRhaW5lcik7Ci0gICAgZGlzcGxheUJveC5zZXRDb250ZW50
Qm94SGVpZ2h0KGhlaWdodCk7CisgICAgYXV0byYgbGluZUJveGVzID0gZG93bmNhc3Q8SW5saW5l
Rm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0
ZShyb290Q29udGFpbmVyKSkuZGlzcGxheUlubGluZUNvbnRlbnQoKS0+bGluZUJveGVzOworICAg
IG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2ljYWxCb3R0b20o
KSAtIGxpbmVCb3hlcy5maXJzdCgpLmxvZ2ljYWxUb3AoKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpjb250ZW50Qm94SGVpZ2h0KCkgY29uc3QKK3ZvaWQgUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dDo6cHJlcGFyZVJvb3RCb3hQcm9wZXJ0aWVzRm9yTGF5b3V0
KCkKIHsKLSAgICByZXR1cm4gbV9sYXlvdXRTdGF0ZSA/IG1fbGF5b3V0U3RhdGUtPmRpc3BsYXlC
b3hGb3JMYXlvdXRCb3gobV9sYXlvdXRTdGF0ZS0+cm9vdCgpKS5jb250ZW50Qm94SGVpZ2h0KCkg
OiAwX2x1OworICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KHJvb3RMYXlvdXRCb3goKSk7CisKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6
b250YWxNYXJnaW4oeyBtX2Zsb3cubWFyZ2luU3RhcnQoKSwgbV9mbG93Lm1hcmdpbkVuZCgpIH0p
OworICAgIGRpc3BsYXlCb3guc2V0SG9yaXpvbnRhbENvbXB1dGVkTWFyZ2luKHsgbV9mbG93Lm1h
cmdpblN0YXJ0KCksIG1fZmxvdy5tYXJnaW5FbmQoKSB9KTsKKyAgICBkaXNwbGF5Qm94LnNldFZl
cnRpY2FsTWFyZ2luKHsgeyBtX2Zsb3cubWFyZ2luQmVmb3JlKCksIG1fZmxvdy5tYXJnaW5BZnRl
cigpIH0sIHsgfSB9KTsKKworICAgIGRpc3BsYXlCb3guc2V0Qm9yZGVyKExheW91dDo6RWRnZXMg
eyB7IG1fZmxvdy5ib3JkZXJTdGFydCgpLCBtX2Zsb3cuYm9yZGVyRW5kKCkgfSwgeyBtX2Zsb3cu
Ym9yZGVyQmVmb3JlKCksIG1fZmxvdy5ib3JkZXJBZnRlcigpIH0gfSk7CisgICAgZGlzcGxheUJv
eC5zZXRQYWRkaW5nKExheW91dDo6RWRnZXMgeyB7IG1fZmxvdy5wYWRkaW5nU3RhcnQoKSwgbV9m
bG93LnBhZGRpbmdFbmQoKSB9LCB7IG1fZmxvdy5wYWRkaW5nQmVmb3JlKCksIG1fZmxvdy5wYWRk
aW5nQWZ0ZXIoKSB9IH0pOworCisgICAgZGlzcGxheUJveC5zZXRUb3BMZWZ0KHsgfSk7CisKKyAg
ICBhdXRvIGNvbnRlbnRTaXplID0gbV9mbG93LmNvbnRlbnRTaXplKCk7CisgICAgZGlzcGxheUJv
eC5zZXRDb250ZW50Qm94V2lkdGgoY29udGVudFNpemUud2lkdGgoKSk7CisgICAgZGlzcGxheUJv
eC5zZXRDb250ZW50Qm94SGVpZ2h0KGNvbnRlbnRTaXplLmhlaWdodCgpKTsKIH0KIAogY29uc3Qg
RGlzcGxheTo6SW5saW5lQ29udGVudCogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6ZGlzcGxh
eUlubGluZUNvbnRlbnQoKSBjb25zdAogewotICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3Jt
YXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKG1f
dHJlZUNvbnRlbnQtPnJvb3RMYXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7Cisg
ICAgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+
ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdExheW91dEJveCgpKSkuZGlzcGxheUlubGlu
ZUNvbnRlbnQoKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpAQCAt
MTQ5LDYgKzE2MiwxMSBAQCBMaW5lTGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3Ig
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6ZWxlbWVudEJveEZvcgogICAgIHJldHVybiB7IH07
CiB9CiAKK2NvbnN0IENvbnRhaW5lciYgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cm9vdExh
eW91dEJveCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdHJlZUNvbnRlbnQtPnJvb3RMYXlvdXRC
b3goKTsKK30KKwogfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5h
bWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5o
CnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5oCmluZGV4IDE0MWYxMTIzNzA2Li5hNTA5YzczMjk3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dC5oCkBAIC01NSw3ICs1NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBjYW5Vc2VG
b3IoY29uc3QgUmVuZGVyQmxvY2tGbG93Jik7CiAKICAgICB2b2lkIGxheW91dCgpOwotICAgIExh
eW91dFVuaXQgY29udGVudEJveEhlaWdodCgpIGNvbnN0OworCisgICAgTGF5b3V0VW5pdCBjb250
ZW50TG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExvZ2ljYWxIZWlnaHQ7
IH0KICAgICBjb25zdCBEaXNwbGF5OjpJbmxpbmVDb250ZW50KiBkaXNwbGF5SW5saW5lQ29udGVu
dCgpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYgcGFpbnRPZmZzZXQpOwpAQCAtNjQsOSArNjUsMTMgQEAgcHVibGljOgogICAgIExpbmVMYXlv
dXRUcmF2ZXJzYWw6OkVsZW1lbnRCb3hJdGVyYXRvciBlbGVtZW50Qm94Rm9yKGNvbnN0IFJlbmRl
ckxpbmVCcmVhayYpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIGNvbnN0IENvbnRhaW5lciYgcm9v
dExheW91dEJveCgpIGNvbnN0OworICAgIHZvaWQgcHJlcGFyZVJvb3RCb3hQcm9wZXJ0aWVzRm9y
TGF5b3V0KCk7CisKICAgICBjb25zdCBSZW5kZXJCbG9ja0Zsb3cmIG1fZmxvdzsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8TGF5b3V0VHJlZUNvbnRlbnQ+IG1fdHJlZUNvbnRlbnQ7CisgICAgc3RkOjp1
bmlxdWVfcHRyPGNvbnN0IExheW91dFRyZWVDb250ZW50PiBtX3RyZWVDb250ZW50OwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxMYXlvdXRTdGF0ZT4gbV9sYXlvdXRTdGF0ZTsKKyAgICBMYXlvdXRVbml0
IG1fY29udGVudExvZ2ljYWxIZWlnaHQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAppbmRleCAyYjE0ZGM2ZDJi
MS4uYjNiNzc3OWE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaApAQCAtNTcsMTUgKzU3LDE3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWRkQm94KHN0ZDo6dW5pcXVlX3B0cjxCb3g+IGJveCkgeyBtX2JveGVzLmFkZChX
VEZNb3ZlKGJveCkpOyB9CiAKLSAgICB1c2luZyBSZW5kZXJPYmplY3RUb0xheW91dEJveE1hcCA9
IEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgQm94Kj47CiAgICAgQm94KiBsYXlvdXRCb3hG
b3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKSB7IHJldHVybiBtX3JlbmRl
ck9iamVjdFRvTGF5b3V0Qm94LmdldCgmcmVuZGVyZXIpOyB9CisgICAgY29uc3QgQm94KiBsYXlv
dXRCb3hGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKSBjb25zdCB7IHJl
dHVybiBtX3JlbmRlck9iamVjdFRvTGF5b3V0Qm94LmdldCgmcmVuZGVyZXIpOyB9CisgICAgCiAg
ICAgdm9pZCBhZGRMYXlvdXRCb3hGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRl
cmVyLCBCb3gmIGxheW91dEJveCkgeyBtX3JlbmRlck9iamVjdFRvTGF5b3V0Qm94LmFkZCgmcmVu
ZGVyZXIsICZsYXlvdXRCb3gpOyB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgUmVuZGVyQm94JiBt
X3Jvb3RSZW5kZXJlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiBtX3Jvb3RMYXlv
dXRCb3g7CiAgICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8Qm94Pj4gbV9ib3hlczsKLSAgICBS
ZW5kZXJPYmplY3RUb0xheW91dEJveE1hcCBtX3JlbmRlck9iamVjdFRvTGF5b3V0Qm94OworCisg
ICAgSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBCb3gqPiBtX3JlbmRlck9iamVjdFRvTGF5
b3V0Qm94OwogfTsKIAogY2xhc3MgVHJlZUJ1aWxkZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAzOGZlODRlMGY5OS4uYmJhMmQ5MjY4NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0z
NjgwLDExICszNjgwLDE1IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRMRkNMaW5lcyhi
b29sLCBMYXlvdXRVbml0JiByZXBhaW50TG9naWNhbFRvcCwgTGF5b3V0CiAKICAgICBsZmNMaW5l
TGF5b3V0LmxheW91dCgpOwogCi0gICAgTGF5b3V0VW5pdCBsaW5lTGF5b3V0SGVpZ2h0ID0gbGZj
TGluZUxheW91dC5jb250ZW50Qm94SGVpZ2h0KCk7Ci0gICAgTGF5b3V0VW5pdCBsaW5lTGF5b3V0
VG9wID0gYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwotICAgIHJlcGFpbnRMb2dpY2FsVG9wID0g
bGluZUxheW91dFRvcDsKLSAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9IHJlcGFpbnRMb2dpY2Fs
VG9wICsgbGluZUxheW91dEhlaWdodCArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigpOwotICAgIHNl
dExvZ2ljYWxIZWlnaHQobGluZUxheW91dFRvcCArIGxpbmVMYXlvdXRIZWlnaHQgKyBib3JkZXJB
bmRQYWRkaW5nQWZ0ZXIoKSk7CisgICAgYXV0byBjb250ZW50SGVpZ2h0ID0gbGZjTGluZUxheW91
dC5jb250ZW50TG9naWNhbEhlaWdodCgpOworICAgIGF1dG8gY29udGVudFRvcCA9IGJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKTsKKyAgICBhdXRvIGNvbnRlbnRCb3R0b20gPSBjb250ZW50VG9wICsg
Y29udGVudEhlaWdodDsKKyAgICBhdXRvIHRvdGFsSGVpZ2h0ID0gY29udGVudEJvdHRvbSArIGJv
cmRlckFuZFBhZGRpbmdBZnRlcigpOworCisgICAgcmVwYWludExvZ2ljYWxUb3AgPSBjb250ZW50
VG9wOworICAgIHJlcGFpbnRMb2dpY2FsQm90dG9tID0gY29udGVudEJvdHRvbTsKKworICAgIHNl
dExvZ2ljYWxIZWlnaHQodG90YWxIZWlnaHQpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384611</attachid>
            <date>2019-12-02 04:49:41 -0800</date>
            <delta_ts>2019-12-02 11:56:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-border-padding-2.patch</filename>
            <type>text/plain</type>
            <size>16357</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWVhOGE2M2VlNC4uMGQxYWUyM2VkODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEx
LTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6Om1fd3JpdGVDb3VudCB3aGVuIHNhbXBs
ZVJhdGUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGFkODI0MGI4OTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ct
aW50ZWdyYXRpb24tYmFzaWMuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4
dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8c3R5bGU+
CisubWFyZ2luIHsgbWFyZ2luOiAxMHB4IDQwMHB4IDIwcHggNXB4OyB9CisuYm9yZGVyIHsgYm9y
ZGVyLWxlZnQ6IDEwcHggc29saWQgYmxhY2s7IGJvcmRlci10b3A6IDVweCBzb2xpZCBibGFjazsg
Ym9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlk
IGJsYWNrOyB9CisucGFkZGluZyB7IHBhZGRpbmc6IDEwcHggNTBweCAyMHB4IDVweDsgfQorPC9z
dHlsZT4KKzxkaXYgY2xhc3M9Im1hcmdpbiI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IDwv
ZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0
ZXh0IDwvZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciBwYWRkaW5nIj5UZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRl
eHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDc5NjdjNzRlM2FmLi40YmU4YzBjYWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNSw2
ICsxMDUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJDT1JFX0RJUn0vbGF5b3V0L2Zsb2F0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0
L2lubGluZWZvcm1hdHRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL3RleHQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbnRlZ3JhdGlvbiIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2xheW91dHRyZWUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2xvYWRlciIKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2FwcGNhY2hlIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDYyOWRiZjQxZTdkLi45NTk5ZWY4NWU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBA
CisyMDE5LTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBbTEZDXVtJbnRlZ3JhdGlvbl0gU2V0dXAgcm9vdCBib3ggcHJvcGVydGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXlvdXRm
b3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWwKKworICAgICAgICBM
aW5lIGxheW91dCBuZWVkcyB0byBrbm93IGFib3V0IGJvcmRlcnMgYW5kIHBhZGRpbmcuCisKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpsYXlvdXQpOgorCisgICAgICAgIFNwbGl0
IHNldHVwIGFuZCBsYXlvdXQgdG8gc2VwYXJhdGUgZnVuY3Rpb25zLgorCisgICAgICAgICogbGF5
b3V0L0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAuCisKKyAgICAgICAgTW92ZWQgdG8gaW50
ZWdyYXRpb24gc3ViZGlyZWN0b3J5LgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBhcmVSb290Qm94UHJvcGVydGllc0Zvckxh
eW91dCk6CisKKyAgICAgICAgU2V0dXAgbWFyZ2luL3BhZGRpbmcvYm9yZGVycy4KKworICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpkaXNwbGF5SW5s
aW5lQ29udGVudCBjb25zdCk6CisKKyAgICAgICAgQ29tcHV0ZSBjb250ZW50IGhlaWdodCBjb3Jy
ZWN0bHkgaW4gcHJlc2VuY2Ugb2YgYm9yZGVycy9wYWRkaW5nLgorCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnJvb3RMYXlvdXRCb3ggY29uc3Qp
OgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCBjb25zdCk6CisKKyAgICAgICAgVXNlIGEgbWVt
YmVyIHRvIHBhc3MgY29udGVudCBoZWlnaHQuCisKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRU
cmVlQ29udGVudDo6bGF5b3V0Qm94Rm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRMRkNMaW5lcyk6CisKIDIwMTktMTItMDIgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1JlbmRlciB0cmVlXSBTdXBwb3J0IExGQyBp
biBMaW5lTGF5b3V0VHJhdmVyc2FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGYzNmY2MGRlMTA3Li5iOGVm
NWI5MzU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE0MjIsNyArMTQyMiw2IEBAIGxheW91dC9MYXlv
dXRDb250ZXh0LmNwcAogbGF5b3V0L0xheW91dFBoYXNlLmNwcAogbGF5b3V0L0xheW91dFN0YXRl
LmNwcAogbGF5b3V0L0xheW91dFVuaXRzLmNwcAotbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuY3BwCiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9j
a0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xNDQ1LDYgKzE0NDQsNyBAQCBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAKIGxheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGlu
ZUxheW91dENvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRVdGls
LmNwcAorbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCiBs
YXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNvbnRleHQuY3BwCiBsYXlvdXQvaW52YWxp
ZGF0aW9uL0ludmFsaWRhdGlvblN0YXRlLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDZhNDc4NWJmY2ZmLi41M2ExNjJjZmFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY2MzEsNiArMTY2MzEs
NyBAQAogCQkJCTExOTlGQTU4MjA4RTNDNEMwMDIzNThDQyAvKiBkaXNwbGF5dHJlZSAqLywKIAkJ
CQk2RkNGQzA1NTIxMkRBQ0MyMDA3Njk1RDIgLyogZmxvYXRzICovLAogCQkJCTExNUNGQTlBMjA4
QkMxNDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0aW5nICovLAorCQkJCUU0RkI0QjFFMjM5NTM1
NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLywKIAkJCQk2Rjk1REU0QTIzN0I4ODMwMDBFNTE3
RTEgLyogaW52YWxpZGF0aW9uICovLAogCQkJCTExNUNGQTkwMjA4Qjk0NDEwMDFFNjk5MSAvKiBs
YXlvdXR0cmVlICovLAogCQkJCTZGQzVDQTkxMjJFMzU5MzMwMEIxM0UxMSAvKiB0YWJsZWZvcm1h
dHRpbmcgKi8sCkBAIC0xNjY0OSw4ICsxNjY1MCw2IEBACiAJCQkJMTE1Q0E4MzAyMzMyOEIxRTAw
RkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLywKIAkJCQk2RjczOTE4QzIxMDZDRUREMDA2QUYy
NjIgLyogTGF5b3V0VW5pdHMuaCAqLywKIAkJCQk2RkU3QUEyNjIxQzM3QjYzMDAyOTZEQ0QgLyog
TWFyZ2luVHlwZXMuaCAqLywKLQkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1
IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEzQzgx
MDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5b3V0
OwpAQCAtMTY2OTMsNiArMTY2OTIsNyBAQAogCQkxMTVDRkE5QTIwOEJDMTQwMDAxRTY5OTEgLyog
aW5saW5lZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMwIC8qIGludGVncmF0aW9uICovLAogCQkJ
CTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0ICovLAogCQkJCTZGN0NBM0M5MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJNkY3Q0Ez
QzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi8sCkBAIC0y
NzAyNCw2ICsyNzAyNCwxMyBAQAogCQkJcGF0aCA9IGRvbWppdDsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CiAJCX07CisJCUU0MzU1MDUyMjM5NTM0NTcwMDQ4MjlDMCAvKiBpbnRlZ3JhdGlv
biAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkpOworCQkJ
cGF0aCA9IGludGVncmF0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
RTQ2RTk3ODYwREFBRDYxQjAwNzFFODk0IC8qIGFuaW1hdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzE0Nyw2ICsyNzE1NCwxNSBAQAogCQkJcGF0
aCA9IHVwZGF0aW5nOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTRGQjRC
MUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKKwkJCSk7CisJCQlwYXRoID0g
aW50ZWdyYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlFRDUwMURD
OTBCMjQ5RjM5MDBBRTE4RDkgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAppbmRleCBk
ZTYxYmZkYzRmNy4uNmE1NjM5MDQwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29u
dGV4dC5jcHAKQEAgLTU4LDcgKzU4LDYgQEAgTGF5b3V0Q29udGV4dDo6TGF5b3V0Q29udGV4dChM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiAKIHZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNv
bnN0IExheW91dFNpemUmIHJvb3RDb250ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhdGUmIGlu
dmFsaWRhdGlvblN0YXRlKQogewotICAgIFBoYXNlU2NvcGUgc2NvcGUoUGhhc2U6OlR5cGU6Okxh
eW91dCk7CiAgICAgLy8gU2V0IHRoZSBnZW9tZXRyeSBvbiB0aGUgcm9vdC4KICAgICAvLyBOb3Rl
IHRoYXQgd2UgbmV2ZXIgbGF5b3V0IHRoZSByb290IGJveC4gSXQgaGFzIHRvIGhhdmUgYW4gYWxy
ZWFkeSBjb21wdXRlZCBnZW9tZXRyeSAoaW4gY2FzZSBvZiBJQ0IsIGl0J3MgdGhlIHZpZXcgZ2Vv
bWV0cnkpLgogICAgIC8vIElDQiBlc3RhYmxpc2hlcyB0aGUgaW5pdGlhbCBCRkMsIGJ1dCBpdCBk
b2VzIG5vdCBsaXZlIGluIGEgZm9ybWF0dGluZyBjb250ZXh0IGFuZCB3aGlsZSBhIG5vbi1JQ0Ig
cm9vdChzdWJ0cmVlIGxheW91dCkgaGFzIHRvIGhhdmUgYSBmb3JtYXR0aW5nIGNvbnRleHQsCkBA
IC03Myw2ICs3MiwxMyBAQCB2b2lkIExheW91dENvbnRleHQ6OmxheW91dChjb25zdCBMYXlvdXRT
aXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0YQogICAgIGRpc3BsYXlCb3gu
c2V0Q29udGVudEJveEhlaWdodChyb290Q29udGVudEJveFNpemUuaGVpZ2h0KCkpOwogICAgIGRp
c3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKHJvb3RDb250ZW50Qm94U2l6ZS53aWR0aCgpKTsK
IAorICAgIGxheW91dChpbnZhbGlkYXRpb25TdGF0ZSk7Cit9CisKK3ZvaWQgTGF5b3V0Q29udGV4
dDo6bGF5b3V0KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKK3sKKyAgICBQ
aGFzZVNjb3BlIHNjb3BlKFBoYXNlOjpUeXBlOjpMYXlvdXQpOworCiAgICAgYXV0byYgZm9ybWF0
dGluZ0NvbnRleHRSb290c0ZvckxheW91dCA9IGludmFsaWRhdGlvblN0YXRlLmZvcm1hdHRpbmdD
b250ZXh0Um9vdHMoKTsKICAgICAvLyBXaGVuIGludmFsaWRhdGlvbiBpcyBlbXB0eSwgd2UgYXNz
dW1lIGNvbnN0cmFpbnQgbXV0YXRpb24gYW5kIHN0YXJ0IHJ1bm5pbmcgbGF5b3V0IG9uIHRoZSBj
b250ZXh0IHJvb3QuIExheW91dCBsb2dpYyBzaG91bGQgYmUgYWJsZSB0byBmaWd1cmUgb3V0IHRo
ZSBkYW1hZ2UuCiAgICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0Um9vdHNGb3JMYXlvdXQuY29tcHV0
ZXNFbXB0eSgpKQpAQCAtODIsNiArODgsNyBAQCB2b2lkIExheW91dENvbnRleHQ6OmxheW91dChj
b25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0YQogICAg
ICAgICBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoZm9ybWF0dGluZ0NvbnRleHRSb290
LCBpbnZhbGlkYXRpb25TdGF0ZSk7CiB9CiAKKwogdm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXRG
b3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4
dFJvb3QsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29u
dGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IDFiOWJlNDBl
YWUyLi5kNDVjMWMwMzI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBA
IC01Myw2ICs1Myw3IEBAIGNsYXNzIExheW91dENvbnRleHQgewogcHVibGljOgogICAgIExheW91
dENvbnRleHQoTGF5b3V0U3RhdGUmKTsKICAgICB2b2lkIGxheW91dChjb25zdCBMYXlvdXRTaXpl
JiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0YXRlJik7CisgICAgdm9pZCBsYXlv
dXQoSW52YWxpZGF0aW9uU3RhdGUmKTsKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Rm9y
bWF0dGluZ0NvbnRleHQ+IGNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lciYg
Zm9ybWF0dGluZ0NvbnRleHRSb290LCBMYXlvdXRTdGF0ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAK
c2ltaWxhcml0eSBpbmRleCA3OSUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L1Jl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKaW5kZXggZWE1MTQ0
ZjhlZjQuLjEwNzgzNTgyOTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCkBAIC03NCwyNiArNzQsMzkg
QEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlvdXQoKQogICAgIGlmICghbV9s
YXlvdXRTdGF0ZSkKICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG1ha2VVbmlxdWU8TGF5b3V0U3Rh
dGU+KCptX3RyZWVDb250ZW50KTsKIAotICAgIGF1dG8mIHJvb3RDb250YWluZXIgPSBtX2xheW91
dFN0YXRlLT5yb290KCk7CisgICAgcHJlcGFyZVJvb3RCb3hQcm9wZXJ0aWVzRm9yTGF5b3V0KCk7
CisKKyAgICBhdXRvJiByb290Q29udGFpbmVyID0gcm9vdExheW91dEJveCgpOwogICAgIGF1dG8g
bGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQgeyAqbV9sYXlvdXRTdGF0ZSB9OwogICAgIGF1
dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07Ci0gICAgbGF5b3V0
Q29udGV4dC5sYXlvdXQobV9mbG93LmNvbnRlbnRTaXplKCksIGludmFsaWRhdGlvblN0YXRlKTsK
IAotICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4o
bV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdENvbnRhaW5lcikp
LmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlczsKLSAgICBhdXRvIGhlaWdodCA9IGxp
bmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOworICAgIGxheW91dENvbnRleHQubGF5b3V0
KGludmFsaWRhdGlvblN0YXRlKTsKIAotICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xheW91dFN0
YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KHJvb3RDb250YWluZXIpOwotICAgIGRpc3BsYXlC
b3guc2V0Q29udGVudEJveEhlaWdodChoZWlnaHQpOworICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRv
d25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRG
b3JtYXR0aW5nU3RhdGUocm9vdENvbnRhaW5lcikpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxp
bmVCb3hlczsKKyAgICBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gbGluZUJveGVzLmxhc3QoKS5s
b2dpY2FsQm90dG9tKCkgLSBsaW5lQm94ZXMuZmlyc3QoKS5sb2dpY2FsVG9wKCk7CiB9CiAKLUxh
eW91dFVuaXQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y29udGVudEJveEhlaWdodCgpIGNv
bnN0Cit2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBhcmVSb290Qm94UHJvcGVy
dGllc0ZvckxheW91dCgpCiB7Ci0gICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUgPyBtX2xheW91dFN0
YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5b3V0U3RhdGUtPnJvb3QoKSkuY29udGVu
dEJveEhlaWdodCgpIDogMF9sdTsKKyAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlvdXRTdGF0
ZS0+ZGlzcGxheUJveEZvckxheW91dEJveChyb290TGF5b3V0Qm94KCkpOworCisgICAgZGlzcGxh
eUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgbV9mbG93Lm1hcmdpblN0YXJ0KCksIG1fZmxvdy5t
YXJnaW5FbmQoKSB9KTsKKyAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdp
bih7IG1fZmxvdy5tYXJnaW5TdGFydCgpLCBtX2Zsb3cubWFyZ2luRW5kKCkgfSk7CisgICAgZGlz
cGxheUJveC5zZXRWZXJ0aWNhbE1hcmdpbih7IHsgbV9mbG93Lm1hcmdpbkJlZm9yZSgpLCBtX2Zs
b3cubWFyZ2luQWZ0ZXIoKSB9LCB7IH0gfSk7CisKKyAgICBkaXNwbGF5Qm94LnNldEJvcmRlcihM
YXlvdXQ6OkVkZ2VzIHsgeyBtX2Zsb3cuYm9yZGVyU3RhcnQoKSwgbV9mbG93LmJvcmRlckVuZCgp
IH0sIHsgbV9mbG93LmJvcmRlckJlZm9yZSgpLCBtX2Zsb3cuYm9yZGVyQWZ0ZXIoKSB9IH0pOwor
ICAgIGRpc3BsYXlCb3guc2V0UGFkZGluZyhMYXlvdXQ6OkVkZ2VzIHsgeyBtX2Zsb3cucGFkZGlu
Z1N0YXJ0KCksIG1fZmxvdy5wYWRkaW5nRW5kKCkgfSwgeyBtX2Zsb3cucGFkZGluZ0JlZm9yZSgp
LCBtX2Zsb3cucGFkZGluZ0FmdGVyKCkgfSB9KTsKKworICAgIGRpc3BsYXlCb3guc2V0VG9wTGVm
dCh7IH0pOworCisgICAgYXV0byBjb250ZW50U2l6ZSA9IG1fZmxvdy5jb250ZW50U2l6ZSgpOwor
ICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKGNvbnRlbnRTaXplLndpZHRoKCkpOwor
ICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChjb250ZW50U2l6ZS5oZWlnaHQoKSk7
CiB9CiAKIGNvbnN0IERpc3BsYXk6OklubGluZUNvbnRlbnQqIFJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gZG93bmNh
c3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1h
dHRpbmdTdGF0ZShtX3RyZWVDb250ZW50LT5yb290TGF5b3V0Qm94KCkpKS5kaXNwbGF5SW5saW5l
Q29udGVudCgpOworICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1f
bGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RMYXlvdXRCb3goKSkp
LmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCkKQEAgLTE0OSw2ICsxNjIsMTEgQEAgTGluZUxheW91dFRyYXZlcnNhbDo6RWxlbWVu
dEJveEl0ZXJhdG9yIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmVsZW1lbnRCb3hGb3IKICAg
ICByZXR1cm4geyB9OwogfQogCitjb25zdCBDb250YWluZXImIFJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OnJvb3RMYXlvdXRCb3goKSBjb25zdAoreworICAgIHJldHVybiBtX3RyZWVDb250ZW50
LT5yb290TGF5b3V0Qm94KCk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKc2ltaWxhcml0eSBp
bmRleCA4OSUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaAppbmRleCAxNDFmMTEyMzcwNi4uYTUwOWM3MzI5
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQuaApAQCAtNTUsNyArNTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogCiAgICAgdm9pZCBsYXlv
dXQoKTsKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHQoKSBjb25zdDsKKworICAgIExh
eW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRM
b2dpY2FsSGVpZ2h0OyB9CiAgICAgY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCogZGlzcGxh
eUlubGluZUNvbnRlbnQoKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKQEAgLTY0LDkgKzY1LDEzIEBAIHB1YmxpYzoK
ICAgICBMaW5lTGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3IgZWxlbWVudEJveEZv
cihjb25zdCBSZW5kZXJMaW5lQnJlYWsmKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICBjb25zdCBD
b250YWluZXImIHJvb3RMYXlvdXRCb3goKSBjb25zdDsKKyAgICB2b2lkIHByZXBhcmVSb290Qm94
UHJvcGVydGllc0ZvckxheW91dCgpOworCiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBtX2Zs
b3c7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFRyZWVDb250ZW50PiBtX3RyZWVDb250ZW50
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBMYXlvdXRUcmVlQ29udGVudD4gbV90cmVlQ29u
dGVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0U3RhdGU+IG1fbGF5b3V0U3RhdGU7Cisg
ICAgTGF5b3V0VW5pdCBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5k
ZXggMmIxNGRjNmQyYjEuLmIzYjc3NzlhODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTU3LDE1ICs1NywxNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZEJveChzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBib3gpIHsg
bV9ib3hlcy5hZGQoV1RGTW92ZShib3gpKTsgfQogCi0gICAgdXNpbmcgUmVuZGVyT2JqZWN0VG9M
YXlvdXRCb3hNYXAgPSBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJveCo+OwogICAgIEJv
eCogbGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgeyBy
ZXR1cm4gbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAgIGNv
bnN0IEJveCogbGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJl
cikgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVy
KTsgfQorICAgIAogICAgIHZvaWQgYWRkTGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVy
T2JqZWN0JiByZW5kZXJlciwgQm94JiBsYXlvdXRCb3gpIHsgbV9yZW5kZXJPYmplY3RUb0xheW91
dEJveC5hZGQoJnJlbmRlcmVyLCAmbGF5b3V0Qm94KTsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0
IFJlbmRlckJveCYgbV9yb290UmVuZGVyZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5l
cj4gbV9yb290TGF5b3V0Qm94OwogICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPEJveD4+IG1f
Ym94ZXM7Ci0gICAgUmVuZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAgbV9yZW5kZXJPYmplY3RUb0xh
eW91dEJveDsKKworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgQm94Kj4gbV9yZW5k
ZXJPYmplY3RUb0xheW91dEJveDsKIH07CiAKIGNsYXNzIFRyZWVCdWlsZGVyIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMzhmZTg0ZTBmOTku
LmJiYTJkOTI2ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcApAQCAtMzY4MCwxMSArMzY4MCwxNSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5
b3V0TEZDTGluZXMoYm9vbCwgTGF5b3V0VW5pdCYgcmVwYWludExvZ2ljYWxUb3AsIExheW91dAog
CiAgICAgbGZjTGluZUxheW91dC5sYXlvdXQoKTsKIAotICAgIExheW91dFVuaXQgbGluZUxheW91
dEhlaWdodCA9IGxmY0xpbmVMYXlvdXQuY29udGVudEJveEhlaWdodCgpOwotICAgIExheW91dFVu
aXQgbGluZUxheW91dFRvcCA9IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKLSAgICByZXBhaW50
TG9naWNhbFRvcCA9IGxpbmVMYXlvdXRUb3A7Ci0gICAgcmVwYWludExvZ2ljYWxCb3R0b20gPSBy
ZXBhaW50TG9naWNhbFRvcCArIGxpbmVMYXlvdXRIZWlnaHQgKyBib3JkZXJBbmRQYWRkaW5nQWZ0
ZXIoKTsKLSAgICBzZXRMb2dpY2FsSGVpZ2h0KGxpbmVMYXlvdXRUb3AgKyBsaW5lTGF5b3V0SGVp
Z2h0ICsgYm9yZGVyQW5kUGFkZGluZ0FmdGVyKCkpOworICAgIGF1dG8gY29udGVudEhlaWdodCA9
IGxmY0xpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsKKyAgICBhdXRvIGNvbnRlbnRU
b3AgPSBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7CisgICAgYXV0byBjb250ZW50Qm90dG9tID0g
Y29udGVudFRvcCArIGNvbnRlbnRIZWlnaHQ7CisgICAgYXV0byB0b3RhbEhlaWdodCA9IGNvbnRl
bnRCb3R0b20gKyBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKTsKKworICAgIHJlcGFpbnRMb2dpY2Fs
VG9wID0gY29udGVudFRvcDsKKyAgICByZXBhaW50TG9naWNhbEJvdHRvbSA9IGNvbnRlbnRCb3R0
b207CisKKyAgICBzZXRMb2dpY2FsSGVpZ2h0KHRvdGFsSGVpZ2h0KTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384644</attachid>
            <date>2019-12-02 11:56:08 -0800</date>
            <delta_ts>2019-12-02 23:55:09 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-border-padding-3.patch</filename>
            <type>text/plain</type>
            <size>23671</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWVhOGE2M2VlNC4uMGQxYWUyM2VkODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEx
LTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUg
UmVhbHRpbWVPdXRnb2luZ0F1ZGlvU291cmNlQ29jb2E6Om1fd3JpdGVDb3VudCB3aGVuIHNhbXBs
ZVJhdGUgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGFkODI0MGI4OTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ct
aW50ZWdyYXRpb24tYmFzaWMuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4
dFJlbmRlclRyZWVJbnRlZ3JhdGlvbkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8c3R5bGU+
CisubWFyZ2luIHsgbWFyZ2luOiAxMHB4IDQwMHB4IDIwcHggNXB4OyB9CisuYm9yZGVyIHsgYm9y
ZGVyLWxlZnQ6IDEwcHggc29saWQgYmxhY2s7IGJvcmRlci10b3A6IDVweCBzb2xpZCBibGFjazsg
Ym9yZGVyLXJpZ2h0OiAxNXB4IHNvbGlkIGJsYWNrOyBib3JkZXItYm90dG9tOiAyMHB4IHNvbGlk
IGJsYWNrOyB9CisucGFkZGluZyB7IHBhZGRpbmc6IDEwcHggNTBweCAyMHB4IDVweDsgfQorPC9z
dHlsZT4KKzxkaXYgY2xhc3M9Im1hcmdpbiI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IDwv
ZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciI+VGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0
ZXh0IDwvZGl2PgorPGRpdiBjbGFzcz0ibWFyZ2luIGJvcmRlciBwYWRkaW5nIj5UZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRl
eHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDc5NjdjNzRlM2FmLi40YmU4YzBjYWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNSw2
ICsxMDUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAi
JHtXRUJDT1JFX0RJUn0vbGF5b3V0L2Zsb2F0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0
L2lubGluZWZvcm1hdHRpbmciCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL3RleHQiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbnRlZ3JhdGlvbiIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2xheW91dHRyZWUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L2xvYWRlciIKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2FwcGNhY2hlIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDYyOWRiZjQxZTdkLi4yMjJjOTVkMzZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBA
CisyMDE5LTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAg
ICBbTEZDXVtJbnRlZ3JhdGlvbl0gU2V0dXAgcm9vdCBib3ggcHJvcGVydGllcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXlvdXRm
b3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLmh0bWwKKworICAgICAgICBM
aW5lIGxheW91dCBuZWVkcyB0byBrbm93IGFib3V0IGZsb3cgYm9yZGVycyBhbmQgcGFkZGluZyBz
byB0aGF0IGJveGVzIGFyZSBvZmZzZXQgY29ycmVjdGx5LgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6bGF5b3V0KToKKworICAg
ICAgICBTcGxpdCBzZXR1cCBhbmQgbGF5b3V0IHRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4KKworICAg
ICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmRpc3BsYXlC
b3hGb3JMYXlvdXRSb290KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAgICAg
ICAgKiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRp
c3BsYXk6OlBhaW50ZXI6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlBhaW50
ZXI6OnBhaW50SW5saW5lRmxvdyk6CisKKyAgICAgICAgQXZvaWQgYWNjZXNzaW5nIHRyZWUgcm9v
dCBib3ggcHJvcGVydGllcyB3aGVuIHBhaW50aW5nIChzaW5jZSBtYXJnaW5zIGFyZSBub3Qgc2V0
IHVwKS4KKworICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmNwcC4KKworICAgICAgICBNb3ZlZCB0byBpbnRlZ3JhdGlvbiBzdWJk
aXJlY3RvcnkuCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6bGF5b3V0KToKKworICAgICAgICBEcm9wIHRoZSBjb250ZW50IHNpemUgcGFyYW1h
dGVyLCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIG9mIHNldHRpbmcgdXAgdGhlIHJvb3QgZGlz
cGxheSBib3guCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dDo6cHJlcGFyZVJvb3REaXNwbGF5Qm94Rm9yTGF5b3V0KToKKworICAgICAgICBTZXR1
cCBwYWRkaW5nIGFuZCBib3JkZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRl
ckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cm9vdExheW91
dEJveCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKworICAgICAg
ICBVc2UgYSBtZW1iZXIgdG8gcGFzcyBjb250ZW50IGhlaWdodC4KKworICAgICAgICAqIGxheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk6CisgICAgICAgICogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGF5b3V0VHJlZUNvbnRlbnQ6OmxheW91dEJveEZvclJlbmRlcmVyIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dExGQ0xpbmVzKToKKwogMjAxOS0xMi0wMiAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUmVuZGVyIHRyZWVd
IFN1cHBvcnQgTEZDIGluIExpbmVMYXlvdXRUcmF2ZXJzYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZjM2
ZjYwZGUxMDcuLmI4ZWY1YjkzNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQyMiw3ICsxNDIyLDYg
QEAgbGF5b3V0L0xheW91dENvbnRleHQuY3BwCiBsYXlvdXQvTGF5b3V0UGhhc2UuY3BwCiBsYXlv
dXQvTGF5b3V0U3RhdGUuY3BwCiBsYXlvdXQvTGF5b3V0VW5pdHMuY3BwCi1sYXlvdXQvUmVuZGVy
QmxvY2tGbG93TGluZUxheW91dC5jcHAKIGxheW91dC9WZXJpZmljYXRpb24uY3BwCiBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTE0NDUsNiAr
MTQ0NCw3IEBAIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAog
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCiBsYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5n
L3RleHQvVGV4dFV0aWwuY3BwCitsYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5jcHAKIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5jcHAK
IGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwCiBsYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCb3guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmE0Nzg1YmZjZmYuLjUzYTE2MmNmYWM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NjYzMSw2ICsxNjYzMSw3IEBACiAJCQkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRpc3Bs
YXl0cmVlICovLAogCQkJCTZGQ0ZDMDU1MjEyREFDQzIwMDc2OTVEMiAvKiBmbG9hdHMgKi8sCiAJ
CQkJMTE1Q0ZBOUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcgKi8sCisJCQkJ
RTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovLAogCQkJCTZGOTVERTRB
MjM3Qjg4MzAwMEU1MTdFMSAvKiBpbnZhbGlkYXRpb24gKi8sCiAJCQkJMTE1Q0ZBOTAyMDhCOTQ0
MTAwMUU2OTkxIC8qIGxheW91dHRyZWUgKi8sCiAJCQkJNkZDNUNBOTEyMkUzNTkzMzAwQjEzRTEx
IC8qIHRhYmxlZm9ybWF0dGluZyAqLywKQEAgLTE2NjQ5LDggKzE2NjUwLDYgQEAKIAkJCQkxMTVD
QTgzMDIzMzI4QjFFMDBGRDNCMDggLyogTGF5b3V0VW5pdHMuY3BwICovLAogCQkJCTZGNzM5MThD
MjEwNkNFREQwMDZBRjI2MiAvKiBMYXlvdXRVbml0cy5oICovLAogCQkJCTZGRTdBQTI2MjFDMzdC
NjMwMDI5NkRDRCAvKiBNYXJnaW5UeXBlcy5oICovLAotCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZB
NDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKLQkJCQlFNEFCQUJEQjIz
NjA4OEZEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovLAogCQkJCTEx
RkYwMkQ1MjBCQTNDODEwMDgzRjI1QiAvKiBWZXJpZmljYXRpb24uY3BwICovLAogCQkJKTsKIAkJ
CXBhdGggPSBsYXlvdXQ7CkBAIC0xNjY5Myw2ICsxNjY5Miw3IEBACiAJCTExNUNGQTlBMjA4QkMx
NDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0aW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlFNDM1NTA1MjIzOTUzNDU3MDA0ODI5QzAgLyogaW50ZWdy
YXRpb24gKi8sCiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1QjRFIC8qIHRleHQgKi8sCiAJCQkJ
NkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LywKIAkJCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaCAqLywKQEAgLTI3MDI0LDYgKzI3MDI0LDEzIEBACiAJCQlwYXRoID0gZG9taml0OwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMw
IC8qIGludGVncmF0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCSk7CisJCQlwYXRoID0gaW50ZWdyYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQlFNDZFOTc4NjBEQUFENjFCMDA3MUU4OTQgLyogYW5pbWF0aW9uICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI3MTQ3LDYgKzI3MTU0
LDE1IEBACiAJCQlwYXRoID0gdXBkYXRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwog
CQl9OworCQlFNEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEgLyogaW50ZWdyYXRpb24gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUU0QUJBQkRFMjM2MDg5M0Qw
MEZBNDM0NSAvKiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKKwkJCQlFNEFCQUJE
QjIzNjA4OEZEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovLAorCQkJ
KTsKKwkJCXBhdGggPSBpbnRlZ3JhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCUVENTAxREM5MEIyNDlGMzkwMEFFMThEOSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuY3BwCmluZGV4IGRlNjFiZmRjNGY3Li5jYjk4Yzc3YWM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmNwcApAQCAtNTYsMjIgKzU2LDkgQEAgTGF5b3V0Q29udGV4dDo6
TGF5b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUpCiB7CiB9CiAKLXZvaWQgTGF5
b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250ZW50Qm94U2l6ZSwg
SW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQordm9pZCBMYXlvdXRDb250ZXh0
OjpsYXlvdXQoSW52YWxpZGF0aW9uU3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQogewogICAgIFBo
YXNlU2NvcGUgc2NvcGUoUGhhc2U6OlR5cGU6OkxheW91dCk7Ci0gICAgLy8gU2V0IHRoZSBnZW9t
ZXRyeSBvbiB0aGUgcm9vdC4KLSAgICAvLyBOb3RlIHRoYXQgd2UgbmV2ZXIgbGF5b3V0IHRoZSBy
b290IGJveC4gSXQgaGFzIHRvIGhhdmUgYW4gYWxyZWFkeSBjb21wdXRlZCBnZW9tZXRyeSAoaW4g
Y2FzZSBvZiBJQ0IsIGl0J3MgdGhlIHZpZXcgZ2VvbWV0cnkpLgotICAgIC8vIElDQiBlc3RhYmxp
c2hlcyB0aGUgaW5pdGlhbCBCRkMsIGJ1dCBpdCBkb2VzIG5vdCBsaXZlIGluIGEgZm9ybWF0dGlu
ZyBjb250ZXh0IGFuZCB3aGlsZSBhIG5vbi1JQ0Igcm9vdChzdWJ0cmVlIGxheW91dCkgaGFzIHRv
IGhhdmUgYSBmb3JtYXR0aW5nIGNvbnRleHQsCi0gICAgLy8gd2UgY291bGQgbm90IGxheSBpdCBv
dXQgZXZlbiBpZiB3ZSB3YW50ZWQgdG8gc2luY2UgaXQncyBvdXRzaWRlIG9mIHRoaXMgTGF5b3V0
Q29udGV4dC4KLSAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUoKS5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KGxheW91dFN0YXRlKCkucm9vdCgpKTsKLSAgICBkaXNwbGF5Qm94LnNldEhv
cml6b250YWxNYXJnaW4oeyB9KTsKLSAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRl
ZE1hcmdpbih7IH0pOwotICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyB9KTsKLSAg
ICBkaXNwbGF5Qm94LnNldEJvcmRlcih7IH0pOwotICAgIGRpc3BsYXlCb3guc2V0UGFkZGluZyh7
IH0pOwotICAgIGRpc3BsYXlCb3guc2V0VG9wTGVmdCh7IH0pOwotICAgIGRpc3BsYXlCb3guc2V0
Q29udGVudEJveEhlaWdodChyb290Q29udGVudEJveFNpemUuaGVpZ2h0KCkpOwotICAgIGRpc3Bs
YXlCb3guc2V0Q29udGVudEJveFdpZHRoKHJvb3RDb250ZW50Qm94U2l6ZS53aWR0aCgpKTsKIAog
ICAgIGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0Um9vdHNGb3JMYXlvdXQgPSBpbnZhbGlkYXRpb25T
dGF0ZS5mb3JtYXR0aW5nQ29udGV4dFJvb3RzKCk7CiAgICAgLy8gV2hlbiBpbnZhbGlkYXRpb24g
aXMgZW1wdHksIHdlIGFzc3VtZSBjb25zdHJhaW50IG11dGF0aW9uIGFuZCBzdGFydCBydW5uaW5n
IGxheW91dCBvbiB0aGUgY29udGV4dCByb290LiBMYXlvdXQgbG9naWMgc2hvdWxkIGJlIGFibGUg
dG8gZmlndXJlIG91dCB0aGUgZGFtYWdlLgpAQCAtODIsNiArNjksNyBAQCB2b2lkIExheW91dENv
bnRleHQ6OmxheW91dChjb25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFs
aWRhdGlvblN0YQogICAgICAgICBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoZm9ybWF0
dGluZ0NvbnRleHRSb290LCBpbnZhbGlkYXRpb25TdGF0ZSk7CiB9CiAKKwogdm9pZCBMYXlvdXRD
b250ZXh0OjpsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQ29udGFpbmVyJiBm
b3JtYXR0aW5nQ29udGV4dFJvb3QsIEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0
ZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNo
ZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9MYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5o
CmluZGV4IDFiOWJlNDBlYWUyLi5hYTYxYmYwMmJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5
b3V0Q29udGV4dC5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIExheW91dENvbnRleHQgewogICAg
IFdURl9NQUtFX0lTT19BTExPQ0FURUQoTGF5b3V0Q29udGV4dCk7CiBwdWJsaWM6CiAgICAgTGF5
b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYpOwotICAgIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFNp
emUmIHJvb3RDb250ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhdGUmKTsKKyAgICB2b2lkIGxh
eW91dChJbnZhbGlkYXRpb25TdGF0ZSYpOwogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxG
b3JtYXR0aW5nQ29udGV4dD4gY3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVy
JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0YXRlJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDM2NmM2NmQ0MWE2Li5lYzU0MWU3ZTFlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCkBAIC01Nyw2ICs1NywxMSBAQCBMYXlvdXRT
dGF0ZTo6TGF5b3V0U3RhdGUoY29uc3QgTGF5b3V0VHJlZUNvbnRlbnQmIGxheW91dFRyZWVDb250
ZW50KQogCiBMYXlvdXRTdGF0ZTo6fkxheW91dFN0YXRlKCkgPSBkZWZhdWx0OwogCitEaXNwbGF5
OjpCb3gmIExheW91dFN0YXRlOjpkaXNwbGF5Qm94Rm9yTGF5b3V0Um9vdCgpCit7CisgICAgcmV0
dXJuIGRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobV9sYXlvdXRUcmVlQ29udGVudC0+cm9vdExheW91
dEJveCgpKTsKK30KKwogRGlzcGxheTo6Qm94JiBMYXlvdXRTdGF0ZTo6ZGlzcGxheUJveEZvckxh
eW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAgICByZXR1cm4gKm1fbGF5b3V0VG9E
aXNwbGF5Qm94LmVuc3VyZSgmbGF5b3V0Qm94LCBbXSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5oCmluZGV4IDdkYTA4M2M5NzBmLi40ZTMwZDA1YTMxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVyZWdp
c3RlckZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5n
Q29udGV4dCkgeyBtX2Zvcm1hdHRpbmdDb250ZXh0TGlzdC5yZW1vdmUoJmZvcm1hdHRpbmdDb250
ZXh0KTsgfQogI2VuZGlmCiAKKyAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3hGb3JMYXlvdXRS
b290KCk7CiAgICAgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJv
eCYgbGF5b3V0Qm94KTsKICAgICBjb25zdCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3hGb3JMYXlv
dXRCb3goY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0OwogICAgIGJvb2wgaGFzRGlzcGxheUJv
eChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRUb0Rpc3BsYXlC
b3guY29udGFpbnMoJmxheW91dEJveCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwCmluZGV4IDMwNmFiOGUwODJkLi40Yjhl
ZjY4NWM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rp
c3BsYXlQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheVBhaW50ZXIuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgcGFpbnRC
b3hEZWNvcmF0aW9uKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgQm94JiBhYnNvbHV0
ZURpc3AKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHBhaW50SW5saW5lQ29udGVudChHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEJveCYgcm9vdEFic29sdXRlRGlzcGxheUJveCwgY29u
c3QgTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKK3N0YXRp
YyB2b2lkIHBhaW50SW5saW5lQ29udGVudChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIExheW91
dFBvaW50IGFic29sdXRlT2Zmc2V0LCBjb25zdCBMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0
ZSYgZm9ybWF0dGluZ1N0YXRlKQogewogICAgIGF1dG8qIGRpc3BsYXlJbmxpbmVDb250ZW50ID0g
Zm9ybWF0dGluZ1N0YXRlLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiAgICAgaWYgKCFkaXNwbGF5
SW5saW5lQ29udGVudCkKQEAgLTEyNiwxNiArMTI2LDE2IEBAIHN0YXRpYyB2b2lkIHBhaW50SW5s
aW5lQ29udGVudChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEJveCYgcm9vdEFic29s
dXRlCiAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKHN0eWxlLmNvbG9yKCkpOwog
ICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3Ioc3R5bGUuY29sb3IoKSk7CiAKLSAgICAg
ICAgICAgIGF1dG8gbG9naWNhbExlZnQgPSByb290QWJzb2x1dGVEaXNwbGF5Qm94LmxlZnQoKSAr
IHJ1bi5sb2dpY2FsTGVmdCgpOworICAgICAgICAgICAgYXV0byBsb2dpY2FsTGVmdCA9IGFic29s
dXRlT2Zmc2V0LngoKSArIHJ1bi5sb2dpY2FsTGVmdCgpOwogICAgICAgICAgICAgLy8gRklYTUU6
IEFkZCBub24tYmFzZWxpbmUgYWxpZ24gcGFpbnRpbmcKICAgICAgICAgICAgIGF1dG8mIGxpbmVC
b3ggPSBkaXNwbGF5SW5saW5lQ29udGVudC0+bGluZUJveEZvclJ1bihydW4pOwotICAgICAgICAg
ICAgYXV0byBiYXNlbGluZU9mZnNldCA9IHJvb3RBYnNvbHV0ZURpc3BsYXlCb3gudG9wKCkgKyBs
aW5lQm94LmxvZ2ljYWxUb3AoKSArIGxpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsKKyAgICAgICAg
ICAgIGF1dG8gYmFzZWxpbmVPZmZzZXQgPSBhYnNvbHV0ZU9mZnNldC55KCkgKyBsaW5lQm94Lmxv
Z2ljYWxUb3AoKSArIGxpbmVCb3guYmFzZWxpbmVPZmZzZXQoKTsKICAgICAgICAgICAgIGlmIChh
dXRvIGV4cGFuc2lvbkNvbnRleHQgPSB0ZXh0Q29udGV4dC0+ZXhwYW5zaW9uKCkpCiAgICAgICAg
ICAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdHlsZS5mb250Q2FzY2FkZSgpLCBUZXh0UnVuIHsg
dGV4dENvbnRleHQtPmNvbnRlbnQoKSwgbG9naWNhbExlZnQsIGV4cGFuc2lvbkNvbnRleHQtPmhv
cml6b250YWxFeHBhbnNpb24sIGV4cGFuc2lvbkNvbnRleHQtPmJlaGF2aW9yIH0sIHsgbG9naWNh
bExlZnQsIGJhc2VsaW5lT2Zmc2V0IH0pOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwgVGV4dFJ1biB7IHRleHRD
b250ZXh0LT5jb250ZW50KCksIGxvZ2ljYWxMZWZ0IH0sIHsgbG9naWNhbExlZnQsIGJhc2VsaW5l
T2Zmc2V0IH0pOwogICAgICAgICB9IGVsc2UgaWYgKGF1dG8qIGNhY2hlZEltYWdlID0gcnVuLmlt
YWdlKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcnVuQWJzb2x1dGVSZWN0ID0gRmxvYXRSZWN0IHsg
cm9vdEFic29sdXRlRGlzcGxheUJveC5sZWZ0KCkgKyBydW4ubG9naWNhbExlZnQoKSwgcm9vdEFi
c29sdXRlRGlzcGxheUJveC50b3AoKSArIHJ1bi5sb2dpY2FsVG9wKCksIHJ1bi5sb2dpY2FsV2lk
dGgoKSwgcnVuLmxvZ2ljYWxIZWlnaHQoKSB9OworICAgICAgICAgICAgYXV0byBydW5BYnNvbHV0
ZVJlY3QgPSBGbG9hdFJlY3QgeyBhYnNvbHV0ZU9mZnNldC54KCkgKyBydW4ubG9naWNhbExlZnQo
KSwgYWJzb2x1dGVPZmZzZXQueSgpICsgcnVuLmxvZ2ljYWxUb3AoKSwgcnVuLmxvZ2ljYWxXaWR0
aCgpLCBydW4ubG9naWNhbEhlaWdodCgpIH07CiAgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFn
ZSgqY2FjaGVkSW1hZ2UtPmltYWdlKCksIHJ1bkFic29sdXRlUmVjdCk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xOTQsNyArMTk0LDcgQEAgdm9pZCBQYWludGVyOjpwYWludChjb25zdCBMYXlvdXQ6
OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiBjb24KICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAobGF5b3V0Qm94LmVzdGFibGlzaGVzSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQoKSkgewogICAgICAgICAgICAgYXV0byYgY29udGFpbmVyID0gZG93bmNh
c3Q8TGF5b3V0OjpDb250YWluZXI+KGxheW91dEJveCk7Ci0gICAgICAgICAgICBwYWludElubGlu
ZUNvbnRlbnQoY29udGV4dCwgYWJzb2x1dGVEaXNwbGF5Qm94LCBkb3duY2FzdDxMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3Rh
dGUoY29udGFpbmVyKSkpOworICAgICAgICAgICAgcGFpbnRJbmxpbmVDb250ZW50KGNvbnRleHQs
IGFic29sdXRlRGlzcGxheUJveC50b3BMZWZ0KCksIGRvd25jYXN0PExheW91dDo6SW5saW5lRm9y
bWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShjb250
YWluZXIpKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTIw
Niw5ICsyMDYsNyBAQCB2b2lkIFBhaW50ZXI6OnBhaW50SW5saW5lRmxvdyhjb25zdCBMYXlvdXQ6
OkxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgR3JhcGhpY3NDbwogCiAgICAgQVNTRVJUKGxheW91
dFJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKTsKIAotICAgIGF1dG8m
IGRpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGxheW91dFJv
b3QpOwotCi0gICAgcGFpbnRJbmxpbmVDb250ZW50KGNvbnRleHQsIGRpc3BsYXlCb3gsIGRvd25j
YXN0PExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hl
ZEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRSb290KSkpOworICAgIHBhaW50SW5saW5lQ29udGVudChj
b250ZXh0LCB7IH0sIGRvd25jYXN0PExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlv
dXRTdGF0ZS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShsYXlvdXRSb290KSkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxh
eW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5jcHAKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZyb20gU291cmNl
L1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCnJlbmFtZSB0byBT
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dC5jcHAKaW5kZXggZWE1MTQ0ZjhlZjQuLmRjMTU5OTBhZjUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3Bw
CkBAIC03NCwyNiArNzQsMzAgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpsYXlv
dXQoKQogICAgIGlmICghbV9sYXlvdXRTdGF0ZSkKICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG1h
a2VVbmlxdWU8TGF5b3V0U3RhdGU+KCptX3RyZWVDb250ZW50KTsKIAotICAgIGF1dG8mIHJvb3RD
b250YWluZXIgPSBtX2xheW91dFN0YXRlLT5yb290KCk7CisgICAgcHJlcGFyZVJvb3REaXNwbGF5
Qm94Rm9yTGF5b3V0KCk7CisKKyAgICBhdXRvJiByb290Q29udGFpbmVyID0gcm9vdExheW91dEJv
eCgpOwogICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQgeyAqbV9sYXlvdXRT
dGF0ZSB9OwogICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7
IH07Ci0gICAgbGF5b3V0Q29udGV4dC5sYXlvdXQobV9mbG93LmNvbnRlbnRTaXplKCksIGludmFs
aWRhdGlvblN0YXRlKTsKIAotICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGluZUZv
cm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUo
cm9vdENvbnRhaW5lcikpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlczsKLSAgICBh
dXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOworICAgIGxheW91
dENvbnRleHQubGF5b3V0KGludmFsaWRhdGlvblN0YXRlKTsKIAotICAgIGF1dG8mIGRpc3BsYXlC
b3ggPSBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KHJvb3RDb250YWluZXIp
OwotICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveEhlaWdodChoZWlnaHQpOworICAgIGF1dG8m
IGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0
ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUocm9vdENvbnRhaW5lcikpLmRpc3BsYXlJbmxp
bmVDb250ZW50KCktPmxpbmVCb3hlczsKKyAgICBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gbGlu
ZUJveGVzLmxhc3QoKS5sb2dpY2FsQm90dG9tKCkgLSBsaW5lQm94ZXMuZmlyc3QoKS5sb2dpY2Fs
VG9wKCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y29udGVu
dEJveEhlaWdodCgpIGNvbnN0Cit2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBh
cmVSb290RGlzcGxheUJveEZvckxheW91dCgpCiB7Ci0gICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUg
PyBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5b3V0U3RhdGUtPnJv
b3QoKSkuY29udGVudEJveEhlaWdodCgpIDogMF9sdTsKKyAgICBhdXRvJiBkaXNwbGF5Qm94ID0g
bV9sYXlvdXRTdGF0ZS0+ZGlzcGxheUJveEZvckxheW91dFJvb3QoKTsKKworICAgIGRpc3BsYXlC
b3guc2V0Qm9yZGVyKExheW91dDo6RWRnZXMgeyB7IG1fZmxvdy5ib3JkZXJTdGFydCgpLCBtX2Zs
b3cuYm9yZGVyRW5kKCkgfSwgeyBtX2Zsb3cuYm9yZGVyQmVmb3JlKCksIG1fZmxvdy5ib3JkZXJB
ZnRlcigpIH0gfSk7CisgICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKExheW91dDo6RWRnZXMgeyB7
IG1fZmxvdy5wYWRkaW5nU3RhcnQoKSwgbV9mbG93LnBhZGRpbmdFbmQoKSB9LCB7IG1fZmxvdy5w
YWRkaW5nQmVmb3JlKCksIG1fZmxvdy5wYWRkaW5nQWZ0ZXIoKSB9IH0pOworICAgIGRpc3BsYXlC
b3guc2V0Q29udGVudEJveFdpZHRoKG1fZmxvdy5jb250ZW50U2l6ZSgpLndpZHRoKCkpOwogfQog
CiBjb25zdCBEaXNwbGF5OjpJbmxpbmVDb250ZW50KiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
OjpkaXNwbGF5SW5saW5lQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvd25jYXN0PElu
bGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5n
U3RhdGUobV90cmVlQ29udGVudC0+cm9vdExheW91dEJveCgpKSkuZGlzcGxheUlubGluZUNvbnRl
bnQoKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91
dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShyb290TGF5b3V0Qm94KCkpKS5kaXNw
bGF5SW5saW5lQ29udGVudCgpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6
OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZz
ZXQpCkBAIC0xNDksNiArMTUzLDExIEBAIExpbmVMYXlvdXRUcmF2ZXJzYWw6OkVsZW1lbnRCb3hJ
dGVyYXRvciBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjplbGVtZW50Qm94Rm9yCiAgICAgcmV0
dXJuIHsgfTsKIH0KIAorY29uc3QgQ29udGFpbmVyJiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
Ojpyb290TGF5b3V0Qm94KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90cmVlQ29udGVudC0+cm9v
dExheW91dEJveCgpOworfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oCnNpbWlsYXJpdHkgaW5kZXgg
ODklCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5k
ZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKaW5kZXggMTQxZjExMjM3MDYuLjMwOTYxZjk5MGEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmgKQEAgLTU1LDcgKzU1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29s
IGNhblVzZUZvcihjb25zdCBSZW5kZXJCbG9ja0Zsb3cmKTsKIAogICAgIHZvaWQgbGF5b3V0KCk7
Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50Qm94SGVpZ2h0KCkgY29uc3Q7CisKKyAgICBMYXlvdXRV
bml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNh
bEhlaWdodDsgfQogICAgIGNvbnN0IERpc3BsYXk6OklubGluZUNvbnRlbnQqIGRpc3BsYXlJbmxp
bmVDb250ZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCk7CkBAIC02NCw5ICs2NSwxMyBAQCBwdWJsaWM6CiAgICAg
TGluZUxheW91dFRyYXZlcnNhbDo6RWxlbWVudEJveEl0ZXJhdG9yIGVsZW1lbnRCb3hGb3IoY29u
c3QgUmVuZGVyTGluZUJyZWFrJikgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgY29uc3QgQ29udGFp
bmVyJiByb290TGF5b3V0Qm94KCkgY29uc3Q7CisgICAgdm9pZCBwcmVwYXJlUm9vdERpc3BsYXlC
b3hGb3JMYXlvdXQoKTsKKwogICAgIGNvbnN0IFJlbmRlckJsb2NrRmxvdyYgbV9mbG93OwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRUcmVlQ29udGVudD4gbV90cmVlQ29udGVudDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8Y29uc3QgTGF5b3V0VHJlZUNvbnRlbnQ+IG1fdHJlZUNvbnRlbnQ7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBtX2xheW91dFN0YXRlOworICAgIExheW91
dFVuaXQgbV9jb250ZW50TG9naWNhbEhlaWdodDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAppbmRleCA0
OTI3MmI3ODdlYS4uYTU1MzU4ZjNiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAgLTQ1NCw3ICs0NTQsMTMg
QEAgdm9pZCBwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKCkKIAogICAgICAgICBhdXRv
JiBsYXlvdXRSb290ID0gbGF5b3V0U3RhdGUucm9vdCgpOwogICAgICAgICBhdXRvIGludmFsaWRh
dGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OwotICAgICAgICBMYXlvdXRDb250ZXh0
KGxheW91dFN0YXRlKS5sYXlvdXQocmVuZGVyVmlldy5zaXplKCksIGludmFsaWRhdGlvblN0YXRl
KTsKKworICAgICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZv
ckxheW91dFJvb3QoKTsKKyAgICAgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoeyB9KTsKKyAgICAg
ICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKHsgfSk7CisgICAgICAgIGRpc3BsYXlCb3guc2V0Q29u
dGVudEJveFdpZHRoKHsgcmVuZGVyVmlldy53aWR0aCgpIH0pOworCisgICAgICAgIExheW91dENv
bnRleHQobGF5b3V0U3RhdGUpLmxheW91dChpbnZhbGlkYXRpb25TdGF0ZSk7CiAgICAgICAgIHNo
b3dMYXlvdXRUcmVlKGxheW91dFJvb3QsICZsYXlvdXRTdGF0ZSk7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgK
aW5kZXggMmIxNGRjNmQyYjEuLmIzYjc3NzlhODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKQEAgLTU3LDE1ICs1Nywx
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZEJveChzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBib3gp
IHsgbV9ib3hlcy5hZGQoV1RGTW92ZShib3gpKTsgfQogCi0gICAgdXNpbmcgUmVuZGVyT2JqZWN0
VG9MYXlvdXRCb3hNYXAgPSBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJveCo+OwogICAg
IEJveCogbGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikg
eyByZXR1cm4gbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAg
IGNvbnN0IEJveCogbGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlcikgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRl
cmVyKTsgfQorICAgIAogICAgIHZvaWQgYWRkTGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlciwgQm94JiBsYXlvdXRCb3gpIHsgbV9yZW5kZXJPYmplY3RUb0xh
eW91dEJveC5hZGQoJnJlbmRlcmVyLCAmbGF5b3V0Qm94KTsgfQogCiBwcml2YXRlOgogICAgIGNv
bnN0IFJlbmRlckJveCYgbV9yb290UmVuZGVyZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRh
aW5lcj4gbV9yb290TGF5b3V0Qm94OwogICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPEJveD4+
IG1fYm94ZXM7Ci0gICAgUmVuZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAgbV9yZW5kZXJPYmplY3RU
b0xheW91dEJveDsKKworICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0KiwgQm94Kj4gbV9y
ZW5kZXJPYmplY3RUb0xheW91dEJveDsKIH07CiAKIGNsYXNzIFRyZWVCdWlsZGVyIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4IDc0YTU1
OGEzMzk5Li5hMGM5MjFmZTYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXdMYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuY3BwCkBAIC03NCwxMCArNzQsMTQgQEAgdm9pZCBGcmFtZVZpZXdMYXlv
dXRDb250ZXh0OjpsYXlvdXRVc2luZ0Zvcm1hdHRpbmdDb250ZXh0KCkKICAgICBpZiAoIW1fbGF5
b3V0U3RhdGUpCiAgICAgICAgIG1fbGF5b3V0U3RhdGUgPSBtYWtlVW5pcXVlPExheW91dDo6TGF5
b3V0U3RhdGU+KCptX2xheW91dFRyZWVDb250ZW50KTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlz
IG5vdCB0aGUgcmVhbCBpbnZhbGlkYXRpb24geWV0LgorICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBt
X2xheW91dFN0YXRlLT5kaXNwbGF5Qm94Rm9yTGF5b3V0Um9vdCgpOworICAgIGRpc3BsYXlCb3gu
c2V0Qm9yZGVyKHsgfSk7CisgICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKHsgfSk7CisgICAgZGlz
cGxheUJveC5zZXRDb250ZW50Qm94V2lkdGgoeyB2aWV3KCkud2lkdGgoKSB9KTsKKwogICAgIGF1
dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBMYXlvdXQ6OkludmFsaWRhdGlvblN0YXRlIHsgfTsKICAg
ICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlvdXQ6OkxheW91dENvbnRleHQgeyAqbV9sYXlvdXRT
dGF0ZSB9OwotICAgIGxheW91dENvbnRleHQubGF5b3V0KHZpZXcoKS5sYXlvdXRTaXplKCksIGlu
dmFsaWRhdGlvblN0YXRlKTsKKyAgICBsYXlvdXRDb250ZXh0LmxheW91dChpbnZhbGlkYXRpb25T
dGF0ZSk7CiAKICAgICAvLyBDbGVhbiB1cCB0aGUgcmVuZGVyIHRyZWUgc3RhdGUgd2hlbiB3ZSBk
b24ndCBydW4gUmVuZGVyVmlldzo6bGF5b3V0LgogICAgIGlmIChyZW5kZXJWaWV3Lm5lZWRzTGF5
b3V0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAK
aW5kZXggMzhmZTg0ZTBmOTkuLmJiYTJkOTI2ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzY4MCwxMSArMzY4MCwxNSBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0TEZDTGluZXMoYm9vbCwgTGF5b3V0VW5pdCYgcmVwYWludExv
Z2ljYWxUb3AsIExheW91dAogCiAgICAgbGZjTGluZUxheW91dC5sYXlvdXQoKTsKIAotICAgIExh
eW91dFVuaXQgbGluZUxheW91dEhlaWdodCA9IGxmY0xpbmVMYXlvdXQuY29udGVudEJveEhlaWdo
dCgpOwotICAgIExheW91dFVuaXQgbGluZUxheW91dFRvcCA9IGJvcmRlckFuZFBhZGRpbmdCZWZv
cmUoKTsKLSAgICByZXBhaW50TG9naWNhbFRvcCA9IGxpbmVMYXlvdXRUb3A7Ci0gICAgcmVwYWlu
dExvZ2ljYWxCb3R0b20gPSByZXBhaW50TG9naWNhbFRvcCArIGxpbmVMYXlvdXRIZWlnaHQgKyBi
b3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKTsKLSAgICBzZXRMb2dpY2FsSGVpZ2h0KGxpbmVMYXlvdXRU
b3AgKyBsaW5lTGF5b3V0SGVpZ2h0ICsgYm9yZGVyQW5kUGFkZGluZ0FmdGVyKCkpOworICAgIGF1
dG8gY29udGVudEhlaWdodCA9IGxmY0xpbmVMYXlvdXQuY29udGVudExvZ2ljYWxIZWlnaHQoKTsK
KyAgICBhdXRvIGNvbnRlbnRUb3AgPSBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7CisgICAgYXV0
byBjb250ZW50Qm90dG9tID0gY29udGVudFRvcCArIGNvbnRlbnRIZWlnaHQ7CisgICAgYXV0byB0
b3RhbEhlaWdodCA9IGNvbnRlbnRCb3R0b20gKyBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKTsKKwor
ICAgIHJlcGFpbnRMb2dpY2FsVG9wID0gY29udGVudFRvcDsKKyAgICByZXBhaW50TG9naWNhbEJv
dHRvbSA9IGNvbnRlbnRCb3R0b207CisKKyAgICBzZXRMb2dpY2FsSGVpZ2h0KHRvdGFsSGVpZ2h0
KTsKIH0KICNlbmRpZgogCg==
</data>
<flag name="review"
          id="400434"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384695</attachid>
            <date>2019-12-02 23:55:09 -0800</date>
            <delta_ts>2019-12-03 02:08:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-border-padding-4.patch</filename>
            <type>text/plain</type>
            <size>24212</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWVhOGE2M2VlNC4uYzYzM2YwZGFiZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICAqIGZhc3QvbGF5b3V0Zm9ybWF0dGlu
Z2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9u
LWJhc2ljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTktMTEtMzAgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYTo6bV93cml0ZUNvdW50IHdoZW4gc2FtcGxlUmF0ZSBjaGFuZ2VzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50
ZWdyYXRpb24tYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2Nv
bnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi44YWQ4MjQwYjg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGludGVybmFsOkxheW91dEZvcm1hdHRpbmdDb250ZXh0UmVuZGVyVHJlZUludGVncmF0
aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxzdHlsZT4KKy5tYXJnaW4geyBtYXJnaW46
IDEwcHggNDAwcHggMjBweCA1cHg7IH0KKy5ib3JkZXIgeyBib3JkZXItbGVmdDogMTBweCBzb2xp
ZCBibGFjazsgYm9yZGVyLXRvcDogNXB4IHNvbGlkIGJsYWNrOyBib3JkZXItcmlnaHQ6IDE1cHgg
c29saWQgYmxhY2s7IGJvcmRlci1ib3R0b206IDIwcHggc29saWQgYmxhY2s7IH0KKy5wYWRkaW5n
IHsgcGFkZGluZzogMTBweCA1MHB4IDIwcHggNXB4OyB9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0i
bWFyZ2luIj5UZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8ZGl2IGNsYXNzPSJt
YXJnaW4gYm9yZGVyIj5UZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4
dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8ZGl2IGNs
YXNzPSJtYXJnaW4gYm9yZGVyIHBhZGRpbmciPlRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCA8
L2Rpdj4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRl
eHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmIyZjFlNDYzNjk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvZmxvdy1p
bnRlZ3JhdGlvbi1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHgyNTgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDI1OAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHgy
MjgKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1LDApIHNpemUgMzc5eDM2CisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM2NXgzNgorICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDM2NTogIlRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRl
eHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTgpIHdpZHRoIDEwODogInRleHQgdGV4dCB0ZXh0IHRleHQiCisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoNSw1Nikgc2l6ZSAzNzl4NjEgW2JvcmRlcjogKDVweCBzb2xpZCAjMDAwMDAw
KSAoMTVweCBzb2xpZCAjMDAwMDAwKSAoMjBweCBzb2xpZCAjMDAwMDAwKSAoMTBweCBzb2xpZCAj
MDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMCw1KSBzaXplIDMzN3gz
NgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxMCw1KSB3aWR0aCAzMzc6ICJUZXh0IHRleHQgdGV4
dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTAsMjMpIHdpZHRoIDEzNjogInRleHQgdGV4dCB0ZXh0IHRleHQgdGV4
dCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1LDEzNykgc2l6ZSAzNzl4OTEgW2JvcmRl
cjogKDVweCBzb2xpZCAjMDAwMDAwKSAoMTVweCBzb2xpZCAjMDAwMDAwKSAoMjBweCBzb2xpZCAj
MDAwMDAwKSAoMTBweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxNSwxNSkgc2l6ZSAyODF4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTUsMTUpIHdp
ZHRoIDI4MTogIlRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRl
eHQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1LDMzKSB3aWR0aCAxOTI6ICJ0ZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA3OTY3Yzc0
ZTNhZi4uNGJlOGMwY2FjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDUsNiArMTA1LDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09S
RV9ESVJ9L2xheW91dC9mbG9hdHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nIgogICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90
ZXh0IgorICAgICIke1dFQkNPUkVfRElSfS9sYXlvdXQvaW50ZWdyYXRpb24iCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L2xheW91dC9sYXlvdXR0cmVlIgogICAgICIke1dFQkNPUkVfRElSfS9sb2FkZXIi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9hcHBjYWNoZSIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Mjlk
YmY0MWU3ZC4uODAwNjRjNTAwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxOS0x
Mi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11b
SW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICBUZXN0OiBmYXN0L2xheW91dGZvcm1hdHRpbmdj
b250ZXh0L2Zsb3ctaW50ZWdyYXRpb24tYmFzaWMuaHRtbAorCisgICAgICAgIExpbmUgbGF5b3V0
IG5lZWRzIHRvIGtub3cgYWJvdXQgZmxvdyBib3JkZXJzIGFuZCBwYWRkaW5nIHNvIHRoYXQgYm94
ZXMgYXJlIG9mZnNldCBjb3JyZWN0bHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpsYXlvdXRXaXRoUHJlcGFyZWRSb290R2VvbWV0cnkp
OgorCisgICAgICAgIFNwbGl0IHNldHVwIGFuZCBsYXlvdXQgaW50byBzZXBhcmF0ZSBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5oOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91dFN0YXRl
OjpkaXNwbGF5Qm94Rm9yTGF5b3V0Um9vdCk6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0YXRl
Lmg6CisgICAgICAgICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OnBhaW50SW5saW5lQ29udGVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5OjpQYWludGVyOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5OjpQYWludGVyOjpwYWludElubGluZUZsb3cpOgorCisgICAgICAgIEF2b2lkIGFjY2Vzc2lu
ZyB0cmVlIHJvb3QgYm94IHByb3BlcnRpZXMgd2hlbiBwYWludGluZyAoc2luY2UgbWFyZ2lucyBh
cmUgbm90IHNldCB1cCkuCisKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQv
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAuCisKKyAgICAgICAgTW92ZWQgdG8gaW50ZWdy
YXRpb24gc3ViZGlyZWN0b3J5LgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OmxheW91dCk6CisKKyAgICAgICAgRHJvcCB0aGUgY29udGVudCBz
aXplIHBhcmFtYXRlciwgdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBvZiBzZXR0aW5nIHVwIHRo
ZSByb290IGRpc3BsYXkgYm94LgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBhcmVSb290RGlzcGxheUJveEZvckxheW91dCk6CisKKyAg
ICAgICAgU2V0dXAgcGFkZGluZyBhbmQgYm9yZGVycy4KKworICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpkaXNwbGF5SW5saW5lQ29udGVudCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6
OnJvb3RMYXlvdXRCb3ggY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9SZW5k
ZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlv
dXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpjb250ZW50TG9naWNhbEhlaWdodCBjb25zdCk6
CisKKyAgICAgICAgVXNlIGEgbWVtYmVyIHRvIHBhc3MgY29udGVudCBoZWlnaHQuCisKKyAgICAg
ICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpMYXlvdXRUcmVlQ29udGVudDo6bGF5b3V0Qm94Rm9yUmVuZGVyZXIgY29u
c3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRMRkNMaW5lcyk6CisKIDIwMTktMTItMDIg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW1JlbmRl
ciB0cmVlXSBTdXBwb3J0IExGQyBpbiBMaW5lTGF5b3V0VHJhdmVyc2FsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IGYzNmY2MGRlMTA3Li5iOGVmNWI5MzU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE0MjIsNyAr
MTQyMiw2IEBAIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcAogbGF5b3V0L0xheW91dFBoYXNlLmNw
cAogbGF5b3V0L0xheW91dFN0YXRlLmNwcAogbGF5b3V0L0xheW91dFVuaXRzLmNwcAotbGF5b3V0
L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCiBsYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAog
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAogbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0x
NDQ1LDYgKzE0NDQsNyBAQCBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRl
ci5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCiBsYXlvdXQvaW5saW5lZm9y
bWF0dGluZy90ZXh0L1RleHRVdGlsLmNwcAorbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuY3BwCiBsYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvbkNvbnRl
eHQuY3BwCiBsYXlvdXQvaW52YWxpZGF0aW9uL0ludmFsaWRhdGlvblN0YXRlLmNwcAogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZhNDc4NWJmY2ZmLi41M2ExNjJjZmFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTY2MzEsNiArMTY2MzEsNyBAQAogCQkJCTExOTlGQTU4MjA4RTNDNEMwMDIzNThDQyAv
KiBkaXNwbGF5dHJlZSAqLywKIAkJCQk2RkNGQzA1NTIxMkRBQ0MyMDA3Njk1RDIgLyogZmxvYXRz
ICovLAogCQkJCTExNUNGQTlBMjA4QkMxNDAwMDFFNjk5MSAvKiBpbmxpbmVmb3JtYXR0aW5nICov
LAorCQkJCUU0RkI0QjFFMjM5NTM1NkYwMDNDMzM2QSAvKiBpbnRlZ3JhdGlvbiAqLywKIAkJCQk2
Rjk1REU0QTIzN0I4ODMwMDBFNTE3RTEgLyogaW52YWxpZGF0aW9uICovLAogCQkJCTExNUNGQTkw
MjA4Qjk0NDEwMDFFNjk5MSAvKiBsYXlvdXR0cmVlICovLAogCQkJCTZGQzVDQTkxMjJFMzU5MzMw
MEIxM0UxMSAvKiB0YWJsZWZvcm1hdHRpbmcgKi8sCkBAIC0xNjY0OSw4ICsxNjY1MCw2IEBACiAJ
CQkJMTE1Q0E4MzAyMzMyOEIxRTAwRkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLywKIAkJCQk2
RjczOTE4QzIxMDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5pdHMuaCAqLywKIAkJCQk2RkU3QUEy
NjIxQzM3QjYzMDAyOTZEQ0QgLyogTWFyZ2luVHlwZXMuaCAqLywKLQkJCQlFNEFCQUJERTIzNjA4
OTNEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCi0JCQkJRTRB
QkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywK
IAkJCQkxMUZGMDJENTIwQkEzQzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbGF5b3V0OwpAQCAtMTY2OTMsNiArMTY2OTIsNyBAQAogCQkxMTVDRkE5
QTIwOEJDMTQwMDAxRTY5OTEgLyogaW5saW5lZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMwIC8q
IGludGVncmF0aW9uICovLAogCQkJCTZGRTdEREREMjBFQzZFOEIwMDhCNUI0RSAvKiB0ZXh0ICov
LAogCQkJCTZGN0NBM0M5MjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dC5jcHAgKi8sCiAJCQkJNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRp
bmdDb250ZXh0LmggKi8sCkBAIC0yNzAyNCw2ICsyNzAyNCwxMyBAQAogCQkJcGF0aCA9IGRvbWpp
dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUU0MzU1MDUyMjM5NTM0NTcw
MDQ4MjlDMCAvKiBpbnRlZ3JhdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkpOworCQkJcGF0aCA9IGludGVncmF0aW9uOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRTQ2RTk3ODYwREFBRDYxQjAwNzFFODk0IC8qIGFuaW1hdGlv
biAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yNzE0Nyw2
ICsyNzE1NCwxNSBAQAogCQkJcGF0aCA9IHVwZGF0aW5nOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKKwkJRTRGQjRCMUUyMzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlFNEFCQUJERTIz
NjA4OTNEMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJ
RTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAq
LywKKwkJCSk7CisJCQlwYXRoID0gaW50ZWdyYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQlFRDUwMURDOTBCMjQ5RjM5MDBBRTE4RDkgLyogbWFjICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRDb250ZXh0LmNwcAppbmRleCBkZTYxYmZkYzRmNy4uZTI4MDEyNzU5YmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKQEAgLTU4LDEyICs1OCwxMSBAQCBMYXlvdXRD
b250ZXh0OjpMYXlvdXRDb250ZXh0KExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSkKIAogdm9pZCBM
YXlvdXRDb250ZXh0OjpsYXlvdXQoY29uc3QgTGF5b3V0U2l6ZSYgcm9vdENvbnRlbnRCb3hTaXpl
LCBJbnZhbGlkYXRpb25TdGF0ZSYgaW52YWxpZGF0aW9uU3RhdGUpCiB7Ci0gICAgUGhhc2VTY29w
ZSBzY29wZShQaGFzZTo6VHlwZTo6TGF5b3V0KTsKICAgICAvLyBTZXQgdGhlIGdlb21ldHJ5IG9u
IHRoZSByb290LgogICAgIC8vIE5vdGUgdGhhdCB3ZSBuZXZlciBsYXlvdXQgdGhlIHJvb3QgYm94
LiBJdCBoYXMgdG8gaGF2ZSBhbiBhbHJlYWR5IGNvbXB1dGVkIGdlb21ldHJ5IChpbiBjYXNlIG9m
IElDQiwgaXQncyB0aGUgdmlldyBnZW9tZXRyeSkuCiAgICAgLy8gSUNCIGVzdGFibGlzaGVzIHRo
ZSBpbml0aWFsIEJGQywgYnV0IGl0IGRvZXMgbm90IGxpdmUgaW4gYSBmb3JtYXR0aW5nIGNvbnRl
eHQgYW5kIHdoaWxlIGEgbm9uLUlDQiByb290KHN1YnRyZWUgbGF5b3V0KSBoYXMgdG8gaGF2ZSBh
IGZvcm1hdHRpbmcgY29udGV4dCwKICAgICAvLyB3ZSBjb3VsZCBub3QgbGF5IGl0IG91dCBldmVu
IGlmIHdlIHdhbnRlZCB0byBzaW5jZSBpdCdzIG91dHNpZGUgb2YgdGhpcyBMYXlvdXRDb250ZXh0
LgotICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JMYXlv
dXRCb3gobGF5b3V0U3RhdGUoKS5yb290KCkpOworICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlv
dXRTdGF0ZSgpLmRpc3BsYXlCb3hGb3JSb290TGF5b3V0Qm94KCk7CiAgICAgZGlzcGxheUJveC5z
ZXRIb3Jpem9udGFsTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29t
cHV0ZWRNYXJnaW4oeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFyZ2luKHsgfSk7
CkBAIC03Myw2ICs3MiwxMyBAQCB2b2lkIExheW91dENvbnRleHQ6OmxheW91dChjb25zdCBMYXlv
dXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0YQogICAgIGRpc3BsYXlC
b3guc2V0Q29udGVudEJveEhlaWdodChyb290Q29udGVudEJveFNpemUuaGVpZ2h0KCkpOwogICAg
IGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKHJvb3RDb250ZW50Qm94U2l6ZS53aWR0aCgp
KTsKIAorICAgIGxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9tZXRyeShpbnZhbGlkYXRpb25TdGF0
ZSk7Cit9CisKK3ZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0V2l0aFByZXBhcmVkUm9vdEdlb21l
dHJ5KEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKK3sKKyAgICBQaGFzZVNj
b3BlIHNjb3BlKFBoYXNlOjpUeXBlOjpMYXlvdXQpOworCiAgICAgYXV0byYgZm9ybWF0dGluZ0Nv
bnRleHRSb290c0ZvckxheW91dCA9IGludmFsaWRhdGlvblN0YXRlLmZvcm1hdHRpbmdDb250ZXh0
Um9vdHMoKTsKICAgICAvLyBXaGVuIGludmFsaWRhdGlvbiBpcyBlbXB0eSwgd2UgYXNzdW1lIGNv
bnN0cmFpbnQgbXV0YXRpb24gYW5kIHN0YXJ0IHJ1bm5pbmcgbGF5b3V0IG9uIHRoZSBjb250ZXh0
IHJvb3QuIExheW91dCBsb2dpYyBzaG91bGQgYmUgYWJsZSB0byBmaWd1cmUgb3V0IHRoZSBkYW1h
Z2UuCiAgICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0Um9vdHNGb3JMYXlvdXQuY29tcHV0ZXNFbXB0
eSgpKQpAQCAtODIsNiArODgsNyBAQCB2b2lkIExheW91dENvbnRleHQ6OmxheW91dChjb25zdCBM
YXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0YQogICAgICAgICBs
YXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRyZWUoZm9ybWF0dGluZ0NvbnRleHRSb290LCBpbnZh
bGlkYXRpb25TdGF0ZSk7CiB9CiAKKwogdm9pZCBMYXlvdXRDb250ZXh0OjpsYXlvdXRGb3JtYXR0
aW5nQ29udGV4dFN1YnRyZWUoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3Qs
IEludmFsaWRhdGlvblN0YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChmb3JtYXR0aW5nQ29udGV4dFJvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCmluZGV4IDFiOWJlNDBlYWUyLi5j
OGU1MGRmMjY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCkBAIC01Miw3
ICs1Miw5IEBAIGNsYXNzIExheW91dENvbnRleHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoTGF5b3V0Q29udGV4dCk7CiBwdWJsaWM6CiAgICAgTGF5b3V0Q29udGV4dChMYXlvdXRTdGF0
ZSYpOworCiAgICAgdm9pZCBsYXlvdXQoY29uc3QgTGF5b3V0U2l6ZSYgcm9vdENvbnRlbnRCb3hT
aXplLCBJbnZhbGlkYXRpb25TdGF0ZSYpOworICAgIHZvaWQgbGF5b3V0V2l0aFByZXBhcmVkUm9v
dEdlb21ldHJ5KEludmFsaWRhdGlvblN0YXRlJik7CiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPEZvcm1hdHRpbmdDb250ZXh0PiBjcmVhdGVGb3JtYXR0aW5nQ29udGV4dChjb25zdCBDb250
YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgTGF5b3V0U3RhdGUmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMzY2YzY2ZDQxYTYuLjE2OTIyYjE1YzIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKQEAgLTU3LDYgKzU3LDExIEBAIExh
eW91dFN0YXRlOjpMYXlvdXRTdGF0ZShjb25zdCBMYXlvdXRUcmVlQ29udGVudCYgbGF5b3V0VHJl
ZUNvbnRlbnQpCiAKIExheW91dFN0YXRlOjp+TGF5b3V0U3RhdGUoKSA9IGRlZmF1bHQ7CiAKK0Rp
c3BsYXk6OkJveCYgTGF5b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JSb290TGF5b3V0Qm94KCkKK3sK
KyAgICByZXR1cm4gZGlzcGxheUJveEZvckxheW91dEJveChtX2xheW91dFRyZWVDb250ZW50LT5y
b290TGF5b3V0Qm94KCkpOworfQorCiBEaXNwbGF5OjpCb3gmIExheW91dFN0YXRlOjpkaXNwbGF5
Qm94Rm9yTGF5b3V0Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewogICAgIHJldHVybiAqbV9s
YXlvdXRUb0Rpc3BsYXlCb3guZW5zdXJlKCZsYXlvdXRCb3gsIFtdIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L0xheW91dFN0YXRlLmgKaW5kZXggN2RhMDgzYzk3MGYuLjg5NDg3MDEyNTEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkZXJlZ2lzdGVyRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZv
cm1hdHRpbmdDb250ZXh0KSB7IG1fZm9ybWF0dGluZ0NvbnRleHRMaXN0LnJlbW92ZSgmZm9ybWF0
dGluZ0NvbnRleHQpOyB9CiAjZW5kaWYKIAorICAgIERpc3BsYXk6OkJveCYgZGlzcGxheUJveEZv
clJvb3RMYXlvdXRCb3goKTsKICAgICBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3hGb3JMYXlvdXRC
b3goY29uc3QgQm94JiBsYXlvdXRCb3gpOwogICAgIGNvbnN0IERpc3BsYXk6OkJveCYgZGlzcGxh
eUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNEaXNwbGF5Qm94KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdCB7IHJldHVybiBtX2xheW91
dFRvRGlzcGxheUJveC5jb250YWlucygmbGF5b3V0Qm94KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKaW5kZXggMzA2YWI4
ZTA4MmQuLjRiOGVmNjg1YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlz
cGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCBzdGF0aWMg
dm9pZCBwYWludEJveERlY29yYXRpb24oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBC
b3gmIGFic29sdXRlRGlzcAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVDb250
ZW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgQm94JiByb290QWJzb2x1dGVEaXNw
bGF5Qm94LCBjb25zdCBMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKQorc3RhdGljIHZvaWQgcGFpbnRJbmxpbmVDb250ZW50KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgTGF5b3V0UG9pbnQgYWJzb2x1dGVPZmZzZXQsIGNvbnN0IExheW91dDo6SW5saW5lRm9y
bWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCiB7CiAgICAgYXV0byogZGlzcGxheUlubGlu
ZUNvbnRlbnQgPSBmb3JtYXR0aW5nU3RhdGUuZGlzcGxheUlubGluZUNvbnRlbnQoKTsKICAgICBp
ZiAoIWRpc3BsYXlJbmxpbmVDb250ZW50KQpAQCAtMTI2LDE2ICsxMjYsMTYgQEAgc3RhdGljIHZv
aWQgcGFpbnRJbmxpbmVDb250ZW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgQm94
JiByb290QWJzb2x1dGUKICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Ioc3R5bGUu
Y29sb3IoKSk7CiAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihzdHlsZS5jb2xvcigp
KTsKIAotICAgICAgICAgICAgYXV0byBsb2dpY2FsTGVmdCA9IHJvb3RBYnNvbHV0ZURpc3BsYXlC
b3gubGVmdCgpICsgcnVuLmxvZ2ljYWxMZWZ0KCk7CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxM
ZWZ0ID0gYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2ljYWxMZWZ0KCk7CiAgICAgICAgICAg
ICAvLyBGSVhNRTogQWRkIG5vbi1iYXNlbGluZSBhbGlnbiBwYWludGluZwogICAgICAgICAgICAg
YXV0byYgbGluZUJveCA9IGRpc3BsYXlJbmxpbmVDb250ZW50LT5saW5lQm94Rm9yUnVuKHJ1bik7
Ci0gICAgICAgICAgICBhdXRvIGJhc2VsaW5lT2Zmc2V0ID0gcm9vdEFic29sdXRlRGlzcGxheUJv
eC50b3AoKSArIGxpbmVCb3gubG9naWNhbFRvcCgpICsgbGluZUJveC5iYXNlbGluZU9mZnNldCgp
OworICAgICAgICAgICAgYXV0byBiYXNlbGluZU9mZnNldCA9IGFic29sdXRlT2Zmc2V0LnkoKSAr
IGxpbmVCb3gubG9naWNhbFRvcCgpICsgbGluZUJveC5iYXNlbGluZU9mZnNldCgpOwogICAgICAg
ICAgICAgaWYgKGF1dG8gZXhwYW5zaW9uQ29udGV4dCA9IHRleHRDb250ZXh0LT5leHBhbnNpb24o
KSkKICAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdUZXh0KHN0eWxlLmZvbnRDYXNjYWRlKCks
IFRleHRSdW4geyB0ZXh0Q29udGV4dC0+Y29udGVudCgpLCBsb2dpY2FsTGVmdCwgZXhwYW5zaW9u
Q29udGV4dC0+aG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9uQ29udGV4dC0+YmVoYXZpb3Ig
fSwgeyBsb2dpY2FsTGVmdCwgYmFzZWxpbmVPZmZzZXQgfSk7CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdHlsZS5mb250Q2FzY2FkZSgpLCBUZXh0
UnVuIHsgdGV4dENvbnRleHQtPmNvbnRlbnQoKSwgbG9naWNhbExlZnQgfSwgeyBsb2dpY2FsTGVm
dCwgYmFzZWxpbmVPZmZzZXQgfSk7CiAgICAgICAgIH0gZWxzZSBpZiAoYXV0byogY2FjaGVkSW1h
Z2UgPSBydW4uaW1hZ2UoKSkgewotICAgICAgICAgICAgYXV0byBydW5BYnNvbHV0ZVJlY3QgPSBG
bG9hdFJlY3QgeyByb290QWJzb2x1dGVEaXNwbGF5Qm94LmxlZnQoKSArIHJ1bi5sb2dpY2FsTGVm
dCgpLCByb290QWJzb2x1dGVEaXNwbGF5Qm94LnRvcCgpICsgcnVuLmxvZ2ljYWxUb3AoKSwgcnVu
LmxvZ2ljYWxXaWR0aCgpLCBydW4ubG9naWNhbEhlaWdodCgpIH07CisgICAgICAgICAgICBhdXRv
IHJ1bkFic29sdXRlUmVjdCA9IEZsb2F0UmVjdCB7IGFic29sdXRlT2Zmc2V0LngoKSArIHJ1bi5s
b2dpY2FsTGVmdCgpLCBhYnNvbHV0ZU9mZnNldC55KCkgKyBydW4ubG9naWNhbFRvcCgpLCBydW4u
bG9naWNhbFdpZHRoKCksIHJ1bi5sb2dpY2FsSGVpZ2h0KCkgfTsKICAgICAgICAgICAgIGNvbnRl
eHQuZHJhd0ltYWdlKCpjYWNoZWRJbWFnZS0+aW1hZ2UoKSwgcnVuQWJzb2x1dGVSZWN0KTsKICAg
ICAgICAgfQogICAgIH0KQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIFBhaW50ZXI6OnBhaW50KGNv
bnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBHcmFwaGljc0NvbnRleHQmIGNv
bgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChsYXlvdXRCb3guZXN0YWJsaXNo
ZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKSB7CiAgICAgICAgICAgICBhdXRvJiBjb250YWlu
ZXIgPSBkb3duY2FzdDxMYXlvdXQ6OkNvbnRhaW5lcj4obGF5b3V0Qm94KTsKLSAgICAgICAgICAg
IHBhaW50SW5saW5lQ29udGVudChjb250ZXh0LCBhYnNvbHV0ZURpc3BsYXlCb3gsIGRvd25jYXN0
PExheW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlPihsYXlvdXRTdGF0ZS5lc3RhYmxpc2hlZEZv
cm1hdHRpbmdTdGF0ZShjb250YWluZXIpKSk7CisgICAgICAgICAgICBwYWludElubGluZUNvbnRl
bnQoY29udGV4dCwgYWJzb2x1dGVEaXNwbGF5Qm94LnRvcExlZnQoKSwgZG93bmNhc3Q8TGF5b3V0
OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGxheW91dFN0YXRlLmVzdGFibGlzaGVkRm9ybWF0dGlu
Z1N0YXRlKGNvbnRhaW5lcikpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjA2LDkgKzIwNiw3IEBAIHZvaWQgUGFpbnRlcjo6cGFpbnRJbmxpbmVGbG93KGNv
bnN0IExheW91dDo6TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBHcmFwaGljc0NvCiAKICAgICBB
U1NFUlQobGF5b3V0Um9vdC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpOwog
Ci0gICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRC
b3gobGF5b3V0Um9vdCk7Ci0KLSAgICBwYWludElubGluZUNvbnRlbnQoY29udGV4dCwgZGlzcGxh
eUJveCwgZG93bmNhc3Q8TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KGxheW91dFN0YXRl
LmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dFJvb3QpKSk7CisgICAgcGFpbnRJbmxp
bmVDb250ZW50KGNvbnRleHQsIHsgfSwgZG93bmNhc3Q8TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
U3RhdGU+KGxheW91dFN0YXRlLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGxheW91dFJvb3Qp
KSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9j
a0Zsb3dMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9S
ZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5hbWUg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAK
cmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmNwcAppbmRleCBlYTUxNDRmOGVmNC4uYjc0ODlhZDNmMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5jcHAKQEAgLTc0LDI2ICs3NCwzMCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQ6OmxheW91dCgpCiAgICAgaWYgKCFtX2xheW91dFN0YXRlKQogICAgICAgICBtX2xheW91
dFN0YXRlID0gbWFrZVVuaXF1ZTxMYXlvdXRTdGF0ZT4oKm1fdHJlZUNvbnRlbnQpOwogCi0gICAg
YXV0byYgcm9vdENvbnRhaW5lciA9IG1fbGF5b3V0U3RhdGUtPnJvb3QoKTsKKyAgICBwcmVwYXJl
Um9vdEdlb21ldHJ5Rm9yTGF5b3V0KCk7CisKICAgICBhdXRvIGxheW91dENvbnRleHQgPSBMYXlv
dXRDb250ZXh0IHsgKm1fbGF5b3V0U3RhdGUgfTsKICAgICBhdXRvIGludmFsaWRhdGlvblN0YXRl
ID0gSW52YWxpZGF0aW9uU3RhdGUgeyB9OwotICAgIGxheW91dENvbnRleHQubGF5b3V0KG1fZmxv
dy5jb250ZW50U2l6ZSgpLCBpbnZhbGlkYXRpb25TdGF0ZSk7CiAKLSAgICBhdXRvJiBsaW5lQm94
ZXMgPSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFi
bGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RDb250YWluZXIpKS5kaXNwbGF5SW5saW5lQ29udGVu
dCgpLT5saW5lQm94ZXM7Ci0gICAgYXV0byBoZWlnaHQgPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2lj
YWxCb3R0b20oKTsKKyAgICBsYXlvdXRDb250ZXh0LmxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9t
ZXRyeShpbnZhbGlkYXRpb25TdGF0ZSk7CiAKLSAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlv
dXRTdGF0ZS0+ZGlzcGxheUJveEZvckxheW91dEJveChyb290Q29udGFpbmVyKTsKLSAgICBkaXNw
bGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoaGVpZ2h0KTsKKyAgICBhdXRvJiBsaW5lQm94ZXMg
PSBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlz
aGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RMYXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50
KCktPmxpbmVCb3hlczsKKyAgICBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gbGluZUJveGVzLmxh
c3QoKS5sb2dpY2FsQm90dG9tKCkgLSBsaW5lQm94ZXMuZmlyc3QoKS5sb2dpY2FsVG9wKCk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6Y29udGVudEJveEhlaWdo
dCgpIGNvbnN0Cit2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnByZXBhcmVSb290R2Vv
bWV0cnlGb3JMYXlvdXQoKQogewotICAgIHJldHVybiBtX2xheW91dFN0YXRlID8gbV9sYXlvdXRT
dGF0ZS0+ZGlzcGxheUJveEZvckxheW91dEJveChtX2xheW91dFN0YXRlLT5yb290KCkpLmNvbnRl
bnRCb3hIZWlnaHQoKSA6IDBfbHU7CisgICAgYXV0byYgZGlzcGxheUJveCA9IG1fbGF5b3V0U3Rh
dGUtPmRpc3BsYXlCb3hGb3JSb290TGF5b3V0Qm94KCk7CisKKyAgICAvLyBEb24ndCBzZXQgbWFy
Z2luZyBwcm9wZXJ0aWVzIG9yIGhlaWdodC4gVGhlc2Ugc2hvdWxkIG5vdCBiZSBiZSBhY2Nlc3Nl
ZCBieSBpbmxpbmUgbGF5b3V0LgorICAgIGRpc3BsYXlCb3guc2V0Qm9yZGVyKExheW91dDo6RWRn
ZXMgeyB7IG1fZmxvdy5ib3JkZXJTdGFydCgpLCBtX2Zsb3cuYm9yZGVyRW5kKCkgfSwgeyBtX2Zs
b3cuYm9yZGVyQmVmb3JlKCksIG1fZmxvdy5ib3JkZXJBZnRlcigpIH0gfSk7CisgICAgZGlzcGxh
eUJveC5zZXRQYWRkaW5nKExheW91dDo6RWRnZXMgeyB7IG1fZmxvdy5wYWRkaW5nU3RhcnQoKSwg
bV9mbG93LnBhZGRpbmdFbmQoKSB9LCB7IG1fZmxvdy5wYWRkaW5nQmVmb3JlKCksIG1fZmxvdy5w
YWRkaW5nQWZ0ZXIoKSB9IH0pOworICAgIGRpc3BsYXlCb3guc2V0Q29udGVudEJveFdpZHRoKG1f
Zmxvdy5jb250ZW50U2l6ZSgpLndpZHRoKCkpOwogfQogCiBjb25zdCBEaXNwbGF5OjpJbmxpbmVD
b250ZW50KiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0OjpkaXNwbGF5SW5saW5lQ29udGVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdTdGF0ZT4obV9s
YXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobV90cmVlQ29udGVudC0+cm9v
dExheW91dEJveCgpKSkuZGlzcGxheUlubGluZUNvbnRlbnQoKTsKKyAgICByZXR1cm4gZG93bmNh
c3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3RhYmxpc2hlZEZvcm1h
dHRpbmdTdGF0ZShyb290TGF5b3V0Qm94KCkpKS5kaXNwbGF5SW5saW5lQ29udGVudCgpOwogfQog
CiB2b2lkIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCkBAIC0xNDksNiArMTUzLDExIEBA
IExpbmVMYXlvdXRUcmF2ZXJzYWw6OkVsZW1lbnRCb3hJdGVyYXRvciBSZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0OjplbGVtZW50Qm94Rm9yCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorY29uc3QgQ29u
dGFpbmVyJiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpyb290TGF5b3V0Qm94KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90cmVlQ29udGVudC0+cm9vdExheW91dEJveCgpOworfQorCiB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5l
TGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5oCnNpbWlsYXJpdHkgaW5kZXggODklCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKcmVuYW1lIHRvIFNvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgK
aW5kZXggMTQxZjExMjM3MDYuLjIwNWU0NjY2MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgKQEAgLTU1LDcg
KzU1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGNhblVzZUZvcihjb25zdCBSZW5kZXJC
bG9ja0Zsb3cmKTsKIAogICAgIHZvaWQgbGF5b3V0KCk7Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50
Qm94SGVpZ2h0KCkgY29uc3Q7CisKKyAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TG9naWNhbEhlaWdodDsgfQogICAgIGNvbnN0IERp
c3BsYXk6OklubGluZUNvbnRlbnQqIGRpc3BsYXlJbmxpbmVDb250ZW50KCkgY29uc3Q7CiAKICAg
ICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7
CkBAIC02NCw5ICs2NSwxMyBAQCBwdWJsaWM6CiAgICAgTGluZUxheW91dFRyYXZlcnNhbDo6RWxl
bWVudEJveEl0ZXJhdG9yIGVsZW1lbnRCb3hGb3IoY29uc3QgUmVuZGVyTGluZUJyZWFrJikgY29u
c3Q7CiAKIHByaXZhdGU6CisgICAgY29uc3QgQ29udGFpbmVyJiByb290TGF5b3V0Qm94KCkgY29u
c3Q7CisgICAgdm9pZCBwcmVwYXJlUm9vdEdlb21ldHJ5Rm9yTGF5b3V0KCk7CisKICAgICBjb25z
dCBSZW5kZXJCbG9ja0Zsb3cmIG1fZmxvdzsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGF5b3V0VHJl
ZUNvbnRlbnQ+IG1fdHJlZUNvbnRlbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IExheW91
dFRyZWVDb250ZW50PiBtX3RyZWVDb250ZW50OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRT
dGF0ZT4gbV9sYXlvdXRTdGF0ZTsKKyAgICBMYXlvdXRVbml0IG1fY29udGVudExvZ2ljYWxIZWln
aHQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggNDkyNzJiNzg3ZWEuLjA1YWUzNTAzN2Q0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVp
bGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwCkBAIC00NTQsNiArNDU0LDcgQEAgdm9pZCBwcmludExheW91dFRyZWVGb3JM
aXZlRG9jdW1lbnRzKCkKIAogICAgICAgICBhdXRvJiBsYXlvdXRSb290ID0gbGF5b3V0U3RhdGUu
cm9vdCgpOwogICAgICAgICBhdXRvIGludmFsaWRhdGlvblN0YXRlID0gSW52YWxpZGF0aW9uU3Rh
dGUgeyB9OworCiAgICAgICAgIExheW91dENvbnRleHQobGF5b3V0U3RhdGUpLmxheW91dChyZW5k
ZXJWaWV3LnNpemUoKSwgaW52YWxpZGF0aW9uU3RhdGUpOwogICAgICAgICBzaG93TGF5b3V0VHJl
ZShsYXlvdXRSb290LCAmbGF5b3V0U3RhdGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IDJiMTRkYzZk
MmIxLi5iM2I3Nzc5YTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCkBAIC01NywxNSArNTcsMTcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBhZGRCb3goc3RkOjp1bmlxdWVfcHRyPEJveD4gYm94KSB7IG1fYm94ZXMuYWRk
KFdURk1vdmUoYm94KSk7IH0KIAotICAgIHVzaW5nIFJlbmRlck9iamVjdFRvTGF5b3V0Qm94TWFw
ID0gSGFzaE1hcDxjb25zdCBSZW5kZXJPYmplY3QqLCBCb3gqPjsKICAgICBCb3gqIGxheW91dEJv
eEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpIHsgcmV0dXJuIG1fcmVu
ZGVyT2JqZWN0VG9MYXlvdXRCb3guZ2V0KCZyZW5kZXJlcik7IH0KKyAgICBjb25zdCBCb3gqIGxh
eW91dEJveEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVyT2JqZWN0VG9MYXlvdXRCb3guZ2V0KCZyZW5kZXJlcik7IH0KKyAgICAK
ICAgICB2b2lkIGFkZExheW91dEJveEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVu
ZGVyZXIsIEJveCYgbGF5b3V0Qm94KSB7IG1fcmVuZGVyT2JqZWN0VG9MYXlvdXRCb3guYWRkKCZy
ZW5kZXJlciwgJmxheW91dEJveCk7IH0KIAogcHJpdmF0ZToKICAgICBjb25zdCBSZW5kZXJCb3gm
IG1fcm9vdFJlbmRlcmVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IG1fcm9vdExh
eW91dEJveDsKICAgICBIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxCb3g+PiBtX2JveGVzOwotICAg
IFJlbmRlck9iamVjdFRvTGF5b3V0Qm94TWFwIG1fcmVuZGVyT2JqZWN0VG9MYXlvdXRCb3g7CisK
KyAgICBIYXNoTWFwPGNvbnN0IFJlbmRlck9iamVjdCosIEJveCo+IG1fcmVuZGVyT2JqZWN0VG9M
YXlvdXRCb3g7CiB9OwogCiBjbGFzcyBUcmVlQnVpbGRlciB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDM4ZmU4NGUwZjk5Li5iYmEyZDkyNjg3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAg
LTM2ODAsMTEgKzM2ODAsMTUgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dExGQ0xpbmVz
KGJvb2wsIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsVG9wLCBMYXlvdXQKIAogICAgIGxmY0xp
bmVMYXlvdXQubGF5b3V0KCk7CiAKLSAgICBMYXlvdXRVbml0IGxpbmVMYXlvdXRIZWlnaHQgPSBs
ZmNMaW5lTGF5b3V0LmNvbnRlbnRCb3hIZWlnaHQoKTsKLSAgICBMYXlvdXRVbml0IGxpbmVMYXlv
dXRUb3AgPSBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCk7Ci0gICAgcmVwYWludExvZ2ljYWxUb3Ag
PSBsaW5lTGF5b3V0VG9wOwotICAgIHJlcGFpbnRMb2dpY2FsQm90dG9tID0gcmVwYWludExvZ2lj
YWxUb3AgKyBsaW5lTGF5b3V0SGVpZ2h0ICsgYm9yZGVyQW5kUGFkZGluZ0FmdGVyKCk7Ci0gICAg
c2V0TG9naWNhbEhlaWdodChsaW5lTGF5b3V0VG9wICsgbGluZUxheW91dEhlaWdodCArIGJvcmRl
ckFuZFBhZGRpbmdBZnRlcigpKTsKKyAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSBsZmNMaW5lTGF5
b3V0LmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CisgICAgYXV0byBjb250ZW50VG9wID0gYm9yZGVy
QW5kUGFkZGluZ0JlZm9yZSgpOworICAgIGF1dG8gY29udGVudEJvdHRvbSA9IGNvbnRlbnRUb3Ag
KyBjb250ZW50SGVpZ2h0OworICAgIGF1dG8gdG90YWxIZWlnaHQgPSBjb250ZW50Qm90dG9tICsg
Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCk7CisKKyAgICByZXBhaW50TG9naWNhbFRvcCA9IGNvbnRl
bnRUb3A7CisgICAgcmVwYWludExvZ2ljYWxCb3R0b20gPSBjb250ZW50Qm90dG9tOworCisgICAg
c2V0TG9naWNhbEhlaWdodCh0b3RhbEhlaWdodCk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384699</attachid>
            <date>2019-12-03 02:08:04 -0800</date>
            <delta_ts>2019-12-03 02:51:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>lfc-border-padding-5.patch</filename>
            <type>text/plain</type>
            <size>25792</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZWVhOGE2M2VlNC4uYzYzM2YwZGFiZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIFNldHVwIHJvb3QgYm94IHByb3BlcnRpZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKworICAgICAgICAqIGZhc3QvbGF5b3V0Zm9ybWF0dGlu
Z2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9u
LWJhc2ljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTktMTEtMzAgIHlvdWVubiBmYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBSZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYTo6bV93cml0ZUNvdW50IHdoZW4gc2FtcGxlUmF0ZSBjaGFuZ2VzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L2Zsb3ctaW50
ZWdyYXRpb24tYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2Nv
bnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi44YWQ4MjQwYjg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy5o
dG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGludGVybmFsOkxheW91dEZvcm1hdHRpbmdDb250ZXh0UmVuZGVyVHJlZUludGVncmF0
aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxzdHlsZT4KKy5tYXJnaW4geyBtYXJnaW46
IDEwcHggNDAwcHggMjBweCA1cHg7IH0KKy5ib3JkZXIgeyBib3JkZXItbGVmdDogMTBweCBzb2xp
ZCBibGFjazsgYm9yZGVyLXRvcDogNXB4IHNvbGlkIGJsYWNrOyBib3JkZXItcmlnaHQ6IDE1cHgg
c29saWQgYmxhY2s7IGJvcmRlci1ib3R0b206IDIwcHggc29saWQgYmxhY2s7IH0KKy5wYWRkaW5n
IHsgcGFkZGluZzogMTBweCA1MHB4IDIwcHggNXB4OyB9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz0i
bWFyZ2luIj5UZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8ZGl2IGNsYXNzPSJt
YXJnaW4gYm9yZGVyIj5UZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4
dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgPC9kaXY+Cis8ZGl2IGNs
YXNzPSJtYXJnaW4gYm9yZGVyIHBhZGRpbmciPlRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCA8
L2Rpdj4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11
bGF0b3IvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2lj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC9s
YXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2ljLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmMzMzk0ZTM3ZmYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3Qv
bGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRl
clZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgyNzAK
KyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDI3MAorICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDEwKSBzaXplIDc4NHgyNDAKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg1LDApIHNpemUgMzc5eDQwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDM2NXgzOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM2NTogIlRl
eHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDEwODogInRleHQgdGV4
dCB0ZXh0IHRleHQiCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoNSw2MCkgc2l6ZSAzNzl4
NjUgW2JvcmRlcjogKDVweCBzb2xpZCAjMDAwMDAwKSAoMTVweCBzb2xpZCAjMDAwMDAwKSAoMjBw
eCBzb2xpZCAjMDAwMDAwKSAoMTBweCBzb2xpZCAjMDAwMDAwKV0KKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxMCw1KSBzaXplIDMzN3gzOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MCw1KSB3aWR0aCAzMzc6ICJUZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQg
dGV4dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTAsMjUpIHdpZHRo
IDEzNjogInRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICg1LDE0NSkgc2l6ZSAzNzl4OTUgW2JvcmRlcjogKDVweCBzb2xpZCAjMDAwMDAwKSAoMTVw
eCBzb2xpZCAjMDAwMDAwKSAoMjBweCBzb2xpZCAjMDAwMDAwKSAoMTBweCBzb2xpZCAjMDAwMDAw
KV0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNSwxNSkgc2l6ZSAyODF4MzkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTUsMTUpIHdpZHRoIDI4MTogIlRleHQgdGV4dCB0ZXh0IHRl
eHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDE1LDM1KSB3aWR0aCAxOTI6ICJ0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0Igpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvbGF5b3V0Zm9ybWF0dGlu
Z2NvbnRleHQvZmxvdy1pbnRlZ3JhdGlvbi1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0
aW9uLWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYjJmMWU0NjM2OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC9mbG93LWludGVncmF0aW9uLWJhc2lj
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDI1OAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjU4Cisg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTApIHNpemUgNzg0eDIyOAorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDUsMCkgc2l6ZSAzNzl4MzYKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzY1eDM2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzY1OiAiVGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4
dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTA4
OiAidGV4dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg1LDU2
KSBzaXplIDM3OXg2MSBbYm9yZGVyOiAoNXB4IHNvbGlkICMwMDAwMDApICgxNXB4IHNvbGlkICMw
MDAwMDApICgyMHB4IHNvbGlkICMwMDAwMDApICgxMHB4IHNvbGlkICMwMDAwMDApXQorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwLDUpIHNpemUgMzM3eDM2CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDEwLDUpIHdpZHRoIDMzNzogIlRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MCwyMykgd2lkdGggMTM2OiAidGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IgorICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDUsMTM3KSBzaXplIDM3OXg5MSBbYm9yZGVyOiAoNXB4IHNvbGlkICMw
MDAwMDApICgxNXB4IHNvbGlkICMwMDAwMDApICgyMHB4IHNvbGlkICMwMDAwMDApICgxMHB4IHNv
bGlkICMwMDAwMDApXQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1LDE1KSBzaXpl
IDI4MXgzNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNSwxNSkgd2lkdGggMjgxOiAiVGV4dCB0
ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMTUsMzMpIHdpZHRoIDE5MjogInRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0
ZXh0IHRleHQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDc5NjdjNzRlM2FmLi40YmU4YzBjYWM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwNSw2ICsxMDUsNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2Zs
b2F0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0L2lubGluZWZvcm1hdHRpbmciCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L2xheW91dC9pbnRlZ3JhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vbGF5b3V0
L2xheW91dHRyZWUiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlciIKICAgICAiJHtXRUJDT1JF
X0RJUn0vbG9hZGVyL2FwcGNhY2hlIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYyOWRiZjQxZTdkLi44MDA2NGM1
MDAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE5LTEyLTAyICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gU2V0
dXAgcm9vdCBib3ggcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVqdGFz
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvZmxvdy1pbnRl
Z3JhdGlvbi1iYXNpYy5odG1sCisKKyAgICAgICAgTGluZSBsYXlvdXQgbmVlZHMgdG8ga25vdyBh
Ym91dCBmbG93IGJvcmRlcnMgYW5kIHBhZGRpbmcgc28gdGhhdCBib3hlcyBhcmUgb2Zmc2V0IGNv
cnJlY3RseS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkxheW91dENvbnRleHQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dENvbnRleHQ6OmxheW91dFdpdGhQcmVwYXJlZFJvb3RHZW9tZXRyeSk6CisKKyAgICAgICAgU3Bs
aXQgc2V0dXAgYW5kIGxheW91dCBpbnRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4KKworICAgICAgICAq
IGxheW91dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JM
YXlvdXRSb290KToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKiBs
YXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6cGFpbnRJbmxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6
OlBhaW50ZXI6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXk6OlBhaW50ZXI6OnBh
aW50SW5saW5lRmxvdyk6CisKKyAgICAgICAgQXZvaWQgYWNjZXNzaW5nIHRyZWUgcm9vdCBib3gg
cHJvcGVydGllcyB3aGVuIHBhaW50aW5nIChzaW5jZSBtYXJnaW5zIGFyZSBub3Qgc2V0IHVwKS4K
KworICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dM
aW5lTGF5b3V0LmNwcC4KKworICAgICAgICBNb3ZlZCB0byBpbnRlZ3JhdGlvbiBzdWJkaXJlY3Rv
cnkuCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91
dDo6bGF5b3V0KToKKworICAgICAgICBEcm9wIHRoZSBjb250ZW50IHNpemUgcGFyYW1hdGVyLCB0
aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIG9mIHNldHRpbmcgdXAgdGhlIHJvb3QgZGlzcGxheSBi
b3guCisKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91
dDo6cHJlcGFyZVJvb3REaXNwbGF5Qm94Rm9yTGF5b3V0KToKKworICAgICAgICBTZXR1cCBwYWRk
aW5nIGFuZCBib3JkZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cm9vdExheW91dEJveCBj
b25zdCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVM
YXlvdXQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJCbG9ja0Zs
b3dMaW5lTGF5b3V0LmguCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlJlbmRlckJsb2NrRmxv
d0xpbmVMYXlvdXQ6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0IGNvbnN0KToKKworICAgICAgICBVc2Ug
YSBtZW1iZXIgdG8gcGFzcyBjb250ZW50IGhlaWdodC4KKworICAgICAgICAqIGxheW91dC9sYXlv
dXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Okxh
eW91dFRyZWVDb250ZW50OjpsYXlvdXRCb3hGb3JSZW5kZXJlciBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmxheW91dExGQ0xpbmVzKToKKwogMjAxOS0xMi0wMiAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUmVuZGVyIHRyZWVdIFN1cHBvcnQg
TEZDIGluIExpbmVMYXlvdXRUcmF2ZXJzYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZjM2ZjYwZGUxMDcu
LmI4ZWY1YjkzNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQyMiw3ICsxNDIyLDYgQEAgbGF5b3V0
L0xheW91dENvbnRleHQuY3BwCiBsYXlvdXQvTGF5b3V0UGhhc2UuY3BwCiBsYXlvdXQvTGF5b3V0
U3RhdGUuY3BwCiBsYXlvdXQvTGF5b3V0VW5pdHMuY3BwCi1sYXlvdXQvUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5jcHAKIGxheW91dC9WZXJpZmljYXRpb24uY3BwCiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTE0NDUsNiArMTQ0NCw3IEBA
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNwcAogbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQvVGV4
dFV0aWwuY3BwCitsYXlvdXQvaW50ZWdyYXRpb24vUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5j
cHAKIGxheW91dC9pbnZhbGlkYXRpb24vSW52YWxpZGF0aW9uQ29udGV4dC5jcHAKIGxheW91dC9p
bnZhbGlkYXRpb24vSW52YWxpZGF0aW9uU3RhdGUuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRCb3guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNmE0Nzg1YmZjZmYuLjUzYTE2MmNmYWM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjYzMSw2ICsx
NjYzMSw3IEBACiAJCQkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRpc3BsYXl0cmVlICov
LAogCQkJCTZGQ0ZDMDU1MjEyREFDQzIwMDc2OTVEMiAvKiBmbG9hdHMgKi8sCiAJCQkJMTE1Q0ZB
OUEyMDhCQzE0MDAwMUU2OTkxIC8qIGlubGluZWZvcm1hdHRpbmcgKi8sCisJCQkJRTRGQjRCMUUy
Mzk1MzU2RjAwM0MzMzZBIC8qIGludGVncmF0aW9uICovLAogCQkJCTZGOTVERTRBMjM3Qjg4MzAw
MEU1MTdFMSAvKiBpbnZhbGlkYXRpb24gKi8sCiAJCQkJMTE1Q0ZBOTAyMDhCOTQ0MTAwMUU2OTkx
IC8qIGxheW91dHRyZWUgKi8sCiAJCQkJNkZDNUNBOTEyMkUzNTkzMzAwQjEzRTExIC8qIHRhYmxl
Zm9ybWF0dGluZyAqLywKQEAgLTE2NjQ5LDggKzE2NjUwLDYgQEAKIAkJCQkxMTVDQTgzMDIzMzI4
QjFFMDBGRDNCMDggLyogTGF5b3V0VW5pdHMuY3BwICovLAogCQkJCTZGNzM5MThDMjEwNkNFREQw
MDZBRjI2MiAvKiBMYXlvdXRVbml0cy5oICovLAogCQkJCTZGRTdBQTI2MjFDMzdCNjMwMDI5NkRD
RCAvKiBNYXJnaW5UeXBlcy5oICovLAotCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAvKiBS
ZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKLQkJCQlFNEFCQUJEQjIzNjA4OEZEMDBG
QTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovLAogCQkJCTExRkYwMkQ1MjBC
QTNDODEwMDgzRjI1QiAvKiBWZXJpZmljYXRpb24uY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBs
YXlvdXQ7CkBAIC0xNjY5Myw2ICsxNjY5Miw3IEBACiAJCTExNUNGQTlBMjA4QkMxNDAwMDFFNjk5
MSAvKiBpbmxpbmVmb3JtYXR0aW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlFNDM1NTA1MjIzOTUzNDU3MDA0ODI5QzAgLyogaW50ZWdyYXRpb24gKi8s
CiAJCQkJNkZFN0REREQyMEVDNkU4QjAwOEI1QjRFIC8qIHRleHQgKi8sCiAJCQkJNkY3Q0EzQzky
MDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2
RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLywK
QEAgLTI3MDI0LDYgKzI3MDI0LDEzIEBACiAJCQlwYXRoID0gZG9taml0OwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRTQzNTUwNTIyMzk1MzQ1NzAwNDgyOUMwIC8qIGludGVn
cmF0aW9uICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCSk7
CisJCQlwYXRoID0gaW50ZWdyYXRpb247CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQlFNDZFOTc4NjBEQUFENjFCMDA3MUU4OTQgLyogYW5pbWF0aW9uICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTI3MTQ3LDYgKzI3MTU0LDE1IEBACiAJ
CQlwYXRoID0gdXBkYXRpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlF
NEZCNEIxRTIzOTUzNTZGMDAzQzMzNkEgLyogaW50ZWdyYXRpb24gKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUU0QUJBQkRFMjM2MDg5M0QwMEZBNDM0NSAv
KiBSZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcCAqLywKKwkJCQlFNEFCQUJEQjIzNjA4OEZE
MDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5oICovLAorCQkJKTsKKwkJCXBh
dGggPSBpbnRlZ3JhdGlvbjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUVE
NTAxREM5MEIyNDlGMzkwMEFFMThEOSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwCmlu
ZGV4IGRlNjFiZmRjNGY3Li5lMjgwMTI3NTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRDb250ZXh0LmNwcApAQCAtNTgsMTIgKzU4LDExIEBAIExheW91dENvbnRleHQ6OkxheW91dENv
bnRleHQoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQogCiB2b2lkIExheW91dENvbnRleHQ6Omxh
eW91dChjb25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlvblN0
YXRlJiBpbnZhbGlkYXRpb25TdGF0ZSkKIHsKLSAgICBQaGFzZVNjb3BlIHNjb3BlKFBoYXNlOjpU
eXBlOjpMYXlvdXQpOwogICAgIC8vIFNldCB0aGUgZ2VvbWV0cnkgb24gdGhlIHJvb3QuCiAgICAg
Ly8gTm90ZSB0aGF0IHdlIG5ldmVyIGxheW91dCB0aGUgcm9vdCBib3guIEl0IGhhcyB0byBoYXZl
IGFuIGFscmVhZHkgY29tcHV0ZWQgZ2VvbWV0cnkgKGluIGNhc2Ugb2YgSUNCLCBpdCdzIHRoZSB2
aWV3IGdlb21ldHJ5KS4KICAgICAvLyBJQ0IgZXN0YWJsaXNoZXMgdGhlIGluaXRpYWwgQkZDLCBi
dXQgaXQgZG9lcyBub3QgbGl2ZSBpbiBhIGZvcm1hdHRpbmcgY29udGV4dCBhbmQgd2hpbGUgYSBu
b24tSUNCIHJvb3Qoc3VidHJlZSBsYXlvdXQpIGhhcyB0byBoYXZlIGEgZm9ybWF0dGluZyBjb250
ZXh0LAogICAgIC8vIHdlIGNvdWxkIG5vdCBsYXkgaXQgb3V0IGV2ZW4gaWYgd2Ugd2FudGVkIHRv
IHNpbmNlIGl0J3Mgb3V0c2lkZSBvZiB0aGlzIExheW91dENvbnRleHQuCi0gICAgYXV0byYgZGlz
cGxheUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChsYXlvdXRTdGF0
ZSgpLnJvb3QoKSk7CisgICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxh
eUJveEZvclJvb3RMYXlvdXRCb3goKTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJn
aW4oeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxDb21wdXRlZE1hcmdpbih7IH0p
OwogICAgIGRpc3BsYXlCb3guc2V0VmVydGljYWxNYXJnaW4oeyB9KTsKQEAgLTczLDYgKzcyLDEz
IEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RDb250
ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhCiAgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94
SGVpZ2h0KHJvb3RDb250ZW50Qm94U2l6ZS5oZWlnaHQoKSk7CiAgICAgZGlzcGxheUJveC5zZXRD
b250ZW50Qm94V2lkdGgocm9vdENvbnRlbnRCb3hTaXplLndpZHRoKCkpOwogCisgICAgbGF5b3V0
V2l0aFByZXBhcmVkUm9vdEdlb21ldHJ5KGludmFsaWRhdGlvblN0YXRlKTsKK30KKwordm9pZCBM
YXlvdXRDb250ZXh0OjpsYXlvdXRXaXRoUHJlcGFyZWRSb290R2VvbWV0cnkoSW52YWxpZGF0aW9u
U3RhdGUmIGludmFsaWRhdGlvblN0YXRlKQoreworICAgIFBoYXNlU2NvcGUgc2NvcGUoUGhhc2U6
OlR5cGU6OkxheW91dCk7CisKICAgICBhdXRvJiBmb3JtYXR0aW5nQ29udGV4dFJvb3RzRm9yTGF5
b3V0ID0gaW52YWxpZGF0aW9uU3RhdGUuZm9ybWF0dGluZ0NvbnRleHRSb290cygpOwogICAgIC8v
IFdoZW4gaW52YWxpZGF0aW9uIGlzIGVtcHR5LCB3ZSBhc3N1bWUgY29uc3RyYWludCBtdXRhdGlv
biBhbmQgc3RhcnQgcnVubmluZyBsYXlvdXQgb24gdGhlIGNvbnRleHQgcm9vdC4gTGF5b3V0IGxv
Z2ljIHNob3VsZCBiZSBhYmxlIHRvIGZpZ3VyZSBvdXQgdGhlIGRhbWFnZS4KICAgICBpZiAoZm9y
bWF0dGluZ0NvbnRleHRSb290c0ZvckxheW91dC5jb21wdXRlc0VtcHR5KCkpCkBAIC04Miw2ICs4
OCw3IEBAIHZvaWQgTGF5b3V0Q29udGV4dDo6bGF5b3V0KGNvbnN0IExheW91dFNpemUmIHJvb3RD
b250ZW50Qm94U2l6ZSwgSW52YWxpZGF0aW9uU3RhCiAgICAgICAgIGxheW91dEZvcm1hdHRpbmdD
b250ZXh0U3VidHJlZShmb3JtYXR0aW5nQ29udGV4dFJvb3QsIGludmFsaWRhdGlvblN0YXRlKTsK
IH0KIAorCiB2b2lkIExheW91dENvbnRleHQ6OmxheW91dEZvcm1hdHRpbmdDb250ZXh0U3VidHJl
ZShjb25zdCBDb250YWluZXImIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgSW52YWxpZGF0aW9uU3Rh
dGUmIGludmFsaWRhdGlvblN0YXRlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGZvcm1hdHRpbmdD
b250ZXh0Um9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9MYXlvdXRDb250ZXh0LmgKaW5kZXggMWI5YmU0MGVhZTIuLmM4ZTUwZGYyNjQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmgKQEAgLTUyLDcgKzUyLDkgQEAgY2xhc3Mg
TGF5b3V0Q29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChMYXlvdXRDb250ZXh0
KTsKIHB1YmxpYzoKICAgICBMYXlvdXRDb250ZXh0KExheW91dFN0YXRlJik7CisKICAgICB2b2lk
IGxheW91dChjb25zdCBMYXlvdXRTaXplJiByb290Q29udGVudEJveFNpemUsIEludmFsaWRhdGlv
blN0YXRlJik7CisgICAgdm9pZCBsYXlvdXRXaXRoUHJlcGFyZWRSb290R2VvbWV0cnkoSW52YWxp
ZGF0aW9uU3RhdGUmKTsKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0Nv
bnRleHQ+IGNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGlu
Z0NvbnRleHRSb290LCBMYXlvdXRTdGF0ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0
YXRlLmNwcAppbmRleCAzNjZjNjZkNDFhNi4uMTY5MjJiMTVjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dFN0YXRlLmNwcApAQCAtNTcsNiArNTcsMTEgQEAgTGF5b3V0U3RhdGU6OkxheW91
dFN0YXRlKGNvbnN0IExheW91dFRyZWVDb250ZW50JiBsYXlvdXRUcmVlQ29udGVudCkKIAogTGF5
b3V0U3RhdGU6On5MYXlvdXRTdGF0ZSgpID0gZGVmYXVsdDsKIAorRGlzcGxheTo6Qm94JiBMYXlv
dXRTdGF0ZTo6ZGlzcGxheUJveEZvclJvb3RMYXlvdXRCb3goKQoreworICAgIHJldHVybiBkaXNw
bGF5Qm94Rm9yTGF5b3V0Qm94KG1fbGF5b3V0VHJlZUNvbnRlbnQtPnJvb3RMYXlvdXRCb3goKSk7
Cit9CisKIERpc3BsYXk6OkJveCYgTGF5b3V0U3RhdGU6OmRpc3BsYXlCb3hGb3JMYXlvdXRCb3go
Y29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgcmV0dXJuICptX2xheW91dFRvRGlzcGxheUJv
eC5lbnN1cmUoJmxheW91dEJveCwgW10gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaApp
bmRleCA3ZGEwODNjOTcwZi4uODk0ODcwMTI1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRT
dGF0ZS5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlcmVnaXN0ZXJGb3Jt
YXR0aW5nQ29udGV4dChjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQp
IHsgbV9mb3JtYXR0aW5nQ29udGV4dExpc3QucmVtb3ZlKCZmb3JtYXR0aW5nQ29udGV4dCk7IH0K
ICNlbmRpZgogCisgICAgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94Rm9yUm9vdExheW91dEJveCgp
OwogICAgIERpc3BsYXk6OkJveCYgZGlzcGxheUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxh
eW91dEJveCk7CiAgICAgY29uc3QgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94Rm9yTGF5b3V0Qm94
KGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdDsKICAgICBib29sIGhhc0Rpc3BsYXlCb3goY29u
c3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0VG9EaXNwbGF5Qm94LmNv
bnRhaW5zKCZsYXlvdXRCb3gpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rp
c3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAppbmRleCAzMDZhYjhlMDgyZC4uNGI4ZWY2ODVj
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
UGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3Bs
YXlQYWludGVyLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyB2b2lkIHBhaW50Qm94RGVj
b3JhdGlvbihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEJveCYgYWJzb2x1dGVEaXNw
CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBwYWludElubGluZUNvbnRlbnQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBCb3gmIHJvb3RBYnNvbHV0ZURpc3BsYXlCb3gsIGNvbnN0IExh
eW91dDo6SW5saW5lRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUpCitzdGF0aWMgdm9p
ZCBwYWludElubGluZUNvbnRlbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBMYXlvdXRQb2lu
dCBhYnNvbHV0ZU9mZnNldCwgY29uc3QgTGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nU3RhdGUmIGZv
cm1hdHRpbmdTdGF0ZSkKIHsKICAgICBhdXRvKiBkaXNwbGF5SW5saW5lQ29udGVudCA9IGZvcm1h
dHRpbmdTdGF0ZS5kaXNwbGF5SW5saW5lQ29udGVudCgpOwogICAgIGlmICghZGlzcGxheUlubGlu
ZUNvbnRlbnQpCkBAIC0xMjYsMTYgKzEyNiwxNiBAQCBzdGF0aWMgdm9pZCBwYWludElubGluZUNv
bnRlbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBCb3gmIHJvb3RBYnNvbHV0ZQog
ICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihzdHlsZS5jb2xvcigpKTsKICAgICAg
ICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKHN0eWxlLmNvbG9yKCkpOwogCi0gICAgICAgICAg
ICBhdXRvIGxvZ2ljYWxMZWZ0ID0gcm9vdEFic29sdXRlRGlzcGxheUJveC5sZWZ0KCkgKyBydW4u
bG9naWNhbExlZnQoKTsKKyAgICAgICAgICAgIGF1dG8gbG9naWNhbExlZnQgPSBhYnNvbHV0ZU9m
ZnNldC54KCkgKyBydW4ubG9naWNhbExlZnQoKTsKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQg
bm9uLWJhc2VsaW5lIGFsaWduIHBhaW50aW5nCiAgICAgICAgICAgICBhdXRvJiBsaW5lQm94ID0g
ZGlzcGxheUlubGluZUNvbnRlbnQtPmxpbmVCb3hGb3JSdW4ocnVuKTsKLSAgICAgICAgICAgIGF1
dG8gYmFzZWxpbmVPZmZzZXQgPSByb290QWJzb2x1dGVEaXNwbGF5Qm94LnRvcCgpICsgbGluZUJv
eC5sb2dpY2FsVG9wKCkgKyBsaW5lQm94LmJhc2VsaW5lT2Zmc2V0KCk7CisgICAgICAgICAgICBh
dXRvIGJhc2VsaW5lT2Zmc2V0ID0gYWJzb2x1dGVPZmZzZXQueSgpICsgbGluZUJveC5sb2dpY2Fs
VG9wKCkgKyBsaW5lQm94LmJhc2VsaW5lT2Zmc2V0KCk7CiAgICAgICAgICAgICBpZiAoYXV0byBl
eHBhbnNpb25Db250ZXh0ID0gdGV4dENvbnRleHQtPmV4cGFuc2lvbigpKQogICAgICAgICAgICAg
ICAgIGNvbnRleHQuZHJhd1RleHQoc3R5bGUuZm9udENhc2NhZGUoKSwgVGV4dFJ1biB7IHRleHRD
b250ZXh0LT5jb250ZW50KCksIGxvZ2ljYWxMZWZ0LCBleHBhbnNpb25Db250ZXh0LT5ob3Jpem9u
dGFsRXhwYW5zaW9uLCBleHBhbnNpb25Db250ZXh0LT5iZWhhdmlvciB9LCB7IGxvZ2ljYWxMZWZ0
LCBiYXNlbGluZU9mZnNldCB9KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBj
b250ZXh0LmRyYXdUZXh0KHN0eWxlLmZvbnRDYXNjYWRlKCksIFRleHRSdW4geyB0ZXh0Q29udGV4
dC0+Y29udGVudCgpLCBsb2dpY2FsTGVmdCB9LCB7IGxvZ2ljYWxMZWZ0LCBiYXNlbGluZU9mZnNl
dCB9KTsKICAgICAgICAgfSBlbHNlIGlmIChhdXRvKiBjYWNoZWRJbWFnZSA9IHJ1bi5pbWFnZSgp
KSB7Ci0gICAgICAgICAgICBhdXRvIHJ1bkFic29sdXRlUmVjdCA9IEZsb2F0UmVjdCB7IHJvb3RB
YnNvbHV0ZURpc3BsYXlCb3gubGVmdCgpICsgcnVuLmxvZ2ljYWxMZWZ0KCksIHJvb3RBYnNvbHV0
ZURpc3BsYXlCb3gudG9wKCkgKyBydW4ubG9naWNhbFRvcCgpLCBydW4ubG9naWNhbFdpZHRoKCks
IHJ1bi5sb2dpY2FsSGVpZ2h0KCkgfTsKKyAgICAgICAgICAgIGF1dG8gcnVuQWJzb2x1dGVSZWN0
ID0gRmxvYXRSZWN0IHsgYWJzb2x1dGVPZmZzZXQueCgpICsgcnVuLmxvZ2ljYWxMZWZ0KCksIGFi
c29sdXRlT2Zmc2V0LnkoKSArIHJ1bi5sb2dpY2FsVG9wKCksIHJ1bi5sb2dpY2FsV2lkdGgoKSwg
cnVuLmxvZ2ljYWxIZWlnaHQoKSB9OwogICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoKmNh
Y2hlZEltYWdlLT5pbWFnZSgpLCBydW5BYnNvbHV0ZVJlY3QpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgUGFpbnRlcjo6cGFpbnQoY29uc3QgTGF5b3V0OjpMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgY29uCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgaWYgKGxheW91dEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRp
bmdDb250ZXh0KCkpIHsKICAgICAgICAgICAgIGF1dG8mIGNvbnRhaW5lciA9IGRvd25jYXN0PExh
eW91dDo6Q29udGFpbmVyPihsYXlvdXRCb3gpOwotICAgICAgICAgICAgcGFpbnRJbmxpbmVDb250
ZW50KGNvbnRleHQsIGFic29sdXRlRGlzcGxheUJveCwgZG93bmNhc3Q8TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nU3RhdGU+KGxheW91dFN0YXRlLmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNv
bnRhaW5lcikpKTsKKyAgICAgICAgICAgIHBhaW50SW5saW5lQ29udGVudChjb250ZXh0LCBhYnNv
bHV0ZURpc3BsYXlCb3gudG9wTGVmdCgpLCBkb3duY2FzdDxMYXlvdXQ6OklubGluZUZvcm1hdHRp
bmdTdGF0ZT4obGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUoY29udGFpbmVy
KSkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMDYsOSAr
MjA2LDcgQEAgdm9pZCBQYWludGVyOjpwYWludElubGluZUZsb3coY29uc3QgTGF5b3V0OjpMYXlv
dXRTdGF0ZSYgbGF5b3V0U3RhdGUsIEdyYXBoaWNzQ28KIAogICAgIEFTU0VSVChsYXlvdXRSb290
LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CiAKLSAgICBhdXRvJiBkaXNw
bGF5Qm94ID0gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChsYXlvdXRSb290KTsK
LQotICAgIHBhaW50SW5saW5lQ29udGVudChjb250ZXh0LCBkaXNwbGF5Qm94LCBkb3duY2FzdDxM
YXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3RhdGUuZXN0YWJsaXNoZWRGb3Jt
YXR0aW5nU3RhdGUobGF5b3V0Um9vdCkpKTsKKyAgICBwYWludElubGluZUNvbnRlbnQoY29udGV4
dCwgeyB9LCBkb3duY2FzdDxMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdTdGF0ZT4obGF5b3V0U3Rh
dGUuZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3RhdGUobGF5b3V0Um9vdCkpKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xp
bmVMYXlvdXQuY3BwCnNpbWlsYXJpdHkgaW5kZXggODIlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJD
b3JlL2xheW91dC9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApyZW5hbWUgdG8gU291cmNl
L1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3Bw
CmluZGV4IGVhNTE0NGY4ZWY0Li5iNzQ4OWFkM2YyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmNwcApAQCAt
NzQsMjYgKzc0LDMwIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6bGF5b3V0KCkK
ICAgICBpZiAoIW1fbGF5b3V0U3RhdGUpCiAgICAgICAgIG1fbGF5b3V0U3RhdGUgPSBtYWtlVW5p
cXVlPExheW91dFN0YXRlPigqbV90cmVlQ29udGVudCk7CiAKLSAgICBhdXRvJiByb290Q29udGFp
bmVyID0gbV9sYXlvdXRTdGF0ZS0+cm9vdCgpOworICAgIHByZXBhcmVSb290R2VvbWV0cnlGb3JM
YXlvdXQoKTsKKwogICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExheW91dENvbnRleHQgeyAqbV9s
YXlvdXRTdGF0ZSB9OwogICAgIGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25T
dGF0ZSB7IH07Ci0gICAgbGF5b3V0Q29udGV4dC5sYXlvdXQobV9mbG93LmNvbnRlbnRTaXplKCks
IGludmFsaWRhdGlvblN0YXRlKTsKIAotICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElu
bGluZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5n
U3RhdGUocm9vdENvbnRhaW5lcikpLmRpc3BsYXlJbmxpbmVDb250ZW50KCktPmxpbmVCb3hlczsK
LSAgICBhdXRvIGhlaWdodCA9IGxpbmVCb3hlcy5sYXN0KCkubG9naWNhbEJvdHRvbSgpOworICAg
IGxheW91dENvbnRleHQubGF5b3V0V2l0aFByZXBhcmVkUm9vdEdlb21ldHJ5KGludmFsaWRhdGlv
blN0YXRlKTsKIAotICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBtX2xheW91dFN0YXRlLT5kaXNwbGF5
Qm94Rm9yTGF5b3V0Qm94KHJvb3RDb250YWluZXIpOwotICAgIGRpc3BsYXlCb3guc2V0Q29udGVu
dEJveEhlaWdodChoZWlnaHQpOworICAgIGF1dG8mIGxpbmVCb3hlcyA9IGRvd25jYXN0PElubGlu
ZUZvcm1hdHRpbmdTdGF0ZT4obV9sYXlvdXRTdGF0ZS0+ZXN0YWJsaXNoZWRGb3JtYXR0aW5nU3Rh
dGUocm9vdExheW91dEJveCgpKSkuZGlzcGxheUlubGluZUNvbnRlbnQoKS0+bGluZUJveGVzOwor
ICAgIG1fY29udGVudExvZ2ljYWxIZWlnaHQgPSBsaW5lQm94ZXMubGFzdCgpLmxvZ2ljYWxCb3R0
b20oKSAtIGxpbmVCb3hlcy5maXJzdCgpLmxvZ2ljYWxUb3AoKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0Ojpjb250ZW50Qm94SGVpZ2h0KCkgY29uc3QKK3ZvaWQg
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dDo6cHJlcGFyZVJvb3RHZW9tZXRyeUZvckxheW91dCgp
CiB7Ci0gICAgcmV0dXJuIG1fbGF5b3V0U3RhdGUgPyBtX2xheW91dFN0YXRlLT5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KG1fbGF5b3V0U3RhdGUtPnJvb3QoKSkuY29udGVudEJveEhlaWdodCgpIDog
MF9sdTsKKyAgICBhdXRvJiBkaXNwbGF5Qm94ID0gbV9sYXlvdXRTdGF0ZS0+ZGlzcGxheUJveEZv
clJvb3RMYXlvdXRCb3goKTsKKworICAgIC8vIERvbid0IHNldCBtYXJnaW5nIHByb3BlcnRpZXMg
b3IgaGVpZ2h0LiBUaGVzZSBzaG91bGQgbm90IGJlIGJlIGFjY2Vzc2VkIGJ5IGlubGluZSBsYXlv
dXQuCisgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoTGF5b3V0OjpFZGdlcyB7IHsgbV9mbG93LmJv
cmRlclN0YXJ0KCksIG1fZmxvdy5ib3JkZXJFbmQoKSB9LCB7IG1fZmxvdy5ib3JkZXJCZWZvcmUo
KSwgbV9mbG93LmJvcmRlckFmdGVyKCkgfSB9KTsKKyAgICBkaXNwbGF5Qm94LnNldFBhZGRpbmco
TGF5b3V0OjpFZGdlcyB7IHsgbV9mbG93LnBhZGRpbmdTdGFydCgpLCBtX2Zsb3cucGFkZGluZ0Vu
ZCgpIH0sIHsgbV9mbG93LnBhZGRpbmdCZWZvcmUoKSwgbV9mbG93LnBhZGRpbmdBZnRlcigpIH0g
fSk7CisgICAgZGlzcGxheUJveC5zZXRDb250ZW50Qm94V2lkdGgobV9mbG93LmNvbnRlbnRTaXpl
KCkud2lkdGgoKSk7CiB9CiAKIGNvbnN0IERpc3BsYXk6OklubGluZUNvbnRlbnQqIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OmRpc3BsYXlJbmxpbmVDb250ZW50KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8SW5saW5lRm9ybWF0dGluZ1N0YXRlPihtX2xheW91dFN0YXRlLT5lc3Rh
Ymxpc2hlZEZvcm1hdHRpbmdTdGF0ZShtX3RyZWVDb250ZW50LT5yb290TGF5b3V0Qm94KCkpKS5k
aXNwbGF5SW5saW5lQ29udGVudCgpOworICAgIHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0
aW5nU3RhdGU+KG1fbGF5b3V0U3RhdGUtPmVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKHJvb3RM
YXlvdXRCb3goKSkpLmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyQmxv
Y2tGbG93TGluZUxheW91dDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCkKQEAgLTE0OSw2ICsxNTMsMTEgQEAgTGluZUxheW91dFRyYXZl
cnNhbDo6RWxlbWVudEJveEl0ZXJhdG9yIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQ6OmVsZW1l
bnRCb3hGb3IKICAgICByZXR1cm4geyB9OwogfQogCitjb25zdCBDb250YWluZXImIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQ6OnJvb3RMYXlvdXRCb3goKSBjb25zdAoreworICAgIHJldHVybiBt
X3RyZWVDb250ZW50LT5yb290TGF5b3V0Qm94KCk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9SZW5kZXJCbG9ja0Zsb3dMaW5lTGF5b3V0LmgK
c2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L1Jl
bmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvbGF5b3V0
L2ludGVncmF0aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaAppbmRleCAxNDFmMTEyMzcw
Ni4uMjA1ZTQ2NjYyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9SZW5kZXJC
bG9ja0Zsb3dMaW5lTGF5b3V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL1JlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaApAQCAtNTUsNyArNTUsOCBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgY2FuVXNlRm9yKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYpOwogCiAg
ICAgdm9pZCBsYXlvdXQoKTsKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRCb3hIZWlnaHQoKSBjb25z
dDsKKworICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRlbnRMb2dpY2FsSGVpZ2h0OyB9CiAgICAgY29uc3QgRGlzcGxheTo6SW5saW5lQ29u
dGVudCogZGlzcGxheUlubGluZUNvbnRlbnQoKSBjb25zdDsKIAogICAgIHZvaWQgcGFpbnQoUGFp
bnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KTsKQEAgLTY0LDkgKzY1LDEz
IEBAIHB1YmxpYzoKICAgICBMaW5lTGF5b3V0VHJhdmVyc2FsOjpFbGVtZW50Qm94SXRlcmF0b3Ig
ZWxlbWVudEJveEZvcihjb25zdCBSZW5kZXJMaW5lQnJlYWsmKSBjb25zdDsKIAogcHJpdmF0ZToK
KyAgICBjb25zdCBDb250YWluZXImIHJvb3RMYXlvdXRCb3goKSBjb25zdDsKKyAgICB2b2lkIHBy
ZXBhcmVSb290R2VvbWV0cnlGb3JMYXlvdXQoKTsKKwogICAgIGNvbnN0IFJlbmRlckJsb2NrRmxv
dyYgbV9mbG93OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXlvdXRUcmVlQ29udGVudD4gbV90cmVl
Q29udGVudDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgTGF5b3V0VHJlZUNvbnRlbnQ+IG1f
dHJlZUNvbnRlbnQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBtX2xheW91dFN0
YXRlOworICAgIExheW91dFVuaXQgbV9jb250ZW50TG9naWNhbEhlaWdodDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmNwcAppbmRleCA0OTI3MmI3ODdlYS4uMDVhZTM1MDM3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKQEAg
LTQ1NCw2ICs0NTQsNyBAQCB2b2lkIHByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMoKQog
CiAgICAgICAgIGF1dG8mIGxheW91dFJvb3QgPSBsYXlvdXRTdGF0ZS5yb290KCk7CiAgICAgICAg
IGF1dG8gaW52YWxpZGF0aW9uU3RhdGUgPSBJbnZhbGlkYXRpb25TdGF0ZSB7IH07CisKICAgICAg
ICAgTGF5b3V0Q29udGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0KHJlbmRlclZpZXcuc2l6ZSgpLCBp
bnZhbGlkYXRpb25TdGF0ZSk7CiAgICAgICAgIHNob3dMYXlvdXRUcmVlKGxheW91dFJvb3QsICZs
YXlvdXRTdGF0ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5kZXggMmIxNGRjNmQyYjEuLmIzYjc3NzlhODZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVl
QnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRy
ZWVCdWlsZGVyLmgKQEAgLTU3LDE1ICs1NywxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZEJv
eChzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBib3gpIHsgbV9ib3hlcy5hZGQoV1RGTW92ZShib3gpKTsg
fQogCi0gICAgdXNpbmcgUmVuZGVyT2JqZWN0VG9MYXlvdXRCb3hNYXAgPSBIYXNoTWFwPGNvbnN0
IFJlbmRlck9iamVjdCosIEJveCo+OwogICAgIEJveCogbGF5b3V0Qm94Rm9yUmVuZGVyZXIoY29u
c3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgeyByZXR1cm4gbV9yZW5kZXJPYmplY3RUb0xheW91
dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAgIGNvbnN0IEJveCogbGF5b3V0Qm94Rm9yUmVuZGVy
ZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJP
YmplY3RUb0xheW91dEJveC5nZXQoJnJlbmRlcmVyKTsgfQorICAgIAogICAgIHZvaWQgYWRkTGF5
b3V0Qm94Rm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgQm94JiBsYXlv
dXRCb3gpIHsgbV9yZW5kZXJPYmplY3RUb0xheW91dEJveC5hZGQoJnJlbmRlcmVyLCAmbGF5b3V0
Qm94KTsgfQogCiBwcml2YXRlOgogICAgIGNvbnN0IFJlbmRlckJveCYgbV9yb290UmVuZGVyZXI7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gbV9yb290TGF5b3V0Qm94OwogICAgIEhh
c2hTZXQ8c3RkOjp1bmlxdWVfcHRyPEJveD4+IG1fYm94ZXM7Ci0gICAgUmVuZGVyT2JqZWN0VG9M
YXlvdXRCb3hNYXAgbV9yZW5kZXJPYmplY3RUb0xheW91dEJveDsKKworICAgIEhhc2hNYXA8Y29u
c3QgUmVuZGVyT2JqZWN0KiwgQm94Kj4gbV9yZW5kZXJPYmplY3RUb0xheW91dEJveDsKIH07CiAK
IGNsYXNzIFRyZWVCdWlsZGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKaW5kZXggMzhmZTg0ZTBmOTkuLmJiYTJkOTI2ODc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzY4MCwxMSArMzY4MCwx
NSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0TEZDTGluZXMoYm9vbCwgTGF5b3V0VW5p
dCYgcmVwYWludExvZ2ljYWxUb3AsIExheW91dAogCiAgICAgbGZjTGluZUxheW91dC5sYXlvdXQo
KTsKIAotICAgIExheW91dFVuaXQgbGluZUxheW91dEhlaWdodCA9IGxmY0xpbmVMYXlvdXQuY29u
dGVudEJveEhlaWdodCgpOwotICAgIExheW91dFVuaXQgbGluZUxheW91dFRvcCA9IGJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKTsKLSAgICByZXBhaW50TG9naWNhbFRvcCA9IGxpbmVMYXlvdXRUb3A7
Ci0gICAgcmVwYWludExvZ2ljYWxCb3R0b20gPSByZXBhaW50TG9naWNhbFRvcCArIGxpbmVMYXlv
dXRIZWlnaHQgKyBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKTsKLSAgICBzZXRMb2dpY2FsSGVpZ2h0
KGxpbmVMYXlvdXRUb3AgKyBsaW5lTGF5b3V0SGVpZ2h0ICsgYm9yZGVyQW5kUGFkZGluZ0FmdGVy
KCkpOworICAgIGF1dG8gY29udGVudEhlaWdodCA9IGxmY0xpbmVMYXlvdXQuY29udGVudExvZ2lj
YWxIZWlnaHQoKTsKKyAgICBhdXRvIGNvbnRlbnRUb3AgPSBib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KCk7CisgICAgYXV0byBjb250ZW50Qm90dG9tID0gY29udGVudFRvcCArIGNvbnRlbnRIZWlnaHQ7
CisgICAgYXV0byB0b3RhbEhlaWdodCA9IGNvbnRlbnRCb3R0b20gKyBib3JkZXJBbmRQYWRkaW5n
QWZ0ZXIoKTsKKworICAgIHJlcGFpbnRMb2dpY2FsVG9wID0gY29udGVudFRvcDsKKyAgICByZXBh
aW50TG9naWNhbEJvdHRvbSA9IGNvbnRlbnRCb3R0b207CisKKyAgICBzZXRMb2dpY2FsSGVpZ2h0
KHRvdGFsSGVpZ2h0KTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>