<?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>234878</bug_id>
          
          <creation_ts>2022-01-05 04:43:35 -0800</creation_ts>
          <short_desc>[LBSE] Rename RenderSVGRect -&gt; LegacyRenderSVGRect</short_desc>
          <delta_ts>2022-05-23 04:48:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=240793</see_also>
          <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>234877</dependson>
          <blocked>90738</blocked>
    
    <blocked>234992</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>rbuis</cc>
    
    <cc>sabouhallawa</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>1828246</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-05 04:43:35 -0800</bug_when>
    <thetext>Prepare to introduce RenderSVGRect for LBSE: move current RenderSVGRect.(cpp|h) code to LegacyRenderSVGRect.(cpp|h).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828250</commentid>
    <comment_count>1</comment_count>
      <attachid>448378</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-05 04:56:10 -0800</bug_when>
    <thetext>Created attachment 448378
Patch, v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828252</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-05 04:56:43 -0800</bug_when>
    <thetext>This can only build, once 234877 landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828544</commentid>
    <comment_count>3</comment_count>
      <attachid>448481</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-06 02:50:59 -0800</bug_when>
    <thetext>Created attachment 448481
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828873</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-01-07 05:02:49 -0800</bug_when>
    <thetext>Committed r287743 (245813@trunk): &lt;https://commits.webkit.org/245813@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828874</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-07 05:03:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/87246327&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448378</attachid>
            <date>2022-01-05 04:56:10 -0800</date>
            <delta_ts>2022-01-06 02:50:55 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-234878-20220105045609.patch</filename>
            <type>text/plain</type>
            <size>28397</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJkYjFjZjMwYjZmZWM1
ZjhhN2EyMmU4MzQzZmNmNTk5YTQ4OWZhZi4uZjRlYTQ5Y2Y3NjcxZjExMmYxMTEyOTlmNDcyOWU2
NWE2YjY4MmRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTA1ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBSZW5hbWUgUmVuZGVyU1ZHUmVjdCAtPiBMZWdhY3lSZW5kZXJTVkdSZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4NzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgdGhlIGVzdGFi
bGlzaGVkIHByb2NlZHVyZTogcmVuYW1lIFJlbmRlclNWR1NoYXBlIC0+IExlZ2FjeVJlbmRlclNW
R1NoYXBlLgorICAgICAgICBJbiBhIGZvbGxvdy11cCBwYXRjaCBSZW5kZXJTVkdTaGFwZSB3aWxs
IGJlIHJlaW50cm9kdWNlZCBmb3IgTEJTRSwgaW5oZXJpdGluZyBmcm9tCisgICAgICAgIFJlbmRl
clNWR01vZGVsT2JqZWN0IGluc3RlYWQgb2YgTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3QuCisK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91
ci4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNW
R1JlY3QuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZWN0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR1JlY3Q6Okxl
Z2FjeVJlbmRlclNWR1JlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUmVj
dDo6cmVjdEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZH
UmVjdDo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lS
ZW5kZXJTVkdSZWN0OjpmaWxsU2hhcGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5
UmVuZGVyU1ZHUmVjdDo6c3Ryb2tlU2hhcGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5UmVuZGVyU1ZHUmVjdDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyk6CisgICAgICAg
IChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSZWN0OjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlu
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSZWN0Ojppc1JlbmRl
cmluZ0Rpc2FibGVkIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRl
clNWR1JlY3QuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVjdC5oLgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKwogMjAy
Mi0wMS0wNSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbTEJTRV0gUmVuYW1lIFJlbmRlclNWR1NoYXBlIC0+IExlZ2FjeVJlbmRlclNWR1No
YXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CmluZGV4IDZhNjUzOTRkMjg5NjRiODUxNTJmNzA4NzZiOTE1ZGU3N2Q4
ZmJjZWYuLmNiMjgzY2VlNGY1OWM1Y2Q3ZDhmMGFjNjZiZTFjM2RiZDg2ZDEyYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC0yNDY4LDYgKzI0NjgsNyBAQCByZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxE
YXRhLmNwcAogcmVuZGVyaW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAKIHJlbmRlcmlu
Zy9zdHlsZS9XaWxsQ2hhbmdlRGF0YS5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZH
TW9kZWxPYmplY3QuY3BwCityZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1JlY3QuY3BwCiBy
ZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwCiByZW5kZXJpbmcvc3ZnL0xlZ2Fj
eVJlbmRlclNWR1NoYXBlLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKQEAg
LTI0ODEsNyArMjQ4Miw2IEBAIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmVUZXh0LmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKLXJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2UuY3BwCiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmM1YzI3NTEzZDk5
MTg3NWRhNzk3MmY2NDA2Mzk0MGE1MDIzOGVkYy4uMTJhNGI1ZjdlOGUxNTc2MGFhNzEwNzFlYmM5
ZGFlODk4NWNjZGMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzI3MSw3ICszMjcxLDcgQEAKIAkJQTEwNEVDNUQyMjBBM0U0
QjAwQ0JGNjdBIC8qIEpTTW9ja1BheW1lbnRDb250YWN0RmllbGRzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMDRFQzVCMjIwQTNFNDMwMENCRjY3
QSAvKiBKU01vY2tQYXltZW50Q29udGFjdEZpZWxkcy5jcHAgKi87IH07CiAJCUExMDRFQzVFMjIw
QTNFNEUwMENCRjY3QSAvKiBKU01vY2tQYXltZW50Q29udGFjdEZpZWxkcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEVDNUMyMjBBM0U0NDAwQ0JG
NjdBIC8qIEpTTW9ja1BheW1lbnRDb250YWN0RmllbGRzLmggKi87IH07CiAJCUExMDRGMjQ0MTRD
NzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEYyNDIxNEM3MUY3QTAwOUUyQzIzIC8qIENh
Y2hlZFNWR0RvY3VtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQTEwQkI1ODUxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEJCNTgzMTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmggKi87IH07CisJCUExMEJCNTg1MTQ4NEUz
QTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogTGVn
YWN5UmVuZGVyU1ZHUmVjdC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBCMkU4N0EgLyog
TGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdT
aGFwZS5oICovOyB9OwogCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmll
d0xvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
MTBEQzc2QjE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcx
IC8qIFN0eWxlR3JpZERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTMzNzgsOCArMTMzNzgsOCBAQAogCQlBMTA0RUM1QzIyMEEzRTQ0MDBD
QkY2N0EgLyogSlNNb2NrUGF5bWVudENvbnRhY3RGaWVsZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
b2NrUGF5bWVudENvbnRhY3RGaWVsZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTEwNEYyNDExNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFNWR0RvY3VtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwNEYyNDIxNEM3MUY3QTAwOUUyQzIzIC8qIENh
Y2hlZFNWR0RvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hl
ZFNWR0RvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMEJCNTgyMTQ4
NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUExMEJCNTgyMTQ4NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5k
ZXJTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2Fj
eVJlbmRlclNWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBCQjU4
MzE0ODRFM0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJT
VkdTaGFwZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lS
ZW5kZXJTVkdTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5
MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVz
cG9uc2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MTIsNiArMTg5MTIsOCBA
QAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDM2NzA4OEIxMkQ5Q0E0QTAwMDQ0MjM0IC8qIExlZ2Fj
eVJlbmRlclNWR01vZGVsT2JqZWN0LmNwcCAqLywKIAkJCQk0MzY3MDg4QzEyRDlDQTRBMDAwNDQy
MzQgLyogTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3QuaCAqLywKKwkJCQlBMTBCQjU4MjE0ODRF
M0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHAgKi8sCisJCQkJQTEwQkI1ODMx
NDg0RTNBNzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuaCAqLywKIAkJCQk0MzY3MDhB
NTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgKi8sCiAJCQkJNDM2
NzA4QTYxMkQ5Q0E0QjAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3QuaCAqLywKIAkJCQlB
MTBCQjU4ODE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwICovLApA
QCAtMTg5NDIsOCArMTg5NDQsNiBAQAogCQkJCTQzNjcwOEZEMTJEOUNBNEEwMDAzMjExNCAvKiBS
ZW5kZXJTVkdNb2RlbE9iamVjdC5oICovLAogCQkJCUFEREYxQUQ0MTI1N0NEOUEwMDAzQTc1OSAv
KiBSZW5kZXJTVkdQYXRoLmNwcCAqLywKIAkJCQlBRERGMUFENTEyNTdDRDlBMDAwM0E3NTkgLyog
UmVuZGVyU1ZHUGF0aC5oICovLAotCQkJCUExMEJCNTgyMTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5k
ZXJTVkdSZWN0LmNwcCAqLywKLQkJCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVy
U1ZHUmVjdC5oICovLAogCQkJCTQzNjcwODhEMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdS
ZXNvdXJjZS5jcHAgKi8sCiAJCQkJNDM2NzA4OEUxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNW
R1Jlc291cmNlLmggKi8sCiAJCQkJNDM2NzA4OEYxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5jcHAgKi8sCkBAIC0zNTkxOSw2ICszNTkxOSw3IEBACiAJCQkJQTE4
NUI0MkExRTgyMTFBMTAwREM5MTE4IC8qIExlZ2FjeVByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMERCRjQ3MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhDQjEyRDlDQTRCMDAwNDQyMzQgLyog
TGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMEJCNTg1
MTQ4NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MzY3MDhFNTEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwQkI1OEIxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRl
clNWR1NoYXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMg
LyogTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NzM2
LDcgKzM2NzM3LDYgQEAKIAkJCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZH
SW5saW5lVGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM2NzBDOTM0MkQ5QkM0QjAwMDQ0MjM0
IC8qIFJlbmRlclNWR01vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRERGMUFENzEy
NTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTEw
QkI1ODUxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQzNjcwOENEMTJEOUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDM2NzA4Q0YxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291
cmNlQ2xpcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNzQ3RUYyNzBGNkY4RDAwOEZFRUVD
IC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcklubGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdSZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUmVjdC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGQ1MDcwNWNkMDA3NDJiYjc3MTRjYzU0N2ZiNWYyZjQzYTcwMDE0Ywot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVu
ZGVyU1ZHUmVjdC5jcHAKQEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5hdGEgSG9k
b3ZhbiA8cmVuaUB3ZWJraXQub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VE
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHUmVjdC5oIgorCisj
aW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgiCisjaW5jbHVkZSAiU1ZHRWxl
bWVudFR5cGVIZWxwZXJzLmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGVnYWN5
UmVuZGVyU1ZHUmVjdCk7CisKK0xlZ2FjeVJlbmRlclNWR1JlY3Q6OkxlZ2FjeVJlbmRlclNWR1Jl
Y3QoU1ZHUmVjdEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBM
ZWdhY3lSZW5kZXJTVkdTaGFwZShlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKKyAgICAsIG1fdXNl
UGF0aEZhbGxiYWNrKGZhbHNlKQoreworfQorCitMZWdhY3lSZW5kZXJTVkdSZWN0Ojp+TGVnYWN5
UmVuZGVyU1ZHUmVjdCgpID0gZGVmYXVsdDsKKworU1ZHUmVjdEVsZW1lbnQmIExlZ2FjeVJlbmRl
clNWR1JlY3Q6OnJlY3RFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZH
UmVjdEVsZW1lbnQ+KExlZ2FjeVJlbmRlclNWR1NoYXBlOjpncmFwaGljc0VsZW1lbnQoKSk7Cit9
CisKK3ZvaWQgTGVnYWN5UmVuZGVyU1ZHUmVjdDo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpCit7
CisgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGEgbmV3IG9iamVjdCB3ZSBuZWVkIHRvIGNsZWFyIHRo
ZSBjYWNoZWQgYm91bmRpbmcgYm94CisgICAgLy8gdG8gYXZvaWQgdXNpbmcgZ2FyYmFnZS4KKyAg
ICBtX2ZpbGxCb3VuZGluZ0JveCA9IEZsb2F0UmVjdCgpOworICAgIG1faW5uZXJTdHJva2VSZWN0
ID0gRmxvYXRSZWN0KCk7CisgICAgbV9vdXRlclN0cm9rZVJlY3QgPSBGbG9hdFJlY3QoKTsKKyAg
ICBjbGVhclBhdGgoKTsKKyAgICBtX3VzZVBhdGhGYWxsYmFjayA9IGZhbHNlOworCisgICAgU1ZH
TGVuZ3RoQ29udGV4dCBsZW5ndGhDb250ZXh0KCZyZWN0RWxlbWVudCgpKTsKKyAgICBGbG9hdFNp
emUgYm91bmRpbmdCb3hTaXplKGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS53
aWR0aCgpLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCksIGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5n
dGgoc3R5bGUoKS5oZWlnaHQoKSwgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSk7CisKKyAgICAvLyBT
cGVjOiAiQSBuZWdhdGl2ZSB2YWx1ZSBpcyBpbGxlZ2FsLiBBIHZhbHVlIG9mIHplcm8gZGlzYWJs
ZXMgcmVuZGVyaW5nIG9mIHRoZSBlbGVtZW50LiIKKyAgICBpZiAoYm91bmRpbmdCb3hTaXplLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHJlY3RFbGVtZW50KCkucngoKS52
YWx1ZShsZW5ndGhDb250ZXh0KSA+IDAgfHwgcmVjdEVsZW1lbnQoKS5yeSgpLnZhbHVlKGxlbmd0
aENvbnRleHQpID4gMCB8fCBoYXNOb25TY2FsaW5nU3Ryb2tlKCkpIHsKKyAgICAgICAgLy8gRmFs
bCBiYWNrIHRvIExlZ2FjeVJlbmRlclNWR1NoYXBlCisgICAgICAgIExlZ2FjeVJlbmRlclNWR1No
YXBlOjp1cGRhdGVTaGFwZUZyb21FbGVtZW50KCk7CisgICAgICAgIG1fdXNlUGF0aEZhbGxiYWNr
ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZmlsbEJvdW5kaW5nQm94
ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQobGVuZ3RoQ29udGV4dC52YWx1ZUZvckxlbmd0aChzdHls
ZSgpLnN2Z1N0eWxlKCkueCgpLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCksCisgICAgICAgIGxlbmd0
aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLnkoKSwgU1ZHTGVuZ3Ro
TW9kZTo6SGVpZ2h0KSksCisgICAgICAgIGJvdW5kaW5nQm94U2l6ZSk7CisKKyAgICAvLyBUbyBk
ZWNpZGUgaWYgdGhlIHN0cm9rZSBjb250YWlucyBhIHBvaW50IHdlIGNyZWF0ZSB0d28gcmVjdHMg
d2hpY2ggcmVwcmVzZW50IHRoZSBpbm5lciBhbmQKKyAgICAvLyB0aGUgb3V0ZXIgc3Ryb2tlIGJv
cmRlcnMuIEEgc3Ryb2tlIGNvbnRhaW5zIHRoZSBwb2ludCwgaWYgdGhlIHBvaW50IGlzIGJldHdl
ZW4gdGhlbS4KKyAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IG1fZmlsbEJvdW5kaW5nQm94OworICAg
IG1fb3V0ZXJTdHJva2VSZWN0ID0gbV9maWxsQm91bmRpbmdCb3g7CisKKyAgICBpZiAoc3R5bGUo
KS5zdmdTdHlsZSgpLmhhc1N0cm9rZSgpKSB7CisgICAgICAgIGZsb2F0IHN0cm9rZVdpZHRoID0g
dGhpcy0+c3Ryb2tlV2lkdGgoKTsKKyAgICAgICAgbV9pbm5lclN0cm9rZVJlY3QuaW5mbGF0ZSgt
c3Ryb2tlV2lkdGggLyAyKTsKKyAgICAgICAgbV9vdXRlclN0cm9rZVJlY3QuaW5mbGF0ZShzdHJv
a2VXaWR0aCAvIDIpOworICAgIH0KKworICAgIG1fc3Ryb2tlQm91bmRpbmdCb3ggPSBtX291dGVy
U3Ryb2tlUmVjdDsKKworI2lmIFVTRShDRykKKyAgICAvLyBDb3JlR3JhcGhpY3MgY2FuIGluZmxh
dGUgdGhlIHN0cm9rZSBieSAxcHggd2hlbiBkcmF3aW5nIGEgcmVjdGFuZ2xlIHdpdGggYW50aWFs
aWFzaW5nIGRpc2FibGVkIGF0IG5vbi1pbnRlZ2VyIGNvb3JkaW5hdGVzLCB3ZSBuZWVkIHRvIGNv
bXBlbnNhdGUuCisgICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5zaGFwZVJlbmRlcmluZygpID09
IFNoYXBlUmVuZGVyaW5nOjpDcmlzcEVkZ2VzKQorICAgICAgICBtX3N0cm9rZUJvdW5kaW5nQm94
LmluZmxhdGUoMSk7CisjZW5kaWYKK30KKwordm9pZCBMZWdhY3lSZW5kZXJTVkdSZWN0OjpmaWxs
U2hhcGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIGlmIChtX3VzZVBh
dGhGYWxsYmFjaykgeworICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6ZmlsbFNoYXBlKGNv
bnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgVVNFKENHKQorICAgIC8vIEZJ
WE1FOiBDRyBpbXBsZW1lbnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHRDRzo6ZmlsbFJlY3QgaGFz
IGFuIG93bgorICAgIC8vIHNoYWRvdyBkcmF3aW5nIG1ldGhvZCwgd2hpY2ggZHJhd3MgYW4gZXh0
cmEgc2hhZG93LgorICAgIC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBzd2l0Y2hpbmcgb2Zm
IHRoZSBleHRyYSBzaGFkb3cuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY4ODk5CisgICAgaWYgKGNvbnRleHQuaGFzU2hhZG93KCkpIHsKKyAgICAgICAg
R3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAgICBj
b250ZXh0LmNsZWFyU2hhZG93KCk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QobV9maWxsQm91
bmRpbmdCb3gpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBjb250ZXh0
LmZpbGxSZWN0KG1fZmlsbEJvdW5kaW5nQm94KTsKK30KKwordm9pZCBMZWdhY3lSZW5kZXJTVkdS
ZWN0OjpzdHJva2VTaGFwZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAg
aWYgKCFzdHlsZSgpLmhhc1Zpc2libGVTdHJva2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKG1fdXNlUGF0aEZhbGxiYWNrKSB7CisgICAgICAgIExlZ2FjeVJlbmRlclNWR1NoYXBlOjpz
dHJva2VTaGFwZShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRl
eHQuc3Ryb2tlUmVjdChtX2ZpbGxCb3VuZGluZ0JveCwgc3Ryb2tlV2lkdGgoKSk7Cit9CisKK2Jv
b2wgTGVnYWN5UmVuZGVyU1ZHUmVjdDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25z
dCBGbG9hdFBvaW50JiBwb2ludCwgUG9pbnRDb29yZGluYXRlU3BhY2UgcG9pbnRDb29yZGluYXRl
U3BhY2UpCit7CisgICAgLy8gVGhlIG9wdGltaXplZCBjb250YWlucyBjb2RlIGJlbG93IGRvZXMg
bm90IHN1cHBvcnQgbm9uLXNtb290aCBzdHJva2VzIHNvIHdlIG5lZWQKKyAgICAvLyB0byBmYWxs
IGJhY2sgdG8gTGVnYWN5UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFp
bnMgaW4gdGhlc2UgY2FzZXMuCisgICAgaWYgKG1fdXNlUGF0aEZhbGxiYWNrIHx8ICFoYXNTbW9v
dGhTdHJva2UoKSkgeworICAgICAgICBpZiAoIWhhc1BhdGgoKSkKKyAgICAgICAgICAgIExlZ2Fj
eVJlbmRlclNWR1NoYXBlOjp1cGRhdGVTaGFwZUZyb21FbGVtZW50KCk7CisgICAgICAgIHJldHVy
biBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhwb2lu
dCwgcG9pbnRDb29yZGluYXRlU3BhY2UpOworICAgIH0KKworICAgIHJldHVybiBtX291dGVyU3Ry
b2tlUmVjdC5jb250YWlucyhwb2ludCwgRmxvYXRSZWN0OjpJbnNpZGVPck9uU3Ryb2tlKSAmJiAh
bV9pbm5lclN0cm9rZVJlY3QuY29udGFpbnMocG9pbnQsIEZsb2F0UmVjdDo6SW5zaWRlQnV0Tm90
T25TdHJva2UpOworfQorCitib29sIExlZ2FjeVJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50
RmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBXaW5kUnVsZSBmaWxs
UnVsZSkgY29uc3QKK3sKKyAgICBpZiAobV91c2VQYXRoRmFsbGJhY2spCisgICAgICAgIHJldHVy
biBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMocG9pbnQs
IGZpbGxSdWxlKTsKKyAgICByZXR1cm4gbV9maWxsQm91bmRpbmdCb3guY29udGFpbnMocG9pbnQu
eCgpLCBwb2ludC55KCkpOworfQorCitib29sIExlZ2FjeVJlbmRlclNWR1JlY3Q6OmlzUmVuZGVy
aW5nRGlzYWJsZWQoKSBjb25zdAoreworICAgIC8vIEEgd2lkdGggb3IgaGVpZ2h0IG9mIHplcm8g
ZGlzYWJsZXMgcmVuZGVyaW5nIGZvciB0aGUgZWxlbWVudCwgYW5kIHJlc3VsdHMgaW4gYW4gZW1w
dHkgYm91bmRpbmcgYm94LgorICAgIHJldHVybiBtX2ZpbGxCb3VuZGluZ0JveC5pc0VtcHR5KCk7
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5
UmVuZGVyU1ZHUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5k
ZXJTVkdSZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk3YzkwNmRhYmY5ZmY5ZDQ2NTQxYTdiMTY4YzJkZGMx
YWUzNjY2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
TGVnYWN5UmVuZGVyU1ZHUmVjdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5h
dGEgSG9kb3ZhbiA8cmVuaUB3ZWJraXQub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0Yg
U1pFR0VEIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBT
WkVHRUQgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1NoYXBlLmgiCisj
aW5jbHVkZSAiU1ZHUmVjdEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBMZWdhY3lSZW5kZXJTVkdSZWN0IGZpbmFsIDogcHVibGljIExlZ2FjeVJlbmRlclNWR1NoYXBl
IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExlZ2FjeVJlbmRlclNWR1JlY3QpOworcHVi
bGljOgorICAgIExlZ2FjeVJlbmRlclNWR1JlY3QoU1ZHUmVjdEVsZW1lbnQmLCBSZW5kZXJTdHls
ZSYmKTsKKyAgICB2aXJ0dWFsIH5MZWdhY3lSZW5kZXJTVkdSZWN0KCk7CisKKyAgICBTVkdSZWN0
RWxlbWVudCYgcmVjdEVsZW1lbnQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdyYXBo
aWNzRWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOworCisgICAgY29uc3QgY2hhciogcmVuZGVyTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSZWN0IjsgfQorCisgICAgdm9p
ZCB1cGRhdGVTaGFwZUZyb21FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV91c2VQYXRoRmFsbGJhY2sgPyBMZWdhY3lSZW5kZXJT
VkdTaGFwZTo6aXNFbXB0eSgpIDogbV9maWxsQm91bmRpbmdCb3guaXNFbXB0eSgpOyB9CisgICAg
Ym9vbCBpc1JlbmRlcmluZ0Rpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBmaWxs
U2hhcGUoR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdHJva2VT
aGFwZShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNoYXBlRGVw
ZW5kZW50U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYsIFBvaW50Q29vcmRpbmF0ZVNw
YWNlID0gR2xvYmFsQ29vcmRpbmF0ZVNwYWNlKSBvdmVycmlkZTsKKyAgICBib29sIHNoYXBlRGVw
ZW5kZW50RmlsbENvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBXaW5kUnVsZSkgY29u
c3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgRmxvYXRSZWN0IG1faW5uZXJTdHJva2VSZWN0
OworICAgIEZsb2F0UmVjdCBtX291dGVyU3Ryb2tlUmVjdDsKKyAgICBib29sIG1fdXNlUGF0aEZh
bGxiYWNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFhZmJhYWI3ZjY1MDA1OWViNTY1NDg3MzdlODVjZWU0ZDMyNDFkYjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgUmVuYXRhIEhvZG92YW4gPHJlbmlAd2Via2l0Lm9yZz4KLSAqIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlJlbmRlclNWR1JlY3QuaCIKLQotI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5l
cy5oIgotI2luY2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVycy5oIgotI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFJlbmRlclNWR1JlY3QpOwotCi1SZW5kZXJTVkdSZWN0OjpSZW5kZXJT
VkdSZWN0KFNWR1JlY3RFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAg
IDogTGVnYWN5UmVuZGVyU1ZHU2hhcGUoZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCi0gICAgLCBt
X3VzZVBhdGhGYWxsYmFjayhmYWxzZSkKLXsKLX0KLQotUmVuZGVyU1ZHUmVjdDo6flJlbmRlclNW
R1JlY3QoKSA9IGRlZmF1bHQ7Ci0KLVNWR1JlY3RFbGVtZW50JiBSZW5kZXJTVkdSZWN0OjpyZWN0
RWxlbWVudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRvd25jYXN0PFNWR1JlY3RFbGVtZW50PihM
ZWdhY3lSZW5kZXJTVkdTaGFwZTo6Z3JhcGhpY3NFbGVtZW50KCkpOwotfQotCi12b2lkIFJlbmRl
clNWR1JlY3Q6OnVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKQotewotICAgIC8vIEJlZm9yZSBjcmVh
dGluZyBhIG5ldyBvYmplY3Qgd2UgbmVlZCB0byBjbGVhciB0aGUgY2FjaGVkIGJvdW5kaW5nIGJv
eAotICAgIC8vIHRvIGF2b2lkIHVzaW5nIGdhcmJhZ2UuCi0gICAgbV9maWxsQm91bmRpbmdCb3gg
PSBGbG9hdFJlY3QoKTsKLSAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IEZsb2F0UmVjdCgpOwotICAg
IG1fb3V0ZXJTdHJva2VSZWN0ID0gRmxvYXRSZWN0KCk7Ci0gICAgY2xlYXJQYXRoKCk7Ci0gICAg
bV91c2VQYXRoRmFsbGJhY2sgPSBmYWxzZTsKLQotICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3Ro
Q29udGV4dCgmcmVjdEVsZW1lbnQoKSk7Ci0gICAgRmxvYXRTaXplIGJvdW5kaW5nQm94U2l6ZShs
ZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkud2lkdGgoKSwgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgpLCBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuaGVpZ2h0KCks
IFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpOwotCi0gICAgLy8gU3BlYzogIkEgbmVnYXRpdmUgdmFs
dWUgaXMgaWxsZWdhbC4gQSB2YWx1ZSBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBvZiB0aGUg
ZWxlbWVudC4iCi0gICAgaWYgKGJvdW5kaW5nQm94U2l6ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChyZWN0RWxlbWVudCgpLnJ4KCkudmFsdWUobGVuZ3RoQ29udGV4dCkg
PiAwIHx8IHJlY3RFbGVtZW50KCkucnkoKS52YWx1ZShsZW5ndGhDb250ZXh0KSA+IDAgfHwgaGFz
Tm9uU2NhbGluZ1N0cm9rZSgpKSB7Ci0gICAgICAgIC8vIEZhbGwgYmFjayB0byBMZWdhY3lSZW5k
ZXJTVkdTaGFwZQotICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9t
RWxlbWVudCgpOwotICAgICAgICBtX3VzZVBhdGhGYWxsYmFjayA9IHRydWU7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBtX2ZpbGxCb3VuZGluZ0JveCA9IEZsb2F0UmVjdChGbG9hdFBv
aW50KGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLngoKSwg
U1ZHTGVuZ3RoTW9kZTo6V2lkdGgpLAotICAgICAgICBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVu
Z3RoKHN0eWxlKCkuc3ZnU3R5bGUoKS55KCksIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpLAotICAg
ICAgICBib3VuZGluZ0JveFNpemUpOwotCi0gICAgLy8gVG8gZGVjaWRlIGlmIHRoZSBzdHJva2Ug
Y29udGFpbnMgYSBwb2ludCB3ZSBjcmVhdGUgdHdvIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUg
aW5uZXIgYW5kCi0gICAgLy8gdGhlIG91dGVyIHN0cm9rZSBib3JkZXJzLiBBIHN0cm9rZSBjb250
YWlucyB0aGUgcG9pbnQsIGlmIHRoZSBwb2ludCBpcyBiZXR3ZWVuIHRoZW0uCi0gICAgbV9pbm5l
clN0cm9rZVJlY3QgPSBtX2ZpbGxCb3VuZGluZ0JveDsKLSAgICBtX291dGVyU3Ryb2tlUmVjdCA9
IG1fZmlsbEJvdW5kaW5nQm94OwotCi0gICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5oYXNTdHJv
a2UoKSkgewotICAgICAgICBmbG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdpZHRoKCk7
Ci0gICAgICAgIG1faW5uZXJTdHJva2VSZWN0LmluZmxhdGUoLXN0cm9rZVdpZHRoIC8gMik7Ci0g
ICAgICAgIG1fb3V0ZXJTdHJva2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGggLyAyKTsKLSAgICB9
Ci0KLSAgICBtX3N0cm9rZUJvdW5kaW5nQm94ID0gbV9vdXRlclN0cm9rZVJlY3Q7Ci0KLSNpZiBV
U0UoQ0cpCi0gICAgLy8gQ29yZUdyYXBoaWNzIGNhbiBpbmZsYXRlIHRoZSBzdHJva2UgYnkgMXB4
IHdoZW4gZHJhd2luZyBhIHJlY3RhbmdsZSB3aXRoIGFudGlhbGlhc2luZyBkaXNhYmxlZCBhdCBu
b24taW50ZWdlciBjb29yZGluYXRlcywgd2UgbmVlZCB0byBjb21wZW5zYXRlLgotICAgIGlmIChz
dHlsZSgpLnN2Z1N0eWxlKCkuc2hhcGVSZW5kZXJpbmcoKSA9PSBTaGFwZVJlbmRlcmluZzo6Q3Jp
c3BFZGdlcykKLSAgICAgICAgbV9zdHJva2VCb3VuZGluZ0JveC5pbmZsYXRlKDEpOwotI2VuZGlm
Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHUmVjdDo6ZmlsbFNoYXBlKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkgY29uc3QKLXsKLSAgICBpZiAobV91c2VQYXRoRmFsbGJhY2spIHsKLSAgICAgICAgTGVn
YWN5UmVuZGVyU1ZHU2hhcGU6OmZpbGxTaGFwZShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotI2lmIFVTRShDRykKLSAgICAvLyBGSVhNRTogQ0cgaW1wbGVtZW50YXRpb24gb2Yg
R3JhcGhpY3NDb250ZXh0Q0c6OmZpbGxSZWN0IGhhcyBhbiBvd24KLSAgICAvLyBzaGFkb3cgZHJh
d2luZyBtZXRob2QsIHdoaWNoIGRyYXdzIGFuIGV4dHJhIHNoYWRvdy4KLSAgICAvLyBUaGlzIGlz
IGEgd29ya2Fyb3VuZCBmb3Igc3dpdGNoaW5nIG9mZiB0aGUgZXh0cmEgc2hhZG93LgotICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg5OQotICAgIGlmIChj
b250ZXh0Lmhhc1NoYWRvdygpKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIg
c3RhdGVTYXZlcihjb250ZXh0KTsKLSAgICAgICAgY29udGV4dC5jbGVhclNoYWRvdygpOwotICAg
ICAgICBjb250ZXh0LmZpbGxSZWN0KG1fZmlsbEJvdW5kaW5nQm94KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSNlbmRpZgotCi0gICAgY29udGV4dC5maWxsUmVjdChtX2ZpbGxCb3VuZGluZ0Jv
eCk7Ci19Ci0KLXZvaWQgUmVuZGVyU1ZHUmVjdDo6c3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KSBjb25zdAotewotICAgIGlmICghc3R5bGUoKS5oYXNWaXNpYmxlU3Ryb2tlKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjaykgewotICAgICAg
ICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6c3Ryb2tlU2hhcGUoY29udGV4dCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBjb250ZXh0LnN0cm9rZVJlY3QobV9maWxsQm91bmRpbmdCb3gs
IHN0cm9rZVdpZHRoKCkpOwotfQotCi1ib29sIFJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50
U3Ryb2tlQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIFBvaW50Q29vcmRpbmF0ZVNw
YWNlIHBvaW50Q29vcmRpbmF0ZVNwYWNlKQotewotICAgIC8vIFRoZSBvcHRpbWl6ZWQgY29udGFp
bnMgY29kZSBiZWxvdyBkb2VzIG5vdCBzdXBwb3J0IG5vbi1zbW9vdGggc3Ryb2tlcyBzbyB3ZSBu
ZWVkCi0gICAgLy8gdG8gZmFsbCBiYWNrIHRvIExlZ2FjeVJlbmRlclNWR1NoYXBlOjpzaGFwZURl
cGVuZGVudFN0cm9rZUNvbnRhaW5zIGluIHRoZXNlIGNhc2VzLgotICAgIGlmIChtX3VzZVBhdGhG
YWxsYmFjayB8fCAhaGFzU21vb3RoU3Ryb2tlKCkpIHsKLSAgICAgICAgaWYgKCFoYXNQYXRoKCkp
Ci0gICAgICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVu
dCgpOwotICAgICAgICByZXR1cm4gTGVnYWN5UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50
U3Ryb2tlQ29udGFpbnMocG9pbnQsIHBvaW50Q29vcmRpbmF0ZVNwYWNlKTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gbV9vdXRlclN0cm9rZVJlY3QuY29udGFpbnMocG9pbnQsIEZsb2F0UmVjdDo6SW5z
aWRlT3JPblN0cm9rZSkgJiYgIW1faW5uZXJTdHJva2VSZWN0LmNvbnRhaW5zKHBvaW50LCBGbG9h
dFJlY3Q6Okluc2lkZUJ1dE5vdE9uU3Ryb2tlKTsKLX0KLQotYm9vbCBSZW5kZXJTVkdSZWN0Ojpz
aGFwZURlcGVuZGVudEZpbGxDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3Qg
V2luZFJ1bGUgZmlsbFJ1bGUpIGNvbnN0Ci17Ci0gICAgaWYgKG1fdXNlUGF0aEZhbGxiYWNrKQot
ICAgICAgICByZXR1cm4gTGVnYWN5UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50RmlsbENv
bnRhaW5zKHBvaW50LCBmaWxsUnVsZSk7Ci0gICAgcmV0dXJuIG1fZmlsbEJvdW5kaW5nQm94LmNv
bnRhaW5zKHBvaW50LngoKSwgcG9pbnQueSgpKTsKLX0KLQotYm9vbCBSZW5kZXJTVkdSZWN0Ojpp
c1JlbmRlcmluZ0Rpc2FibGVkKCkgY29uc3QKLXsKLSAgICAvLyBBIHdpZHRoIG9yIGhlaWdodCBv
ZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnQsIGFuZCByZXN1bHRzIGlu
IGFuIGVtcHR5IGJvdW5kaW5nIGJveC4KLSAgICByZXR1cm4gbV9maWxsQm91bmRpbmdCb3guaXNF
bXB0eSgpOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTczY2RjOTc3ZmE2Njg0MDk1
OWJlMWNlNDM3MmM2ZTBlOWE5MzYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5o
CisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBVbml2ZXJzaXR5IG9mIFN6ZWdlZAotICogQ29weXJpZ2h0IChDKSAyMDExIFJlbmF0YSBIb2Rv
dmFuIDxyZW5pQHdlYmtpdC5vcmc+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQg
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCIKLSNpbmNsdWRl
ICJTVkdSZWN0RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRl
clNWR1JlY3QgZmluYWwgOiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZHU2hhcGUgewotICAgIFdURl9N
QUtFX0lTT19BTExPQ0FURUQoUmVuZGVyU1ZHUmVjdCk7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyU1ZH
UmVjdChTVkdSZWN0RWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZpcnR1YWwgflJlbmRl
clNWR1JlY3QoKTsKLQotICAgIFNWR1JlY3RFbGVtZW50JiByZWN0RWxlbWVudCgpIGNvbnN0Owot
Ci1wcml2YXRlOgotICAgIHZvaWQgZ3JhcGhpY3NFbGVtZW50KCkgY29uc3QgPSBkZWxldGU7Ci0K
LSAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJl
bmRlclNWR1JlY3QiOyB9Ci0KLSAgICB2b2lkIHVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKSBvdmVy
cmlkZTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3VzZVBh
dGhGYWxsYmFjayA/IExlZ2FjeVJlbmRlclNWR1NoYXBlOjppc0VtcHR5KCkgOiBtX2ZpbGxCb3Vu
ZGluZ0JveC5pc0VtcHR5KCk7IH0KLSAgICBib29sIGlzUmVuZGVyaW5nRGlzYWJsZWQoKSBjb25z
dCBvdmVycmlkZTsKLSAgICB2b2lkIGZpbGxTaGFwZShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBGbG9h
dFBvaW50JiwgUG9pbnRDb29yZGluYXRlU3BhY2UgPSBHbG9iYWxDb29yZGluYXRlU3BhY2UpIG92
ZXJyaWRlOwotICAgIGJvb2wgc2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMoY29uc3QgRmxvYXRQ
b2ludCYsIGNvbnN0IFdpbmRSdWxlKSBjb25zdCBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBG
bG9hdFJlY3QgbV9pbm5lclN0cm9rZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IG1fb3V0ZXJTdHJva2VS
ZWN0OwotICAgIGJvb2wgbV91c2VQYXRoRmFsbGJhY2s7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCAyZDg4MmE3MjZj
YzJiMTAyYjAzZmI0NmIyYTMzZjEzMDhmNGVmNTFjLi5jMTZjMTdiYzJkOGEwNDczZWU2NDU4YWJh
YzA2YzdiY2ZiZDU4MTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAg
LTIzLDcgKzIzLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdSZWN0RWxl
bWVudC5oIgogCi0jaW5jbHVkZSAiUmVuZGVyU1ZHUmVjdC5oIgorI2luY2x1ZGUgIkxlZ2FjeVJl
bmRlclNWR1JlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnRJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
QEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IFNWR1JlY3RFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBz
dHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVu
ZGVyZXI8UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4g
Y3JlYXRlUmVuZGVyZXI8TGVnYWN5UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUp
KTsKIH0KIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448481</attachid>
            <date>2022-01-06 02:50:59 -0800</date>
            <delta_ts>2022-01-06 02:56:24 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-234878-20220106025058.patch</filename>
            <type>text/plain</type>
            <size>28382</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzRmODU1NTFlMmY2ZWQz
YTdiMjQ4ZGM2Yzc4ODI3ZDZiZDIzZmM2ZC4uY2FiNDFiNDg3ZDNiNjdhZjM3ZmMwYmNhYzkzY2I2
NDg0MGM3YTRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTA2ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtMQlNF
XSBSZW5hbWUgUmVuZGVyU1ZHUmVjdCAtPiBMZWdhY3lSZW5kZXJTVkdSZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4NzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb2xsb3dpbmcgdGhlIGVzdGFi
bGlzaGVkIHByb2NlZHVyZTogcmVuYW1lIFJlbmRlclNWR1JlY3QgLT4gTGVnYWN5UmVuZGVyU1ZH
UmVjdC4KKyAgICAgICAgSW4gYSBmb2xsb3ctdXAgcGF0Y2ggUmVuZGVyU1ZHUmVjdCB3aWxsIGJl
IHJlaW50cm9kdWNlZCBmb3IgTEJTRSwgaW5oZXJpdGluZyBmcm9tCisgICAgICAgIFJlbmRlclNW
R1NoYXBlIGluc3RlYWQgb2YgTGVnYWN5UmVuZGVyU1ZHU2hhcGUuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cywgbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKworICAgICAgICAq
IFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1JlY3QuY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlbmRlclNWR1JlY3Q6OkxlZ2FjeVJlbmRlclNWR1Jl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUmVjdDo6cmVjdEVsZW1lbnQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUmVjdDo6dXBkYXRlU2hh
cGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSZWN0Ojpm
aWxsU2hhcGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUmVjdDo6
c3Ryb2tlU2hhcGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUmVj
dDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpMZWdh
Y3lSZW5kZXJTVkdSZWN0OjpzaGFwZURlcGVuZGVudEZpbGxDb250YWlucyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSZWN0Ojppc1JlbmRlcmluZ0Rpc2FibGVkIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1JlY3QuaDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5oLgor
ICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdS
ZWN0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKToKKwogMjAyMi0wMS0wNSAgTmlrb2xh
cyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0g
UmVuYW1lIFJlbmRlclNWR1NoYXBlIC0+IExlZ2FjeVJlbmRlclNWR1NoYXBlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDZhNjUzOTRkMjg5NjRiODUxNTJmNzA4NzZiOTE1ZGU3N2Q4ZmJjZWYuLmNiMjgzY2Vl
NGY1OWM1Y2Q3ZDhmMGFjNjZiZTFjM2RiZDg2ZDEyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNDY4
LDYgKzI0NjgsNyBAQCByZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmNwcAogcmVuZGVy
aW5nL3N0eWxlL1RleHRTaXplQWRqdXN0bWVudC5jcHAKIHJlbmRlcmluZy9zdHlsZS9XaWxsQ2hh
bmdlRGF0YS5jcHAKIHJlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3Bw
CityZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1JlY3QuY3BwCiByZW5kZXJpbmcvc3ZnL0xl
Z2FjeVJlbmRlclNWR1Jvb3QuY3BwCiByZW5kZXJpbmcvc3ZnL0xlZ2FjeVJlbmRlclNWR1NoYXBl
LmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHAKQEAgLTI0ODEsNyArMjQ4Miw2
IEBAIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmVUZXh0LmNwcAogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUGF0aC5jcHAKLXJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVjdC5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5jcHAKIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VDb250YWluZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmM1YzI3NTEzZDk5MTg3NWRhNzk3MmY2NDA2
Mzk0MGE1MDIzOGVkYy4uMTJhNGI1ZjdlOGUxNTc2MGFhNzEwNzFlYmM5ZGFlODk4NWNjZGMyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzI3MSw3ICszMjcxLDcgQEAKIAkJQTEwNEVDNUQyMjBBM0U0QjAwQ0JGNjdBIC8qIEpT
TW9ja1BheW1lbnRDb250YWN0RmllbGRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMDRFQzVCMjIwQTNFNDMwMENCRjY3QSAvKiBKU01vY2tQYXlt
ZW50Q29udGFjdEZpZWxkcy5jcHAgKi87IH07CiAJCUExMDRFQzVFMjIwQTNFNEUwMENCRjY3QSAv
KiBKU01vY2tQYXltZW50Q29udGFjdEZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwNEVDNUMyMjBBM0U0NDAwQ0JGNjdBIC8qIEpTTW9ja1Bh
eW1lbnRDb250YWN0RmllbGRzLmggKi87IH07CiAJCUExMDRGMjQ0MTRDNzFGN0EwMDlFMkMyMyAv
KiBDYWNoZWRTVkdEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTEwNEYyNDIxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTEw
QkI1ODUxNDg0RTNBNzAwQjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEJCNTgzMTQ4NEUzQTcwMEIyRTg3QSAv
KiBSZW5kZXJTVkdSZWN0LmggKi87IH07CisJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3QSAvKiBM
ZWdhY3lSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVj
dC5oICovOyB9OwogCQlBMTBCQjU4QjE0ODRFM0IzMDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZH
U2hhcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MEJCNTg5MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oICovOyB9Owog
CQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogTGVnYWN5UHJldmlld0xvYWRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwREJGNDYx
OEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTBEQzc2QjE0NzQ3QkFC
MDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTMzNzgsOCArMTMzNzgsOCBAQAogCQlBMTA0RUM1QzIyMEEzRTQ0MDBDQkY2N0EgLyogSlNNb2Nr
UGF5bWVudENvbnRhY3RGaWVsZHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNb2NrUGF5bWVudENvbnRh
Y3RGaWVsZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwNEYyNDExNEM3MUY3
QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENhY2hlZFNWR0RvY3VtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEwNEYyNDIxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3VtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNWR0RvY3VtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMEJCNTgyMTQ4NEUzQTcwMEIyRTg3QSAv
KiBSZW5kZXJTVkdSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlclNWR1JlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMTBCQjU4
MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExMEJCNTgyMTQ4NEUzQTcwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeVJlbmRlclNWR1JlY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4
N0EgLyogTGVnYWN5UmVuZGVyU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMZWdhY3lSZW5kZXJTVkdSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExMEJCNTg4MTQ4NEUzQjMwMEIyRTg3QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lSZW5kZXJTVkdTaGFwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMEJCNTg5MTQ4NEUzQjMwMEIyRTg3
QSAvKiBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBMZWdhY3lSZW5kZXJTVkdTaGFwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMTBENkU5NDIxNDRDOTk4MDBGREQxNEQgLyogSlNQYXltZW50UmVzcG9uc2VDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNQYXltZW50UmVzcG9uc2VDdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg5MTIsNiArMTg5MTIsOCBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJNDM2NzA4OEIxMkQ5Q0E0QTAwMDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR01vZGVs
T2JqZWN0LmNwcCAqLywKIAkJCQk0MzY3MDg4QzEyRDlDQTRBMDAwNDQyMzQgLyogTGVnYWN5UmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaCAqLywKKwkJCQlBMTBCQjU4MjE0ODRFM0E3MDBCMkU4N0EgLyog
TGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHAgKi8sCisJCQkJQTEwQkI1ODMxNDg0RTNBNzAwQjJFODdB
IC8qIExlZ2FjeVJlbmRlclNWR1JlY3QuaCAqLywKIAkJCQk0MzY3MDhBNTEyRDlDQTRCMDAwNDQy
MzQgLyogTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgKi8sCiAJCQkJNDM2NzA4QTYxMkQ5Q0E0QjAw
MDQ0MjM0IC8qIExlZ2FjeVJlbmRlclNWR1Jvb3QuaCAqLywKIAkJCQlBMTBCQjU4ODE0ODRFM0Iz
MDBCMkU4N0EgLyogTGVnYWN5UmVuZGVyU1ZHU2hhcGUuY3BwICovLApAQCAtMTg5NDIsOCArMTg5
NDQsNiBAQAogCQkJCTQzNjcwOEZEMTJEOUNBNEEwMDAzMjExNCAvKiBSZW5kZXJTVkdNb2RlbE9i
amVjdC5oICovLAogCQkJCUFEREYxQUQ0MTI1N0NEOUEwMDAzQTc1OSAvKiBSZW5kZXJTVkdQYXRo
LmNwcCAqLywKIAkJCQlBRERGMUFENTEyNTdDRDlBMDAwM0E3NTkgLyogUmVuZGVyU1ZHUGF0aC5o
ICovLAotCQkJCUExMEJCNTgyMTQ4NEUzQTcwMEIyRTg3QSAvKiBSZW5kZXJTVkdSZWN0LmNwcCAq
LywKLQkJCQlBMTBCQjU4MzE0ODRFM0E3MDBCMkU4N0EgLyogUmVuZGVyU1ZHUmVjdC5oICovLAog
CQkJCTQzNjcwODhEMTJEOUNBNEEwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZS5jcHAgKi8s
CiAJCQkJNDM2NzA4OEUxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlLmggKi8s
CiAJCQkJNDM2NzA4OEYxMkQ5Q0E0QTAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBl
ci5jcHAgKi8sCkBAIC0zNTkxOSw2ICszNTkxOSw3IEBACiAJCQkJQTE4NUI0MkExRTgyMTFBMTAw
REM5MTE4IC8qIExlZ2FjeVByZXZpZXdMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMERC
RjQ3MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MzY3MDhDQjEyRDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZH
TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUExMEJCNTg1MTQ4NEUzQTcwMEIyRTg3
QSAvKiBMZWdhY3lSZW5kZXJTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MzY3MDhFNTEy
RDlDQTRCMDAwNDQyMzQgLyogTGVnYWN5UmVuZGVyU1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTEwQkI1OEIxNDg0RTNCMzAwQjJFODdBIC8qIExlZ2FjeVJlbmRlclNWR1NoYXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREY3NDdGNzI3MEY4NkE0MDA4RkVFRUMgLyogTGVnYWN5UmVuZGVy
U1ZHU2hhcGVJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NzM2LDcgKzM2NzM3LDYgQEAK
IAkJCQkwODU0QjAxNzEyNTVFNEU2MDBCOUNERDAgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDM2NzBDOTM0MkQ5QkM0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR01v
ZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBRERGMUFENzEyNTdDRDlBMDAwM0E3NTkg
LyogUmVuZGVyU1ZHUGF0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTEwQkI1ODUxNDg0RTNBNzAw
QjJFODdBIC8qIFJlbmRlclNWR1JlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzNjcwOENEMTJE
OUNBNEIwMDA0NDIzNCAvKiBSZW5kZXJTVkdSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDM2NzA4Q0YxMkQ5Q0E0QjAwMDQ0MjM0IC8qIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RGNzQ3RUYyNzBGNkY4RDAwOEZFRUVDIC8qIFJlbmRlclNWR1Jl
c291cmNlQ2xpcHBlcklubGluZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdSZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NGQ1MDcwNWNkMDA3NDJiYjc3MTRjYzU0N2ZiNWYyZjQzYTcwMDE0YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUmVjdC5jcHAK
QEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVyc2l0eSBv
ZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJr
aXQub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHUmVjdC5oIgorCisjaW5jbHVkZSAiTGVnYWN5
UmVuZGVyU1ZHU2hhcGVJbmxpbmVzLmgiCisjaW5jbHVkZSAiU1ZHRWxlbWVudFR5cGVIZWxwZXJz
LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoTGVnYWN5UmVuZGVyU1ZHUmVjdCk7
CisKK0xlZ2FjeVJlbmRlclNWR1JlY3Q6OkxlZ2FjeVJlbmRlclNWR1JlY3QoU1ZHUmVjdEVsZW1l
bnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBMZWdhY3lSZW5kZXJTVkdT
aGFwZShlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKKyAgICAsIG1fdXNlUGF0aEZhbGxiYWNrKGZh
bHNlKQoreworfQorCitMZWdhY3lSZW5kZXJTVkdSZWN0Ojp+TGVnYWN5UmVuZGVyU1ZHUmVjdCgp
ID0gZGVmYXVsdDsKKworU1ZHUmVjdEVsZW1lbnQmIExlZ2FjeVJlbmRlclNWR1JlY3Q6OnJlY3RF
bGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG93bmNhc3Q8U1ZHUmVjdEVsZW1lbnQ+KExl
Z2FjeVJlbmRlclNWR1NoYXBlOjpncmFwaGljc0VsZW1lbnQoKSk7Cit9CisKK3ZvaWQgTGVnYWN5
UmVuZGVyU1ZHUmVjdDo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpCit7CisgICAgLy8gQmVmb3Jl
IGNyZWF0aW5nIGEgbmV3IG9iamVjdCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBjYWNoZWQgYm91bmRp
bmcgYm94CisgICAgLy8gdG8gYXZvaWQgdXNpbmcgZ2FyYmFnZS4KKyAgICBtX2ZpbGxCb3VuZGlu
Z0JveCA9IEZsb2F0UmVjdCgpOworICAgIG1faW5uZXJTdHJva2VSZWN0ID0gRmxvYXRSZWN0KCk7
CisgICAgbV9vdXRlclN0cm9rZVJlY3QgPSBGbG9hdFJlY3QoKTsKKyAgICBjbGVhclBhdGgoKTsK
KyAgICBtX3VzZVBhdGhGYWxsYmFjayA9IGZhbHNlOworCisgICAgU1ZHTGVuZ3RoQ29udGV4dCBs
ZW5ndGhDb250ZXh0KCZyZWN0RWxlbWVudCgpKTsKKyAgICBGbG9hdFNpemUgYm91bmRpbmdCb3hT
aXplKGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS53aWR0aCgpLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCksIGxlbmd0aENvbnRleHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5oZWln
aHQoKSwgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSk7CisKKyAgICAvLyBTcGVjOiAiQSBuZWdhdGl2
ZSB2YWx1ZSBpcyBpbGxlZ2FsLiBBIHZhbHVlIG9mIHplcm8gZGlzYWJsZXMgcmVuZGVyaW5nIG9m
IHRoZSBlbGVtZW50LiIKKyAgICBpZiAoYm91bmRpbmdCb3hTaXplLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKHJlY3RFbGVtZW50KCkucngoKS52YWx1ZShsZW5ndGhDb250
ZXh0KSA+IDAgfHwgcmVjdEVsZW1lbnQoKS5yeSgpLnZhbHVlKGxlbmd0aENvbnRleHQpID4gMCB8
fCBoYXNOb25TY2FsaW5nU3Ryb2tlKCkpIHsKKyAgICAgICAgLy8gRmFsbCBiYWNrIHRvIExlZ2Fj
eVJlbmRlclNWR1NoYXBlCisgICAgICAgIExlZ2FjeVJlbmRlclNWR1NoYXBlOjp1cGRhdGVTaGFw
ZUZyb21FbGVtZW50KCk7CisgICAgICAgIG1fdXNlUGF0aEZhbGxiYWNrID0gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZmlsbEJvdW5kaW5nQm94ID0gRmxvYXRSZWN0KEZs
b2F0UG9pbnQobGVuZ3RoQ29udGV4dC52YWx1ZUZvckxlbmd0aChzdHlsZSgpLnN2Z1N0eWxlKCku
eCgpLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCksCisgICAgICAgIGxlbmd0aENvbnRleHQudmFsdWVG
b3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLnkoKSwgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSks
CisgICAgICAgIGJvdW5kaW5nQm94U2l6ZSk7CisKKyAgICAvLyBUbyBkZWNpZGUgaWYgdGhlIHN0
cm9rZSBjb250YWlucyBhIHBvaW50IHdlIGNyZWF0ZSB0d28gcmVjdHMgd2hpY2ggcmVwcmVzZW50
IHRoZSBpbm5lciBhbmQKKyAgICAvLyB0aGUgb3V0ZXIgc3Ryb2tlIGJvcmRlcnMuIEEgc3Ryb2tl
IGNvbnRhaW5zIHRoZSBwb2ludCwgaWYgdGhlIHBvaW50IGlzIGJldHdlZW4gdGhlbS4KKyAgICBt
X2lubmVyU3Ryb2tlUmVjdCA9IG1fZmlsbEJvdW5kaW5nQm94OworICAgIG1fb3V0ZXJTdHJva2VS
ZWN0ID0gbV9maWxsQm91bmRpbmdCb3g7CisKKyAgICBpZiAoc3R5bGUoKS5zdmdTdHlsZSgpLmhh
c1N0cm9rZSgpKSB7CisgICAgICAgIGZsb2F0IHN0cm9rZVdpZHRoID0gdGhpcy0+c3Ryb2tlV2lk
dGgoKTsKKyAgICAgICAgbV9pbm5lclN0cm9rZVJlY3QuaW5mbGF0ZSgtc3Ryb2tlV2lkdGggLyAy
KTsKKyAgICAgICAgbV9vdXRlclN0cm9rZVJlY3QuaW5mbGF0ZShzdHJva2VXaWR0aCAvIDIpOwor
ICAgIH0KKworICAgIG1fc3Ryb2tlQm91bmRpbmdCb3ggPSBtX291dGVyU3Ryb2tlUmVjdDsKKwor
I2lmIFVTRShDRykKKyAgICAvLyBDb3JlR3JhcGhpY3MgY2FuIGluZmxhdGUgdGhlIHN0cm9rZSBi
eSAxcHggd2hlbiBkcmF3aW5nIGEgcmVjdGFuZ2xlIHdpdGggYW50aWFsaWFzaW5nIGRpc2FibGVk
IGF0IG5vbi1pbnRlZ2VyIGNvb3JkaW5hdGVzLCB3ZSBuZWVkIHRvIGNvbXBlbnNhdGUuCisgICAg
aWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5zaGFwZVJlbmRlcmluZygpID09IFNoYXBlUmVuZGVyaW5n
OjpDcmlzcEVkZ2VzKQorICAgICAgICBtX3N0cm9rZUJvdW5kaW5nQm94LmluZmxhdGUoMSk7Cisj
ZW5kaWYKK30KKwordm9pZCBMZWdhY3lSZW5kZXJTVkdSZWN0OjpmaWxsU2hhcGUoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0KSBjb25zdAoreworICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjaykgewor
ICAgICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6ZmlsbFNoYXBlKGNvbnRleHQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisjaWYgVVNFKENHKQorICAgIC8vIEZJWE1FOiBDRyBpbXBsZW1l
bnRhdGlvbiBvZiBHcmFwaGljc0NvbnRleHRDRzo6ZmlsbFJlY3QgaGFzIGFuIG93bgorICAgIC8v
IHNoYWRvdyBkcmF3aW5nIG1ldGhvZCwgd2hpY2ggZHJhd3MgYW4gZXh0cmEgc2hhZG93LgorICAg
IC8vIFRoaXMgaXMgYSB3b3JrYXJvdW5kIGZvciBzd2l0Y2hpbmcgb2ZmIHRoZSBleHRyYSBzaGFk
b3cuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4ODk5
CisgICAgaWYgKGNvbnRleHQuaGFzU2hhZG93KCkpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0
U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAgICBjb250ZXh0LmNsZWFyU2hh
ZG93KCk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QobV9maWxsQm91bmRpbmdCb3gpOworICAg
ICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBjb250ZXh0LmZpbGxSZWN0KG1fZmls
bEJvdW5kaW5nQm94KTsKK30KKwordm9pZCBMZWdhY3lSZW5kZXJTVkdSZWN0OjpzdHJva2VTaGFw
ZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0Cit7CisgICAgaWYgKCFzdHlsZSgpLmhh
c1Zpc2libGVTdHJva2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fdXNlUGF0aEZh
bGxiYWNrKSB7CisgICAgICAgIExlZ2FjeVJlbmRlclNWR1NoYXBlOjpzdHJva2VTaGFwZShjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRleHQuc3Ryb2tlUmVjdCht
X2ZpbGxCb3VuZGluZ0JveCwgc3Ryb2tlV2lkdGgoKSk7Cit9CisKK2Jvb2wgTGVnYWN5UmVuZGVy
U1ZHUmVjdDo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBw
b2ludCwgUG9pbnRDb29yZGluYXRlU3BhY2UgcG9pbnRDb29yZGluYXRlU3BhY2UpCit7CisgICAg
Ly8gVGhlIG9wdGltaXplZCBjb250YWlucyBjb2RlIGJlbG93IGRvZXMgbm90IHN1cHBvcnQgbm9u
LXNtb290aCBzdHJva2VzIHNvIHdlIG5lZWQKKyAgICAvLyB0byBmYWxsIGJhY2sgdG8gTGVnYWN5
UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMgaW4gdGhlc2UgY2Fz
ZXMuCisgICAgaWYgKG1fdXNlUGF0aEZhbGxiYWNrIHx8ICFoYXNTbW9vdGhTdHJva2UoKSkgewor
ICAgICAgICBpZiAoIWhhc1BhdGgoKSkKKyAgICAgICAgICAgIExlZ2FjeVJlbmRlclNWR1NoYXBl
Ojp1cGRhdGVTaGFwZUZyb21FbGVtZW50KCk7CisgICAgICAgIHJldHVybiBMZWdhY3lSZW5kZXJT
VkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhwb2ludCwgcG9pbnRDb29yZGlu
YXRlU3BhY2UpOworICAgIH0KKworICAgIHJldHVybiBtX291dGVyU3Ryb2tlUmVjdC5jb250YWlu
cyhwb2ludCwgRmxvYXRSZWN0OjpJbnNpZGVPck9uU3Ryb2tlKSAmJiAhbV9pbm5lclN0cm9rZVJl
Y3QuY29udGFpbnMocG9pbnQsIEZsb2F0UmVjdDo6SW5zaWRlQnV0Tm90T25TdHJva2UpOworfQor
Citib29sIExlZ2FjeVJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50RmlsbENvbnRhaW5zKGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBXaW5kUnVsZSBmaWxsUnVsZSkgY29uc3QKK3sK
KyAgICBpZiAobV91c2VQYXRoRmFsbGJhY2spCisgICAgICAgIHJldHVybiBMZWdhY3lSZW5kZXJT
VkdTaGFwZTo6c2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMocG9pbnQsIGZpbGxSdWxlKTsKKyAg
ICByZXR1cm4gbV9maWxsQm91bmRpbmdCb3guY29udGFpbnMocG9pbnQueCgpLCBwb2ludC55KCkp
OworfQorCitib29sIExlZ2FjeVJlbmRlclNWR1JlY3Q6OmlzUmVuZGVyaW5nRGlzYWJsZWQoKSBj
b25zdAoreworICAgIC8vIEEgd2lkdGggb3IgaGVpZ2h0IG9mIHplcm8gZGlzYWJsZXMgcmVuZGVy
aW5nIGZvciB0aGUgZWxlbWVudCwgYW5kIHJlc3VsdHMgaW4gYW4gZW1wdHkgYm91bmRpbmcgYm94
LgorICAgIHJldHVybiBtX2ZpbGxCb3VuZGluZ0JveC5pc0VtcHR5KCk7Cit9CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZHUmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9MZWdhY3lSZW5kZXJTVkdSZWN0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODk3YzkwNmRhYmY5ZmY5ZDQ2NTQxYTdiMTY4YzJkZGMxYWUzNjY2MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvTGVnYWN5UmVuZGVyU1ZH
UmVjdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVW5pdmVy
c2l0eSBvZiBTemVnZWQKKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZW5hdGEgSG9kb3ZhbiA8cmVu
aUB3ZWJraXQub3JnPgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1NoYXBlLmgiCisjaW5jbHVkZSAiU1ZHUmVj
dEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBMZWdhY3lSZW5kZXJT
VkdSZWN0IGZpbmFsIDogcHVibGljIExlZ2FjeVJlbmRlclNWR1NoYXBlIHsKKyAgICBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEKExlZ2FjeVJlbmRlclNWR1JlY3QpOworcHVibGljOgorICAgIExlZ2Fj
eVJlbmRlclNWR1JlY3QoU1ZHUmVjdEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKKyAgICB2aXJ0
dWFsIH5MZWdhY3lSZW5kZXJTVkdSZWN0KCk7CisKKyAgICBTVkdSZWN0RWxlbWVudCYgcmVjdEVs
ZW1lbnQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICB2b2lkIGdyYXBoaWNzRWxlbWVudCgpIGNv
bnN0ID0gZGVsZXRlOworCisgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuICJSZW5kZXJTVkdSZWN0IjsgfQorCisgICAgdm9pZCB1cGRhdGVTaGFwZUZy
b21FbGVtZW50KCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV91c2VQYXRoRmFsbGJhY2sgPyBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6aXNFbXB0
eSgpIDogbV9maWxsQm91bmRpbmdCb3guaXNFbXB0eSgpOyB9CisgICAgYm9vbCBpc1JlbmRlcmlu
Z0Rpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBmaWxsU2hhcGUoR3JhcGhpY3ND
b250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzdHJva2VTaGFwZShHcmFwaGljc0Nv
bnRleHQmKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNoYXBlRGVwZW5kZW50U3Ryb2tlQ29u
dGFpbnMoY29uc3QgRmxvYXRQb2ludCYsIFBvaW50Q29vcmRpbmF0ZVNwYWNlID0gR2xvYmFsQ29v
cmRpbmF0ZVNwYWNlKSBvdmVycmlkZTsKKyAgICBib29sIHNoYXBlRGVwZW5kZW50RmlsbENvbnRh
aW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBXaW5kUnVsZSkgY29uc3Qgb3ZlcnJpZGU7CisK
K3ByaXZhdGU6CisgICAgRmxvYXRSZWN0IG1faW5uZXJTdHJva2VSZWN0OworICAgIEZsb2F0UmVj
dCBtX291dGVyU3Ryb2tlUmVjdDsKKyAgICBib29sIG1fdXNlUGF0aEZhbGxiYWNrOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhZmJhYWI3
ZjY1MDA1OWViNTY1NDg3MzdlODVjZWU0ZDMyNDFkYjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZWN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEgUmVuYXRhIEhvZG92YW4gPHJlbmlAd2Via2l0Lm9yZz4KLSAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJT
SVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJ
VFkgT0YgU1pFR0VEIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbmRlclNWR1JlY3Qu
aCIKLQotI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1NoYXBlSW5saW5lcy5oIgotI2luY2x1ZGUg
IlNWR0VsZW1lbnRUeXBlSGVscGVycy5oIgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KFJlbmRlclNWR1JlY3QpOwotCi1SZW5kZXJTVkdSZWN0OjpSZW5kZXJTVkdSZWN0KFNWR1JlY3RF
bGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQotICAgIDogTGVnYWN5UmVuZGVy
U1ZHU2hhcGUoZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCi0gICAgLCBtX3VzZVBhdGhGYWxsYmFj
ayhmYWxzZSkKLXsKLX0KLQotUmVuZGVyU1ZHUmVjdDo6flJlbmRlclNWR1JlY3QoKSA9IGRlZmF1
bHQ7Ci0KLVNWR1JlY3RFbGVtZW50JiBSZW5kZXJTVkdSZWN0OjpyZWN0RWxlbWVudCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGRvd25jYXN0PFNWR1JlY3RFbGVtZW50PihMZWdhY3lSZW5kZXJTVkdT
aGFwZTo6Z3JhcGhpY3NFbGVtZW50KCkpOwotfQotCi12b2lkIFJlbmRlclNWR1JlY3Q6OnVwZGF0
ZVNoYXBlRnJvbUVsZW1lbnQoKQotewotICAgIC8vIEJlZm9yZSBjcmVhdGluZyBhIG5ldyBvYmpl
Y3Qgd2UgbmVlZCB0byBjbGVhciB0aGUgY2FjaGVkIGJvdW5kaW5nIGJveAotICAgIC8vIHRvIGF2
b2lkIHVzaW5nIGdhcmJhZ2UuCi0gICAgbV9maWxsQm91bmRpbmdCb3ggPSBGbG9hdFJlY3QoKTsK
LSAgICBtX2lubmVyU3Ryb2tlUmVjdCA9IEZsb2F0UmVjdCgpOwotICAgIG1fb3V0ZXJTdHJva2VS
ZWN0ID0gRmxvYXRSZWN0KCk7Ci0gICAgY2xlYXJQYXRoKCk7Ci0gICAgbV91c2VQYXRoRmFsbGJh
Y2sgPSBmYWxzZTsKLQotICAgIFNWR0xlbmd0aENvbnRleHQgbGVuZ3RoQ29udGV4dCgmcmVjdEVs
ZW1lbnQoKSk7Ci0gICAgRmxvYXRTaXplIGJvdW5kaW5nQm94U2l6ZShsZW5ndGhDb250ZXh0LnZh
bHVlRm9yTGVuZ3RoKHN0eWxlKCkud2lkdGgoKSwgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpLCBsZW5n
dGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuaGVpZ2h0KCksIFNWR0xlbmd0aE1vZGU6
OkhlaWdodCkpOwotCi0gICAgLy8gU3BlYzogIkEgbmVnYXRpdmUgdmFsdWUgaXMgaWxsZWdhbC4g
QSB2YWx1ZSBvZiB6ZXJvIGRpc2FibGVzIHJlbmRlcmluZyBvZiB0aGUgZWxlbWVudC4iCi0gICAg
aWYgKGJvdW5kaW5nQm94U2l6ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
IChyZWN0RWxlbWVudCgpLnJ4KCkudmFsdWUobGVuZ3RoQ29udGV4dCkgPiAwIHx8IHJlY3RFbGVt
ZW50KCkucnkoKS52YWx1ZShsZW5ndGhDb250ZXh0KSA+IDAgfHwgaGFzTm9uU2NhbGluZ1N0cm9r
ZSgpKSB7Ci0gICAgICAgIC8vIEZhbGwgYmFjayB0byBMZWdhY3lSZW5kZXJTVkdTaGFwZQotICAg
ICAgICBMZWdhY3lSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpOwotICAg
ICAgICBtX3VzZVBhdGhGYWxsYmFjayA9IHRydWU7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBtX2ZpbGxCb3VuZGluZ0JveCA9IEZsb2F0UmVjdChGbG9hdFBvaW50KGxlbmd0aENvbnRl
eHQudmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5zdmdTdHlsZSgpLngoKSwgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgpLAotICAgICAgICBsZW5ndGhDb250ZXh0LnZhbHVlRm9yTGVuZ3RoKHN0eWxlKCkuc3Zn
U3R5bGUoKS55KCksIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkpLAotICAgICAgICBib3VuZGluZ0Jv
eFNpemUpOwotCi0gICAgLy8gVG8gZGVjaWRlIGlmIHRoZSBzdHJva2UgY29udGFpbnMgYSBwb2lu
dCB3ZSBjcmVhdGUgdHdvIHJlY3RzIHdoaWNoIHJlcHJlc2VudCB0aGUgaW5uZXIgYW5kCi0gICAg
Ly8gdGhlIG91dGVyIHN0cm9rZSBib3JkZXJzLiBBIHN0cm9rZSBjb250YWlucyB0aGUgcG9pbnQs
IGlmIHRoZSBwb2ludCBpcyBiZXR3ZWVuIHRoZW0uCi0gICAgbV9pbm5lclN0cm9rZVJlY3QgPSBt
X2ZpbGxCb3VuZGluZ0JveDsKLSAgICBtX291dGVyU3Ryb2tlUmVjdCA9IG1fZmlsbEJvdW5kaW5n
Qm94OwotCi0gICAgaWYgKHN0eWxlKCkuc3ZnU3R5bGUoKS5oYXNTdHJva2UoKSkgewotICAgICAg
ICBmbG9hdCBzdHJva2VXaWR0aCA9IHRoaXMtPnN0cm9rZVdpZHRoKCk7Ci0gICAgICAgIG1faW5u
ZXJTdHJva2VSZWN0LmluZmxhdGUoLXN0cm9rZVdpZHRoIC8gMik7Ci0gICAgICAgIG1fb3V0ZXJT
dHJva2VSZWN0LmluZmxhdGUoc3Ryb2tlV2lkdGggLyAyKTsKLSAgICB9Ci0KLSAgICBtX3N0cm9r
ZUJvdW5kaW5nQm94ID0gbV9vdXRlclN0cm9rZVJlY3Q7Ci0KLSNpZiBVU0UoQ0cpCi0gICAgLy8g
Q29yZUdyYXBoaWNzIGNhbiBpbmZsYXRlIHRoZSBzdHJva2UgYnkgMXB4IHdoZW4gZHJhd2luZyBh
IHJlY3RhbmdsZSB3aXRoIGFudGlhbGlhc2luZyBkaXNhYmxlZCBhdCBub24taW50ZWdlciBjb29y
ZGluYXRlcywgd2UgbmVlZCB0byBjb21wZW5zYXRlLgotICAgIGlmIChzdHlsZSgpLnN2Z1N0eWxl
KCkuc2hhcGVSZW5kZXJpbmcoKSA9PSBTaGFwZVJlbmRlcmluZzo6Q3Jpc3BFZGdlcykKLSAgICAg
ICAgbV9zdHJva2VCb3VuZGluZ0JveC5pbmZsYXRlKDEpOwotI2VuZGlmCi19Ci0KLXZvaWQgUmVu
ZGVyU1ZHUmVjdDo6ZmlsbFNoYXBlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKLXsK
LSAgICBpZiAobV91c2VQYXRoRmFsbGJhY2spIHsKLSAgICAgICAgTGVnYWN5UmVuZGVyU1ZHU2hh
cGU6OmZpbGxTaGFwZShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotI2lmIFVT
RShDRykKLSAgICAvLyBGSVhNRTogQ0cgaW1wbGVtZW50YXRpb24gb2YgR3JhcGhpY3NDb250ZXh0
Q0c6OmZpbGxSZWN0IGhhcyBhbiBvd24KLSAgICAvLyBzaGFkb3cgZHJhd2luZyBtZXRob2QsIHdo
aWNoIGRyYXdzIGFuIGV4dHJhIHNoYWRvdy4KLSAgICAvLyBUaGlzIGlzIGEgd29ya2Fyb3VuZCBm
b3Igc3dpdGNoaW5nIG9mZiB0aGUgZXh0cmEgc2hhZG93LgotICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODg5OQotICAgIGlmIChjb250ZXh0Lmhhc1NoYWRv
dygpKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKLSAgICAgICAgY29udGV4dC5jbGVhclNoYWRvdygpOwotICAgICAgICBjb250ZXh0LmZp
bGxSZWN0KG1fZmlsbEJvdW5kaW5nQm94KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZgotCi0gICAgY29udGV4dC5maWxsUmVjdChtX2ZpbGxCb3VuZGluZ0JveCk7Ci19Ci0KLXZvaWQg
UmVuZGVyU1ZHUmVjdDo6c3Ryb2tlU2hhcGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25z
dAotewotICAgIGlmICghc3R5bGUoKS5oYXNWaXNpYmxlU3Ryb2tlKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjaykgewotICAgICAgICBMZWdhY3lSZW5kZXJT
VkdTaGFwZTo6c3Ryb2tlU2hhcGUoY29udGV4dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBjb250ZXh0LnN0cm9rZVJlY3QobV9maWxsQm91bmRpbmdCb3gsIHN0cm9rZVdpZHRoKCkp
OwotfQotCi1ib29sIFJlbmRlclNWR1JlY3Q6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMo
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIFBvaW50Q29vcmRpbmF0ZVNwYWNlIHBvaW50Q29vcmRp
bmF0ZVNwYWNlKQotewotICAgIC8vIFRoZSBvcHRpbWl6ZWQgY29udGFpbnMgY29kZSBiZWxvdyBk
b2VzIG5vdCBzdXBwb3J0IG5vbi1zbW9vdGggc3Ryb2tlcyBzbyB3ZSBuZWVkCi0gICAgLy8gdG8g
ZmFsbCBiYWNrIHRvIExlZ2FjeVJlbmRlclNWR1NoYXBlOjpzaGFwZURlcGVuZGVudFN0cm9rZUNv
bnRhaW5zIGluIHRoZXNlIGNhc2VzLgotICAgIGlmIChtX3VzZVBhdGhGYWxsYmFjayB8fCAhaGFz
U21vb3RoU3Ryb2tlKCkpIHsKLSAgICAgICAgaWYgKCFoYXNQYXRoKCkpCi0gICAgICAgICAgICBM
ZWdhY3lSZW5kZXJTVkdTaGFwZTo6dXBkYXRlU2hhcGVGcm9tRWxlbWVudCgpOwotICAgICAgICBy
ZXR1cm4gTGVnYWN5UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50U3Ryb2tlQ29udGFpbnMo
cG9pbnQsIHBvaW50Q29vcmRpbmF0ZVNwYWNlKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbV9vdXRl
clN0cm9rZVJlY3QuY29udGFpbnMocG9pbnQsIEZsb2F0UmVjdDo6SW5zaWRlT3JPblN0cm9rZSkg
JiYgIW1faW5uZXJTdHJva2VSZWN0LmNvbnRhaW5zKHBvaW50LCBGbG9hdFJlY3Q6Okluc2lkZUJ1
dE5vdE9uU3Ryb2tlKTsKLX0KLQotYm9vbCBSZW5kZXJTVkdSZWN0OjpzaGFwZURlcGVuZGVudEZp
bGxDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgV2luZFJ1bGUgZmlsbFJ1
bGUpIGNvbnN0Ci17Ci0gICAgaWYgKG1fdXNlUGF0aEZhbGxiYWNrKQotICAgICAgICByZXR1cm4g
TGVnYWN5UmVuZGVyU1ZHU2hhcGU6OnNoYXBlRGVwZW5kZW50RmlsbENvbnRhaW5zKHBvaW50LCBm
aWxsUnVsZSk7Ci0gICAgcmV0dXJuIG1fZmlsbEJvdW5kaW5nQm94LmNvbnRhaW5zKHBvaW50Lngo
KSwgcG9pbnQueSgpKTsKLX0KLQotYm9vbCBSZW5kZXJTVkdSZWN0Ojppc1JlbmRlcmluZ0Rpc2Fi
bGVkKCkgY29uc3QKLXsKLSAgICAvLyBBIHdpZHRoIG9yIGhlaWdodCBvZiB6ZXJvIGRpc2FibGVz
IHJlbmRlcmluZyBmb3IgdGhlIGVsZW1lbnQsIGFuZCByZXN1bHRzIGluIGFuIGVtcHR5IGJvdW5k
aW5nIGJveC4KLSAgICByZXR1cm4gbV9maWxsQm91bmRpbmdCb3guaXNFbXB0eSgpOwotfQotCi19
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1JlY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTczY2RjOTc3ZmE2Njg0MDk1OWJlMWNlNDM3MmM2ZTBl
OWE5MzYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVjdC5oCisrKyAvZGV2L251bGwK
QEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9m
IFN6ZWdlZAotICogQ29weXJpZ2h0IChDKSAyMDExIFJlbmF0YSBIb2RvdmFuIDxyZW5pQHdlYmtp
dC5vcmc+Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0j
aW5jbHVkZSAiTGVnYWN5UmVuZGVyU1ZHU2hhcGUuaCIKLSNpbmNsdWRlICJTVkdSZWN0RWxlbWVu
dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbmRlclNWR1JlY3QgZmluYWwg
OiBwdWJsaWMgTGVnYWN5UmVuZGVyU1ZHU2hhcGUgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoUmVuZGVyU1ZHUmVjdCk7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyU1ZHUmVjdChTVkdSZWN0RWxl
bWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZpcnR1YWwgflJlbmRlclNWR1JlY3QoKTsKLQot
ICAgIFNWR1JlY3RFbGVtZW50JiByZWN0RWxlbWVudCgpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IHZvaWQgZ3JhcGhpY3NFbGVtZW50KCkgY29uc3QgPSBkZWxldGU7Ci0KLSAgICBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNWR1JlY3QiOyB9
Ci0KLSAgICB2b2lkIHVwZGF0ZVNoYXBlRnJvbUVsZW1lbnQoKSBvdmVycmlkZTsKLSAgICBib29s
IGlzRW1wdHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3VzZVBhdGhGYWxsYmFjayA/IExl
Z2FjeVJlbmRlclNWR1NoYXBlOjppc0VtcHR5KCkgOiBtX2ZpbGxCb3VuZGluZ0JveC5pc0VtcHR5
KCk7IH0KLSAgICBib29sIGlzUmVuZGVyaW5nRGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIGZpbGxTaGFwZShHcmFwaGljc0NvbnRleHQmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2
b2lkIHN0cm9rZVNoYXBlKEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgc2hhcGVEZXBlbmRlbnRTdHJva2VDb250YWlucyhjb25zdCBGbG9hdFBvaW50JiwgUG9pbnRD
b29yZGluYXRlU3BhY2UgPSBHbG9iYWxDb29yZGluYXRlU3BhY2UpIG92ZXJyaWRlOwotICAgIGJv
b2wgc2hhcGVEZXBlbmRlbnRGaWxsQ29udGFpbnMoY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IFdp
bmRSdWxlKSBjb25zdCBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBGbG9hdFJlY3QgbV9pbm5l
clN0cm9rZVJlY3Q7Ci0gICAgRmxvYXRSZWN0IG1fb3V0ZXJTdHJva2VSZWN0OwotICAgIGJvb2wg
bV91c2VQYXRoRmFsbGJhY2s7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCAyZDg4MmE3MjZjYzJiMTAyYjAzZmI0NmIy
YTMzZjEzMDhmNGVmNTFjLi5jMTZjMTdiYzJkOGEwNDczZWU2NDU4YWJhYzA2YzdiY2ZiZDU4MTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTIzLDcgKzIzLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTVkdSZWN0RWxlbWVudC5oIgogCi0jaW5j
bHVkZSAiUmVuZGVyU1ZHUmVjdC5oIgorI2luY2x1ZGUgIkxlZ2FjeVJlbmRlclNWR1JlY3QuaCIK
ICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbmxp
bmVzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KQEAgLTg4LDcgKzg4LDcg
QEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1JlY3RFbGVt
ZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikKIHsKLSAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyU1ZH
UmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKKyAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8
TGVnYWN5UmVuZGVyU1ZHUmVjdD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAogfQo=
</data>
<flag name="review"
          id="474348"
          type_id="1"
          status="+"
          setter="rbuis"
    />
          </attachment>
      

    </bug>

</bugzilla>