<?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>238420</bug_id>
          
          <creation_ts>2022-03-26 16:01:49 -0700</creation_ts>
          <short_desc>Use StringView for Yarr / RegularExpression parsing</short_desc>
          <delta_ts>2022-03-28 15:24:48 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855422</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-26 16:01:49 -0700</bug_when>
    <thetext>Use StringView for Yarr / RegularExpression parsing, to avoid unnecessary String construction in some cases. It is not uncommon for the pattern to be a string literal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855424</commentid>
    <comment_count>1</comment_count>
      <attachid>455857</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-26 16:03:51 -0700</bug_when>
    <thetext>Created attachment 455857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855669</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-28 10:26:27 -0700</bug_when>
    <thetext>Committed r291972 (248936@main): &lt;https://commits.webkit.org/248936@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455857.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855670</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-28 10:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/90931200&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855793</commentid>
    <comment_count>4</comment_count>
      <attachid>455857</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-28 15:08:42 -0700</bug_when>
    <thetext>Comment on attachment 455857
Patch

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

&gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4655
&gt; +    StringView m_patternString;

This could be const StringView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855803</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-28 15:24:48 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 455857 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455857&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/yarr/YarrJIT.cpp:4655
&gt; &gt; +    StringView m_patternString;
&gt; 
&gt; This could be const StringView.

Fixed in &lt;https://commits.webkit.org/r291997&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455857</attachid>
            <date>2022-03-26 16:03:51 -0700</date>
            <delta_ts>2022-03-28 10:26:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238420-20220326160351.patch</filename>
            <type>text/plain</type>
            <size>21903</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NzBmNjUwM2JjZGYyYWI4MTBiZDc0ZTUwMmJiMWM4MzBjMDljODQ1Li45NWVjNjFmZDdmMzI2MWVk
MGUzMmJkMTI5NjA3Yzg1NDdkZWM0ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAyMi0wMy0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFVzZSBTdHJpbmdWaWV3IGZvciBZYXJyIC8gUmVndWxhckV4cHJlc3Npb24gcGFy
c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
NDIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IFN0cmluZ1ZpZXcgZm9yIFlhcnIgLyBSZWd1bGFyRXhwcmVzc2lvbiBwYXJzaW5nLCB0byBhdm9p
ZCB1bm5lY2Vzc2FyeSBTdHJpbmcgY29uc3RydWN0aW9uCisgICAgICAgIGluIHNvbWUgY2FzZXMu
IEl0IGlzIG5vdCB1bmNvbW1vbiBmb3IgdGhlIHBhdHRlcm4gdG8gYmUgYSBzdHJpbmcgbGl0ZXJh
bC4KKworICAgICAgICAqIHlhcnIvUmVndWxhckV4cHJlc3Npb24uY3BwOgorICAgICAgICAoSlND
OjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKEpT
Qzo6WWFycjo6UmVndWxhckV4cHJlc3Npb246OlByaXZhdGU6OlByaXZhdGUpOgorICAgICAgICAo
SlNDOjpZYXJyOjpSZWd1bGFyRXhwcmVzc2lvbjo6UHJpdmF0ZTo6Y29tcGlsZSk6CisgICAgICAg
IChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uOjpSZWd1bGFyRXhwcmVzc2lvbik6CisgICAg
ICAgIChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uOjptYXRjaCBjb25zdCk6CisgICAgICAg
IChKU0M6OllhcnI6OlJlZ3VsYXJFeHByZXNzaW9uOjpzZWFyY2hSZXYgY29uc3QpOgorICAgICAg
ICAoSlNDOjpZYXJyOjpyZXBsYWNlKToKKyAgICAgICAgKiB5YXJyL1JlZ3VsYXJFeHByZXNzaW9u
Lmg6CisgICAgICAgICogeWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpZ
YXJyOjppbnRlcnByZXQpOgorICAgICAgICAqIHlhcnIvWWFyckludGVycHJldGVyLmg6CisgICAg
ICAgICogeWFyci9ZYXJySklULmNwcDoKKyAgICAgICAgKEpTQzo6WWFycjo6aml0Q29tcGlsZSk6
CisgICAgICAgIChKU0M6OllhcnI6OmppdENvbXBpbGVJbmxpbmVkVGVzdCk6CisgICAgICAgICog
eWFyci9ZYXJySklULmg6CisgICAgICAgICogeWFyci9ZYXJyUGFyc2VyLmg6CisgICAgICAgIChK
U0M6OllhcnI6OlBhcnNlcjo6UGFyc2VyKToKKyAgICAgICAgKEpTQzo6WWFycjo6cGFyc2UpOgor
ICAgICAgICAqIHlhcnIvWWFyclBhdHRlcm4uY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJy
UGF0dGVybjo6Y29tcGlsZSk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuOjpZYXJy
UGF0dGVybik6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuOjpkdW1wUGF0dGVyblN0
cmluZyk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJQYXR0ZXJuOjpkdW1wUGF0dGVybik6Cisg
ICAgICAgICogeWFyci9ZYXJyUGF0dGVybi5oOgorICAgICAgICAqIHlhcnIvWWFyclN5bnRheENo
ZWNrZXIuY3BwOgorICAgICAgICAoSlNDOjpZYXJyOjpjaGVja1N5bnRheCk6CisgICAgICAgICog
eWFyci9ZYXJyU3ludGF4Q2hlY2tlci5oOgorCiAyMDIyLTAzLTI2ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIHVuYXJ5IHN0YXRpY19hc3NlcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5k
ZXggMDRiNGI5ODRkNWJiY2Q4ZGMyZTg5MTJkZmU4ZGViMjlhZjkxNWI0ZS4uMmY5NWVmMmEzMjRk
OThmMjFkYWQzNDM4YzNiNDgyNDhmMjU4NGUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0w
My0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTdHJp
bmdWaWV3IGZvciBZYXJyIC8gUmVndWxhckV4cHJlc3Npb24gcGFyc2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDIwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbnZlbmllbmNlIGNoYXJh
Y3RlcnMoKSB0ZW1wbGF0ZWQgZnVuY3Rpb24gdG8gU3RyaW5nVmlldywgdG8gbWF0Y2ggU3RyaW5n
IGFuZCBTdHJpbmdJbXBsLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nVmlldy5oOgorICAg
ICAgICAoV1RGOjpTdHJpbmdWaWV3OjpjaGFyYWN0ZXJzPExDaGFyPiBjb25zdCk6CisgICAgICAg
IChXVEY6OlN0cmluZ1ZpZXc6OmNoYXJhY3RlcnM8VUNoYXI+IGNvbnN0KToKKwogMjAyMi0wMy0y
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuZm9jdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjUzNzJmMTRm
YWExNDA2MzBkZjRjNjMzNzBmZDUxMTdhYTgyZWE2Li4yNjZjYThkYWYxZTRlZGY5NTM3ODFhNGZi
ZWZjMzVkOTljZjg3OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjYg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgU3RyaW5nVmll
dyBmb3IgWWFyciAvIFJlZ3VsYXJFeHByZXNzaW9uIHBhcnNpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQyMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3Jl
OjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtleVN5c3RlbSk6CisKIDIwMjIt
MDMtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmZvY3VzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5jcHAKaW5kZXggMzc5MDM2ZWIzNmI4NmI4
YjdiNzg2MjAyZTI2YmI4ZjE2Nzk0MzMzNC4uNTI5MTYyOTlkOWZlOGI1ZDQyN2ZhYWFlNWViMWQ3
ZDNhNDI1YzNhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVndWxh
ckV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJF
eHByZXNzaW9uLmNwcApAQCAtMzgsMTggKzM4LDE4IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgWWFyciB7CiAKIGNsYXNzIFJlZ3VsYXJFeHByZXNzaW9uOjpQcml2YXRlIDogcHVibGljIFJl
ZkNvdW50ZWQ8UmVndWxhckV4cHJlc3Npb246OlByaXZhdGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFByaXZhdGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdHRlcm4sIFRleHRDYXNlU2Vu
c2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUsIFVu
aWNvZGVNb2RlIHVuaWNvZGVNb2RlKQorICAgIHN0YXRpYyBSZWY8UHJpdmF0ZT4gY3JlYXRlKFN0
cmluZ1ZpZXcgcGF0dGVybiwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIE11
bHRpbGluZU1vZGUgbXVsdGlsaW5lTW9kZSwgVW5pY29kZU1vZGUgdW5pY29kZU1vZGUpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcml2YXRlKHBhdHRlcm4sIGNhc2VTZW5z
aXRpdml0eSwgbXVsdGlsaW5lTW9kZSwgdW5pY29kZU1vZGUpKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgUHJpdmF0ZShjb25zdCBTdHJpbmcmIHBhdHRlcm4sIFRleHRDYXNlU2Vuc2l0aXZpdHkg
Y2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUsIFVuaWNvZGVNb2Rl
IHVuaWNvZGVNb2RlKQorICAgIFByaXZhdGUoU3RyaW5nVmlldyBwYXR0ZXJuLCBUZXh0Q2FzZVNl
bnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwgTXVsdGlsaW5lTW9kZSBtdWx0aWxpbmVNb2RlLCBV
bmljb2RlTW9kZSB1bmljb2RlTW9kZSkKICAgICAgICAgOiBtX3JlZ0V4cEJ5dGVDb2RlKGNvbXBp
bGUocGF0dGVybiwgY2FzZVNlbnNpdGl2aXR5LCBtdWx0aWxpbmVNb2RlLCB1bmljb2RlTW9kZSkp
CiAgICAgewogICAgIH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OllhcnI6OkJ5dGVjb2Rl
UGF0dGVybj4gY29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIFRleHRDYXNlU2Vu
c2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUsIFVu
aWNvZGVNb2RlIHVuaWNvZGVNb2RlKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxKU0M6OllhcnI6OkJ5
dGVjb2RlUGF0dGVybj4gY29tcGlsZShTdHJpbmdWaWV3IHBhdHRlcm5TdHJpbmcsIFRleHRDYXNl
U2Vuc2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUs
IFVuaWNvZGVNb2RlIHVuaWNvZGVNb2RlKQogICAgIHsKICAgICAgICAgT3B0aW9uU2V0PEpTQzo6
WWFycjo6RmxhZ3M+IGZsYWdzOwogCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SlNDOjpZYXJyOjpCeXRlY29kZVBhdHRlcm4+IG1fcmVnRXhwQnl0ZUNvZGU7
CiB9OwogCi1SZWd1bGFyRXhwcmVzc2lvbjo6UmVndWxhckV4cHJlc3Npb24oY29uc3QgU3RyaW5n
JiBwYXR0ZXJuLCBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwgTXVsdGlsaW5l
TW9kZSBtdWx0aWxpbmVNb2RlLCBVbmljb2RlTW9kZSB1bmljb2RlTW9kZSkKK1JlZ3VsYXJFeHBy
ZXNzaW9uOjpSZWd1bGFyRXhwcmVzc2lvbihTdHJpbmdWaWV3IHBhdHRlcm4sIFRleHRDYXNlU2Vu
c2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBNdWx0aWxpbmVNb2RlIG11bHRpbGluZU1vZGUsIFVu
aWNvZGVNb2RlIHVuaWNvZGVNb2RlKQogICAgIDogZChQcml2YXRlOjpjcmVhdGUocGF0dGVybiwg
Y2FzZVNlbnNpdGl2aXR5LCBtdWx0aWxpbmVNb2RlLCB1bmljb2RlTW9kZSkpCiB7CiB9CkBAIC0x
MDIsNyArMTAyLDcgQEAgUmVndWxhckV4cHJlc3Npb24mIFJlZ3VsYXJFeHByZXNzaW9uOjpvcGVy
YXRvcj0oY29uc3QgUmVndWxhckV4cHJlc3Npb24mIHJlKQogICAgIHJldHVybiAqdGhpczsKIH0K
IAotaW50IFJlZ3VsYXJFeHByZXNzaW9uOjptYXRjaChjb25zdCBTdHJpbmcmIHN0ciwgaW50IHN0
YXJ0RnJvbSwgaW50KiBtYXRjaExlbmd0aCkgY29uc3QKK2ludCBSZWd1bGFyRXhwcmVzc2lvbjo6
bWF0Y2goU3RyaW5nVmlldyBzdHIsIGludCBzdGFydEZyb20sIGludCogbWF0Y2hMZW5ndGgpIGNv
bnN0CiB7CiAgICAgaWYgKCFkLT5tX3JlZ0V4cEJ5dGVDb2RlKQogICAgICAgICByZXR1cm4gLTE7
CkBAIC0xNDIsNyArMTQyLDcgQEAgaW50IFJlZ3VsYXJFeHByZXNzaW9uOjptYXRjaChjb25zdCBT
dHJpbmcmIHN0ciwgaW50IHN0YXJ0RnJvbSwgaW50KiBtYXRjaExlbmd0aCkKICAgICByZXR1cm4g
b2Zmc2V0VmVjdG9yWzBdOwogfQogCi1pbnQgUmVndWxhckV4cHJlc3Npb246OnNlYXJjaFJldihj
b25zdCBTdHJpbmcmIHN0cikgY29uc3QKK2ludCBSZWd1bGFyRXhwcmVzc2lvbjo6c2VhcmNoUmV2
KFN0cmluZ1ZpZXcgc3RyKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGJlIGZh
c3RlciBpZiBpdCBhY3R1YWxseSBzZWFyY2hlZCBiYWNrd2FyZHMuCiAgICAgLy8gSW5zdGVhZCwg
aXQganVzdCBzZWFyY2hlcyBmb3J3YXJkcywgbXVsdGlwbGUgdGltZXMgdW50aWwgaXQgZmluZHMg
dGhlIGxhc3QgbWF0Y2guCkBAIC0xNzIsNyArMTcyLDcgQEAgaW50IFJlZ3VsYXJFeHByZXNzaW9u
OjptYXRjaGVkTGVuZ3RoKCkgY29uc3QKICAgICByZXR1cm4gZC0+bGFzdE1hdGNoTGVuZ3RoOwog
fQogCi12b2lkIHJlcGxhY2UoU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9u
JiB0YXJnZXQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQpCit2b2lkIHJlcGxhY2UoU3RyaW5n
JiBzdHJpbmcsIGNvbnN0IFJlZ3VsYXJFeHByZXNzaW9uJiB0YXJnZXQsIFN0cmluZ1ZpZXcgcmVw
bGFjZW1lbnQpCiB7CiAgICAgaW50IGluZGV4ID0gMDsKICAgICB3aGlsZSAoaW5kZXggPCBzdGF0
aWNfY2FzdDxpbnQ+KHN0cmluZy5sZW5ndGgoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNzaW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9SZWd1bGFyRXhwcmVzc2lvbi5oCmluZGV4IDkwYmJhZmIxOTNmNDFkNGZmZmY1MDUx
OWY0NGQxNGNlZDcxM2RkOWMuLmY2OGJkZDc3ZjRhOGQ1NDNjZDJlZGFmNmYzNGVmNWY0YzcwNWU1
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ3VsYXJFeHByZXNz
aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvUmVndWxhckV4cHJlc3Npb24u
aApAQCAtMzYsMTQgKzM2LDE0IEBAIGVudW0gVW5pY29kZU1vZGUgeyBVbmljb2RlVW5hd2FyZU1v
ZGUsIFVuaWNvZGVBd2FyZU1vZGUgfTsKIGNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFJlZ3VsYXJF
eHByZXNzaW9uIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBl
eHBsaWNpdCBSZWd1bGFyRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmLCBUZXh0Q2FzZVNlbnNpdGl2
aXR5ID0gVGV4dENhc2VTZW5zaXRpdmUsIE11bHRpbGluZU1vZGUgPSBNdWx0aWxpbmVEaXNhYmxl
ZCwgVW5pY29kZU1vZGUgPSBVbmljb2RlVW5hd2FyZU1vZGUpOworICAgIGV4cGxpY2l0IFJlZ3Vs
YXJFeHByZXNzaW9uKFN0cmluZ1ZpZXcsIFRleHRDYXNlU2Vuc2l0aXZpdHkgPSBUZXh0Q2FzZVNl
bnNpdGl2ZSwgTXVsdGlsaW5lTW9kZSA9IE11bHRpbGluZURpc2FibGVkLCBVbmljb2RlTW9kZSA9
IFVuaWNvZGVVbmF3YXJlTW9kZSk7CiAgICAgflJlZ3VsYXJFeHByZXNzaW9uKCk7CiAKICAgICBS
ZWd1bGFyRXhwcmVzc2lvbihjb25zdCBSZWd1bGFyRXhwcmVzc2lvbiYpOwogICAgIFJlZ3VsYXJF
eHByZXNzaW9uJiBvcGVyYXRvcj0oY29uc3QgUmVndWxhckV4cHJlc3Npb24mKTsKIAotICAgIGlu
dCBtYXRjaChjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRGcm9tID0gMCwgaW50KiBtYXRjaExlbmd0
aCA9IG51bGxwdHIpIGNvbnN0OwotICAgIGludCBzZWFyY2hSZXYoY29uc3QgU3RyaW5nJikgY29u
c3Q7CisgICAgaW50IG1hdGNoKFN0cmluZ1ZpZXcsIGludCBzdGFydEZyb20gPSAwLCBpbnQqIG1h
dGNoTGVuZ3RoID0gbnVsbHB0cikgY29uc3Q7CisgICAgaW50IHNlYXJjaFJldihTdHJpbmdWaWV3
KSBjb25zdDsKIAogICAgIGludCBtYXRjaGVkTGVuZ3RoKCkgY29uc3Q7CiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7CkBAIC01Myw2ICs1Myw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFByaXZh
dGU+IGQ7CiB9OwogCi12b2lkIEpTX0VYUE9SVF9QUklWQVRFIHJlcGxhY2UoU3RyaW5nJiwgY29u
c3QgUmVndWxhckV4cHJlc3Npb24mLCBjb25zdCBTdHJpbmcmKTsKK3ZvaWQgSlNfRVhQT1JUX1BS
SVZBVEUgcmVwbGFjZShTdHJpbmcmLCBjb25zdCBSZWd1bGFyRXhwcmVzc2lvbiYsIFN0cmluZ1Zp
ZXcpOwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6WWFycgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAKaW5kZXggMzE3Yjg0OGE2MTUyNjAzY2QxYWQx
MWQ2ZTk2ODY5NzFhODZjZDkyNy4uNDNkZGMyZjJiMzI0ZmZhZDY2NWYwNTdhZDFiNDg1NDUwNDYw
NzEzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJl
dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIu
Y3BwCkBAIC0yNDU2LDcgKzI0NTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVQYXR0ZXJu
PiBieXRlQ29tcGlsZShZYXJyUGF0dGVybiYgcGF0dGVybiwgQnVtcFBvaW50ZXJBbAogICAgIHJl
dHVybiBCeXRlQ29tcGlsZXIocGF0dGVybikuY29tcGlsZShhbGxvY2F0b3IsIGxvY2ssIGVycm9y
Q29kZSk7CiB9CiAKLXVuc2lnbmVkIGludGVycHJldChCeXRlY29kZVBhdHRlcm4qIGJ5dGVjb2Rl
LCBjb25zdCBTdHJpbmcmIGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQqIG91dHB1dCkK
K3Vuc2lnbmVkIGludGVycHJldChCeXRlY29kZVBhdHRlcm4qIGJ5dGVjb2RlLCBTdHJpbmdWaWV3
IGlucHV0LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQqIG91dHB1dCkKIHsKICAgICBTdXBlclNh
bXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgaWYgKGlucHV0LmlzOEJp
dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJl
dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuaAppbmRl
eCA5ZjE5MDU2OWU5YmI4ZTMzZTUzZjdmNmI5ZWQ3ZWQwZDhiOWYxOTZlLi44NDI2YjExNWZkMmEx
NzEzZjhjODgzNzZjNWM5ZTEzMzgxMWU3YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySW50ZXJwcmV0ZXIuaApAQCAtMzkzLDcgKzM5Myw3IEBAIHByaXZhdGU6CiB9Owog
CiBKU19FWFBPUlRfUFJJVkFURSBzdGQ6OnVuaXF1ZV9wdHI8Qnl0ZWNvZGVQYXR0ZXJuPiBieXRl
Q29tcGlsZShZYXJyUGF0dGVybiYsIEJ1bXBQb2ludGVyQWxsb2NhdG9yKiwgRXJyb3JDb2RlJiwg
Q29uY3VycmVudEpTTG9jayogPSBudWxscHRyKTsKLUpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVk
IGludGVycHJldChCeXRlY29kZVBhdHRlcm4qLCBjb25zdCBTdHJpbmcmIGlucHV0LCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQqIG91dHB1dCk7CitKU19FWFBPUlRfUFJJVkFURSB1bnNpZ25lZCBp
bnRlcnByZXQoQnl0ZWNvZGVQYXR0ZXJuKiwgU3RyaW5nVmlldyBpbnB1dCwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkKiBvdXRwdXQpOwogdW5zaWduZWQgaW50ZXJwcmV0KEJ5dGVjb2RlUGF0dGVy
biosIGNvbnN0IExDaGFyKiBpbnB1dCwgdW5zaWduZWQgbGVuZ3RoLCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQqIG91dHB1dCk7CiB1bnNpZ25lZCBpbnRlcnByZXQoQnl0ZWNvZGVQYXR0ZXJuKiwg
Y29uc3QgVUNoYXIqIGlucHV0LCB1bnNpZ25lZCBsZW5ndGgsIHVuc2lnbmVkIHN0YXJ0LCB1bnNp
Z25lZCogb3V0cHV0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAppbmRl
eCA4M2ZjNjU0Yzk5MTI5NGExZjM2ZTlhZDM2OGVmYmY4OThjMTM2MzJkLi5jODhkMzAwZDM2MzBj
YmE0YWUwMzVlZjc5MTRhMGJkYzM3OTNlNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcApAQCAtNDA5Myw3ICs0MDkzLDcgQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgWWFyckdlbmVy
YXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiByZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgY29u
c3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1v
ZGUgY29tcGlsZU1vZGUpCisgICAgWWFyckdlbmVyYXRvcihDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgVk0qIHZtLCBZYXJyQ29kZUJsb2NrKiBjb2RlQmxvY2ssIGNvbnN0IFlhcnJKSVRSZWdzJiBy
ZWdzLCBZYXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nVmlldyBwYXR0ZXJuU3RyaW5nLCBDaGFy
U2l6ZSBjaGFyU2l6ZSwgSklUQ29tcGlsZU1vZGUgY29tcGlsZU1vZGUpCiAgICAgICAgIDogbV9q
aXQoaml0KQogICAgICAgICAsIG1fdm0odm0pCiAgICAgICAgICwgbV9jb2RlQmxvY2soY29kZUJs
b2NrKQpAQCAtNDExMiw3ICs0MTEyLDcgQEAgcHVibGljOgogICAgICAgICBtX2JveWVyTW9vcmVE
YXRhID0gc3RhdGljX2Nhc3Q8WWFyckJveWVyTW95ZXJEYXRhKj4obV9jb2RlQmxvY2spOwogICAg
IH0KIAotICAgIFlhcnJHZW5lcmF0b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwg
WWFyckJveWVyTW95ZXJEYXRhKiB5YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywg
WWFyclBhdHRlcm4mIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNp
emUgY2hhclNpemUsIEpJVENvbXBpbGVNb2RlIGNvbXBpbGVNb2RlKQorICAgIFlhcnJHZW5lcmF0
b3IoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFZNKiB2bSwgWWFyckJveWVyTW95ZXJEYXRhKiB5
YXJyQk1EYXRhLCBjb25zdCBZYXJySklUUmVncyYgcmVncywgWWFyclBhdHRlcm4mIHBhdHRlcm4s
IFN0cmluZ1ZpZXcgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIEpJVENvbXBpbGVN
b2RlIGNvbXBpbGVNb2RlKQogICAgICAgICA6IG1faml0KGppdCkKICAgICAgICAgLCBtX3ZtKHZt
KQogICAgICAgICAsIG1fY29kZUJsb2NrKG51bGxwdHIpCkBAIC00NjUyLDcgKzQ2NTIsNyBAQCBw
cml2YXRlOgogCiAgICAgU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tl
ciB7IG51bGxwdHIgfTsKICAgICBZYXJyUGF0dGVybiYgbV9wYXR0ZXJuOwotICAgIGNvbnN0IFN0
cmluZyYgbV9wYXR0ZXJuU3RyaW5nOworICAgIFN0cmluZ1ZpZXcgbV9wYXR0ZXJuU3RyaW5nOwog
CiAgICAgQ2hhclNpemUgbV9jaGFyU2l6ZTsKICAgICBKSVRDb21waWxlTW9kZSBtX2NvbXBpbGVN
b2RlOwpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgc3RhdGljIHZvaWQgZHVtcENvbXBpbGVGYWlsdXJl
KEpJVEZhaWx1cmVSZWFzb24gZmFpbHVyZSkKICAgICB9CiB9CiAKLXZvaWQgaml0Q29tcGlsZShZ
YXJyUGF0dGVybiYgcGF0dGVybiwgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSBjaGFy
U2l6ZSwgVk0qIHZtLCBZYXJyQ29kZUJsb2NrJiBjb2RlQmxvY2ssIEpJVENvbXBpbGVNb2RlIG1v
ZGUpCit2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRlcm4sIFN0cmluZ1ZpZXcgcGF0
dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsIFZNKiB2bSwgWWFyckNvZGVCbG9jayYgY29k
ZUJsb2NrLCBKSVRDb21waWxlTW9kZSBtb2RlKQogewogICAgIENDYWxsSGVscGVycyBtYXNtOwog
CkBAIC00NzQ3LDcgKzQ3NDcsNyBAQCB2b2lkIGppdENvbXBpbGUoWWFyclBhdHRlcm4mIHBhdHRl
cm4sIFN0cmluZyYgcGF0dGVyblN0cmluZywgQ2hhclNpemUgY2hhclNpemUsCiAjZXJyb3IgIk5v
IHN1cHBvcnQgZm9yIGlubGluZWQgSklUJ2luZyBvZiBSZWdFeHAudGVzdCBmb3IgdGhpcyBDUFUg
LyBPUyBjb21iaW5hdGlvbi4iCiAjZW5kaWYKIAotdm9pZCBqaXRDb21waWxlSW5saW5lZFRlc3Qo
U3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0YWNrQ2hlY2tlciwgY29uc3QgU3RyaW5n
JiBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+IGZsYWdzLCBDaGFyU2l6ZSBj
aGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3llckRhdGEmIGJveWVyTW9vcmVEYXRh
LCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVycyYgaml0UmVnaXN0ZXJzKQordm9p
ZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayogbV9jb21waWxhdGlvblRocmVhZFN0
YWNrQ2hlY2tlciwgU3RyaW5nVmlldyBwYXR0ZXJuU3RyaW5nLCBPcHRpb25TZXQ8WWFycjo6Rmxh
Z3M+IGZsYWdzLCBDaGFyU2l6ZSBjaGFyU2l6ZSwgY29uc3QgVk0qIHZtLCBZYXJyQm95ZXJNb3ll
ckRhdGEmIGJveWVyTW9vcmVEYXRhLCBDQ2FsbEhlbHBlcnMmIGppdCwgWWFyckpJVFJlZ2lzdGVy
cyYgaml0UmVnaXN0ZXJzKQogewogICAgIFlhcnI6OkVycm9yQ29kZSBlcnJvckNvZGU7CiAgICAg
WWFycjo6WWFyclBhdHRlcm4gcGF0dGVybihwYXR0ZXJuU3RyaW5nLCBmbGFncywgZXJyb3JDb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCAzY2YyOGExZjlkYjUyZmM5
NWZhZmY1YTRmNjM5MzE0NWY4NmQzNTNkLi44NTgyNmQ0MDEyZThkYjA0MDRjOTBmOGE2M2RlN2Zm
OTQ3YTVlZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC00MzMsMTQg
KzQzMywxNCBAQCBlbnVtIGNsYXNzIEpJVENvbXBpbGVNb2RlIDogdWludDhfdCB7CiAgICAgSW5j
bHVkZVN1YnBhdHRlcm5zLAogICAgIElubGluZVRlc3QKIH07Ci12b2lkIGppdENvbXBpbGUoWWFy
clBhdHRlcm4mLCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIENoYXJTaXplLCBWTSosIFlhcnJDb2Rl
QmxvY2smIGppdE9iamVjdCwgSklUQ29tcGlsZU1vZGUpOwordm9pZCBqaXRDb21waWxlKFlhcnJQ
YXR0ZXJuJiwgU3RyaW5nVmlldyBwYXR0ZXJuU3RyaW5nLCBDaGFyU2l6ZSwgVk0qLCBZYXJyQ29k
ZUJsb2NrJiBqaXRPYmplY3QsIEpJVENvbXBpbGVNb2RlKTsKIAogI2lmIEVOQUJMRShZQVJSX0pJ
VF9SRUdFWFBfVEVTVF9JTkxJTkUpCiAKIAogY2xhc3MgWWFyckpJVFJlZ2lzdGVyczsKIAotdm9p
ZCBqaXRDb21waWxlSW5saW5lZFRlc3QoU3RhY2tDaGVjayosIGNvbnN0IFN0cmluZyYsIE9wdGlv
blNldDxZYXJyOjpGbGFncz4sIENoYXJTaXplLCBjb25zdCBWTSosIFlhcnJCb3llck1veWVyRGF0
YSYsIENDYWxsSGVscGVycyYsIFlhcnJKSVRSZWdpc3RlcnMmKTsKK3ZvaWQgaml0Q29tcGlsZUlu
bGluZWRUZXN0KFN0YWNrQ2hlY2sqLCBTdHJpbmdWaWV3LCBPcHRpb25TZXQ8WWFycjo6RmxhZ3M+
LCBDaGFyU2l6ZSwgY29uc3QgVk0qLCBZYXJyQm95ZXJNb3llckRhdGEmLCBDQ2FsbEhlbHBlcnMm
LCBZYXJySklUUmVnaXN0ZXJzJik7CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Ollh
cnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXJzZXIuaAppbmRleCAzMGVjM2Y4Yzhj
YjhlYTIzYzZjNTAxOTRkYTU4MDMzZDE2ZGRkM2JiLi43OGM5OWVkZGU0YjQ2ZmI0ODNhNTJmMGQx
MTA3ZDkxZTRlNmQwZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJyUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhcnNlci5o
CkBAIC00MSw3ICs0MSw3IEBAIHRlbXBsYXRlPGNsYXNzIERlbGVnYXRlLCB0eXBlbmFtZSBDaGFy
VHlwZT4KIGNsYXNzIFBhcnNlciB7CiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGNsYXNzIEZyaWVu
ZERlbGVnYXRlPgotICAgIGZyaWVuZCBFcnJvckNvZGUgcGFyc2UoRnJpZW5kRGVsZWdhdGUmLCBj
b25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVmZXJl
bmNlTGltaXQsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKTsKKyAgICBmcmll
bmQgRXJyb3JDb2RlIHBhcnNlKEZyaWVuZERlbGVnYXRlJiwgU3RyaW5nVmlldyBwYXR0ZXJuLCBi
b29sIGlzVW5pY29kZSwgdW5zaWduZWQgYmFja1JlZmVyZW5jZUxpbWl0LCBib29sIGlzTmFtZWRG
b3J3YXJkUmVmZXJlbmNlQWxsb3dlZCk7CiAKICAgICBlbnVtIGNsYXNzIFVuaWNvZGVQYXJzZUNv
bnRleHQgOiB1aW50OF90IHsgUGF0dGVybkNvZGVQb2ludCwgR3JvdXBOYW1lIH07CiAKQEAgLTIx
OSw3ICsyMTksNyBAQCBwcml2YXRlOgogICAgICAgICBVQ2hhcjMyIG1fY2hhcmFjdGVyOwogICAg
IH07CiAKLSAgICBQYXJzZXIoRGVsZWdhdGUmIGRlbGVnYXRlLCBjb25zdCBTdHJpbmcmIHBhdHRl
cm4sIGJvb2wgaXNVbmljb2RlLCB1bnNpZ25lZCBiYWNrUmVmZXJlbmNlTGltaXQsIGJvb2wgaXNO
YW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKQorICAgIFBhcnNlcihEZWxlZ2F0ZSYgZGVsZWdh
dGUsIFN0cmluZ1ZpZXcgcGF0dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZl
cmVuY2VMaW1pdCwgYm9vbCBpc05hbWVkRm9yd2FyZFJlZmVyZW5jZUFsbG93ZWQpCiAgICAgICAg
IDogbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKICAgICAgICAgLCBtX2RhdGEocGF0dGVybi5jaGFyYWN0
ZXJzPENoYXJUeXBlPigpKQogICAgICAgICAsIG1fc2l6ZShwYXR0ZXJuLmxlbmd0aCgpKQpAQCAt
MTI4Nyw3ICsxMjg3LDcgQEAgcHJpdmF0ZToKICAqLwogCiB0ZW1wbGF0ZTxjbGFzcyBEZWxlZ2F0
ZT4KLUVycm9yQ29kZSBwYXJzZShEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZyYgcGF0
dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50
aWZ5SW5maW5pdGUsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkID0gdHJ1ZSkK
K0Vycm9yQ29kZSBwYXJzZShEZWxlZ2F0ZSYgZGVsZWdhdGUsIGNvbnN0IFN0cmluZ1ZpZXcgcGF0
dGVybiwgYm9vbCBpc1VuaWNvZGUsIHVuc2lnbmVkIGJhY2tSZWZlcmVuY2VMaW1pdCA9IHF1YW50
aWZ5SW5maW5pdGUsIGJvb2wgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkID0gdHJ1ZSkK
IHsKICAgICBpZiAocGF0dGVybi5pczhCaXQoKSkKICAgICAgICAgcmV0dXJuIFBhcnNlcjxEZWxl
Z2F0ZSwgTENoYXI+KGRlbGVnYXRlLCBwYXR0ZXJuLCBpc1VuaWNvZGUsIGJhY2tSZWZlcmVuY2VM
aW1pdCwgaXNOYW1lZEZvcndhcmRSZWZlcmVuY2VBbGxvd2VkKS5wYXJzZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRlcm4uY3BwCmluZGV4IDFjYWNhZmM0MTdlYmYxNGY5
NDgxZjU5OTQ0MzJlMjAzNTQ2ZWE5YzAuLjA5NmI4NzEwMjA2ODU4NzAzMjEyM2Q2NGExOWYxNGUy
ZTZjODI1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0
ZXJuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyUGF0dGVybi5jcHAK
QEAgLTExMDgsNyArMTEwOCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludmVydFBhcmVudGhl
dGljYWxBc3NlcnRpb24geyBmYWxzZSB9OwogfTsKIAotRXJyb3JDb2RlIFlhcnJQYXR0ZXJuOjpj
b21waWxlKGNvbnN0IFN0cmluZyYgcGF0dGVyblN0cmluZykKK0Vycm9yQ29kZSBZYXJyUGF0dGVy
bjo6Y29tcGlsZShTdHJpbmdWaWV3IHBhdHRlcm5TdHJpbmcpCiB7CiAgICAgWWFyclBhdHRlcm5D
b25zdHJ1Y3RvciBjb25zdHJ1Y3RvcigqdGhpcyk7CiAKQEAgLTExMzcsNyArMTEzNyw3IEBAIEVy
cm9yQ29kZSBZYXJyUGF0dGVybjo6Y29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcp
CiAgICAgcmV0dXJuIEVycm9yQ29kZTo6Tm9FcnJvcjsKIH0KIAotWWFyclBhdHRlcm46OllhcnJQ
YXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncywgRXJy
b3JDb2RlJiBlcnJvcikKK1lhcnJQYXR0ZXJuOjpZYXJyUGF0dGVybihTdHJpbmdWaWV3IHBhdHRl
cm4sIE9wdGlvblNldDxGbGFncz4gZmxhZ3MsIEVycm9yQ29kZSYgZXJyb3IpCiAgICAgOiBtX2Nv
bnRhaW5zQmFja3JlZmVyZW5jZXMoZmFsc2UpCiAgICAgLCBtX2NvbnRhaW5zQk9MKGZhbHNlKQog
ICAgICwgbV9jb250YWluc1Vuc2lnbmVkTGVuZ3RoUGF0dGVybihmYWxzZSkKQEAgLTEzODEsNyAr
MTM4MSw3IEBAIHZvaWQgUGF0dGVybkRpc2p1bmN0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBvdXQs
IFlhcnJQYXR0ZXJuKiB0aGlzUGF0dGVybiwgdW5zaWduCiAgICAgfQogfQogCi12b2lkIFlhcnJQ
YXR0ZXJuOjpkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVhbSYgb3V0LCBjb25zdCBTdHJpbmcm
IHBhdHRlcm5TdHJpbmcpCit2b2lkIFlhcnJQYXR0ZXJuOjpkdW1wUGF0dGVyblN0cmluZyhQcmlu
dFN0cmVhbSYgb3V0LCBTdHJpbmdWaWV3IHBhdHRlcm5TdHJpbmcpCiB7CiAgICAgb3V0LnByaW50
KCIvIiwgcGF0dGVyblN0cmluZywgIi8iKTsKIApAQCAtMTM5NywxMiArMTM5NywxMiBAQCB2b2lk
IFlhcnJQYXR0ZXJuOjpkdW1wUGF0dGVyblN0cmluZyhQcmludFN0cmVhbSYgb3V0LCBjb25zdCBT
dHJpbmcmIHBhdHRlcm5TdHJpbgogICAgICAgICBvdXQucHJpbnQoInkiKTsKIH0KIAotdm9pZCBZ
YXJyUGF0dGVybjo6ZHVtcFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuU3RyaW5nKQordm9p
ZCBZYXJyUGF0dGVybjo6ZHVtcFBhdHRlcm4oU3RyaW5nVmlldyBwYXR0ZXJuU3RyaW5nKQogewog
ICAgIGR1bXBQYXR0ZXJuKFdURjo6ZGF0YUZpbGUoKSwgcGF0dGVyblN0cmluZyk7CiB9CiAKLXZv
aWQgWWFyclBhdHRlcm46OmR1bXBQYXR0ZXJuKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IFN0cmlu
ZyYgcGF0dGVyblN0cmluZykKK3ZvaWQgWWFyclBhdHRlcm46OmR1bXBQYXR0ZXJuKFByaW50U3Ry
ZWFtJiBvdXQsIFN0cmluZ1ZpZXcgcGF0dGVyblN0cmluZykKIHsKICAgICBvdXQucHJpbnQoIlJl
Z0V4cCBwYXR0ZXJuIGZvciAiKTsKICAgICBkdW1wUGF0dGVyblN0cmluZyhvdXQsIHBhdHRlcm5T
dHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclBhdHRl
cm4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJQYXR0ZXJuLmgKaW5kZXggOWZi
NmU2MWFiMWU2NzMxZDM5ZTU2NDFkODQyMDcxMGFlN2Q3ZDAyMC4uZjA2MzYyZWUzYTQ5MjY5ZmJm
ZGU3NTU1YjVjZjc4NDA1Y2YzZDdkNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclBhdHRlcm4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJy
UGF0dGVybi5oCkBAIC0zODcsNyArMzg3LDcgQEAgc3RydWN0IFRlcm1DaGFpbiB7CiAKIAogc3Ry
dWN0IFlhcnJQYXR0ZXJuIHsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBZYXJyUGF0dGVybihjb25z
dCBTdHJpbmcmIHBhdHRlcm4sIE9wdGlvblNldDxGbGFncz4sIEVycm9yQ29kZSYpOworICAgIEpT
X0VYUE9SVF9QUklWQVRFIFlhcnJQYXR0ZXJuKFN0cmluZ1ZpZXcgcGF0dGVybiwgT3B0aW9uU2V0
PEZsYWdzPiwgRXJyb3JDb2RlJik7CiAKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkKICAg
ICB7CkBAIC01MTgsOSArNTE4LDkgQEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICAgICAgcmV0
dXJuIHVuaWNvZGVQcm9wZXJ0aWVzQ2FjaGVkLmdldChjbGFzc0lEKTsKICAgICB9CiAKLSAgICB2
b2lkIGR1bXBQYXR0ZXJuU3RyaW5nKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IFN0cmluZyYgcGF0
dGVyblN0cmluZyk7Ci0gICAgdm9pZCBkdW1wUGF0dGVybihjb25zdCBTdHJpbmcmIHBhdHRlcm4p
OwotICAgIHZvaWQgZHVtcFBhdHRlcm4oUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgU3RyaW5nJiBw
YXR0ZXJuKTsKKyAgICB2b2lkIGR1bXBQYXR0ZXJuU3RyaW5nKFByaW50U3RyZWFtJiBvdXQsIFN0
cmluZ1ZpZXcgcGF0dGVyblN0cmluZyk7CisgICAgdm9pZCBkdW1wUGF0dGVybihTdHJpbmdWaWV3
IHBhdHRlcm4pOworICAgIHZvaWQgZHVtcFBhdHRlcm4oUHJpbnRTdHJlYW0mIG91dCwgU3RyaW5n
VmlldyBwYXR0ZXJuKTsKIAogICAgIGJvb2wgZ2xvYmFsKCkgY29uc3QgeyByZXR1cm4gbV9mbGFn
cy5jb250YWlucyhGbGFnczo6R2xvYmFsKTsgfQogICAgIGJvb2wgaWdub3JlQ2FzZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZmxhZ3MuY29udGFpbnMoRmxhZ3M6Oklnbm9yZUNhc2UpOyB9CkBAIC01NDUs
NyArNTQ1LDcgQEAgc3RydWN0IFlhcnJQYXR0ZXJuIHsKICAgICBIYXNoTWFwPFN0cmluZywgdW5z
aWduZWQ+IG1fbmFtZWRHcm91cFRvUGFyZW5JbmRleDsKIAogcHJpdmF0ZToKLSAgICBFcnJvckNv
ZGUgY29tcGlsZShjb25zdCBTdHJpbmcmIHBhdHRlcm5TdHJpbmcpOworICAgIEVycm9yQ29kZSBj
b21waWxlKFN0cmluZ1ZpZXcgcGF0dGVyblN0cmluZyk7CiAKICAgICBDaGFyYWN0ZXJDbGFzcyog
YW55Y2hhckNhY2hlZCB7IG51bGxwdHIgfTsKICAgICBDaGFyYWN0ZXJDbGFzcyogbmV3bGluZUNh
Y2hlZCB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJTeW50YXhDaGVja2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJT
eW50YXhDaGVja2VyLmNwcAppbmRleCAzZmU1ODU3YWE2NTQxMTQ4ZjM5ZmZhYWRiOGIxYzE3MTcy
N2YwOTI0Li5kY2RlY2U0OTFkOGQ4NWY1NGY2YTliMmM3ZWRmODRhMTE5ZjViODRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyclN5bnRheENoZWNrZXIuY3BwCkBAIC01
NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc2V0Rm9yUmVwYXJzaW5nKCkgeyB9CiB9
OwogCi1FcnJvckNvZGUgY2hlY2tTeW50YXgoY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBjb25zdCBT
dHJpbmcmIGZsYWdzKQorRXJyb3JDb2RlIGNoZWNrU3ludGF4KFN0cmluZ1ZpZXcgcGF0dGVybiwg
U3RyaW5nVmlldyBmbGFncykKIHsKICAgICBTeW50YXhDaGVja2VyIHN5bnRheENoZWNrZXI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJTeW50YXhDaGVja2Vy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJyU3ludGF4Q2hlY2tlci5oCmluZGV4
IDg2ZGFmMzhiY2JiMjA4ZTIxOWYyMDQwOWQ0YmM3ZGFiOGRmNTVhODQuLmVhMWEwNjdhMDU4MDcx
NzYwN2E4Yjk0MGE1NjVmNDZmYjFlZmE1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS95YXJyL1lhcnJTeW50YXhDaGVja2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3lhcnIvWWFyclN5bnRheENoZWNrZXIuaApAQCAtMzAsNiArMzAsNiBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIFlhcnIgewogCi1FcnJvckNvZGUgY2hlY2tTeW50YXgoY29uc3QgU3Ry
aW5nJiBwYXR0ZXJuLCBjb25zdCBTdHJpbmcmIGZsYWdzKTsKK0Vycm9yQ29kZSBjaGVja1N5bnRh
eChTdHJpbmdWaWV3IHBhdHRlcm4sIFN0cmluZ1ZpZXcgZmxhZ3MpOwogCiB9fSAvLyBKU0M6Ollh
cnIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nVmlldy5oIGIvU291cmNl
L1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKaW5kZXggMmNmZDliNzczZTJhYWRiNDU2MzZkY2Y0
ZjI0N2I5NTRiZTU5ZmNjMS4uYTc1MzMxMzU1MzJiNTJjNGYyYWRjNTBlM2VhYjcxNmFlNzNiN2Nm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKKysrIGIvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdWaWV3LmgKQEAgLTk0LDYgKzk0LDkgQEAgcHVibGljOgog
ICAgIGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJzOCgpIGNvbnN0OwogICAgIGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzMTYoKSBjb25zdDsKIAorICAgIC8vIFJldHVybiBjaGFyYWN0ZXJzOCgpIG9yIGNo
YXJhY3RlcnMxNigpIGRlcGVuZGluZyBvbiBDaGFyYWN0ZXJUeXBlLgorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIENoYXJhY3RlclR5cGU+IGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMoKSBj
b25zdDsKKwogICAgIGJvb2wgaXNBbGxBU0NJSSgpIGNvbnN0OwogCiAgICAgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CkBAIC00MjgsNiArNDMxLDE2IEBAIGlubGluZSBjb25zdCBVQ2hhciogU3Ry
aW5nVmlldzo6Y2hhcmFjdGVyczE2KCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29u
c3QgVUNoYXIqPihtX2NoYXJhY3RlcnMpOwogfQogCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
Y29uc3QgTENoYXIqIFN0cmluZ1ZpZXc6OmNoYXJhY3RlcnM8TENoYXI+KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gY2hhcmFjdGVyczgoKTsKK30KKwordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIGNv
bnN0IFVDaGFyKiBTdHJpbmdWaWV3OjpjaGFyYWN0ZXJzPFVDaGFyPigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGNoYXJhY3RlcnMxNigpOworfQorCiBpbmxpbmUgYm9vbCBTdHJpbmdWaWV3Ojppc0Fs
bEFTQ0lJKCkgY29uc3QKIHsKICAgICBpZiAoaXM4Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IGFlYTJlOGFiOTkwMTk1
ODJlNGRkNDkzOGUyMDM3ZjAyMDY1ZDI0MjguLjJkYWY4ZWFhYzkwOGNlYmJiOTRkYTMzMDY0NGE1
ZTc3MTdiMzY3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
YXV0byBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtleVN5c3RlbShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkgLT4gc3RkOjpvcHRpb25hbDxLZXlTeXN0ZW1QYXJhbWV0ZXJzPgog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVzc2lvbj4ga2V5U3lzdGVt
UkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/OixcXGQrKSokIl9zLCBKU0M6Ollh
cnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1
bGFyRXhwcmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxk
Kyg/OixcXGQrKSokIiwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKIAogICAgIGlm
IChrZXlTeXN0ZW1SRS5nZXQoKS5tYXRjaChrZXlTeXN0ZW0pIDwgMCkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>