<?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>233872</bug_id>
          
          <creation_ts>2021-12-06 06:04:45 -0800</creation_ts>
          <short_desc>[LBSE] Handle RenderSVGRoot in all places that handle LegacyRenderSVGRoot</short_desc>
          <delta_ts>2021-12-10 04:20:22 -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>SVG</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>
          <dependson>233863</dependson>
          <blocked>90738</blocked>
    
    <blocked>233873</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820593</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-06 06:04:45 -0800</bug_when>
    <thetext>Now that RenderSVGRoot is available, we need to hook it into various places in WebCore, that currently handle LegacyRenderSVGRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822629</commentid>
    <comment_count>1</comment_count>
      <attachid>446704</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-10 03:28:41 -0800</bug_when>
    <thetext>Created attachment 446704
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822631</commentid>
    <comment_count>2</comment_count>
      <attachid>446704</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2021-12-10 03:33:20 -0800</bug_when>
    <thetext>Comment on attachment 446704
Patch, v1

View in context: https://bugs.webkit.org/attachment.cgi?id=446704&amp;action=review

&gt; Source/WebCore/svg/SVGSVGElement.cpp:510
&gt; +        return { 0, 0, floatValueForLength(intrinsicWidth, 0), floatValueForLength(intrinsicHeight, 0) };

Since a lot of code is duplicated, can this be shared better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822643</commentid>
    <comment_count>3</comment_count>
      <attachid>446709</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-10 04:01:50 -0800</bug_when>
    <thetext>Created attachment 446709
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822645</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-12-10 04:19:58 -0800</bug_when>
    <thetext>Committed r286843 (245076@trunk): &lt;https://commits.webkit.org/245076@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822646</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-10 04:20:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/86316766&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446704</attachid>
            <date>2021-12-10 03:28:41 -0800</date>
            <delta_ts>2021-12-10 04:01:44 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-233872-20211210032840.patch</filename>
            <type>text/plain</type>
            <size>22721</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2YjFiMTQyYTEyOTBh
MWRmMTg1ZWY2ZWE0N2JlMjJiYTM0NDVhZi4uMWU1ZTYzNTg0MTgxMDM0NWIxZmJhYjI0MGM3M2Q2
ZDY0YjM2Mzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBIYW5kbGUgUmVuZGVyU1ZHUm9vdCBpbiBhbGwgcGxhY2VzIHRoYXQgaGFuZGxlIExlZ2FjeVJl
bmRlclNWR1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzg3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFZhcmlvdXMgcGxhY2VzIHRoYXQgaGFuZGxlIExlZ2FjeVJlbmRlclNWR1Jvb3QsIGFsc28g
bmVlZCB0byBoYW5kbGUgdGhlCisgICAgICAgIExCU0UgUmVuZGVyU1ZHUm9vdCByZW5kZXJlciAt
LSB0aGlzIHBhdGNoIHBsdW1icyBpbiBzdXBwb3J0IGZvcgorICAgICAgICBSZW5kZXJTVkdSb290
IHdoZXJlIG5lY2Vzc2FyeS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBu
byBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmVsZW1lbnRQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdw
b3J0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp3cml0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0Zvckxh
eW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5b3V0U2l6ZU9m
TmVhcmVzdFZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VHJlZUJ1aWxkZXI6OmF0dGFjaEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVCdWlsZGVyOjpkZXRhY2gpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlclNWRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6
U1ZHOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6
ZGV0YWNoKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJT
VkcuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKiBz
dmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRWaWV3Qm94UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
OjpjdXJyZW50Vmlld3BvcnRTaXplIGNvbnN0KToKKwogMjAyMS0xMi0xMCAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gQmVnaW4g
bGF5ZXItYXdhcmUgUmVuZGVyU1ZHUm9vdCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggYzI1NDIzZjYxM2E2YTkxODI1ZmFiMjljNjkyNmQyMGNkOWVjYWJjMi4uNTI2MGM2
N2E4NWRhZmQxZDY5N2NjMGQ4MDYyOTJiMzEwZjUyMTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC05NCw2ICs5NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1
ZGUgIlJlbmRlck1hdGhNTEJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIKICNp
bmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCkBAIC05
NTQsNiArOTU1LDExIEBAIFBhdGggQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFBh
dGgoKSBjb25zdAogICAgICAgICBpZiAoYXV0byBzdmdSb290ID0gYW5jZXN0b3JzT2ZUeXBlPExl
Z2FjeVJlbmRlclNWR1Jvb3Q+KCptX3JlbmRlcmVyKS5maXJzdCgpKSB7CiAgICAgICAgICAgICBM
YXlvdXRQb2ludCBwYXJlbnRPZmZzZXQgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKCYq
c3ZnUm9vdCktPmVsZW1lbnRSZWN0KCkubG9jYXRpb24oKTsKICAgICAgICAgICAgIHBhdGgudHJh
bnNmb3JtKEFmZmluZVRyYW5zZm9ybSgpLnRyYW5zbGF0ZShwYXJlbnRPZmZzZXQueCgpLCBwYXJl
bnRPZmZzZXQueSgpKSk7CisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAg
ICAgIH0gZWxzZSBpZiAoYXV0byBzdmdSb290ID0gYW5jZXN0b3JzT2ZUeXBlPFJlbmRlclNWR1Jv
b3Q+KCptX3JlbmRlcmVyKS5maXJzdCgpKSB7CisgICAgICAgICAgICBMYXlvdXRQb2ludCBwYXJl
bnRPZmZzZXQgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKCYqc3ZnUm9vdCktPmVsZW1l
bnRSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgICAgIHBhdGgudHJhbnNmb3JtKEFmZmluZVRy
YW5zZm9ybSgpLnRyYW5zbGF0ZShwYXJlbnRPZmZzZXQueCgpLCBwYXJlbnRPZmZzZXQueSgpKSk7
CisjZW5kaWYKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBwYXRoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGI1NDA1ZTQ3NzFkOWU1Mzc3ZDYxM2M5YjdhZjQ0NDRhYzJjMzMy
NzcuLmI1N2YyNjhmYzlhMGVkNTc4MDBjNThhOTlmNjUzOWUyMTY4ZTE4ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXll
ckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5o
IgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJh
clBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgpAQCAtNjQ3LDYgKzY0OCwxNyBAQCB2
b2lkIEZyYW1lVmlldzo6YXBwbHlPdmVyZmxvd1RvVmlld3BvcnQoY29uc3QgUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIFNjcm9sbGJhcgogICAgIE92ZXJmbG93IG92ZXJmbG93WCA9IHJlbmRlcmVy
LmVmZmVjdGl2ZU92ZXJmbG93WCgpOwogICAgIE92ZXJmbG93IG92ZXJmbG93WSA9IHJlbmRlcmVy
LmVmZmVjdGl2ZU92ZXJmbG93WSgpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJ
TkUpCisgICAgaWYgKGlzPFJlbmRlclNWR1Jvb3Q+KHJlbmRlcmVyKSkgeworICAgICAgICAvLyBG
SVhNRTogZXZhbHVhdGUgaWYgd2UgY2FuIGFsbG93IG92ZXJmbG93IGZvciB0aGVzZSBjYXNlcyB0
b28uCisgICAgICAgIC8vIE92ZXJmbG93IGlzIGFsd2F5cyBoaWRkZW4gd2hlbiBzdGFuZC1hbG9u
ZSBTVkcgZG9jdW1lbnRzIGFyZSBlbWJlZGRlZC4KKyAgICAgICAgaWYgKGRvd25jYXN0PFJlbmRl
clNWR1Jvb3Q+KHJlbmRlcmVyKS5pc0VtYmVkZGVkVGhyb3VnaEZyYW1lQ29udGFpbmluZ1NWR0Rv
Y3VtZW50KCkpIHsKKyAgICAgICAgICAgIG92ZXJmbG93WCA9IE92ZXJmbG93OjpIaWRkZW47Cisg
ICAgICAgICAgICBvdmVyZmxvd1kgPSBPdmVyZmxvdzo6SGlkZGVuOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ocmVuZGVyZXIpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBldmFsdWF0ZSBpZiB3ZSBjYW4gYWxsb3cgb3ZlcmZsb3cgZm9y
IHRoZXNlIGNhc2VzIHRvby4KICAgICAgICAgLy8gT3ZlcmZsb3cgaXMgYWx3YXlzIGhpZGRlbiB3
aGVuIHN0YW5kLWFsb25lIFNWRyBkb2N1bWVudHMgYXJlIGVtYmVkZGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGI5MGYxYjY1ZDk2Yzg5
YTdjMTk3MzFjYjQ3ZmE5NzU0MTBiOTA3ZjIuLjZiNjhkZWZhZGYxM2MxOTA5YjFlMjc1MmY4NGQ1
OWZjODVmOGRkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmVUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCkBAIC01NzMsNiArNTc0LDEyIEBAIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+IGJl
CiAgICAgICAgIHdyaXRlU1ZHQ29udGFpbmVyKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdDb250YWlu
ZXI+KG8pLCBiZWhhdmlvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKExB
WUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAgaWYgKGlzPFJlbmRlclNWR1Jvb3Q+KG8pKSB7Cisg
ICAgICAgIHdyaXRlKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdSb290PihvKSwgYmVoYXZpb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNW
R1Jvb3Q+KG8pKSB7CiAgICAgICAgIHdyaXRlKHRzLCBkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdS
b290PihvKSwgYmVoYXZpb3IpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCmluZGV4IDJhMjU3ZjVjMjM5
ODg5NWZlZGYwYWFiMmQ0MzhiN2IzNTg3NjhhYjcuLmQ4YmZhYTcyMTJhODBkYzc2ZjNmZmRjOWM0
OGI1NjgxNmM3YjRlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2UuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5o
IgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIgorI2luY2x1ZGUgIlJl
bmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHUmVz
b3VyY2VFbGVtZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCkBAIC0yMDIs
NiArMjAzLDEwIEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJl
bnRSZXNvdXJjZUludmFsaWRhdGlvbihSZW5kZXJPYmplY3QmCiAgICAgICAgIC8vIGludmFsaWRh
dGUgdGhlIGFuY2VzdG9yIHJlbmRlcmVyIGJlY2F1c2UgaXQgbWF5IGhhdmUgZmluaXNoZWQgaXRz
IGxheW91dCBhbHJlYWR5LgogICAgICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ob2Jq
ZWN0KSAmJiBkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290PihvYmplY3QpLmlzSW5MYXlvdXQo
KSkKICAgICAgICAgICAgIG9iamVjdC5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworI2lm
IEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQorICAgICAgICBlbHNlIGlmIChpczxSZW5k
ZXJTVkdSb290PihvYmplY3QpICYmIGRvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KG9iamVjdCkuaXNJ
bkxheW91dCgpKQorICAgICAgICAgICAgb2JqZWN0LnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisjZW5kaWYKICAgICAgICAgZWxzZQogICAgICAgICAgICAgb2JqZWN0LnNldE5lZWRzTGF5
b3V0KE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggY2UwOGU3OTc1ZGFm
Njk4MzYwM2JjYjU1ZWE4NmEwYWE1ZjlmMjE2OS4uYWI1NjI2NjhiNDBkYTgwN2FkYmMyOWQxODU2
MDQzZTM2YWU3NDRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5oIgog
I2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlTWFza2VyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZH
Um9vdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCIKQEAgLTIxMSw2ICsyMTIsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGxheW91dFNp
emVPZk5lYXJlc3RWaWV3cG9ydENoYW5nZWQoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGUKICAg
ICBpZiAoaXM8UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI+KCpzdGFydCkpCiAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKnN0YXJ0KS5pc0xheW91
dFNpemVDaGFuZ2VkKCk7CiAKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAg
ICBpZiAoaXM8UmVuZGVyU1ZHUm9vdD4oKnN0YXJ0KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclNWR1Jvb3Q+KCpzdGFydCkuaXNMYXlvdXRTaXplQ2hhbmdlZCgpOworI2VuZGlmCiAg
ICAgcmV0dXJuIGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KCpzdGFydCkuaXNMYXlvdXRT
aXplQ2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBkZDNkODliM2VhMWY0ZTFkZjRmMzU0ODg1
MTkxNTIzNDJkYTU0ZTQ4Li5iNGRmNzgyMzY0Y2ZhYTE5NzgyZmJkMmEwYjk2NjY3YTQ1ZDI3NTg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVB
c1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdTaGFwZUlubGluZXMuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiU1ZHQ2lyY2xlRWxlbWVudC5o
IgpAQCAtNTA3LDYgKzUwOCwxNiBAQCB2b2lkIHdyaXRlU1ZHQ29udGFpbmVyKFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJTVkdDb250YWluZXImIGNvbnRhaW5lciwgT3B0aQogICAgIHdyaXRl
Q2hpbGRyZW4odHMsIGNvbnRhaW5lciwgYmVoYXZpb3IpOwogfQogCisjaWYgRU5BQkxFKExBWUVS
X0JBU0VEX1NWR19FTkdJTkUpCit2b2lkIHdyaXRlKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5k
ZXJTVkdSb290JiByb290LCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4gYmVoYXZpb3IpCit7
CisgICAgd3JpdGVTdGFuZGFyZFByZWZpeCh0cywgcm9vdCwgYmVoYXZpb3IpOworICAgIHdyaXRl
UG9zaXRpb25BbmRTdHlsZSh0cywgcm9vdCwgYmVoYXZpb3IpOworICAgIHRzIDw8ICJcbiI7Cisg
ICAgd3JpdGVDaGlsZHJlbih0cywgcm9vdCwgYmVoYXZpb3IpOworfQorI2VuZGlmCisKIHZvaWQg
d3JpdGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IExlZ2FjeVJlbmRlclNWR1Jvb3QmIHJvb3QsIE9w
dGlvblNldDxSZW5kZXJBc1RleHRGbGFnPiBiZWhhdmlvcikKIHsKICAgICB3cml0ZVN0YW5kYXJk
UHJlZml4KHRzLCByb290LCBiZWhhdmlvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4IDg1OTY5NGE0YmEwYjRhNjg1ODFi
NWEyNjM3ODkwYzkzMDRiODE4ZjkuLjQyYmI4YTYwMDQ0YjgzMjUxY2M5YmFkMDMzODljZGRiNTE4
NzZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
VHJlZUFzVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
VHJlZUFzVGV4dC5oCkBAIC0zMCw5ICszMCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRSZWN0Owog
Y2xhc3MgRmxvYXRTaXplOworY2xhc3MgTGVnYWN5UmVuZGVyU1ZHUm9vdDsKIGNsYXNzIE5vZGU7
CiBjbGFzcyBSZW5kZXJJbWFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKQEAgLTQxLDE1ICs0Mywx
NyBAQCBjbGFzcyBSZW5kZXJTVkdHcmFkaWVudFN0b3A7CiBjbGFzcyBSZW5kZXJTVkdJbWFnZTsK
IGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcjsKK2NsYXNzIFJlbmRlclNWR1Jvb3Q7CiBjbGFzcyBSZW5kZXJTVkdTaGFwZTsKLWNsYXNz
IExlZ2FjeVJlbmRlclNWR1Jvb3Q7CiBjbGFzcyBSZW5kZXJTVkdUZXh0OwotY2xhc3MgQWZmaW5l
VHJhbnNmb3JtOwogY2xhc3MgU1ZHVW5pdFR5cGVzOwogCiAvLyBmdW5jdGlvbnMgdXNlZCBieSB0
aGUgbWFpbiBSZW5kZXJUcmVlQXNUZXh0IGNvZGUKLXZvaWQgd3JpdGUoV1RGOjpUZXh0U3RyZWFt
JiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUmLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4pOwog
dm9pZCB3cml0ZShXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBMZWdhY3lSZW5kZXJTVkdSb290Jiwg
T3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+KTsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZH
X0VOR0lORSkKK3ZvaWQgd3JpdGUoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHUm9v
dCYsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFnPik7CisjZW5kaWYKK3ZvaWQgd3JpdGUoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUmLCBPcHRpb25TZXQ8UmVuZGVyQXNU
ZXh0RmxhZz4pOwogdm9pZCB3cml0ZVNWR0dyYWRpZW50U3RvcChXVEY6OlRleHRTdHJlYW0mLCBj
b25zdCBSZW5kZXJTVkdHcmFkaWVudFN0b3AmLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4p
Owogdm9pZCB3cml0ZVNWR1Jlc291cmNlQ29udGFpbmVyKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyJiwgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+
KTsKIHZvaWQgd3JpdGVTVkdDb250YWluZXIoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVy
U1ZHQ29udGFpbmVyJiwgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3Bw
CmluZGV4IDhkYjNhMjljNjBlZDRiOWVmNDEzM2MwYjFjNGEwMDJjM2I0NjY2ZTYuLmZmOTBmOGQ0
MmEzMzI1NDlmZDUxNmYyMDI2MTAzNjA0YmJiNzIyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtNTAs
NiArNTAsNyBAQAogI2luY2x1ZGUgIlJlbmRlclJ1YnlSdW4uaCIKICNpbmNsdWRlICJSZW5kZXJT
VkdDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmUuaCIKKyNpbmNsdWRlICJS
ZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlclRhYmxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0yOTAsNiArMjkx
LDEzIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmF0dGFjaEludGVybmFsKFJlbmRlckVsZW1l
bnQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBpZiAoaXM8UmVuZGVyU1ZH
Um9vdD4ocGFyZW50KSkgeworICAgICAgICBzdmdCdWlsZGVyKCkuYXR0YWNoKGRvd25jYXN0PFJl
bmRlclNWR1Jvb3Q+KHBhcmVudCksIFdURk1vdmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdS
b290PihwYXJlbnQpKSB7CiAgICAgICAgIHN2Z0J1aWxkZXIoKS5hdHRhY2goZG93bmNhc3Q8TGVn
YWN5UmVuZGVyU1ZHUm9vdD4ocGFyZW50KSwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzc0LDYgKzM4MiwxMSBAQCBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6ZGV0YWNoKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVu
ZGVyTwogICAgIGlmIChpczxSZW5kZXJTVkdDb250YWluZXI+KHBhcmVudCkpCiAgICAgICAgIHJl
dHVybiBzdmdCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlclNWR0NvbnRhaW5lcj4ocGFy
ZW50KSwgY2hpbGQpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAg
aWYgKGlzPFJlbmRlclNWR1Jvb3Q+KHBhcmVudCkpCisgICAgICAgIHJldHVybiBzdmdCdWlsZGVy
KCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KHBhcmVudCksIGNoaWxkKTsKKyNlbmRp
ZgorCiAgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHBhcmVudCkpCiAgICAgICAgIHJl
dHVybiBzdmdCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHBh
cmVudCksIGNoaWxkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyU1ZHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclNWRy5jcHAKaW5kZXggYzc2Yzc2MjZlY2Q4MTA5
Yzg2MzFkMGFmODQ4ZjJjYTU0Y2QwZmQwZS4uOWU4MGFjNGM5ODY5NTcxYzZjMWU3YTRiZGY5OWUz
NDk1MWFiOTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyU1ZHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZS5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jv
b3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1
aWxkZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmgiCkBA
IC00Miw2ICs0MywxMyBAQCBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpTVkcoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIpCiB7CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6YXR0
YWNoKExlZ2FjeVJlbmRlclNWR1Jvb3QmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4g
Y2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCit7CisgICAgYXV0byYgY2hpbGRUb0Fk
ZCA9ICpjaGlsZDsKKyAgICBtX2J1aWxkZXIuYXR0YWNoVG9SZW5kZXJFbGVtZW50KHBhcmVudCwg
V1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKKyAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xp
ZW50V2FzQWRkZWRUb1RyZWUoY2hpbGRUb0FkZCk7Cit9CisKIHZvaWQgUmVuZGVyVHJlZUJ1aWxk
ZXI6OlNWRzo6YXR0YWNoKFJlbmRlclNWR0NvbnRhaW5lciYgcGFyZW50LCBSZW5kZXJQdHI8UmVu
ZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBhdXRv
JiBjaGlsZFRvQWRkID0gKmNoaWxkOwpAQCAtNTksMTIgKzY3LDE0IEBAIHZvaWQgUmVuZGVyVHJl
ZUJ1aWxkZXI6OlNWRzo6YXR0YWNoKFJlbmRlclNWR0lubGluZSYgcGFyZW50LCBSZW5kZXJQdHI8
UmVuZGVyT2JqCiAgICAgICAgIHRleHRBbmNlc3Rvci0+c3VidHJlZUNoaWxkV2FzQWRkZWQoJmNo
aWxkVG9BZGQpOwogfQogCi12b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmF0dGFjaChMZWdh
Y3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQorI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5H
SU5FKQordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjphdHRhY2goUmVuZGVyU1ZHUm9vdCYg
cGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZCkKIHsKICAgICBhdXRvJiBjaGlsZFRvQWRkID0gKmNoaWxkOwogICAgIG1fYnVpbGRl
ci5hdHRhY2hUb1JlbmRlckVsZW1lbnQocGFyZW50LCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hp
bGQpOwogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXYXNBZGRlZFRvVHJlZShjaGlsZFRv
QWRkKTsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmF0dGFjaChS
ZW5kZXJTVkdUZXh0JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogewpAQCAtNzUsNiArODUsMTIgQEAgdm9pZCBSZW5kZXJU
cmVlQnVpbGRlcjo6U1ZHOjphdHRhY2goUmVuZGVyU1ZHVGV4dCYgcGFyZW50LCBSZW5kZXJQdHI8
UmVuZGVyT2JqZWMKICAgICBwYXJlbnQuc3VidHJlZUNoaWxkV2FzQWRkZWQoJmNoaWxkVG9BZGQp
OwogfQogCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpk
ZXRhY2goTGVnYWN5UmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKQor
eworICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXaWxsQmVSZW1vdmVkRnJvbVRyZWUoY2hp
bGQpOworICAgIHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50
LCBjaGlsZCk7Cit9CisKIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVy
OjpTVkc6OmRldGFjaChSZW5kZXJTVkdUZXh0JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQp
CiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFdpbGxCZVJlbW92ZWRGcm9tVHJlZShj
aGlsZCk7CkBAIC0xMDcsMTAgKzEyMywxMiBAQCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5k
ZXJUcmVlQnVpbGRlcjo6U1ZHOjpkZXRhY2goUmVuZGVyU1ZHQ29udGFpbmVyJiBwYXJlbgogICAg
IHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50LCBjaGlsZCk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmRl
dGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpCisj
aWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpkZXRhY2goUmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBS
ZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXaWxs
QmVSZW1vdmVkRnJvbVRyZWUoY2hpbGQpOwogICAgIHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJv
bVJlbmRlckVsZW1lbnQocGFyZW50LCBjaGlsZCk7CiB9CisjZW5kaWYKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyU1ZH
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJT
VkcuaAppbmRleCA4YTRkMGZhNWI4YTRmNjQwMzgzYjVjMGQzNDlhMWZjZmFlNWFhOGQyLi5mMmNh
ZDgwZTk0ZmI2Mjg0ODdlOTliZGIxNzJkZGVhNDFkZWVlYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaApA
QCAtMjksOSArMjksMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBMZWdhY3lS
ZW5kZXJTVkdSb290OwogY2xhc3MgUmVuZGVyU1ZHQ29udGFpbmVyOwogY2xhc3MgUmVuZGVyU1ZH
SW5saW5lOwotY2xhc3MgTGVnYWN5UmVuZGVyU1ZHUm9vdDsKK2NsYXNzIFJlbmRlclNWR1Jvb3Q7
CiBjbGFzcyBSZW5kZXJTVkdUZXh0OwogCiBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHIHsK
QEAgLTM5LDE1ICs0MCwyMSBAQCBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHIHsKIHB1Ymxp
YzoKICAgICBTVkcoUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAorICAgIHZvaWQgYXR0YWNoKExlZ2Fj
eVJlbmRlclNWR1Jvb3QmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZvaWQgYXR0YWNoKFJlbmRlclNWR0NvbnRh
aW5lciYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCk7CiAgICAgdm9pZCBhdHRhY2goUmVuZGVyU1ZHSW5saW5lJiBwYXJlbnQs
IFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
KTsKLSAgICB2b2lkIGF0dGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKKyNpZiBF
TkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICB2b2lkIGF0dGFjaChSZW5kZXJTVkdS
b290JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKTsKKyNlbmRpZgogICAgIHZvaWQgYXR0YWNoKFJlbmRlclNWR1RleHQmIHBh
cmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQpOwogCi0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gZGV0YWNoKFJlbmRlclNWR1Rl
eHQmIHBhcmVudCwgUmVuZGVyT2JqZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAg
IFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGRldGFjaChSZW5kZXJTVkdJbmxpbmUmIHBhcmVudCwg
UmVuZGVyT2JqZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIFJlbmRlclB0cjxS
ZW5kZXJPYmplY3Q+IGRldGFjaChSZW5kZXJTVkdDb250YWluZXImIHBhcmVudCwgUmVuZGVyT2Jq
ZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIFJlbmRlclB0cjxSZW5kZXJPYmpl
Y3Q+IGRldGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hp
bGQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRh
Y2goUmVuZGVyU1ZHQ29udGFpbmVyJiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVy
U1ZHSW5saW5lJiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBSZW5kZXJQdHI8UmVu
ZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNo
aWxkKSBXQVJOX1VOVVNFRF9SRVRVUk47CisjZW5kaWYKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBkZXRhY2goUmVuZGVyU1ZHVGV4dCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKSBX
QVJOX1VOVVNFRF9SRVRVUk47CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyVHJlZUJ1aWxkZXImIG1f
YnVpbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBiYjVjODY2M2Q3MWMxNDAw
OGIwM2Q1NWMwMGQ2ZDg4ZTg1YmI5MzQzLi4wNjE2YjY0MzJkOWRkNDhhZTA4NjUzMTVhOWQ5Y2Zj
Y2E3ODRhMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC01MzAsNiArNTMwLDE0
IEBAIGJvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JiBjaGlsZCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN2Z0NoaWxk
ID0gZG93bmNhc3Q8U1ZHRWxlbWVudD4oY2hpbGQpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VE
X1NWR19FTkdJTkUpCisgICAgLy8gSWYgdGhlIGxheWVyIGJhc2VkIFNWRyBlbmdpbmUgaXMgZW5h
YmxlZCwgYWxsIHJlbmRlcmVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IHRoZQorICAgIC8vIFJlbmRl
ckxheWVyIGF3YXJlIGxheW91dCAvIHBhaW50aW5nIC8gaGl0LXRlc3RpbmcgbW9kZSAoJ0xCU0Ut
bW9kZScpIGhhdmUgdG8gYmUgc2tpcHBlZC4KKyAgICAvLyBDdXJyZW50bHkgYWxsIHJlbmRlcmVy
cyBhcmUgc2tpcHBlZC4KKyAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRT
VkdFbmdpbmVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCiAgICAg
c3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUqIGNvbnN0IGludmFsaWRUZXh0Q29udGVudFtdIHsK
ICAgICAgICAgJlNWR05hbWVzOjphbHRHbHlwaFRhZy5nZXQoKSwKICAgICAgICAgJlNWR05hbWVz
Ojp0ZXh0UGF0aFRhZy5nZXQoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRl
eCA2YTEwM2IyYTNjNjA3YWFkNzZmZmI5Mjc1M2E5MzEwOTBkYTVjN2VkLi42OWJjNDZkZjc4MzU3
OWJiNmIxN2U3MTZjZTJhNWQ2ZGFjZjRjZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNp
bmNsdWRlICJMZWdhY3lSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmll
d3BvcnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU01J
TFRpbWVDb250YWluZXIuaCIKQEAgLTIxMSw2ICsyMTIsMTAgQEAgdm9pZCBTVkdTVkdFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKIAogICAgICAgICBp
ZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKKyNpZiBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKKyAgICAgICAgICAgIGlmIChpczxSZW5kZXJTVkdSb290PihyZW5k
ZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKS5pc0VtYmVkZGVkVGhy
b3VnaEZyYW1lQ29udGFpbmluZ1NWR0RvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9v
dD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KCpyZW5kZXJlciku
aXNFbWJlZGRlZFRocm91Z2hGcmFtZUNvbnRhaW5pbmdTVkdEb2N1bWVudCgpKQogICAgICAgICAg
ICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJ
bnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKICAgICAgICAgfQpAQCAtNDc1LDE5ICs0ODAsMzcgQEAg
RmxvYXRSZWN0IFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRWaWV3Qm94UmVjdCgpIGNvbnN0CiAgICAg
aWYgKCF2aWV3Qm94LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHZpZXdCb3g7CiAKLSAgICBp
ZiAoIWlzPExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHJlbmRlcmVyKCkpKQotICAgICAgICByZXR1cm4g
eyB9OwotICAgIGlmICghZG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKCkp
LmlzRW1iZWRkZWRUaHJvdWdoU1ZHSW1hZ2UoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKKyNpZiBF
TkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBpZiAoaXM8UmVuZGVyU1ZHUm9vdD4o
cmVuZGVyZXIoKSkpIHsKKyAgICAgICAgaWYgKCFkb3duY2FzdDxSZW5kZXJTVkdSb290PigqcmVu
ZGVyZXIoKSkuaXNFbWJlZGRlZFRocm91Z2hTVkdJbWFnZSgpKQorICAgICAgICAgICAgcmV0dXJu
IHsgfTsKIAotICAgIExlbmd0aCBpbnRyaW5zaWNXaWR0aCA9IHRoaXMtPmludHJpbnNpY1dpZHRo
KCk7Ci0gICAgTGVuZ3RoIGludHJpbnNpY0hlaWdodCA9IHRoaXMtPmludHJpbnNpY0hlaWdodCgp
OwotICAgIGlmICghaW50cmluc2ljV2lkdGguaXNGaXhlZCgpIHx8ICFpbnRyaW5zaWNIZWlnaHQu
aXNGaXhlZCgpKQotICAgICAgICByZXR1cm4geyB9OworICAgICAgICBMZW5ndGggaW50cmluc2lj
V2lkdGggPSB0aGlzLT5pbnRyaW5zaWNXaWR0aCgpOworICAgICAgICBMZW5ndGggaW50cmluc2lj
SGVpZ2h0ID0gdGhpcy0+aW50cmluc2ljSGVpZ2h0KCk7CisgICAgICAgIGlmICghaW50cmluc2lj
V2lkdGguaXNGaXhlZCgpIHx8ICFpbnRyaW5zaWNIZWlnaHQuaXNGaXhlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgICAgICAvLyBJZiBubyB2aWV3Qm94IGlzIHNwZWNpZmllZCBi
dXQgbm9uLXJlbGF0aXZlIHdpZHRoL2hlaWdodCB2YWx1ZXMsIHRoZW4gd2UKKyAgICAgICAgLy8g
c2hvdWxkIGFsd2F5cyBzeW50aGVzaXplIGEgdmlld0JveCBpZiB3ZSdyZSBlbWJlZGRlZCB0aHJv
dWdoIGEgU1ZHSW1hZ2UuCisgICAgICAgIHJldHVybiB7IDAsIDAsIGZsb2F0VmFsdWVGb3JMZW5n
dGgoaW50cmluc2ljV2lkdGgsIDApLCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGludHJpbnNpY0hlaWdo
dCwgMCkgfTsKKyAgICB9CisjZW5kaWYKIAotICAgIC8vIElmIG5vIHZpZXdCb3ggaXMgc3BlY2lm
aWVkIGJ1dCBub24tcmVsYXRpdmUgd2lkdGgvaGVpZ2h0IHZhbHVlcywgdGhlbiB3ZQotICAgIC8v
IHNob3VsZCBhbHdheXMgc3ludGhlc2l6ZSBhIHZpZXdCb3ggaWYgd2UncmUgZW1iZWRkZWQgdGhy
b3VnaCBhIFNWR0ltYWdlLiAgICAKLSAgICByZXR1cm4geyAwLCAwLCBmbG9hdFZhbHVlRm9yTGVu
Z3RoKGludHJpbnNpY1dpZHRoLCAwKSwgZmxvYXRWYWx1ZUZvckxlbmd0aChpbnRyaW5zaWNIZWln
aHQsIDApIH07CisgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHJlbmRlcmVyKCkpKSB7
CisgICAgICAgIGlmICghZG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKCkp
LmlzRW1iZWRkZWRUaHJvdWdoU1ZHSW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisK
KyAgICAgICAgTGVuZ3RoIGludHJpbnNpY1dpZHRoID0gdGhpcy0+aW50cmluc2ljV2lkdGgoKTsK
KyAgICAgICAgTGVuZ3RoIGludHJpbnNpY0hlaWdodCA9IHRoaXMtPmludHJpbnNpY0hlaWdodCgp
OworICAgICAgICBpZiAoIWludHJpbnNpY1dpZHRoLmlzRml4ZWQoKSB8fCAhaW50cmluc2ljSGVp
Z2h0LmlzRml4ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgLy8gSWYg
bm8gdmlld0JveCBpcyBzcGVjaWZpZWQgYnV0IG5vbi1yZWxhdGl2ZSB3aWR0aC9oZWlnaHQgdmFs
dWVzLCB0aGVuIHdlCisgICAgICAgIC8vIHNob3VsZCBhbHdheXMgc3ludGhlc2l6ZSBhIHZpZXdC
b3ggaWYgd2UncmUgZW1iZWRkZWQgdGhyb3VnaCBhIFNWR0ltYWdlLgorICAgICAgICByZXR1cm4g
eyAwLCAwLCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGludHJpbnNpY1dpZHRoLCAwKSwgZmxvYXRWYWx1
ZUZvckxlbmd0aChpbnRyaW5zaWNIZWlnaHQsIDApIH07CisgICAgfQorCisgICAgcmV0dXJuIHsg
fTsKIH0KIAogRmxvYXRTaXplIFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRWaWV3cG9ydFNpemUoKSBj
b25zdApAQCAtNDk4LDYgKzUyMSwxMSBAQCBGbG9hdFNpemUgU1ZHU1ZHRWxlbWVudDo6Y3VycmVu
dFZpZXdwb3J0U2l6ZSgpIGNvbnN0CiAgICAgICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdSb290
PigqcmVuZGVyZXIoKSkpIHsKICAgICAgICAgICAgIGF1dG8mIHJvb3QgPSBkb3duY2FzdDxMZWdh
Y3lSZW5kZXJTVkdSb290PigqcmVuZGVyZXIoKSk7CiAgICAgICAgICAgICB2aWV3cG9ydFNpemUg
PSByb290LmNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpIC8gcm9vdC5zdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKTsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICAgICAgfSBlbHNl
IGlmIChpczxSZW5kZXJTVkdSb290PigqcmVuZGVyZXIoKSkpIHsKKyAgICAgICAgICAgIGF1dG8m
IHJvb3QgPSBkb3duY2FzdDxSZW5kZXJTVkdSb290PigqcmVuZGVyZXIoKSk7CisgICAgICAgICAg
ICB2aWV3cG9ydFNpemUgPSByb290LmNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpIC8gcm9vdC5zdHls
ZSgpLmVmZmVjdGl2ZVpvb20oKTsKKyNlbmRpZgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
IHZpZXdwb3J0U2l6ZSA9IGRvd25jYXN0PFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVyPigqcmVu
ZGVyZXIoKSkudmlld3BvcnQoKS5zaXplKCk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446709</attachid>
            <date>2021-12-10 04:01:50 -0800</date>
            <delta_ts>2021-12-10 04:07:31 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-233872-20211210040148.patch</filename>
            <type>text/plain</type>
            <size>21780</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2YjFiMTQyYTEyOTBh
MWRmMTg1ZWY2ZWE0N2JlMjJiYTM0NDVhZi4uMWU1ZTYzNTg0MTgxMDM0NWIxZmJhYjI0MGM3M2Q2
ZDY0YjM2Mzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIxLTEyLTEwICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBIYW5kbGUgUmVuZGVyU1ZHUm9vdCBpbiBhbGwgcGxhY2VzIHRoYXQgaGFuZGxlIExlZ2FjeVJl
bmRlclNWR1Jvb3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzg3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFZhcmlvdXMgcGxhY2VzIHRoYXQgaGFuZGxlIExlZ2FjeVJlbmRlclNWR1Jvb3QsIGFsc28g
bmVlZCB0byBoYW5kbGUgdGhlCisgICAgICAgIExCU0UgUmVuZGVyU1ZHUm9vdCByZW5kZXJlciAt
LSB0aGlzIHBhdGNoIHBsdW1icyBpbiBzdXBwb3J0IGZvcgorICAgICAgICBSZW5kZXJTVkdSb290
IHdoZXJlIG5lY2Vzc2FyeS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLCBu
byBjaGFuZ2UgaW4gYmVoYXZpb3VyLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmVsZW1lbnRQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFwcGx5T3ZlcmZsb3dUb1ZpZXdw
b3J0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp3cml0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0Zvckxh
eW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5b3V0U2l6ZU9m
TmVhcmVzdFZpZXdwb3J0Q2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJUcmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VHJlZUJ1aWxkZXI6OmF0dGFjaEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRy
ZWVCdWlsZGVyOjpkZXRhY2gpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlclNWRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQnVpbGRlcjo6
U1ZHOjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6
ZGV0YWNoKToKKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJT
VkcuaDoKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyIGNvbnN0KToKKyAgICAgICAgKiBz
dmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmN1
cnJlbnRWaWV3Qm94UmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
OjpjdXJyZW50Vmlld3BvcnRTaXplIGNvbnN0KToKKwogMjAyMS0xMi0xMCAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gQmVnaW4g
bGF5ZXItYXdhcmUgUmVuZGVyU1ZHUm9vdCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKaW5kZXggYzI1NDIzZjYxM2E2YTkxODI1ZmFiMjljNjkyNmQyMGNkOWVjYWJjMi4uNTI2MGM2
N2E4NWRhZmQxZDY5N2NjMGQ4MDYyOTJiMzEwZjUyMTI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CkBAIC05NCw2ICs5NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1
ZGUgIlJlbmRlck1hdGhNTEJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKKyNp
bmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHU2hhcGUuaCIKICNp
bmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCkBAIC05
NTQsNiArOTU1LDExIEBAIFBhdGggQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFBh
dGgoKSBjb25zdAogICAgICAgICBpZiAoYXV0byBzdmdSb290ID0gYW5jZXN0b3JzT2ZUeXBlPExl
Z2FjeVJlbmRlclNWR1Jvb3Q+KCptX3JlbmRlcmVyKS5maXJzdCgpKSB7CiAgICAgICAgICAgICBM
YXlvdXRQb2ludCBwYXJlbnRPZmZzZXQgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKCYq
c3ZnUm9vdCktPmVsZW1lbnRSZWN0KCkubG9jYXRpb24oKTsKICAgICAgICAgICAgIHBhdGgudHJh
bnNmb3JtKEFmZmluZVRyYW5zZm9ybSgpLnRyYW5zbGF0ZShwYXJlbnRPZmZzZXQueCgpLCBwYXJl
bnRPZmZzZXQueSgpKSk7CisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAg
ICAgIH0gZWxzZSBpZiAoYXV0byBzdmdSb290ID0gYW5jZXN0b3JzT2ZUeXBlPFJlbmRlclNWR1Jv
b3Q+KCptX3JlbmRlcmVyKS5maXJzdCgpKSB7CisgICAgICAgICAgICBMYXlvdXRQb2ludCBwYXJl
bnRPZmZzZXQgPSBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKCYqc3ZnUm9vdCktPmVsZW1l
bnRSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgICAgIHBhdGgudHJhbnNmb3JtKEFmZmluZVRy
YW5zZm9ybSgpLnRyYW5zbGF0ZShwYXJlbnRPZmZzZXQueCgpLCBwYXJlbnRPZmZzZXQueSgpKSk7
CisjZW5kaWYKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBwYXRoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGI1NDA1ZTQ3NzFkOWU1Mzc3ZDYxM2M5YjdhZjQ0NDRhYzJjMzMy
NzcuLmI1N2YyNjhmYzlhMGVkNTc4MDBjNThhOTlmNjUzOWUyMTY4ZTE4ZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTg3LDYgKzg3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXll
ckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRl
ICJSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5o
IgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJh
clBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgpAQCAtNjQ3LDYgKzY0OCwxNyBAQCB2
b2lkIEZyYW1lVmlldzo6YXBwbHlPdmVyZmxvd1RvVmlld3BvcnQoY29uc3QgUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIFNjcm9sbGJhcgogICAgIE92ZXJmbG93IG92ZXJmbG93WCA9IHJlbmRlcmVy
LmVmZmVjdGl2ZU92ZXJmbG93WCgpOwogICAgIE92ZXJmbG93IG92ZXJmbG93WSA9IHJlbmRlcmVy
LmVmZmVjdGl2ZU92ZXJmbG93WSgpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJ
TkUpCisgICAgaWYgKGlzPFJlbmRlclNWR1Jvb3Q+KHJlbmRlcmVyKSkgeworICAgICAgICAvLyBG
SVhNRTogZXZhbHVhdGUgaWYgd2UgY2FuIGFsbG93IG92ZXJmbG93IGZvciB0aGVzZSBjYXNlcyB0
b28uCisgICAgICAgIC8vIE92ZXJmbG93IGlzIGFsd2F5cyBoaWRkZW4gd2hlbiBzdGFuZC1hbG9u
ZSBTVkcgZG9jdW1lbnRzIGFyZSBlbWJlZGRlZC4KKyAgICAgICAgaWYgKGRvd25jYXN0PFJlbmRl
clNWR1Jvb3Q+KHJlbmRlcmVyKS5pc0VtYmVkZGVkVGhyb3VnaEZyYW1lQ29udGFpbmluZ1NWR0Rv
Y3VtZW50KCkpIHsKKyAgICAgICAgICAgIG92ZXJmbG93WCA9IE92ZXJmbG93OjpIaWRkZW47Cisg
ICAgICAgICAgICBvdmVyZmxvd1kgPSBPdmVyZmxvdzo6SGlkZGVuOworICAgICAgICB9CisgICAg
fQorI2VuZGlmCisKICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ocmVuZGVyZXIpKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBldmFsdWF0ZSBpZiB3ZSBjYW4gYWxsb3cgb3ZlcmZsb3cgZm9y
IHRoZXNlIGNhc2VzIHRvby4KICAgICAgICAgLy8gT3ZlcmZsb3cgaXMgYWx3YXlzIGhpZGRlbiB3
aGVuIHN0YW5kLWFsb25lIFNWRyBkb2N1bWVudHMgYXJlIGVtYmVkZGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGI5MGYxYjY1ZDk2Yzg5
YTdjMTk3MzFjYjQ3ZmE5NzU0MTBiOTA3ZjIuLjZiNjhkZWZhZGYxM2MxOTA5YjFlMjc1MmY4NGQ1
OWZjODVmOGRkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHAKQEAgLTYzLDYgKzYzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmVUZXh0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJl
bmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCkBAIC01NzMsNiArNTc0LDEyIEBAIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+IGJl
CiAgICAgICAgIHdyaXRlU1ZHQ29udGFpbmVyKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdDb250YWlu
ZXI+KG8pLCBiZWhhdmlvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKExB
WUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAgaWYgKGlzPFJlbmRlclNWR1Jvb3Q+KG8pKSB7Cisg
ICAgICAgIHdyaXRlKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdSb290PihvKSwgYmVoYXZpb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCiAgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNW
R1Jvb3Q+KG8pKSB7CiAgICAgICAgIHdyaXRlKHRzLCBkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdS
b290PihvKSwgYmVoYXZpb3IpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCmluZGV4IDJhMjU3ZjVjMjM5
ODg5NWZlZGYwYWFiMmQ0MzhiN2IzNTg3NjhhYjcuLmQ4YmZhYTcyMTJhODBkYzc2ZjNmZmRjOWM0
OGI1NjgxNmM3YjRlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2UuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
U1ZHUmVzb3VyY2VGaWx0ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hc2tlci5o
IgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIgorI2luY2x1ZGUgIlJl
bmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU1ZHUmVz
b3VyY2VFbGVtZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzLmgiCkBAIC0yMDIs
NiArMjAzLDEwIEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJl
bnRSZXNvdXJjZUludmFsaWRhdGlvbihSZW5kZXJPYmplY3QmCiAgICAgICAgIC8vIGludmFsaWRh
dGUgdGhlIGFuY2VzdG9yIHJlbmRlcmVyIGJlY2F1c2UgaXQgbWF5IGhhdmUgZmluaXNoZWQgaXRz
IGxheW91dCBhbHJlYWR5LgogICAgICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ob2Jq
ZWN0KSAmJiBkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290PihvYmplY3QpLmlzSW5MYXlvdXQo
KSkKICAgICAgICAgICAgIG9iamVjdC5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworI2lm
IEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5HSU5FKQorICAgICAgICBlbHNlIGlmIChpczxSZW5k
ZXJTVkdSb290PihvYmplY3QpICYmIGRvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KG9iamVjdCkuaXNJ
bkxheW91dCgpKQorICAgICAgICAgICAgb2JqZWN0LnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisjZW5kaWYKICAgICAgICAgZWxzZQogICAgICAgICAgICAgb2JqZWN0LnNldE5lZWRzTGF5
b3V0KE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggY2UwOGU3OTc1ZGFm
Njk4MzYwM2JjYjU1ZWE4NmEwYWE1ZjlmMjE2OS4uYWI1NjI2NjhiNDBkYTgwN2FkYmMyOWQxODU2
MDQzZTM2YWU3NDRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZU1hcmtlci5oIgog
I2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlTWFza2VyLmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZH
Um9vdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCIKQEAgLTIxMSw2ICsyMTIsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGxheW91dFNp
emVPZk5lYXJlc3RWaWV3cG9ydENoYW5nZWQoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGUKICAg
ICBpZiAoaXM8UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXI+KCpzdGFydCkpCiAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKnN0YXJ0KS5pc0xheW91
dFNpemVDaGFuZ2VkKCk7CiAKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAg
ICBpZiAoaXM8UmVuZGVyU1ZHUm9vdD4oKnN0YXJ0KSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclNWR1Jvb3Q+KCpzdGFydCkuaXNMYXlvdXRTaXplQ2hhbmdlZCgpOworI2VuZGlmCiAg
ICAgcmV0dXJuIGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KCpzdGFydCkuaXNMYXlvdXRT
aXplQ2hhbmdlZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBkZDNkODliM2VhMWY0ZTFkZjRmMzU0ODg1
MTkxNTIzNDJkYTU0ZTQ4Li5iNGRmNzgyMzY0Y2ZhYTE5NzgyZmJkMmEwYjk2NjY3YTQ1ZDI3NTg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVB
c1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJj
ZVBhdHRlcm4uaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZVJhZGlhbEdyYWRpZW50SW5s
aW5lcy5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5oIgorI2luY2x1
ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdTaGFwZUlubGluZXMuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiU1ZHQ2lyY2xlRWxlbWVudC5o
IgpAQCAtNTA3LDYgKzUwOCwxNiBAQCB2b2lkIHdyaXRlU1ZHQ29udGFpbmVyKFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJTVkdDb250YWluZXImIGNvbnRhaW5lciwgT3B0aQogICAgIHdyaXRl
Q2hpbGRyZW4odHMsIGNvbnRhaW5lciwgYmVoYXZpb3IpOwogfQogCisjaWYgRU5BQkxFKExBWUVS
X0JBU0VEX1NWR19FTkdJTkUpCit2b2lkIHdyaXRlKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5k
ZXJTVkdSb290JiByb290LCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4gYmVoYXZpb3IpCit7
CisgICAgd3JpdGVTdGFuZGFyZFByZWZpeCh0cywgcm9vdCwgYmVoYXZpb3IpOworICAgIHdyaXRl
UG9zaXRpb25BbmRTdHlsZSh0cywgcm9vdCwgYmVoYXZpb3IpOworICAgIHRzIDw8ICJcbiI7Cisg
ICAgd3JpdGVDaGlsZHJlbih0cywgcm9vdCwgYmVoYXZpb3IpOworfQorI2VuZGlmCisKIHZvaWQg
d3JpdGUoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IExlZ2FjeVJlbmRlclNWR1Jvb3QmIHJvb3QsIE9w
dGlvblNldDxSZW5kZXJBc1RleHRGbGFnPiBiZWhhdmlvcikKIHsKICAgICB3cml0ZVN0YW5kYXJk
UHJlZml4KHRzLCByb290LCBiZWhhdmlvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclRyZWVBc1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHUmVuZGVyVHJlZUFzVGV4dC5oCmluZGV4IDg1OTY5NGE0YmEwYjRhNjg1ODFi
NWEyNjM3ODkwYzkzMDRiODE4ZjkuLjQyYmI4YTYwMDQ0YjgzMjUxY2M5YmFkMDMzODljZGRiNTE4
NzZjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
VHJlZUFzVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
VHJlZUFzVGV4dC5oCkBAIC0zMCw5ICszMCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIENvbG9yOwogY2xhc3MgRmxvYXRSZWN0Owog
Y2xhc3MgRmxvYXRTaXplOworY2xhc3MgTGVnYWN5UmVuZGVyU1ZHUm9vdDsKIGNsYXNzIE5vZGU7
CiBjbGFzcyBSZW5kZXJJbWFnZTsKIGNsYXNzIFJlbmRlck9iamVjdDsKQEAgLTQxLDE1ICs0Mywx
NyBAQCBjbGFzcyBSZW5kZXJTVkdHcmFkaWVudFN0b3A7CiBjbGFzcyBSZW5kZXJTVkdJbWFnZTsK
IGNsYXNzIFJlbmRlclNWR0lubGluZVRleHQ7CiBjbGFzcyBSZW5kZXJTVkdSZXNvdXJjZUNvbnRh
aW5lcjsKK2NsYXNzIFJlbmRlclNWR1Jvb3Q7CiBjbGFzcyBSZW5kZXJTVkdTaGFwZTsKLWNsYXNz
IExlZ2FjeVJlbmRlclNWR1Jvb3Q7CiBjbGFzcyBSZW5kZXJTVkdUZXh0OwotY2xhc3MgQWZmaW5l
VHJhbnNmb3JtOwogY2xhc3MgU1ZHVW5pdFR5cGVzOwogCiAvLyBmdW5jdGlvbnMgdXNlZCBieSB0
aGUgbWFpbiBSZW5kZXJUcmVlQXNUZXh0IGNvZGUKLXZvaWQgd3JpdGUoV1RGOjpUZXh0U3RyZWFt
JiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUmLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4pOwog
dm9pZCB3cml0ZShXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBMZWdhY3lSZW5kZXJTVkdSb290Jiwg
T3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+KTsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZH
X0VOR0lORSkKK3ZvaWQgd3JpdGUoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHUm9v
dCYsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFnPik7CisjZW5kaWYKK3ZvaWQgd3JpdGUoV1RG
OjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVyU1ZHU2hhcGUmLCBPcHRpb25TZXQ8UmVuZGVyQXNU
ZXh0RmxhZz4pOwogdm9pZCB3cml0ZVNWR0dyYWRpZW50U3RvcChXVEY6OlRleHRTdHJlYW0mLCBj
b25zdCBSZW5kZXJTVkdHcmFkaWVudFN0b3AmLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4p
Owogdm9pZCB3cml0ZVNWR1Jlc291cmNlQ29udGFpbmVyKFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0
IFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyJiwgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+
KTsKIHZvaWQgd3JpdGVTVkdDb250YWluZXIoV1RGOjpUZXh0U3RyZWFtJiwgY29uc3QgUmVuZGVy
U1ZHQ29udGFpbmVyJiwgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3Bw
CmluZGV4IDhkYjNhMjljNjBlZDRiOWVmNDEzM2MwYjFjNGEwMDJjM2I0NjY2ZTYuLmZmOTBmOGQ0
MmEzMzI1NDlmZDUxNmYyMDI2MTAzNjA0YmJiNzIyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtNTAs
NiArNTAsNyBAQAogI2luY2x1ZGUgIlJlbmRlclJ1YnlSdW4uaCIKICNpbmNsdWRlICJSZW5kZXJT
VkdDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdJbmxpbmUuaCIKKyNpbmNsdWRlICJS
ZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlclRhYmxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCkBAIC0yOTAsNiArMjkx
LDEzIEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmF0dGFjaEludGVybmFsKFJlbmRlckVsZW1l
bnQmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBpZiAoaXM8UmVuZGVyU1ZH
Um9vdD4ocGFyZW50KSkgeworICAgICAgICBzdmdCdWlsZGVyKCkuYXR0YWNoKGRvd25jYXN0PFJl
bmRlclNWR1Jvb3Q+KHBhcmVudCksIFdURk1vdmUoY2hpbGQpLCBiZWZvcmVDaGlsZCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdS
b290PihwYXJlbnQpKSB7CiAgICAgICAgIHN2Z0J1aWxkZXIoKS5hdHRhY2goZG93bmNhc3Q8TGVn
YWN5UmVuZGVyU1ZHUm9vdD4ocGFyZW50KSwgV1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMzc0LDYgKzM4MiwxMSBAQCBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6ZGV0YWNoKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVu
ZGVyTwogICAgIGlmIChpczxSZW5kZXJTVkdDb250YWluZXI+KHBhcmVudCkpCiAgICAgICAgIHJl
dHVybiBzdmdCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlclNWR0NvbnRhaW5lcj4ocGFy
ZW50KSwgY2hpbGQpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCisgICAg
aWYgKGlzPFJlbmRlclNWR1Jvb3Q+KHBhcmVudCkpCisgICAgICAgIHJldHVybiBzdmdCdWlsZGVy
KCkuZGV0YWNoKGRvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KHBhcmVudCksIGNoaWxkKTsKKyNlbmRp
ZgorCiAgICAgaWYgKGlzPExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHBhcmVudCkpCiAgICAgICAgIHJl
dHVybiBzdmdCdWlsZGVyKCkuZGV0YWNoKGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KHBh
cmVudCksIGNoaWxkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyU1ZHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclNWRy5jcHAKaW5kZXggYzc2Yzc2MjZlY2Q4MTA5
Yzg2MzFkMGFmODQ4ZjJjYTU0Y2QwZmQwZS4uOWU4MGFjNGM5ODY5NTcxYzZjMWU3YTRiZGY5OWUz
NDk1MWFiOTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyU1ZHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZS5oIgorI2luY2x1ZGUgIlJlbmRlclNWR1Jv
b3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1
aWxkZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVCdWlsZGVyQmxvY2tGbG93LmgiCkBA
IC00Miw2ICs0MywxMyBAQCBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpTVkcoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIpCiB7CiB9CiAKK3ZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlNWRzo6YXR0
YWNoKExlZ2FjeVJlbmRlclNWR1Jvb3QmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4g
Y2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCit7CisgICAgYXV0byYgY2hpbGRUb0Fk
ZCA9ICpjaGlsZDsKKyAgICBtX2J1aWxkZXIuYXR0YWNoVG9SZW5kZXJFbGVtZW50KHBhcmVudCwg
V1RGTW92ZShjaGlsZCksIGJlZm9yZUNoaWxkKTsKKyAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xp
ZW50V2FzQWRkZWRUb1RyZWUoY2hpbGRUb0FkZCk7Cit9CisKIHZvaWQgUmVuZGVyVHJlZUJ1aWxk
ZXI6OlNWRzo6YXR0YWNoKFJlbmRlclNWR0NvbnRhaW5lciYgcGFyZW50LCBSZW5kZXJQdHI8UmVu
ZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBhdXRv
JiBjaGlsZFRvQWRkID0gKmNoaWxkOwpAQCAtNTksMTIgKzY3LDE0IEBAIHZvaWQgUmVuZGVyVHJl
ZUJ1aWxkZXI6OlNWRzo6YXR0YWNoKFJlbmRlclNWR0lubGluZSYgcGFyZW50LCBSZW5kZXJQdHI8
UmVuZGVyT2JqCiAgICAgICAgIHRleHRBbmNlc3Rvci0+c3VidHJlZUNoaWxkV2FzQWRkZWQoJmNo
aWxkVG9BZGQpOwogfQogCi12b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmF0dGFjaChMZWdh
Y3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQorI2lmIEVOQUJMRShMQVlFUl9CQVNFRF9TVkdfRU5H
SU5FKQordm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjphdHRhY2goUmVuZGVyU1ZHUm9vdCYg
cGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZCkKIHsKICAgICBhdXRvJiBjaGlsZFRvQWRkID0gKmNoaWxkOwogICAgIG1fYnVpbGRl
ci5hdHRhY2hUb1JlbmRlckVsZW1lbnQocGFyZW50LCBXVEZNb3ZlKGNoaWxkKSwgYmVmb3JlQ2hp
bGQpOwogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXYXNBZGRlZFRvVHJlZShjaGlsZFRv
QWRkKTsKIH0KKyNlbmRpZgogCiB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmF0dGFjaChS
ZW5kZXJTVkdUZXh0JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkKQogewpAQCAtNzUsNiArODUsMTIgQEAgdm9pZCBSZW5kZXJU
cmVlQnVpbGRlcjo6U1ZHOjphdHRhY2goUmVuZGVyU1ZHVGV4dCYgcGFyZW50LCBSZW5kZXJQdHI8
UmVuZGVyT2JqZWMKICAgICBwYXJlbnQuc3VidHJlZUNoaWxkV2FzQWRkZWQoJmNoaWxkVG9BZGQp
OwogfQogCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpk
ZXRhY2goTGVnYWN5UmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKQor
eworICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXaWxsQmVSZW1vdmVkRnJvbVRyZWUoY2hp
bGQpOworICAgIHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50
LCBjaGlsZCk7Cit9CisKIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVy
OjpTVkc6OmRldGFjaChSZW5kZXJTVkdUZXh0JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQp
CiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFdpbGxCZVJlbW92ZWRGcm9tVHJlZShj
aGlsZCk7CkBAIC0xMDcsMTAgKzEyMywxMiBAQCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBSZW5k
ZXJUcmVlQnVpbGRlcjo6U1ZHOjpkZXRhY2goUmVuZGVyU1ZHQ29udGFpbmVyJiBwYXJlbgogICAg
IHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJvbVJlbmRlckVsZW1lbnQocGFyZW50LCBjaGlsZCk7
CiB9CiAKLVJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclRyZWVCdWlsZGVyOjpTVkc6OmRl
dGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpCisj
aWYgRU5BQkxFKExBWUVSX0JBU0VEX1NWR19FTkdJTkUpCitSZW5kZXJQdHI8UmVuZGVyT2JqZWN0
PiBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHOjpkZXRhY2goUmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBS
ZW5kZXJPYmplY3QmIGNoaWxkKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRXaWxs
QmVSZW1vdmVkRnJvbVRyZWUoY2hpbGQpOwogICAgIHJldHVybiBtX2J1aWxkZXIuZGV0YWNoRnJv
bVJlbmRlckVsZW1lbnQocGFyZW50LCBjaGlsZCk7CiB9CisjZW5kaWYKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyU1ZH
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJT
VkcuaAppbmRleCA4YTRkMGZhNWI4YTRmNjQwMzgzYjVjMGQzNDlhMWZjZmFlNWFhOGQyLi5mMmNh
ZDgwZTk0ZmI2Mjg0ODdlOTliZGIxNzJkZGVhNDFkZWVlYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJTVkcuaApA
QCAtMjksOSArMjksMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBMZWdhY3lS
ZW5kZXJTVkdSb290OwogY2xhc3MgUmVuZGVyU1ZHQ29udGFpbmVyOwogY2xhc3MgUmVuZGVyU1ZH
SW5saW5lOwotY2xhc3MgTGVnYWN5UmVuZGVyU1ZHUm9vdDsKK2NsYXNzIFJlbmRlclNWR1Jvb3Q7
CiBjbGFzcyBSZW5kZXJTVkdUZXh0OwogCiBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHIHsK
QEAgLTM5LDE1ICs0MCwyMSBAQCBjbGFzcyBSZW5kZXJUcmVlQnVpbGRlcjo6U1ZHIHsKIHB1Ymxp
YzoKICAgICBTVkcoUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAorICAgIHZvaWQgYXR0YWNoKExlZ2Fj
eVJlbmRlclNWR1Jvb3QmIHBhcmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJl
bmRlck9iamVjdCogYmVmb3JlQ2hpbGQpOwogICAgIHZvaWQgYXR0YWNoKFJlbmRlclNWR0NvbnRh
aW5lciYgcGFyZW50LCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0
KiBiZWZvcmVDaGlsZCk7CiAgICAgdm9pZCBhdHRhY2goUmVuZGVyU1ZHSW5saW5lJiBwYXJlbnQs
IFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
KTsKLSAgICB2b2lkIGF0dGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKKyNpZiBF
TkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICB2b2lkIGF0dGFjaChSZW5kZXJTVkdS
b290JiBwYXJlbnQsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3Qq
IGJlZm9yZUNoaWxkKTsKKyNlbmRpZgogICAgIHZvaWQgYXR0YWNoKFJlbmRlclNWR1RleHQmIHBh
cmVudCwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQpOwogCi0gICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gZGV0YWNoKFJlbmRlclNWR1Rl
eHQmIHBhcmVudCwgUmVuZGVyT2JqZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAg
IFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGRldGFjaChSZW5kZXJTVkdJbmxpbmUmIHBhcmVudCwg
UmVuZGVyT2JqZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwotICAgIFJlbmRlclB0cjxS
ZW5kZXJPYmplY3Q+IGRldGFjaChSZW5kZXJTVkdDb250YWluZXImIHBhcmVudCwgUmVuZGVyT2Jq
ZWN0JiBjaGlsZCkgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIFJlbmRlclB0cjxSZW5kZXJPYmpl
Y3Q+IGRldGFjaChMZWdhY3lSZW5kZXJTVkdSb290JiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hp
bGQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRh
Y2goUmVuZGVyU1ZHQ29udGFpbmVyJiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVy
U1ZHSW5saW5lJiBwYXJlbnQsIFJlbmRlck9iamVjdCYgY2hpbGQpIFdBUk5fVU5VU0VEX1JFVFVS
TjsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBSZW5kZXJQdHI8UmVu
ZGVyT2JqZWN0PiBkZXRhY2goUmVuZGVyU1ZHUm9vdCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNo
aWxkKSBXQVJOX1VOVVNFRF9SRVRVUk47CisjZW5kaWYKKyAgICBSZW5kZXJQdHI8UmVuZGVyT2Jq
ZWN0PiBkZXRhY2goUmVuZGVyU1ZHVGV4dCYgcGFyZW50LCBSZW5kZXJPYmplY3QmIGNoaWxkKSBX
QVJOX1VOVVNFRF9SRVRVUk47CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyVHJlZUJ1aWxkZXImIG1f
YnVpbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCBiYjVjODY2M2Q3MWMxNDAw
OGIwM2Q1NWMwMGQ2ZDg4ZTg1YmI5MzQzLi4wNjE2YjY0MzJkOWRkNDhhZTA4NjUzMTVhOWQ5Y2Zj
Y2E3ODRhMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBAIC01MzAsNiArNTMwLDE0
IEBAIGJvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2Rl
JiBjaGlsZCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN2Z0NoaWxk
ID0gZG93bmNhc3Q8U1ZHRWxlbWVudD4oY2hpbGQpOwogCisjaWYgRU5BQkxFKExBWUVSX0JBU0VE
X1NWR19FTkdJTkUpCisgICAgLy8gSWYgdGhlIGxheWVyIGJhc2VkIFNWRyBlbmdpbmUgaXMgZW5h
YmxlZCwgYWxsIHJlbmRlcmVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IHRoZQorICAgIC8vIFJlbmRl
ckxheWVyIGF3YXJlIGxheW91dCAvIHBhaW50aW5nIC8gaGl0LXRlc3RpbmcgbW9kZSAoJ0xCU0Ut
bW9kZScpIGhhdmUgdG8gYmUgc2tpcHBlZC4KKyAgICAvLyBDdXJyZW50bHkgYWxsIHJlbmRlcmVy
cyBhcmUgc2tpcHBlZC4KKyAgICBpZiAoZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRT
VkdFbmdpbmVFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorCiAgICAg
c3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUqIGNvbnN0IGludmFsaWRUZXh0Q29udGVudFtdIHsK
ICAgICAgICAgJlNWR05hbWVzOjphbHRHbHlwaFRhZy5nZXQoKSwKICAgICAgICAgJlNWR05hbWVz
Ojp0ZXh0UGF0aFRhZy5nZXQoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRl
eCA2YTEwM2IyYTNjNjA3YWFkNzZmZmI5Mjc1M2E5MzEwOTBkYTVjN2VkLi44YzA1N2NhZTU4YzA4
YTc3ZGY2OGVhODFmYWIzZWU0ODBhNDc5NjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNp
bmNsdWRlICJMZWdhY3lSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmll
d3BvcnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU01J
TFRpbWVDb250YWluZXIuaCIKQEAgLTIxMSw2ICsyMTIsMTAgQEAgdm9pZCBTVkdTVkdFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKIAogICAgICAgICBp
ZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKKyNpZiBFTkFCTEUoTEFZRVJf
QkFTRURfU1ZHX0VOR0lORSkKKyAgICAgICAgICAgIGlmIChpczxSZW5kZXJTVkdSb290PihyZW5k
ZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKS5pc0VtYmVkZGVkVGhy
b3VnaEZyYW1lQ29udGFpbmluZ1NWR0RvY3VtZW50KCkpCisgICAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOworI2VuZGlmCiAgICAgICAgICAgICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9v
dD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PExlZ2FjeVJlbmRlclNWR1Jvb3Q+KCpyZW5kZXJlciku
aXNFbWJlZGRlZFRocm91Z2hGcmFtZUNvbnRhaW5pbmdTVkdEb2N1bWVudCgpKQogICAgICAgICAg
ICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJ
bnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKICAgICAgICAgfQpAQCAtNDc1LDkgKzQ4MCwxNSBAQCBG
bG9hdFJlY3QgU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFZpZXdCb3hSZWN0KCkgY29uc3QKICAgICBp
ZiAoIXZpZXdCb3guaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdmlld0JveDsKIAotICAgIGlm
ICghaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4ocmVuZGVyZXIoKSkpCi0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgaWYgKCFkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290PigqcmVuZGVyZXIoKSku
aXNFbWJlZGRlZFRocm91Z2hTVkdJbWFnZSgpKQorICAgIGJvb2wgaXNFbWJlZGRlZFRocm91Z2hT
VkdJbWFnZSA9IGZhbHNlOworICAgIGlmIChpczxMZWdhY3lSZW5kZXJTVkdSb290PihyZW5kZXJl
cigpKSAmJiBkb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290PigqcmVuZGVyZXIoKSkuaXNFbWJl
ZGRlZFRocm91Z2hTVkdJbWFnZSgpKQorICAgICAgICBpc0VtYmVkZGVkVGhyb3VnaFNWR0ltYWdl
ID0gdHJ1ZTsKKyNpZiBFTkFCTEUoTEFZRVJfQkFTRURfU1ZHX0VOR0lORSkKKyAgICBlbHNlIGlm
IChpczxSZW5kZXJTVkdSb290PihyZW5kZXJlcigpKSAmJiBkb3duY2FzdDxSZW5kZXJTVkdSb290
PigqcmVuZGVyZXIoKSkuaXNFbWJlZGRlZFRocm91Z2hTVkdJbWFnZSgpKQorICAgICAgICBpc0Vt
YmVkZGVkVGhyb3VnaFNWR0ltYWdlID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKCFpc0VtYmVk
ZGVkVGhyb3VnaFNWR0ltYWdlKQogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgTGVuZ3RoIGlu
dHJpbnNpY1dpZHRoID0gdGhpcy0+aW50cmluc2ljV2lkdGgoKTsKQEAgLTQ4Niw3ICs0OTcsNyBA
QCBGbG9hdFJlY3QgU1ZHU1ZHRWxlbWVudDo6Y3VycmVudFZpZXdCb3hSZWN0KCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIHsgfTsKIAogICAgIC8vIElmIG5vIHZpZXdCb3ggaXMgc3BlY2lmaWVkIGJ1
dCBub24tcmVsYXRpdmUgd2lkdGgvaGVpZ2h0IHZhbHVlcywgdGhlbiB3ZQotICAgIC8vIHNob3Vs
ZCBhbHdheXMgc3ludGhlc2l6ZSBhIHZpZXdCb3ggaWYgd2UncmUgZW1iZWRkZWQgdGhyb3VnaCBh
IFNWR0ltYWdlLiAgICAKKyAgICAvLyBzaG91bGQgYWx3YXlzIHN5bnRoZXNpemUgYSB2aWV3Qm94
IGlmIHdlJ3JlIGVtYmVkZGVkIHRocm91Z2ggYSBTVkdJbWFnZS4KICAgICByZXR1cm4geyAwLCAw
LCBmbG9hdFZhbHVlRm9yTGVuZ3RoKGludHJpbnNpY1dpZHRoLCAwKSwgZmxvYXRWYWx1ZUZvckxl
bmd0aChpbnRyaW5zaWNIZWlnaHQsIDApIH07CiB9CiAKQEAgLTQ5OCw2ICs1MDksMTEgQEAgRmxv
YXRTaXplIFNWR1NWR0VsZW1lbnQ6OmN1cnJlbnRWaWV3cG9ydFNpemUoKSBjb25zdAogICAgICAg
ICBpZiAoaXM8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKCkpKSB7CiAgICAgICAgICAg
ICBhdXRvJiByb290ID0gZG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oKnJlbmRlcmVyKCkp
OwogICAgICAgICAgICAgdmlld3BvcnRTaXplID0gcm9vdC5jb250ZW50Qm94UmVjdCgpLnNpemUo
KSAvIHJvb3Quc3R5bGUoKS5lZmZlY3RpdmVab29tKCk7CisjaWYgRU5BQkxFKExBWUVSX0JBU0VE
X1NWR19FTkdJTkUpCisgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyU1ZHUm9vdD4oKnJlbmRl
cmVyKCkpKSB7CisgICAgICAgICAgICBhdXRvJiByb290ID0gZG93bmNhc3Q8UmVuZGVyU1ZHUm9v
dD4oKnJlbmRlcmVyKCkpOworICAgICAgICAgICAgdmlld3BvcnRTaXplID0gcm9vdC5jb250ZW50
Qm94UmVjdCgpLnNpemUoKSAvIHJvb3Quc3R5bGUoKS5lZmZlY3RpdmVab29tKCk7CisjZW5kaWYK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB2aWV3cG9ydFNpemUgPSBkb3duY2FzdDxSZW5k
ZXJTVkdWaWV3cG9ydENvbnRhaW5lcj4oKnJlbmRlcmVyKCkpLnZpZXdwb3J0KCkuc2l6ZSgpOwog
ICAgIH0K
</data>
<flag name="review"
          id="472172"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>