<?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>205633</bug_id>
          
          <creation_ts>2019-12-29 16:24:32 -0800</creation_ts>
          <short_desc>[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/white-space/white-space-wrap-after-nowrap-001.html</short_desc>
          <delta_ts>2019-12-30 10:25:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601800</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-29 16:24:32 -0800</bug_when>
    <thetext>Connect the revert patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601801</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-29 16:24:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/58234239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601804</commentid>
    <comment_count>2</comment_count>
      <attachid>386500</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-29 16:39:58 -0800</bug_when>
    <thetext>Created attachment 386500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601881</commentid>
    <comment_count>3</comment_count>
      <attachid>386537</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-30 09:07:10 -0800</bug_when>
    <thetext>Created attachment 386537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601895</commentid>
    <comment_count>4</comment_count>
      <attachid>386537</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 10:25:44 -0800</bug_when>
    <thetext>Comment on attachment 386537
Patch

Clearing flags on attachment: 386537

Committed r253948: &lt;https://trac.webkit.org/changeset/253948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601896</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 10:25:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386500</attachid>
            <date>2019-12-29 16:39:58 -0800</date>
            <delta_ts>2019-12-30 09:07:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205633-20191229163958.patch</filename>
            <type>text/plain</type>
            <size>19094</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTEyNTAwMTI3Yjg4YTc5
MDkzNDUwY2MwMDM4YmM2YTNiNWI5OWRkYi4uMjgyYTgyNDI0ZmMzZWE5YWM0NTFmYzY2MDVjYzg0
NDI4MDE2NjBlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTEyLTI5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBGaXggaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQvd2hpdGUtc3BhY2Uvd2hp
dGUtc3BhY2Utd3JhcC1hZnRlci1ub3dyYXAtMDAxLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYzMworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTgyMzQyMzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV2hlbiB0aGUgTGluZUJyZWFrZXIgY29tZXMgYmFjayB3aXRoIEFjdGlvbjo6UmV2ZXJ0
IChtZWFuaW5nIHRoYXQgdGhlIGxpbmUKKyAgICAgICAgbmVlZHMgdG8gYmUgcmV2ZXJ0ZWQgYmFj
ayB0byBhbiBlYXJsaWVyIGxpbmUgd3JhcCBvcHBvcnR1bml0eSksIGNhbGwgTGluZUJ1aWxkZXI6
OnJldmVydCBhbmQKKyAgICAgICAgY2xvc2UgdGhlIGxpbmUuCisKKyAgICAgICAgKiBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCcmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQgY29uc3QpOiBS
ZXR1cm4gcHVzaCB3aGVuIHRoZSBjdXJyZW50IGNvbnRlbnQgY2FuIGJlIHdyYXBwZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbm91c0NvbnRlbnQ6OkNvbnRpbm91c0NvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW5vdXNDb250ZW50OjpsYXN0V3JhcE9w
cG9ydHVuaXR5SW5kZXggY29uc3QpOiBGaXggdGhlIGxhc3QgcG9zaXRpb24gbG9naWMuCisgICAg
ICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6cmV2ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmNvbGxlY3RIYW5naW5nQ29udGVudCk6CisgICAg
ICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaDoKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OmVuZHNXaXRoU29mdFdyYXBPcHBvcnR1bml0eSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpsYXlvdXRMaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRleHQ6OnRyeUFkZGluZ0Zsb2F0
SXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6dHJ5
QWRkaW5nSW5saW5lSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0
Q29udGV4dDo6YWRkRmxvYXRJdGVtcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5o
OgorCiAyMDE5LTEyLTI5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBJbXBsZW1lbnQgTGluZUJ1aWxkZXI6OnJldmVydApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJy
ZWFrZXIuY3BwCmluZGV4IDRmYjU2NGM1NjQxMzk4ZTc2NTFmYjcyMWEzNGQ5YzU3NzM5MWY3YTcu
LjQyZTAyNjAzMWUzNjkzMmVkMzU5Y2RhZmFlMmRhNGVlM2Y1ZmNlOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5l
QnJlYWtlci5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBMaW5lQnJlYWtlcjo6UmVzdWx0IExpbmVC
cmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQoY29uc3QgQ29udGlub3VzQ29udGVudAog
ICAgICAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lIH07
CiAgICAgICAgIC8vIE5vdyBjaGVjayBpZiB3ZSBjYW4gdHJpbSB0aGUgbGluZSB0b28uCiAgICAg
ICAgIGlmIChsaW5lU3RhdHVzLmxpbmVIYXNGdWxseUNvbGxhcHNpYmxlVHJhaWxpbmdSdW4gJiYg
Y2FuZGlkYXRlQ29udGVudC5pc1RyYWlsaW5nQ29udGVudEZ1bGx5Q29sbGFwc2libGUoKSkgewot
ICAgICAgICAgICAgLy8gSWYgdGhpcyBuZXcgY29udGVudCBpcyBmdWxseSBjb2xsYXBzaWJsZSwg
aXQgc2hvdWQgc3VyZWx5IGZpdC4KKyAgICAgICAgICAgIC8vIElmIHRoaXMgbmV3IGNvbnRlbnQg
aXMgZnVsbHkgY29sbGFwc2libGUsIGl0IHNob3VsZCBzdXJlbHkgZml0LgogICAgICAgICAgICAg
cmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lIH07CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgaWYgKGxpbmVTdGF0dXMuY29sbGFwc2libGVXaWR0aCAmJiBjYW5kaWRhdGVD
b250ZW50Lmhhc05vbkNvbnRlbnRSdW5zT25seSgpKSB7CkBAIC0xNDgsNyArMTQ4LDcgQEAgTGlu
ZUJyZWFrZXI6OlJlc3VsdCBMaW5lQnJlYWtlcjo6dHJ5V3JhcHBpbmdJbmxpbmVDb250ZW50KGNv
bnN0IENvbnRpbm91c0NvbnRlbnQKICAgICAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9u
OjpLZWVwIH07CiAgICAgfQogICAgIGlmIChjYW5kaWRhdGVDb250ZW50LmlzVmlzdWFsbHlFbXB0
eVdoaXRlc3BhY2VDb250ZW50T25seSgpICYmIHNob3VsZEtlZXBFbmRPZkxpbmVXaGl0ZXNwYWNl
KGNhbmRpZGF0ZUNvbnRlbnQpKSB7Ci0gICAgICAgIC8vIFRoaXMgb3ZlcmZsb3dpbmcgY29udGVu
dCBhcHBhcmVudGx5IGZhbGxzIGludG8gdGhlIHJlbW92ZS9oYW5nIGVuZC1vZi1saW5lLXNwYWNl
cyBjYXRlcmdvcnkuCisgICAgICAgIC8vIFRoaXMgb3ZlcmZsb3dpbmcgY29udGVudCBhcHBhcmVu
dGx5IGZhbGxzIGludG8gdGhlIHJlbW92ZS9oYW5nIGVuZC1vZi1saW5lLXNwYWNlcyBjYXRlZ29y
eS4KICAgICAgICAgLy8gc2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtdGV4dC0zLyN3aGl0
ZS1zcGFjZS1wcm9wZXJ0eSBtYXRyaXgKICAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246
OktlZXAgfTsKICAgICB9CkBAIC0xNzUsMTQgKzE3NSwxNyBAQCBMaW5lQnJlYWtlcjo6UmVzdWx0
IExpbmVCcmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQoY29uc3QgQ29udGlub3VzQ29u
dGVudAogICAgICAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OlNwbGl0LCBJc0VuZE9m
TGluZTo6WWVzLCBzcGxpdENvbnRlbnQgfTsKICAgICAgICAgfQogICAgIH0KLSAgICAvLyBJZiB3
ZSBhcmUgbm90IGFsbG93ZWQgdG8gYnJlYWsgdGhpcyBjb250ZW50LCB3ZSBzdGlsbCBuZWVkIHRv
IGRlY2lkZSB3aGV0aGVyIGtlZXAgaXQgb3IgcHVzaCBpdCB0byB0aGUgbmV4dCBsaW5lLgorICAg
IC8vIElmIHdlIGFyZSBub3QgYWxsb3dlZCB0byBicmVhayB0aGlzIG92ZXJmbG93aW5nIGNvbnRl
bnQsIHdlIHN0aWxsIG5lZWQgdG8gZGVjaWRlIHdoZXRoZXIga2VlcCBpdCBvciBwdXNoIGl0IHRv
IHRoZSBuZXh0IGxpbmUuCiAgICAgaWYgKGxpbmVTdGF0dXMubGluZUlzRW1wdHkpIHsKICAgICAg
ICAgQVNTRVJUKCFtX2xhc3RXcmFwT3Bwb3J0dW5pdHkpOwogICAgICAgICByZXR1cm4geyBSZXN1
bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6OlllcyB9OwogICAgIH0KKyAgICAvLyBOb3cg
ZWl0aGVyIHdyYXAgaGVyZSBvciBhdCBhbiBlYXJsaWVyIHBvc2l0aW9uLCBvciBub3Qgd3JhcCBh
dCBhbGwuCisgICAgaWYgKGlzQ29udGVudFdyYXBwaW5nQWxsb3dlZChjYW5kaWRhdGVDb250ZW50
KSkKKyAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OlB1c2gsIElzRW5kT2ZMaW5lOjpZ
ZXMgfTsKICAgICBpZiAobV9sYXN0V3JhcE9wcG9ydHVuaXR5KQogICAgICAgICByZXR1cm4geyBS
ZXN1bHQ6OkFjdGlvbjo6UmV2ZXJ0LCBJc0VuZE9mTGluZTo6WWVzLCB7IH0sIG1fbGFzdFdyYXBP
cHBvcnR1bml0eSB9OwotICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBpc0NvbnRl
bnRXcmFwcGluZ0FsbG93ZWQoY2FuZGlkYXRlQ29udGVudCkgPyBJc0VuZE9mTGluZTo6WWVzIDog
SXNFbmRPZkxpbmU6Ok5vIH07CisgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElz
RW5kT2ZMaW5lOjpObyB9OwogfQogCiBib29sIExpbmVCcmVha2VyOjpzaG91bGRXcmFwRmxvYXRC
b3goSW5saW5lTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSkKQEAgLTM1NCw3ICszNTcsNyBAQCBDb250
aW5vdXNDb250ZW50OjpDb250aW5vdXNDb250ZW50KGNvbnN0IExpbmVCcmVha2VyOjpSdW5MaXN0
JiBydW5zKQogICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQud2lk
dGggKz0gY29sbGFwc2libGVXaWR0aDsKICAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFw
c2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgLy8gRW5kIG9mIHdoaXRzcGFjZSBjb250ZW50LgorICAgICAgICAgICAgLy8g
RW5kIG9mIHdoaXRlc3BhY2UgY29udGVudC4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQpAQCAtNDI3LDE0ICs0MzAsMTMgQEAgYm9vbCBDb250aW5vdXNDb250ZW50OjpoYXNO
b25Db250ZW50UnVuc09ubHkoKSBjb25zdAogCiBPcHRpb25hbDxzaXplX3Q+IENvbnRpbm91c0Nv
bnRlbnQ6Omxhc3RXcmFwT3Bwb3J0dW5pdHlJbmRleCgpIGNvbnN0CiB7Ci0gICAgLy8gPHNwYW4g
c3R5bGU9IndoaXRlLXNwYWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+PHNwYW4+eWVzX3dyYXA8L3Nw
YW4+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+LgotICAgIC8v
IFtjb250YWluZXIgc3RhcnRdW25vX3dyYXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFy
dF1beWVzX3dyYXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1bbm9fd3JhcF1bY29u
dGFpbmVyIGVuZF0KLSAgICAvLyBSZXR1cm4gIzUgYXMgdGhlIGluZGV4IHdoZXJlIHRoaXMgY29u
dGVudCBjYW4gd3JhcCBhdCBsYXN0LgotICAgIGZvciAoYXV0byBpbmRleCA9IG1fcnVucy5zaXpl
KCk7IGluZGV4LS07KSB7Ci0gICAgICAgIGlmIChpc1dyYXBwaW5nQWxsb3dlZChtX3J1bnNbaW5k
ZXhdLmlubGluZUl0ZW0uc3R5bGUoKSkpCi0gICAgICAgICAgICByZXR1cm4gaW5kZXg7Ci0gICAg
fQotICAgIHJldHVybiB7IH07CisgICAgLy8gPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUi
Pm5vX3dyYXA8L3NwYW4+PHNwYW4+eWVzIHdyYXA8L3NwYW4+PHNwYW4gc3R5bGU9IndoaXRlLXNw
YWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+LgorICAgIC8vIFtjb250YWluZXIgc3RhcnRdW25vX3dy
YXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1beWVzXSA8LSBjb250aW51b3VzIGNv
bnRlbnQKKyAgICAvLyBbIF0gPC0gY29udGludW91cyBjb250ZW50CisgICAgLy8gW3dyYXBdW2Nv
bnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1bbm9fd3JhcF1bY29udGFpbmVyIGVuZF0gPC0g
Y29udGludW91cyBjb250ZW50CisgICAgLy8gUmV0dXJuICMwIGFzIHRoZSBpbmRleCB3aGVyZSB0
aGUgc2Vjb25kIGNvbnRpbnVvdXMgY29udGVudCBjYW4gd3JhcCBhdC4KKyAgICBhdXRvIGxhc3RJ
dGVtSW5kZXggPSBtX3J1bnMuc2l6ZSgpIC0gMTsKKyAgICByZXR1cm4gaXNXcmFwcGluZ0FsbG93
ZWQobV9ydW5zW2xhc3RJdGVtSW5kZXhdLmlubGluZUl0ZW0uc3R5bGUoKSkgPyBtYWtlT3B0aW9u
YWwobGFzdEl0ZW1JbmRleCkgOiBXVEY6Om51bGxvcHQ7CiB9CiAKIHZvaWQgQ29udGlub3VzQ29u
dGVudDo6VHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcAppbmRleCA1NjJjYjQyZDkxYTExZTYxYzU3MDQ2Yzk5MDM3M2UyNDI1OWEzNzdiLi4z
N2Q0NmJhMTc1ZGY5YWQyNTI3NWIwZmFiMmU4YWQ5OTk5Y2UzNjY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1
aWxkZXIuY3BwCkBAIC0yNjMsMTQgKzI2MywxOSBAQCBMaW5lQnVpbGRlcjo6UnVuTGlzdCBMaW5l
QnVpbGRlcjo6Y2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFzdExpbmVXaQog
ICAgIHJldHVybiBydW5MaXN0OwogfQogCi12b2lkIExpbmVCdWlsZGVyOjpyZXZlcnQoY29uc3Qg
SW5saW5lSXRlbSYgcmV2ZXJ0VG8pCitzaXplX3QgTGluZUJ1aWxkZXI6OnJldmVydChjb25zdCBJ
bmxpbmVJdGVtJiByZXZlcnRUbykKIHsKKyAgICBpZiAobV9pbmxpbmVJdGVtUnVucy5sYXN0KCkg
PT0gcmV2ZXJ0VG8pIHsKKyAgICAgICAgLy8gU2luY2UgdGhlIExpbmVCcmVha2VyIGRvZXMgbm90
IGtub3cgd2hhdCBoYXMgYmVlbiBwdXNoZWQgb24gdGhlIGN1cnJlbnQgbGluZQorICAgICAgICAv
LyBpbiBzb21lIGNhc2VzIHJldmVydCgpIGlzIGNhbGxlZCB3aXRoIHRoZSBsYXN0IGl0ZW0gb24g
dGhlIGxpbmUuCisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogICAgIC8vIDEuIFJlbW92ZSBh
bmQgc2hyaW5rIHRoZSB0cmFpbGluZyBjb250ZW50LgogICAgIC8vIDIuIFJlYnVpbGQgY29sbGFw
c2libGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBjb250ZW50LgogICAgIEFTU0VSVCghbV9pbmxpbmVJ
dGVtUnVucy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtX2lubGluZUl0ZW1SdW5zLmxhc3QoKSAh
PSByZXZlcnRUbyk7CiAgICAgYXV0byByZXZlcnRlZFdpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7
IH07Ci0gICAgYXV0byBpbmRleCA9IG1faW5saW5lSXRlbVJ1bnMuc2l6ZSgpIC0gMTsKKyAgICBh
dXRvIG9yaWdpbmFsU2l6ZSA9IG1faW5saW5lSXRlbVJ1bnMuc2l6ZSgpOworICAgIGF1dG8gaW5k
ZXggPSBvcmlnaW5hbFNpemUgLSAxOwogICAgIHdoaWxlIChpbmRleCA+PSAwICYmIG1faW5saW5l
SXRlbVJ1bnNbaW5kZXhdICE9IHJldmVydFRvKQogICAgICAgICByZXZlcnRlZFdpZHRoICs9IG1f
aW5saW5lSXRlbVJ1bnNbaW5kZXgtLV0ubG9naWNhbFdpZHRoKCk7CiAgICAgbV9saW5lQm94LnNo
cmlua0hvcml6b250YWxseShyZXZlcnRlZFdpZHRoKTsKQEAgLTMxMCw3ICszMTUsOCBAQCB2b2lk
IExpbmVCdWlsZGVyOjpyZXZlcnQoY29uc3QgSW5saW5lSXRlbSYgcmV2ZXJ0VG8pCiAgICAgICAg
ICAgICBtX2NvbGxhcHNpYmxlQ29udGVudC5hcHBlbmQoaW5kZXgpOwogICAgICAgICB9CiAgICAg
fQotICAgIC8vIENvbnNpZGVyIGFsdGVybmF0aXZlIHNvbHV0aW9ucyBpZiB0aGUgKGVkZ2UgY2Fz
ZSlyZXZlcnQgZ2V0cyBvdmVybHkgY29tcGxpY2F0ZWQuICAKKyAgICAvLyBDb25zaWRlciBhbHRl
cm5hdGl2ZSBzb2x1dGlvbnMgaWYgdGhlIChlZGdlIGNhc2UpcmV2ZXJ0IGdldHMgb3Zlcmx5IGNv
bXBsaWNhdGVkLgorICAgIHJldHVybiBvcmlnaW5hbFNpemUgLSBtX2lubGluZUl0ZW1SdW5zLnNp
emUoKTsKIH0KIAogdm9pZCBMaW5lQnVpbGRlcjo6YWxpZ25Db250ZW50VmVydGljYWxseShSdW5M
aXN0JiBydW5MaXN0KQpAQCAtNDgyLDcgKzQ4OCw3IEBAIHZvaWQgTGluZUJ1aWxkZXI6OnJlbW92
ZVRyYWlsaW5nQ29sbGFwc2libGVDb250ZW50KCkKIEhhbmdpbmdDb250ZW50IExpbmVCdWlsZGVy
Ojpjb2xsZWN0SGFuZ2luZ0NvbnRlbnQoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFz
dExpbmVXaXRoSW5saW5lQ29udGVudCkKIHsKICAgICBhdXRvIGhhbmdpbmdDb250ZW50ID0gSGFu
Z2luZ0NvbnRlbnQgeyB9OwotICAgIC8vIENhbid0IHNldHVwIGhhbmdpbmcgY29udGVudCB3aXRo
IHJlbW92YWJsZSB0cmFpbGluZyB3aGl0c3BhY2VzLgorICAgIC8vIENhbid0IHNldHVwIGhhbmdp
bmcgY29udGVudCB3aXRoIHJlbW92YWJsZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgogICAgIEFTU0VS
VChtX2NvbGxhcHNpYmxlQ29udGVudC5pc0VtcHR5KCkpOwogICAgIGlmIChpc0xhc3RMaW5lV2l0
aElubGluZUNvbnRlbnQgPT0gSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50OjpZZXMpCiAgICAg
ICAgIGhhbmdpbmdDb250ZW50LnNldElzQ29uZGl0aW9uYWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5o
CmluZGV4IDBkMjRmNGRiMmQ3M2M4YzI0YmZkYTg3ZmI0MWQ3Njc3NzcwOTYzMWIuLmNlZWU3MzM4
MDE1MWUzY2VkZTZhMTAwMzE5ZmFjYjg5ZWUxNmUwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaApA
QCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBSdW5MaXN0ID0gVmVjdG9yPFJ1
biwgNTA+OwogICAgIGVudW0gY2xhc3MgSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IHsgTm8s
IFllcyB9OwogICAgIFJ1bkxpc3QgY2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50ID0g
SXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50OjpObyk7Ci0gICAgdm9pZCByZXZlcnQoY29uc3Qg
SW5saW5lSXRlbSYgcmV2ZXJ0VG8pOworICAgIHNpemVfdCByZXZlcnQoY29uc3QgSW5saW5lSXRl
bSYgcmV2ZXJ0VG8pOwogCiAgICAgc3RhdGljIERpc3BsYXk6OkxpbmVCb3g6OkJhc2VsaW5lIGhh
bGZMZWFkaW5nTWV0cmljcyhjb25zdCBGb250TWV0cmljcyYsIElubGluZUxheW91dFVuaXQgbGlu
ZUxvZ2ljYWxIZWlnaHQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5s
aW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKaW5kZXggMjBmYmExOGFk
ZGFiMTMyNmUwZjAwMmEwNzU1ZTQ5ZTljMTIzZTU3My4uZmFlYTE0MTRhNTBmNWNjOWIwYjQxYjA5
NjVhZTUzOTAyOGFhZWM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcApAQCAtNDQsNyArNDQs
NyBAQCBzdGF0aWMgYm9vbCBlbmRzV2l0aFNvZnRXcmFwT3Bwb3J0dW5pdHkoY29uc3QgSW5saW5l
VGV4dEl0ZW0mIGN1cnJlbnRUZXh0SXRlbSwgYwogICAgIC8vIHRoZXkgYXJlIHNwbGl0IGF0IGEg
c29mdCBicmVha2luZyBvcHBvcnR1bml0eS4gU2VlIElubGluZVRleHRJdGVtOjptb3ZlVG9OZXh0
QnJlYWthYmxlUG9zaXRpb24uCiAgICAgaWYgKCZjdXJyZW50VGV4dEl0ZW0ubGF5b3V0Qm94KCkg
PT0gJm5leHRJbmxpbmVUZXh0SXRlbS5sYXlvdXRCb3goKSkKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgLy8gTm93IHdlIG5lZWQgdG8gY29sbGVjdCBhdCBsZWFzdCAzIGFkamFjZW50IGNoYXJh
Y3RlcnMgdG8gYmUgYWJsZSB0byBtYWtlIGEgZGVzY2lzaW9uIHdoZXRoZXIgdGhlIHByZXZpb3Vz
IHRleHQgaXRlbSBlbmRzIHdpdGggYnJlYWtpbmcgb3Bwb3J0dW5pdHkuCisgICAgLy8gTm93IHdl
IG5lZWQgdG8gY29sbGVjdCBhdCBsZWFzdCAzIGFkamFjZW50IGNoYXJhY3RlcnMgdG8gYmUgYWJs
ZSB0byBtYWtlIGEgZGVjaXNpb24gd2hldGhlciB0aGUgcHJldmlvdXMgdGV4dCBpdGVtIGVuZHMg
d2l0aCBicmVha2luZyBvcHBvcnR1bml0eS4KICAgICAvLyBbZXgtXVthbXBsZV0gPC0gc2Vjb25k
IHRvIGxhc3RbeF0gbGFzdFstXSBjdXJyZW50W2FdCiAgICAgLy8gV2UgbmVlZCBhdCBsZWFzdCAx
IGNoYXJhY3RlciBpbiB0aGUgY3VycmVudCBpbmxpbmUgdGV4dCBpdGVtIGFuZCAyIG1vcmUgZnJv
bSBwcmV2aW91cyBpbmxpbmUgaXRlbXMuCiAgICAgYXV0byBwcmV2aW91c0NvbnRlbnQgPSBjdXJy
ZW50VGV4dEl0ZW0ubGF5b3V0Qm94KCkudGV4dENvbnRleHQoKS0+Y29udGVudDsKQEAgLTI2OSwy
MCArMjY5LDI2IEBAIExpbmVMYXlvdXRDb250ZXh0OjpMaW5lQ29udGVudCBMaW5lTGF5b3V0Q29u
dGV4dDo6bGF5b3V0TGluZShMaW5lQnVpbGRlciYgbGluZSwKICAgICAgICAgfQogICAgICAgICBp
ZiAoY2FuZGlkYXRlQ29udGVudC5oYXNJbnRydXNpdmVGbG9hdHMoKSkgewogICAgICAgICAgICAg
Ly8gQWRkIGZsb2F0cyBmaXJzdCBiZWNhdXNlIHRoZXkgc2hyaW5rIHRoZSBhdmFpbGFibGUgaG9y
aXpvbnRhbCBzcGFjZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIGNvbnRlbnQuCi0gICAgICAgICAgICBh
dXRvIGZsb2F0Q29udGVudCA9IGFkZEZsb2F0SXRlbXMobGluZSwgY2FuZGlkYXRlQ29udGVudC5m
bG9hdHMoKSk7Ci0gICAgICAgICAgICBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgKz0gZmxvYXRD
b250ZW50LmNvdW50OwotICAgICAgICAgICAgaWYgKGZsb2F0Q29udGVudC5pc0VuZE9mTGluZSA9
PSBMaW5lQnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllcykgeworICAgICAgICAgICAgYXV0byByZXN1
bHQgPSB0cnlBZGRpbmdGbG9hdEl0ZW1zKGxpbmUsIGNhbmRpZGF0ZUNvbnRlbnQuZmxvYXRzKCkp
OworICAgICAgICAgICAgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50ICs9IHJlc3VsdC5jb21taXR0
ZWRDb3VudDsKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNFbmRPZkxpbmUgPT0gTGluZUJyZWFr
ZXI6OklzRW5kT2ZMaW5lOjpZZXMpIHsKICAgICAgICAgICAgICAgICAvLyBGbG9hdHMgdGFrZSB1
cCBhbGwgdGhlIGhvcml6b250YWwgc3BhY2UuCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNsb3Nl
KGxpbmUsIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgsIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCwg
eyB9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoIWNhbmRpZGF0ZUNv
bnRlbnQucnVucygpLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHdl
IGNhbiBwdXQgdGhpcyBjb250ZW50IG9uIHRoZSBjdXJyZW50IGxpbmUuCi0gICAgICAgICAgICBh
dXRvIGNvbW1pdHRlZENvbnRlbnQgPSBjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0KGxpbmVCcmVh
a2VyLCBsaW5lLCBjYW5kaWRhdGVDb250ZW50LnJ1bnMoKSk7Ci0gICAgICAgICAgICBjb21taXR0
ZWRJbmxpbmVJdGVtQ291bnQgKz0gY29tbWl0dGVkQ29udGVudC5jb3VudDsKLSAgICAgICAgICAg
IGlmIChjb21taXR0ZWRDb250ZW50LmlzRW5kT2ZMaW5lID09IExpbmVCcmVha2VyOjpJc0VuZE9m
TGluZTo6WWVzKSB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHRyeUFkZGluZ0lubGluZUl0
ZW1zKGxpbmVCcmVha2VyLCBsaW5lLCBjYW5kaWRhdGVDb250ZW50LnJ1bnMoKSk7CisgICAgICAg
ICAgICBpZiAocmVzdWx0LnJldmVydFRvKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKCFyZXN1
bHQuY29tbWl0dGVkQ291bnQpOworICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQuaXNFbmRP
ZkxpbmUgPT0gTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZZXMpOworICAgICAgICAgICAgICAg
IC8vIEFuIGVhcmxpZXIgbGluZSB3cmFwcGluZyBvcHBvcnR1bml0eSB0dXJuZWQgb3V0IHRvIGJl
IHRoZSBmaW5hbCBicmVha2luZyBwb3NpdGlvbi4KKyAgICAgICAgICAgICAgICBjb21taXR0ZWRJ
bmxpbmVJdGVtQ291bnQgLT0gbGluZS5yZXZlcnQoKnJlc3VsdC5yZXZlcnRUbyk7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgKz0gcmVzdWx0LmNv
bW1pdHRlZENvdW50OworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0VuZE9mTGluZSA9PSBMaW5l
QnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllcykgewogICAgICAgICAgICAgICAgIC8vIFdlIGNhbid0
IHBsYWNlIGFueSBtb3JlIGl0ZW1zIG9uIHRoZSBjdXJyZW50IGxpbmUuCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGNsb3NlKGxpbmUsIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgsIGNvbW1pdHRlZElu
bGluZUl0ZW1Db3VudCwgY29tbWl0dGVkQ29udGVudC5wYXJ0aWFsQ29udGVudCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNsb3NlKGxpbmUsIGxlYWRpbmdJbmxpbmVJdGVtSW5kZXgsIGNvbW1p
dHRlZElubGluZUl0ZW1Db3VudCwgcmVzdWx0LnBhcnRpYWxDb250ZW50KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgICAgICBjdXJyZW50SXRlbUluZGV4ID0gbGVhZGluZ0lubGluZUl0
ZW1JbmRleCArIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudDsKQEAgLTM2Niw3ICszNzIsNyBAQCBM
aW5lQ2FuZGlkYXRlQ29udGVudCBMaW5lTGF5b3V0Q29udGV4dDo6bmV4dENvbnRlbnRGb3JMaW5l
KHVuc2lnbmVkIGlubGluZUl0ZW1JbgogICAgIHJldHVybiBjYW5kaWRhdGVDb250ZW50OwogfQog
Ci1MaW5lTGF5b3V0Q29udGV4dDo6Q29tbWl0dGVkQ29udGVudCBMaW5lTGF5b3V0Q29udGV4dDo6
YWRkRmxvYXRJdGVtcyhMaW5lQnVpbGRlciYgbGluZSwgY29uc3QgRmxvYXRMaXN0JiBmbG9hdHMp
CitMaW5lTGF5b3V0Q29udGV4dDo6UmVzdWx0IExpbmVMYXlvdXRDb250ZXh0Ojp0cnlBZGRpbmdG
bG9hdEl0ZW1zKExpbmVCdWlsZGVyJiBsaW5lLCBjb25zdCBGbG9hdExpc3QmIGZsb2F0cykKIHsK
ICAgICBzaXplX3QgY29tbWl0dGVkRmxvYXRJdGVtQ291bnQgPSAwOwogICAgIGZvciAoYXV0byYg
ZmxvYXRJdGVtIDogZmxvYXRzKSB7CkBAIC0zNzQsNyArMzgwLDcgQEAgTGluZUxheW91dENvbnRl
eHQ6OkNvbW1pdHRlZENvbnRlbnQgTGluZUxheW91dENvbnRleHQ6OmFkZEZsb2F0SXRlbXMoTGlu
ZUJ1aWxkZXIKIAogICAgICAgICBhdXRvIGxpbmVJc0NvbnNpZGVyZWRFbXB0eSA9IGxpbmUuaXNW
aXN1YWxseUVtcHR5KCkgJiYgIWxpbmUuaGFzSW50cnVzaXZlRmxvYXQoKTsKICAgICAgICAgaWYg
KExpbmVCcmVha2VyKCkuc2hvdWxkV3JhcEZsb2F0Qm94KGxvZ2ljYWxXaWR0aCwgbGluZS5hdmFp
bGFibGVXaWR0aCgpICsgbGluZS50cmFpbGluZ0NvbGxhcHNpYmxlV2lkdGgoKSwgbGluZUlzQ29u
c2lkZXJlZEVtcHR5KSkKLSAgICAgICAgICAgIHJldHVybiB7IExpbmVCcmVha2VyOjpJc0VuZE9m
TGluZTo6WWVzLCBjb21taXR0ZWRGbG9hdEl0ZW1Db3VudCwgeyB9IH07CisgICAgICAgICAgICBy
ZXR1cm4geyBMaW5lQnJlYWtlcjo6SXNFbmRPZkxpbmU6OlllcywgY29tbWl0dGVkRmxvYXRJdGVt
Q291bnQgfTsKICAgICAgICAgLy8gVGhpcyBmbG9hdCBjYW4gc2l0IG9uIHRoZSBjdXJyZW50IGxp
bmUuCiAgICAgICAgICsrY29tbWl0dGVkRmxvYXRJdGVtQ291bnQ7CiAgICAgICAgIGF1dG8mIGZs
b2F0Qm94ID0gZmxvYXRJdGVtLT5sYXlvdXRCb3goKTsKQEAgLTM4NiwxMCArMzkyLDEwIEBAIExp
bmVMYXlvdXRDb250ZXh0OjpDb21taXR0ZWRDb250ZW50IExpbmVMYXlvdXRDb250ZXh0OjphZGRG
bG9hdEl0ZW1zKExpbmVCdWlsZGVyCiAgICAgICAgICAgICBsaW5lLm1vdmVMb2dpY2FsUmlnaHQo
bG9naWNhbFdpZHRoKTsKICAgICAgICAgbV9mbG9hdHMuYXBwZW5kKGZsb2F0SXRlbSk7CiAgICAg
fQotICAgIHJldHVybiB7IExpbmVCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8sIGNvbW1pdHRlZEZs
b2F0SXRlbUNvdW50LCB7IH0gfTsKKyAgICByZXR1cm4geyBMaW5lQnJlYWtlcjo6SXNFbmRPZkxp
bmU6Ok5vLCBjb21taXR0ZWRGbG9hdEl0ZW1Db3VudCB9OwogfQogCi1MaW5lTGF5b3V0Q29udGV4
dDo6Q29tbWl0dGVkQ29udGVudCBMaW5lTGF5b3V0Q29udGV4dDo6Y2hlY2tGb3JMaW5lV3JhcEFu
ZENvbW1pdChMaW5lQnJlYWtlciYgbGluZUJyZWFrZXIsIExpbmVCdWlsZGVyJiBsaW5lLCBjb25z
dCBMaW5lQnJlYWtlcjo6UnVuTGlzdCYgY2FuZGlkYXRlUnVucykKK0xpbmVMYXlvdXRDb250ZXh0
OjpSZXN1bHQgTGluZUxheW91dENvbnRleHQ6OnRyeUFkZGluZ0lubGluZUl0ZW1zKExpbmVCcmVh
a2VyJiBsaW5lQnJlYWtlciwgTGluZUJ1aWxkZXImIGxpbmUsIGNvbnN0IExpbmVCcmVha2VyOjpS
dW5MaXN0JiBjYW5kaWRhdGVSdW5zKQogewogICAgIGF1dG8gc2hvdWxkRGlzYWJsZUh5cGhlbmF0
aW9uID0gWyZdIHsKICAgICAgICAgYXV0byYgc3R5bGUgPSByb290KCkuc3R5bGUoKTsKQEAgLTQw
NiwxNSArNDEyLDE1IEBAIExpbmVMYXlvdXRDb250ZXh0OjpDb21taXR0ZWRDb250ZW50IExpbmVM
YXlvdXRDb250ZXh0OjpjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0CiAgICAgaWYgKHJlc3VsdC5h
Y3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpLZWVwKSB7CiAgICAgICAgIC8v
IFRoaXMgY29udGludW91cyBjb250ZW50IGNhbiBiZSBmdWxseSBwbGFjZWQgb24gdGhlIGN1cnJl
bnQgbGluZS4KICAgICAgICAgY29tbWl0Q29udGVudChsaW5lLCBjYW5kaWRhdGVSdW5zLCB7IH0p
OwotICAgICAgICByZXR1cm4geyByZXN1bHQuaXNFbmRPZkxpbmUsIGNhbmRpZGF0ZVJ1bnMuc2l6
ZSgpLCB7IH0gfTsKKyAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCBjYW5kaWRh
dGVSdW5zLnNpemUoKSB9OwogICAgIH0KICAgICBpZiAocmVzdWx0LmFjdGlvbiA9PSBMaW5lQnJl
YWtlcjo6UmVzdWx0OjpBY3Rpb246OlB1c2gpIHsKICAgICAgICAgLy8gVGhpcyBjb250aW51b3Vz
IGNvbnRlbnQgY2FuJ3QgYmUgcGxhY2VkIG9uIHRoZSBjdXJyZW50IGxpbmUuIE5vdGhpbmcgdG8g
Y29tbWl0IGF0IHRoaXMgdGltZS4KLSAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5l
LCAwLCB7IH0gfTsKKyAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lIH07CiAgICAg
fQogICAgIGlmIChyZXN1bHQuYWN0aW9uID09IExpbmVCcmVha2VyOjpSZXN1bHQ6OkFjdGlvbjo6
UmV2ZXJ0KSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfSU1QTEVNRU5URURfWUVUKCk7Ci0gICAgICAg
IHJldHVybiB7IHJlc3VsdC5pc0VuZE9mTGluZSwgMCwgeyB9IH07CisgICAgICAgIC8vIE5vdCBv
bmx5IHRoaXMgY29udGVudCBjYW4ndCBiZSBwbGFjZWQgb24gdGhlIGN1cnJlbnQgbGluZSwgYnV0
IHdlIGV2ZW4gbmVlZCB0byByZXZlcnQgdGhlIGxpbmUgYmFjayB0byBhbiBlYXJsaWVyIHBvc2l0
aW9uLgorICAgICAgICByZXR1cm4geyByZXN1bHQuaXNFbmRPZkxpbmUsIDAsIHsgfSwgcmVzdWx0
LnJldmVydFRvIH07CiAgICAgfQogICAgIGlmIChyZXN1bHQuYWN0aW9uID09IExpbmVCcmVha2Vy
OjpSZXN1bHQ6OkFjdGlvbjo6U3BsaXQpIHsKICAgICAgICAgLy8gQ29tbWl0IHRoZSBjb21iaW5h
dGlvbiBvZiBmdWxsIGFuZCBwYXJ0aWFsIGNvbnRlbnQgb24gdGhlIGN1cnJlbnQgbGluZS4KQEAg
LTQyNSw3ICs0MzEsNyBAQCBMaW5lTGF5b3V0Q29udGV4dDo6Q29tbWl0dGVkQ29udGVudCBMaW5l
TGF5b3V0Q29udGV4dDo6Y2hlY2tGb3JMaW5lV3JhcEFuZENvbW1pdAogICAgICAgICBhdXRvIHRy
YWlsaW5nUnVuSW5kZXggPSByZXN1bHQucGFydGlhbFRyYWlsaW5nQ29udGVudC0+dHJhaWxpbmdS
dW5JbmRleDsKICAgICAgICAgYXV0byBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgPSB0cmFpbGlu
Z1J1bkluZGV4ICsgMTsKICAgICAgICAgaWYgKCFyZXN1bHQucGFydGlhbFRyYWlsaW5nQ29udGVu
dC0+cGFydGlhbFJ1bikKLSAgICAgICAgICAgIHJldHVybiB7IHJlc3VsdC5pc0VuZE9mTGluZSwg
Y29tbWl0dGVkSW5saW5lSXRlbUNvdW50LCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IHJl
c3VsdC5pc0VuZE9mTGluZSwgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50IH07CiAKICAgICAgICAg
YXV0byBwYXJ0aWFsUnVuID0gKnJlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT5wYXJ0aWFs
UnVuOwogICAgICAgICBhdXRvJiB0cmFpbGluZ0lubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5s
aW5lVGV4dEl0ZW0+KGNhbmRpZGF0ZVJ1bnNbdHJhaWxpbmdSdW5JbmRleF0uaW5saW5lSXRlbSk7
CkBAIC00MzMsNyArNDM5LDcgQEAgTGluZUxheW91dENvbnRleHQ6OkNvbW1pdHRlZENvbnRlbnQg
TGluZUxheW91dENvbnRleHQ6OmNoZWNrRm9yTGluZVdyYXBBbmRDb21taXQKICAgICAgICAgcmV0
dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQsIExpbmVD
b250ZW50OjpQYXJ0aWFsQ29udGVudCB7IHBhcnRpYWxSdW4ubmVlZHNIeXBoZW4sIG92ZXJmbG93
TGVuZ3RoIH0gfTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IHsgTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgMCwgeyB9IH07CisgICAgcmV0dXJuIHsg
TGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObyB9OwogfQogCiB2b2lkIExpbmVMYXlvdXRDb250
ZXh0Ojpjb21taXRDb250ZW50KExpbmVCdWlsZGVyJiBsaW5lLCBjb25zdCBMaW5lQnJlYWtlcjo6
UnVuTGlzdCYgcnVucywgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlJlc3VsdDo6UGFydGlhbFRyYWls
aW5nQ29udGVudD4gcGFydGlhbFRyYWlsaW5nQ29udGVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5oCmlu
ZGV4IDNhZGYzZTJlZGYxNTNiOWEzODBmMDJmZmZiNDEyYmM5NDgzMTIyOTEuLjE3MzE2MDFlY2U1
MjRlMmNjNmFmOWY3NTcyMWQzOGUyYWYzYmI1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaApAQCAt
NTQsMTQgKzU0LDE1IEBAIHB1YmxpYzoKICAgICB1c2luZyBGbG9hdExpc3QgPSBWZWN0b3I8V2Vh
a1B0cjxJbmxpbmVJdGVtPj47CiAKIHByaXZhdGU6Ci0gICAgc3RydWN0IENvbW1pdHRlZENvbnRl
bnQgeworICAgIExpbmVDYW5kaWRhdGVDb250ZW50IG5leHRDb250ZW50Rm9yTGluZSh1bnNpZ25l
ZCBpbmxpbmVJdGVtSW5kZXgsIE9wdGlvbmFsPHVuc2lnbmVkPiBvdmVyZmxvd0xlbmd0aCwgSW5s
aW5lTGF5b3V0VW5pdCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKyAgICBzdHJ1Y3QgUmVzdWx0IHsK
ICAgICAgICAgTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lIGlzRW5kT2ZMaW5lIHsgTGluZUJyZWFr
ZXI6OklzRW5kT2ZMaW5lOjpObyB9OwotICAgICAgICBzaXplX3QgY291bnQgeyAwIH07Ci0gICAg
ICAgIE9wdGlvbmFsIDxMaW5lQ29udGVudDo6UGFydGlhbENvbnRlbnQ+IHBhcnRpYWxDb250ZW50
OworICAgICAgICBzaXplX3QgY29tbWl0dGVkQ291bnQgeyAwIH07CisgICAgICAgIE9wdGlvbmFs
IDxMaW5lQ29udGVudDo6UGFydGlhbENvbnRlbnQ+IHBhcnRpYWxDb250ZW50IHsgfTsKKyAgICAg
ICAgY29uc3QgSW5saW5lSXRlbSogcmV2ZXJ0VG8geyBudWxscHRyIH07CiAgICAgfTsKLSAgICBM
aW5lQ2FuZGlkYXRlQ29udGVudCBuZXh0Q29udGVudEZvckxpbmUodW5zaWduZWQgaW5saW5lSXRl
bUluZGV4LCBPcHRpb25hbDx1bnNpZ25lZD4gb3ZlcmZsb3dMZW5ndGgsIElubGluZUxheW91dFVu
aXQgY3VycmVudExvZ2ljYWxSaWdodCk7Ci0gICAgQ29tbWl0dGVkQ29udGVudCBhZGRGbG9hdEl0
ZW1zKExpbmVCdWlsZGVyJiwgY29uc3QgRmxvYXRMaXN0Jik7Ci0gICAgQ29tbWl0dGVkQ29udGVu
dCBjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0KExpbmVCcmVha2VyJiwgTGluZUJ1aWxkZXImLCBj
b25zdCBMaW5lQnJlYWtlcjo6UnVuTGlzdCYpOworICAgIFJlc3VsdCB0cnlBZGRpbmdGbG9hdEl0
ZW1zKExpbmVCdWlsZGVyJiwgY29uc3QgRmxvYXRMaXN0Jik7CisgICAgUmVzdWx0IHRyeUFkZGlu
Z0lubGluZUl0ZW1zKExpbmVCcmVha2VyJiwgTGluZUJ1aWxkZXImLCBjb25zdCBMaW5lQnJlYWtl
cjo6UnVuTGlzdCYpOwogICAgIHZvaWQgY29tbWl0Q29udGVudChMaW5lQnVpbGRlciYsIGNvbnN0
IExpbmVCcmVha2VyOjpSdW5MaXN0JiwgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlJlc3VsdDo6UGFy
dGlhbFRyYWlsaW5nQ29udGVudD4pOwogICAgIExpbmVDb250ZW50IGNsb3NlKExpbmVCdWlsZGVy
JiwgdW5zaWduZWQgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgdW5zaWduZWQgY29tbWl0dGVkSW5s
aW5lSXRlbUNvdW50LCBPcHRpb25hbDxMaW5lQ29udGVudDo6UGFydGlhbENvbnRlbnQ+KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386537</attachid>
            <date>2019-12-30 09:07:10 -0800</date>
            <delta_ts>2019-12-30 10:25:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205633-20191230090710.patch</filename>
            <type>text/plain</type>
            <size>19201</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMzNjhiNWE1Njg4ODVm
NDM5YmFlMmQ0N2Q3NDU3ODk5ZmM3YmM1YS4uNmI4MGE1NjZmODRkMGRiMzcxM2Y0ZDA5OGRmODQ3
MGRmM2I3MTkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE5LTEyLTMwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBGaXggaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRleHQvd2hpdGUtc3BhY2Uvd2hp
dGUtc3BhY2Utd3JhcC1hZnRlci1ub3dyYXAtMDAxLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYzMworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTgyMzQyMzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAg
ICAgICAgV2hlbiB0aGUgTGluZUJyZWFrZXIgY29tZXMgYmFjayB3aXRoIEFjdGlvbjo6UmV2ZXJ0
IChtZWFuaW5nIHRoYXQgdGhlIGxpbmUKKyAgICAgICAgbmVlZHMgdG8gYmUgcmV2ZXJ0ZWQgYmFj
ayB0byBhbiBlYXJsaWVyIGxpbmUgd3JhcCBvcHBvcnR1bml0eSksIGNhbGwgTGluZUJ1aWxkZXI6
OnJldmVydCBhbmQKKyAgICAgICAgY2xvc2UgdGhlIGxpbmUuCisKKyAgICAgICAgKiBsYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkxpbmVCcmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQgY29uc3QpOiBS
ZXR1cm4gcHVzaCB3aGVuIHRoZSBjdXJyZW50IGNvbnRlbnQgY2FuIGJlIHdyYXBwZWQuCisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkNvbnRpbm91c0NvbnRlbnQ6OkNvbnRpbm91c0NvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpDb250aW5vdXNDb250ZW50OjpsYXN0V3JhcE9w
cG9ydHVuaXR5SW5kZXggY29uc3QpOiBGaXggdGhlIGxhc3QgcG9zaXRpb24gbG9naWMuCisgICAg
ICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6cmV2ZXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGluZUJ1aWxkZXI6OmNvbGxlY3RIYW5naW5nQ29udGVudCk6CisgICAg
ICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaDoKKyAgICAg
ICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OmVuZHNXaXRoU29mdFdyYXBPcHBvcnR1bml0eSk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpsYXlvdXRMaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGluZUxheW91dENvbnRleHQ6OnRyeUFkZGluZ0Zsb2F0
SXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6dHJ5
QWRkaW5nSW5saW5lSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMaW5lTGF5b3V0
Q29udGV4dDo6YWRkRmxvYXRJdGVtcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkxpbmVMYXlvdXRDb250ZXh0OjpjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5o
OgorCiAyMDE5LTEyLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHIyNTM5MzgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVh
a2VyLmNwcAppbmRleCA0ZmI1NjRjNTY0MTM5OGU3NjUxZmI3MjFhMzRkOWM1NzczOTFmN2E3Li5i
ZDkxNTE2NTVjNGM2NGIzYzY1MGUwMjYwNzJhM2ViZmNkMDE2NDlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJy
ZWFrZXIuY3BwCkBAIC0xMzgsNyArMTM4LDcgQEAgTGluZUJyZWFrZXI6OlJlc3VsdCBMaW5lQnJl
YWtlcjo6dHJ5V3JhcHBpbmdJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRlbnQKICAg
ICAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZSB9Owog
ICAgICAgICAvLyBOb3cgY2hlY2sgaWYgd2UgY2FuIHRyaW0gdGhlIGxpbmUgdG9vLgogICAgICAg
ICBpZiAobGluZVN0YXR1cy5saW5lSGFzRnVsbHlDb2xsYXBzaWJsZVRyYWlsaW5nUnVuICYmIGNh
bmRpZGF0ZUNvbnRlbnQuaXNUcmFpbGluZ0NvbnRlbnRGdWxseUNvbGxhcHNpYmxlKCkpIHsKLSAg
ICAgICAgICAgIC8vIElmIHRoaXMgbmV3IGNvbnRlbnQgaXMgZnVsbHkgY29sbGFwc2libGUsIGl0
IHNob3VkIHN1cmVseSBmaXQuCisgICAgICAgICAgICAvLyBJZiB0aGlzIG5ldyBjb250ZW50IGlz
IGZ1bGx5IGNvbGxhcHNpYmxlLCBpdCBzaG91bGQgc3VyZWx5IGZpdC4KICAgICAgICAgICAgIHJl
dHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZSB9OwogICAgICAgICB9CiAg
ICAgfSBlbHNlIGlmIChsaW5lU3RhdHVzLmNvbGxhcHNpYmxlV2lkdGggJiYgY2FuZGlkYXRlQ29u
dGVudC5oYXNOb25Db250ZW50UnVuc09ubHkoKSkgewpAQCAtMTQ4LDcgKzE0OCw3IEBAIExpbmVC
cmVha2VyOjpSZXN1bHQgTGluZUJyZWFrZXI6OnRyeVdyYXBwaW5nSW5saW5lQ29udGVudChjb25z
dCBDb250aW5vdXNDb250ZW50CiAgICAgICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6
S2VlcCB9OwogICAgIH0KICAgICBpZiAoY2FuZGlkYXRlQ29udGVudC5pc1Zpc3VhbGx5RW1wdHlX
aGl0ZXNwYWNlQ29udGVudE9ubHkoKSAmJiBzaG91bGRLZWVwRW5kT2ZMaW5lV2hpdGVzcGFjZShj
YW5kaWRhdGVDb250ZW50KSkgewotICAgICAgICAvLyBUaGlzIG92ZXJmbG93aW5nIGNvbnRlbnQg
YXBwYXJlbnRseSBmYWxscyBpbnRvIHRoZSByZW1vdmUvaGFuZyBlbmQtb2YtbGluZS1zcGFjZXMg
Y2F0ZXJnb3J5LgorICAgICAgICAvLyBUaGlzIG92ZXJmbG93aW5nIGNvbnRlbnQgYXBwYXJlbnRs
eSBmYWxscyBpbnRvIHRoZSByZW1vdmUvaGFuZyBlbmQtb2YtbGluZS1zcGFjZXMgY2F0ZWdvcnku
CiAgICAgICAgIC8vIHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hpdGUt
c3BhY2UtcHJvcGVydHkgbWF0cml4CiAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpL
ZWVwIH07CiAgICAgfQpAQCAtMTc1LDE0ICsxNzUsMTcgQEAgTGluZUJyZWFrZXI6OlJlc3VsdCBM
aW5lQnJlYWtlcjo6dHJ5V3JhcHBpbmdJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRl
bnQKICAgICAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpTcGxpdCwgSXNFbmRPZkxp
bmU6Olllcywgc3BsaXRDb250ZW50IH07CiAgICAgICAgIH0KICAgICB9Ci0gICAgLy8gSWYgd2Ug
YXJlIG5vdCBhbGxvd2VkIHRvIGJyZWFrIHRoaXMgY29udGVudCwgd2Ugc3RpbGwgbmVlZCB0byBk
ZWNpZGUgd2hldGhlciBrZWVwIGl0IG9yIHB1c2ggaXQgdG8gdGhlIG5leHQgbGluZS4KKyAgICAv
LyBJZiB3ZSBhcmUgbm90IGFsbG93ZWQgdG8gYnJlYWsgdGhpcyBvdmVyZmxvd2luZyBjb250ZW50
LCB3ZSBzdGlsbCBuZWVkIHRvIGRlY2lkZSB3aGV0aGVyIGtlZXAgaXQgb3IgcHVzaCBpdCB0byB0
aGUgbmV4dCBsaW5lLgogICAgIGlmIChsaW5lU3RhdHVzLmxpbmVJc0VtcHR5KSB7CiAgICAgICAg
IEFTU0VSVCghbV9sYXN0V3JhcE9wcG9ydHVuaXR5KTsKLSAgICAgICAgcmV0dXJuIHsgUmVzdWx0
OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpZZXMgfTsKKyAgICAgICAgcmV0dXJuIHsgUmVz
dWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpObyB9OwogICAgIH0KKyAgICAvLyBOb3cg
ZWl0aGVyIHdyYXAgaGVyZSBvciBhdCBhbiBlYXJsaWVyIHBvc2l0aW9uLCBvciBub3Qgd3JhcCBh
dCBhbGwuCisgICAgaWYgKGlzQ29udGVudFdyYXBwaW5nQWxsb3dlZChjYW5kaWRhdGVDb250ZW50
KSkKKyAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OlB1c2gsIElzRW5kT2ZMaW5lOjpZ
ZXMgfTsKICAgICBpZiAobV9sYXN0V3JhcE9wcG9ydHVuaXR5KQogICAgICAgICByZXR1cm4geyBS
ZXN1bHQ6OkFjdGlvbjo6UmV2ZXJ0LCBJc0VuZE9mTGluZTo6WWVzLCB7IH0sIG1fbGFzdFdyYXBP
cHBvcnR1bml0eSB9OwotICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBpc0NvbnRl
bnRXcmFwcGluZ0FsbG93ZWQoY2FuZGlkYXRlQ29udGVudCkgPyBJc0VuZE9mTGluZTo6WWVzIDog
SXNFbmRPZkxpbmU6Ok5vIH07CisgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElz
RW5kT2ZMaW5lOjpObyB9OwogfQogCiBib29sIExpbmVCcmVha2VyOjpzaG91bGRXcmFwRmxvYXRC
b3goSW5saW5lTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxXaWR0aCwgSW5saW5lTGF5b3V0VW5pdCBh
dmFpbGFibGVXaWR0aCwgYm9vbCBsaW5lSXNFbXB0eSkKQEAgLTM1NCw3ICszNTcsNyBAQCBDb250
aW5vdXNDb250ZW50OjpDb250aW5vdXNDb250ZW50KGNvbnN0IExpbmVCcmVha2VyOjpSdW5MaXN0
JiBydW5zKQogICAgICAgICAgICAgICAgIG1fdHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQud2lk
dGggKz0gY29sbGFwc2libGVXaWR0aDsKICAgICAgICAgICAgICAgICBtX3RyYWlsaW5nQ29sbGFw
c2libGVDb250ZW50LmlzRnVsbHlDb2xsYXBzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgLy8gRW5kIG9mIHdoaXRzcGFjZSBjb250ZW50LgorICAgICAgICAgICAgLy8g
RW5kIG9mIHdoaXRlc3BhY2UgY29udGVudC4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgfQpAQCAtNDI3LDE0ICs0MzAsMTMgQEAgYm9vbCBDb250aW5vdXNDb250ZW50OjpoYXNO
b25Db250ZW50UnVuc09ubHkoKSBjb25zdAogCiBPcHRpb25hbDxzaXplX3Q+IENvbnRpbm91c0Nv
bnRlbnQ6Omxhc3RXcmFwT3Bwb3J0dW5pdHlJbmRleCgpIGNvbnN0CiB7Ci0gICAgLy8gPHNwYW4g
c3R5bGU9IndoaXRlLXNwYWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+PHNwYW4+eWVzX3dyYXA8L3Nw
YW4+PHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+LgotICAgIC8v
IFtjb250YWluZXIgc3RhcnRdW25vX3dyYXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFy
dF1beWVzX3dyYXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1bbm9fd3JhcF1bY29u
dGFpbmVyIGVuZF0KLSAgICAvLyBSZXR1cm4gIzUgYXMgdGhlIGluZGV4IHdoZXJlIHRoaXMgY29u
dGVudCBjYW4gd3JhcCBhdCBsYXN0LgotICAgIGZvciAoYXV0byBpbmRleCA9IG1fcnVucy5zaXpl
KCk7IGluZGV4LS07KSB7Ci0gICAgICAgIGlmIChpc1dyYXBwaW5nQWxsb3dlZChtX3J1bnNbaW5k
ZXhdLmlubGluZUl0ZW0uc3R5bGUoKSkpCi0gICAgICAgICAgICByZXR1cm4gaW5kZXg7Ci0gICAg
fQotICAgIHJldHVybiB7IH07CisgICAgLy8gPHNwYW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmUi
Pm5vX3dyYXA8L3NwYW4+PHNwYW4+eWVzIHdyYXA8L3NwYW4+PHNwYW4gc3R5bGU9IndoaXRlLXNw
YWNlOiBwcmUiPm5vX3dyYXA8L3NwYW4+LgorICAgIC8vIFtjb250YWluZXIgc3RhcnRdW25vX3dy
YXBdW2NvbnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1beWVzXSA8LSBjb250aW51b3VzIGNv
bnRlbnQKKyAgICAvLyBbIF0gPC0gY29udGludW91cyBjb250ZW50CisgICAgLy8gW3dyYXBdW2Nv
bnRhaW5lciBlbmRdW2NvbnRhaW5lciBzdGFydF1bbm9fd3JhcF1bY29udGFpbmVyIGVuZF0gPC0g
Y29udGludW91cyBjb250ZW50CisgICAgLy8gUmV0dXJuICMwIGFzIHRoZSBpbmRleCB3aGVyZSB0
aGUgc2Vjb25kIGNvbnRpbnVvdXMgY29udGVudCBjYW4gd3JhcCBhdC4KKyAgICBhdXRvIGxhc3RJ
dGVtSW5kZXggPSBtX3J1bnMuc2l6ZSgpIC0gMTsKKyAgICByZXR1cm4gaXNXcmFwcGluZ0FsbG93
ZWQobV9ydW5zW2xhc3RJdGVtSW5kZXhdLmlubGluZUl0ZW0uc3R5bGUoKSkgPyBtYWtlT3B0aW9u
YWwobGFzdEl0ZW1JbmRleCkgOiBXVEY6Om51bGxvcHQ7CiB9CiAKIHZvaWQgQ29udGlub3VzQ29u
dGVudDo6VHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWls
ZGVyLmNwcAppbmRleCA5OGE1MzllYzhiZDU5NDRmN2I3ZTU5NzIyMDQwMDA3ZWY4ZGYzYzM4Li5k
OGFhYmEwOGYxMzM2OWQzN2Y3OTFlNDljMjAzMDgyMmRiMTI2NmVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1
aWxkZXIuY3BwCkBAIC0yNjMsMTQgKzI2MywxOSBAQCBMaW5lQnVpbGRlcjo6UnVuTGlzdCBMaW5l
QnVpbGRlcjo6Y2xvc2UoSXNMYXN0TGluZVdpdGhJbmxpbmVDb250ZW50IGlzTGFzdExpbmVXaQog
ICAgIHJldHVybiBydW5MaXN0OwogfQogCi12b2lkIExpbmVCdWlsZGVyOjpyZXZlcnQoY29uc3Qg
SW5saW5lSXRlbSYgcmV2ZXJ0VG8pCitzaXplX3QgTGluZUJ1aWxkZXI6OnJldmVydChjb25zdCBJ
bmxpbmVJdGVtJiByZXZlcnRUbykKIHsKKyAgICBpZiAobV9pbmxpbmVJdGVtUnVucy5sYXN0KCkg
PT0gcmV2ZXJ0VG8pIHsKKyAgICAgICAgLy8gU2luY2UgdGhlIExpbmVCcmVha2VyIGRvZXMgbm90
IGtub3cgd2hhdCBoYXMgYmVlbiBwdXNoZWQgb24gdGhlIGN1cnJlbnQgbGluZQorICAgICAgICAv
LyBpbiBzb21lIGNhc2VzIHJldmVydCgpIGlzIGNhbGxlZCB3aXRoIHRoZSBsYXN0IGl0ZW0gb24g
dGhlIGxpbmUuCisgICAgICAgIHJldHVybiB7IH07CisgICAgfQogICAgIC8vIDEuIFJlbW92ZSBh
bmQgc2hyaW5rIHRoZSB0cmFpbGluZyBjb250ZW50LgogICAgIC8vIDIuIFJlYnVpbGQgY29sbGFw
c2libGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBjb250ZW50LgogICAgIEFTU0VSVCghbV9pbmxpbmVJ
dGVtUnVucy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVChtX2lubGluZUl0ZW1SdW5zLmxhc3QoKSAh
PSByZXZlcnRUbyk7CiAgICAgYXV0byByZXZlcnRlZFdpZHRoID0gSW5saW5lTGF5b3V0VW5pdCB7
IH07Ci0gICAgaW50NjRfdCBpbmRleCA9IHN0YXRpY19jYXN0PGludDY0X3Q+KG1faW5saW5lSXRl
bVJ1bnMuc2l6ZSgpIC0gMSk7CisgICAgYXV0byBvcmlnaW5hbFNpemUgPSBtX2lubGluZUl0ZW1S
dW5zLnNpemUoKTsKKyAgICBpbnQ2NF90IGluZGV4ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4ob3Jp
Z2luYWxTaXplIC0gMSk7CiAgICAgd2hpbGUgKGluZGV4ID49IDAgJiYgbV9pbmxpbmVJdGVtUnVu
c1tpbmRleF0gIT0gcmV2ZXJ0VG8pCiAgICAgICAgIHJldmVydGVkV2lkdGggKz0gbV9pbmxpbmVJ
dGVtUnVuc1tpbmRleC0tXS5sb2dpY2FsV2lkdGgoKTsKICAgICBtX2xpbmVCb3guc2hyaW5rSG9y
aXpvbnRhbGx5KHJldmVydGVkV2lkdGgpOwpAQCAtMzEwLDcgKzMxNSw4IEBAIHZvaWQgTGluZUJ1
aWxkZXI6OnJldmVydChjb25zdCBJbmxpbmVJdGVtJiByZXZlcnRUbykKICAgICAgICAgICAgIG1f
Y29sbGFwc2libGVDb250ZW50LmFwcGVuZChpbmRleCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
Ly8gQ29uc2lkZXIgYWx0ZXJuYXRpdmUgc29sdXRpb25zIGlmIHRoZSAoZWRnZSBjYXNlKXJldmVy
dCBnZXRzIG92ZXJseSBjb21wbGljYXRlZC4gIAorICAgIC8vIENvbnNpZGVyIGFsdGVybmF0aXZl
IHNvbHV0aW9ucyBpZiB0aGUgKGVkZ2UgY2FzZSlyZXZlcnQgZ2V0cyBvdmVybHkgY29tcGxpY2F0
ZWQuCisgICAgcmV0dXJuIG9yaWdpbmFsU2l6ZSAtIG1faW5saW5lSXRlbVJ1bnMuc2l6ZSgpOwog
fQogCiB2b2lkIExpbmVCdWlsZGVyOjphbGlnbkNvbnRlbnRWZXJ0aWNhbGx5KFJ1bkxpc3QmIHJ1
bkxpc3QpCkBAIC00ODIsNyArNDg4LDcgQEAgdm9pZCBMaW5lQnVpbGRlcjo6cmVtb3ZlVHJhaWxp
bmdDb2xsYXBzaWJsZUNvbnRlbnQoKQogSGFuZ2luZ0NvbnRlbnQgTGluZUJ1aWxkZXI6OmNvbGxl
Y3RIYW5naW5nQ29udGVudChJc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQgaXNMYXN0TGluZVdp
dGhJbmxpbmVDb250ZW50KQogewogICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnQgPSBIYW5naW5nQ29u
dGVudCB7IH07Ci0gICAgLy8gQ2FuJ3Qgc2V0dXAgaGFuZ2luZyBjb250ZW50IHdpdGggcmVtb3Zh
YmxlIHRyYWlsaW5nIHdoaXRzcGFjZXMuCisgICAgLy8gQ2FuJ3Qgc2V0dXAgaGFuZ2luZyBjb250
ZW50IHdpdGggcmVtb3ZhYmxlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgQVNTRVJUKG1fY29s
bGFwc2libGVDb250ZW50LmlzRW1wdHkoKSk7CiAgICAgaWYgKGlzTGFzdExpbmVXaXRoSW5saW5l
Q29udGVudCA9PSBJc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQ6OlllcykKICAgICAgICAgaGFu
Z2luZ0NvbnRlbnQuc2V0SXNDb25kaXRpb25hbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCdWlsZGVyLmgKaW5kZXgg
MGQyNGY0ZGIyZDczYzhjMjRiZmRhODdmYjQxZDc2Nzc3NzA5NjMxYi4uY2VlZTczMzgwMTUxZTNj
ZWRlNmExMDAzMTlmYWNiODllZTE2ZTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnVpbGRlci5oCkBAIC0xMTUs
NyArMTE1LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJ1bkxpc3QgPSBWZWN0b3I8UnVuLCA1MD47
CiAgICAgZW51bSBjbGFzcyBJc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQgeyBObywgWWVzIH07
CiAgICAgUnVuTGlzdCBjbG9zZShJc0xhc3RMaW5lV2l0aElubGluZUNvbnRlbnQgPSBJc0xhc3RM
aW5lV2l0aElubGluZUNvbnRlbnQ6Ok5vKTsKLSAgICB2b2lkIHJldmVydChjb25zdCBJbmxpbmVJ
dGVtJiByZXZlcnRUbyk7CisgICAgc2l6ZV90IHJldmVydChjb25zdCBJbmxpbmVJdGVtJiByZXZl
cnRUbyk7CiAKICAgICBzdGF0aWMgRGlzcGxheTo6TGluZUJveDo6QmFzZWxpbmUgaGFsZkxlYWRp
bmdNZXRyaWNzKGNvbnN0IEZvbnRNZXRyaWNzJiwgSW5saW5lTGF5b3V0VW5pdCBsaW5lTG9naWNh
bEhlaWdodCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcAppbmRleCAyMGZiYTE4YWRkYWIxMzI2
ZTBmMDAyYTA3NTVlNDllOWMxMjNlNTczLi5mYWVhMTQxNGE1MGY1Y2M5YjBiNDFiMDk2NWFlNTM5
MDI4YWFlYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0
YXRpYyBib29sIGVuZHNXaXRoU29mdFdyYXBPcHBvcnR1bml0eShjb25zdCBJbmxpbmVUZXh0SXRl
bSYgY3VycmVudFRleHRJdGVtLCBjCiAgICAgLy8gdGhleSBhcmUgc3BsaXQgYXQgYSBzb2Z0IGJy
ZWFraW5nIG9wcG9ydHVuaXR5LiBTZWUgSW5saW5lVGV4dEl0ZW06Om1vdmVUb05leHRCcmVha2Fi
bGVQb3NpdGlvbi4KICAgICBpZiAoJmN1cnJlbnRUZXh0SXRlbS5sYXlvdXRCb3goKSA9PSAmbmV4
dElubGluZVRleHRJdGVtLmxheW91dEJveCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAv
LyBOb3cgd2UgbmVlZCB0byBjb2xsZWN0IGF0IGxlYXN0IDMgYWRqYWNlbnQgY2hhcmFjdGVycyB0
byBiZSBhYmxlIHRvIG1ha2UgYSBkZXNjaXNpb24gd2hldGhlciB0aGUgcHJldmlvdXMgdGV4dCBp
dGVtIGVuZHMgd2l0aCBicmVha2luZyBvcHBvcnR1bml0eS4KKyAgICAvLyBOb3cgd2UgbmVlZCB0
byBjb2xsZWN0IGF0IGxlYXN0IDMgYWRqYWNlbnQgY2hhcmFjdGVycyB0byBiZSBhYmxlIHRvIG1h
a2UgYSBkZWNpc2lvbiB3aGV0aGVyIHRoZSBwcmV2aW91cyB0ZXh0IGl0ZW0gZW5kcyB3aXRoIGJy
ZWFraW5nIG9wcG9ydHVuaXR5LgogICAgIC8vIFtleC1dW2FtcGxlXSA8LSBzZWNvbmQgdG8gbGFz
dFt4XSBsYXN0Wy1dIGN1cnJlbnRbYV0KICAgICAvLyBXZSBuZWVkIGF0IGxlYXN0IDEgY2hhcmFj
dGVyIGluIHRoZSBjdXJyZW50IGlubGluZSB0ZXh0IGl0ZW0gYW5kIDIgbW9yZSBmcm9tIHByZXZp
b3VzIGlubGluZSBpdGVtcy4KICAgICBhdXRvIHByZXZpb3VzQ29udGVudCA9IGN1cnJlbnRUZXh0
SXRlbS5sYXlvdXRCb3goKS50ZXh0Q29udGV4dCgpLT5jb250ZW50OwpAQCAtMjY5LDIwICsyNjks
MjYgQEAgTGluZUxheW91dENvbnRleHQ6OkxpbmVDb250ZW50IExpbmVMYXlvdXRDb250ZXh0Ojps
YXlvdXRMaW5lKExpbmVCdWlsZGVyJiBsaW5lLAogICAgICAgICB9CiAgICAgICAgIGlmIChjYW5k
aWRhdGVDb250ZW50Lmhhc0ludHJ1c2l2ZUZsb2F0cygpKSB7CiAgICAgICAgICAgICAvLyBBZGQg
ZmxvYXRzIGZpcnN0IGJlY2F1c2UgdGhleSBzaHJpbmsgdGhlIGF2YWlsYWJsZSBob3Jpem9udGFs
IHNwYWNlIGZvciB0aGUgcmVzdCBvZiB0aGUgY29udGVudC4KLSAgICAgICAgICAgIGF1dG8gZmxv
YXRDb250ZW50ID0gYWRkRmxvYXRJdGVtcyhsaW5lLCBjYW5kaWRhdGVDb250ZW50LmZsb2F0cygp
KTsKLSAgICAgICAgICAgIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCArPSBmbG9hdENvbnRlbnQu
Y291bnQ7Ci0gICAgICAgICAgICBpZiAoZmxvYXRDb250ZW50LmlzRW5kT2ZMaW5lID09IExpbmVC
cmVha2VyOjpJc0VuZE9mTGluZTo6WWVzKSB7CisgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IHRy
eUFkZGluZ0Zsb2F0SXRlbXMobGluZSwgY2FuZGlkYXRlQ29udGVudC5mbG9hdHMoKSk7CisgICAg
ICAgICAgICBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgKz0gcmVzdWx0LmNvbW1pdHRlZENvdW50
OworICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0VuZE9mTGluZSA9PSBMaW5lQnJlYWtlcjo6SXNF
bmRPZkxpbmU6OlllcykgewogICAgICAgICAgICAgICAgIC8vIEZsb2F0cyB0YWtlIHVwIGFsbCB0
aGUgaG9yaXpvbnRhbCBzcGFjZS4KICAgICAgICAgICAgICAgICByZXR1cm4gY2xvc2UobGluZSwg
bGVhZGluZ0lubGluZUl0ZW1JbmRleCwgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50LCB7IH0pOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICghY2FuZGlkYXRlQ29udGVudC5y
dW5zKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgd2UgY2FuIHB1
dCB0aGlzIGNvbnRlbnQgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICAgICAgICAgIGF1dG8gY29t
bWl0dGVkQ29udGVudCA9IGNoZWNrRm9yTGluZVdyYXBBbmRDb21taXQobGluZUJyZWFrZXIsIGxp
bmUsIGNhbmRpZGF0ZUNvbnRlbnQucnVucygpKTsKLSAgICAgICAgICAgIGNvbW1pdHRlZElubGlu
ZUl0ZW1Db3VudCArPSBjb21taXR0ZWRDb250ZW50LmNvdW50OwotICAgICAgICAgICAgaWYgKGNv
bW1pdHRlZENvbnRlbnQuaXNFbmRPZkxpbmUgPT0gTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZ
ZXMpIHsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gdHJ5QWRkaW5nSW5saW5lSXRlbXMobGlu
ZUJyZWFrZXIsIGxpbmUsIGNhbmRpZGF0ZUNvbnRlbnQucnVucygpKTsKKyAgICAgICAgICAgIGlm
IChyZXN1bHQucmV2ZXJ0VG8pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQoIXJlc3VsdC5jb21t
aXR0ZWRDb3VudCk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdC5pc0VuZE9mTGluZSA9
PSBMaW5lQnJlYWtlcjo6SXNFbmRPZkxpbmU6Olllcyk7CisgICAgICAgICAgICAgICAgLy8gQW4g
ZWFybGllciBsaW5lIHdyYXBwaW5nIG9wcG9ydHVuaXR5IHR1cm5lZCBvdXQgdG8gYmUgdGhlIGZp
bmFsIGJyZWFraW5nIHBvc2l0aW9uLgorICAgICAgICAgICAgICAgIGNvbW1pdHRlZElubGluZUl0
ZW1Db3VudCAtPSBsaW5lLnJldmVydCgqcmVzdWx0LnJldmVydFRvKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCArPSByZXN1bHQuY29tbWl0dGVk
Q291bnQ7CisgICAgICAgICAgICBpZiAocmVzdWx0LmlzRW5kT2ZMaW5lID09IExpbmVCcmVha2Vy
OjpJc0VuZE9mTGluZTo6WWVzKSB7CiAgICAgICAgICAgICAgICAgLy8gV2UgY2FuJ3QgcGxhY2Ug
YW55IG1vcmUgaXRlbXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICAgICAgICAgICAgICByZXR1
cm4gY2xvc2UobGluZSwgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgY29tbWl0dGVkSW5saW5lSXRl
bUNvdW50LCBjb21taXR0ZWRDb250ZW50LnBhcnRpYWxDb250ZW50KTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY2xvc2UobGluZSwgbGVhZGluZ0lubGluZUl0ZW1JbmRleCwgY29tbWl0dGVkSW5s
aW5lSXRlbUNvdW50LCByZXN1bHQucGFydGlhbENvbnRlbnQpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIGN1cnJlbnRJdGVtSW5kZXggPSBsZWFkaW5nSW5saW5lSXRlbUluZGV4
ICsgY29tbWl0dGVkSW5saW5lSXRlbUNvdW50OwpAQCAtMzY2LDcgKzM3Miw3IEBAIExpbmVDYW5k
aWRhdGVDb250ZW50IExpbmVMYXlvdXRDb250ZXh0OjpuZXh0Q29udGVudEZvckxpbmUodW5zaWdu
ZWQgaW5saW5lSXRlbUluCiAgICAgcmV0dXJuIGNhbmRpZGF0ZUNvbnRlbnQ7CiB9CiAKLUxpbmVM
YXlvdXRDb250ZXh0OjpDb21taXR0ZWRDb250ZW50IExpbmVMYXlvdXRDb250ZXh0OjphZGRGbG9h
dEl0ZW1zKExpbmVCdWlsZGVyJiBsaW5lLCBjb25zdCBGbG9hdExpc3QmIGZsb2F0cykKK0xpbmVM
YXlvdXRDb250ZXh0OjpSZXN1bHQgTGluZUxheW91dENvbnRleHQ6OnRyeUFkZGluZ0Zsb2F0SXRl
bXMoTGluZUJ1aWxkZXImIGxpbmUsIGNvbnN0IEZsb2F0TGlzdCYgZmxvYXRzKQogewogICAgIHNp
emVfdCBjb21taXR0ZWRGbG9hdEl0ZW1Db3VudCA9IDA7CiAgICAgZm9yIChhdXRvJiBmbG9hdEl0
ZW0gOiBmbG9hdHMpIHsKQEAgLTM3NCw3ICszODAsNyBAQCBMaW5lTGF5b3V0Q29udGV4dDo6Q29t
bWl0dGVkQ29udGVudCBMaW5lTGF5b3V0Q29udGV4dDo6YWRkRmxvYXRJdGVtcyhMaW5lQnVpbGRl
cgogCiAgICAgICAgIGF1dG8gbGluZUlzQ29uc2lkZXJlZEVtcHR5ID0gbGluZS5pc1Zpc3VhbGx5
RW1wdHkoKSAmJiAhbGluZS5oYXNJbnRydXNpdmVGbG9hdCgpOwogICAgICAgICBpZiAoTGluZUJy
ZWFrZXIoKS5zaG91bGRXcmFwRmxvYXRCb3gobG9naWNhbFdpZHRoLCBsaW5lLmF2YWlsYWJsZVdp
ZHRoKCkgKyBsaW5lLnRyYWlsaW5nQ29sbGFwc2libGVXaWR0aCgpLCBsaW5lSXNDb25zaWRlcmVk
RW1wdHkpKQotICAgICAgICAgICAgcmV0dXJuIHsgTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpZ
ZXMsIGNvbW1pdHRlZEZsb2F0SXRlbUNvdW50LCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7
IExpbmVCcmVha2VyOjpJc0VuZE9mTGluZTo6WWVzLCBjb21taXR0ZWRGbG9hdEl0ZW1Db3VudCB9
OwogICAgICAgICAvLyBUaGlzIGZsb2F0IGNhbiBzaXQgb24gdGhlIGN1cnJlbnQgbGluZS4KICAg
ICAgICAgKytjb21taXR0ZWRGbG9hdEl0ZW1Db3VudDsKICAgICAgICAgYXV0byYgZmxvYXRCb3gg
PSBmbG9hdEl0ZW0tPmxheW91dEJveCgpOwpAQCAtMzg2LDEwICszOTIsMTAgQEAgTGluZUxheW91
dENvbnRleHQ6OkNvbW1pdHRlZENvbnRlbnQgTGluZUxheW91dENvbnRleHQ6OmFkZEZsb2F0SXRl
bXMoTGluZUJ1aWxkZXIKICAgICAgICAgICAgIGxpbmUubW92ZUxvZ2ljYWxSaWdodChsb2dpY2Fs
V2lkdGgpOwogICAgICAgICBtX2Zsb2F0cy5hcHBlbmQoZmxvYXRJdGVtKTsKICAgICB9Ci0gICAg
cmV0dXJuIHsgTGluZUJyZWFrZXI6OklzRW5kT2ZMaW5lOjpObywgY29tbWl0dGVkRmxvYXRJdGVt
Q291bnQsIHsgfSB9OworICAgIHJldHVybiB7IExpbmVCcmVha2VyOjpJc0VuZE9mTGluZTo6Tm8s
IGNvbW1pdHRlZEZsb2F0SXRlbUNvdW50IH07CiB9CiAKLUxpbmVMYXlvdXRDb250ZXh0OjpDb21t
aXR0ZWRDb250ZW50IExpbmVMYXlvdXRDb250ZXh0OjpjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0
KExpbmVCcmVha2VyJiBsaW5lQnJlYWtlciwgTGluZUJ1aWxkZXImIGxpbmUsIGNvbnN0IExpbmVC
cmVha2VyOjpSdW5MaXN0JiBjYW5kaWRhdGVSdW5zKQorTGluZUxheW91dENvbnRleHQ6OlJlc3Vs
dCBMaW5lTGF5b3V0Q29udGV4dDo6dHJ5QWRkaW5nSW5saW5lSXRlbXMoTGluZUJyZWFrZXImIGxp
bmVCcmVha2VyLCBMaW5lQnVpbGRlciYgbGluZSwgY29uc3QgTGluZUJyZWFrZXI6OlJ1bkxpc3Qm
IGNhbmRpZGF0ZVJ1bnMpCiB7CiAgICAgYXV0byBzaG91bGREaXNhYmxlSHlwaGVuYXRpb24gPSBb
Jl0gewogICAgICAgICBhdXRvJiBzdHlsZSA9IHJvb3QoKS5zdHlsZSgpOwpAQCAtNDA2LDE1ICs0
MTIsMTUgQEAgTGluZUxheW91dENvbnRleHQ6OkNvbW1pdHRlZENvbnRlbnQgTGluZUxheW91dENv
bnRleHQ6OmNoZWNrRm9yTGluZVdyYXBBbmRDb21taXQKICAgICBpZiAocmVzdWx0LmFjdGlvbiA9
PSBMaW5lQnJlYWtlcjo6UmVzdWx0OjpBY3Rpb246OktlZXApIHsKICAgICAgICAgLy8gVGhpcyBj
b250aW51b3VzIGNvbnRlbnQgY2FuIGJlIGZ1bGx5IHBsYWNlZCBvbiB0aGUgY3VycmVudCBsaW5l
LgogICAgICAgICBjb21taXRDb250ZW50KGxpbmUsIGNhbmRpZGF0ZVJ1bnMsIHsgfSk7Ci0gICAg
ICAgIHJldHVybiB7IHJlc3VsdC5pc0VuZE9mTGluZSwgY2FuZGlkYXRlUnVucy5zaXplKCksIHsg
fSB9OworICAgICAgICByZXR1cm4geyByZXN1bHQuaXNFbmRPZkxpbmUsIGNhbmRpZGF0ZVJ1bnMu
c2l6ZSgpIH07CiAgICAgfQogICAgIGlmIChyZXN1bHQuYWN0aW9uID09IExpbmVCcmVha2VyOjpS
ZXN1bHQ6OkFjdGlvbjo6UHVzaCkgewogICAgICAgICAvLyBUaGlzIGNvbnRpbnVvdXMgY29udGVu
dCBjYW4ndCBiZSBwbGFjZWQgb24gdGhlIGN1cnJlbnQgbGluZS4gTm90aGluZyB0byBjb21taXQg
YXQgdGhpcyB0aW1lLgotICAgICAgICByZXR1cm4geyByZXN1bHQuaXNFbmRPZkxpbmUsIDAsIHsg
fSB9OworICAgICAgICByZXR1cm4geyByZXN1bHQuaXNFbmRPZkxpbmUgfTsKICAgICB9CiAgICAg
aWYgKHJlc3VsdC5hY3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpSZXZlcnQp
IHsKLSAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKLSAgICAgICAgcmV0dXJu
IHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCAwLCB7IH0gfTsKKyAgICAgICAgLy8gTm90IG9ubHkgdGhp
cyBjb250ZW50IGNhbid0IGJlIHBsYWNlZCBvbiB0aGUgY3VycmVudCBsaW5lLCBidXQgd2UgZXZl
biBuZWVkIHRvIHJldmVydCB0aGUgbGluZSBiYWNrIHRvIGFuIGVhcmxpZXIgcG9zaXRpb24uCisg
ICAgICAgIHJldHVybiB7IHJlc3VsdC5pc0VuZE9mTGluZSwgMCwgeyB9LCByZXN1bHQucmV2ZXJ0
VG8gfTsKICAgICB9CiAgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3Vs
dDo6QWN0aW9uOjpTcGxpdCkgewogICAgICAgICAvLyBDb21taXQgdGhlIGNvbWJpbmF0aW9uIG9m
IGZ1bGwgYW5kIHBhcnRpYWwgY29udGVudCBvbiB0aGUgY3VycmVudCBsaW5lLgpAQCAtNDI1LDcg
KzQzMSw3IEBAIExpbmVMYXlvdXRDb250ZXh0OjpDb21taXR0ZWRDb250ZW50IExpbmVMYXlvdXRD
b250ZXh0OjpjaGVja0ZvckxpbmVXcmFwQW5kQ29tbWl0CiAgICAgICAgIGF1dG8gdHJhaWxpbmdS
dW5JbmRleCA9IHJlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT50cmFpbGluZ1J1bkluZGV4
OwogICAgICAgICBhdXRvIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCA9IHRyYWlsaW5nUnVuSW5k
ZXggKyAxOwogICAgICAgICBpZiAoIXJlc3VsdC5wYXJ0aWFsVHJhaWxpbmdDb250ZW50LT5wYXJ0
aWFsUnVuKQotICAgICAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCBjb21taXR0
ZWRJbmxpbmVJdGVtQ291bnQsIHsgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgcmVzdWx0Lmlz
RW5kT2ZMaW5lLCBjb21taXR0ZWRJbmxpbmVJdGVtQ291bnQgfTsKIAogICAgICAgICBhdXRvIHBh
cnRpYWxSdW4gPSAqcmVzdWx0LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnQtPnBhcnRpYWxSdW47CiAg
ICAgICAgIGF1dG8mIHRyYWlsaW5nSW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0
SXRlbT4oY2FuZGlkYXRlUnVuc1t0cmFpbGluZ1J1bkluZGV4XS5pbmxpbmVJdGVtKTsKQEAgLTQz
Myw3ICs0MzksNyBAQCBMaW5lTGF5b3V0Q29udGV4dDo6Q29tbWl0dGVkQ29udGVudCBMaW5lTGF5
b3V0Q29udGV4dDo6Y2hlY2tGb3JMaW5lV3JhcEFuZENvbW1pdAogICAgICAgICByZXR1cm4geyBy
ZXN1bHQuaXNFbmRPZkxpbmUsIGNvbW1pdHRlZElubGluZUl0ZW1Db3VudCwgTGluZUNvbnRlbnQ6
OlBhcnRpYWxDb250ZW50IHsgcGFydGlhbFJ1bi5uZWVkc0h5cGhlbiwgb3ZlcmZsb3dMZW5ndGgg
fSB9OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4geyBMaW5l
QnJlYWtlcjo6SXNFbmRPZkxpbmU6Ok5vLCAwLCB7IH0gfTsKKyAgICByZXR1cm4geyBMaW5lQnJl
YWtlcjo6SXNFbmRPZkxpbmU6Ok5vIH07CiB9CiAKIHZvaWQgTGluZUxheW91dENvbnRleHQ6OmNv
bW1pdENvbnRlbnQoTGluZUJ1aWxkZXImIGxpbmUsIGNvbnN0IExpbmVCcmVha2VyOjpSdW5MaXN0
JiBydW5zLCBPcHRpb25hbDxMaW5lQnJlYWtlcjo6UmVzdWx0OjpQYXJ0aWFsVHJhaWxpbmdDb250
ZW50PiBwYXJ0aWFsVHJhaWxpbmdDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmgKaW5kZXggM2Fk
ZjNlMmVkZjE1M2I5YTM4MGYwMmZmZmI0MTJiYzk0ODMxMjI5MS4uMTczMTYwMWVjZTUyNGUyY2M2
YWY5Zjc1NzIxZDM4ZTJhZjNiYjVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29udGV4dC5oCkBAIC01NCwxNCAr
NTQsMTUgQEAgcHVibGljOgogICAgIHVzaW5nIEZsb2F0TGlzdCA9IFZlY3RvcjxXZWFrUHRyPElu
bGluZUl0ZW0+PjsKIAogcHJpdmF0ZToKLSAgICBzdHJ1Y3QgQ29tbWl0dGVkQ29udGVudCB7Cisg
ICAgTGluZUNhbmRpZGF0ZUNvbnRlbnQgbmV4dENvbnRlbnRGb3JMaW5lKHVuc2lnbmVkIGlubGlu
ZUl0ZW1JbmRleCwgT3B0aW9uYWw8dW5zaWduZWQ+IG92ZXJmbG93TGVuZ3RoLCBJbmxpbmVMYXlv
dXRVbml0IGN1cnJlbnRMb2dpY2FsUmlnaHQpOworICAgIHN0cnVjdCBSZXN1bHQgewogICAgICAg
ICBMaW5lQnJlYWtlcjo6SXNFbmRPZkxpbmUgaXNFbmRPZkxpbmUgeyBMaW5lQnJlYWtlcjo6SXNF
bmRPZkxpbmU6Ok5vIH07Ci0gICAgICAgIHNpemVfdCBjb3VudCB7IDAgfTsKLSAgICAgICAgT3B0
aW9uYWwgPExpbmVDb250ZW50OjpQYXJ0aWFsQ29udGVudD4gcGFydGlhbENvbnRlbnQ7CisgICAg
ICAgIHNpemVfdCBjb21taXR0ZWRDb3VudCB7IDAgfTsKKyAgICAgICAgT3B0aW9uYWwgPExpbmVD
b250ZW50OjpQYXJ0aWFsQ29udGVudD4gcGFydGlhbENvbnRlbnQgeyB9OworICAgICAgICBjb25z
dCBJbmxpbmVJdGVtKiByZXZlcnRUbyB7IG51bGxwdHIgfTsKICAgICB9OwotICAgIExpbmVDYW5k
aWRhdGVDb250ZW50IG5leHRDb250ZW50Rm9yTGluZSh1bnNpZ25lZCBpbmxpbmVJdGVtSW5kZXgs
IE9wdGlvbmFsPHVuc2lnbmVkPiBvdmVyZmxvd0xlbmd0aCwgSW5saW5lTGF5b3V0VW5pdCBjdXJy
ZW50TG9naWNhbFJpZ2h0KTsKLSAgICBDb21taXR0ZWRDb250ZW50IGFkZEZsb2F0SXRlbXMoTGlu
ZUJ1aWxkZXImLCBjb25zdCBGbG9hdExpc3QmKTsKLSAgICBDb21taXR0ZWRDb250ZW50IGNoZWNr
Rm9yTGluZVdyYXBBbmRDb21taXQoTGluZUJyZWFrZXImLCBMaW5lQnVpbGRlciYsIGNvbnN0IExp
bmVCcmVha2VyOjpSdW5MaXN0Jik7CisgICAgUmVzdWx0IHRyeUFkZGluZ0Zsb2F0SXRlbXMoTGlu
ZUJ1aWxkZXImLCBjb25zdCBGbG9hdExpc3QmKTsKKyAgICBSZXN1bHQgdHJ5QWRkaW5nSW5saW5l
SXRlbXMoTGluZUJyZWFrZXImLCBMaW5lQnVpbGRlciYsIGNvbnN0IExpbmVCcmVha2VyOjpSdW5M
aXN0Jik7CiAgICAgdm9pZCBjb21taXRDb250ZW50KExpbmVCdWlsZGVyJiwgY29uc3QgTGluZUJy
ZWFrZXI6OlJ1bkxpc3QmLCBPcHRpb25hbDxMaW5lQnJlYWtlcjo6UmVzdWx0OjpQYXJ0aWFsVHJh
aWxpbmdDb250ZW50Pik7CiAgICAgTGluZUNvbnRlbnQgY2xvc2UoTGluZUJ1aWxkZXImLCB1bnNp
Z25lZCBsZWFkaW5nSW5saW5lSXRlbUluZGV4LCB1bnNpZ25lZCBjb21taXR0ZWRJbmxpbmVJdGVt
Q291bnQsIE9wdGlvbmFsPExpbmVDb250ZW50OjpQYXJ0aWFsQ29udGVudD4pOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>