<?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>230398</bug_id>
          
          <creation_ts>2021-09-17 05:01:28 -0700</creation_ts>
          <short_desc>[LFC][Integration] Add some useful functions to iterators</short_desc>
          <delta_ts>2021-09-17 08:02:21 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794396</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-17 05:01:28 -0700</bug_when>
    <thetext>For future use</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794397</commentid>
    <comment_count>1</comment_count>
      <attachid>438462</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-17 05:04:42 -0700</bug_when>
    <thetext>Created attachment 438462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794408</commentid>
    <comment_count>2</comment_count>
      <attachid>438462</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-09-17 06:23:07 -0700</bug_when>
    <thetext>Comment on attachment 438462
Patch

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

&gt; Source/WebCore/layout/integration/LayoutIntegrationRunIteratorModernPath.h:138
&gt; +    enum class HyphenMode { Include, Ignore };
&gt; +    TextRun createTextRun(HyphenMode hyphenMode = HyphenMode::Include) const

How does the caller decide whether it needs hyphen or not (as this decision is mostly driven by line breaking and the run already includes it In ::renderedContent())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794427</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-17 07:12:24 -0700</bug_when>
    <thetext>&gt; How does the caller decide whether it needs hyphen or not (as this decision
&gt; is mostly driven by line breaking and the run already includes it In
&gt; ::renderedContent())

You are right, kept the argument version internal and only exposed a version without any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794431</commentid>
    <comment_count>4</comment_count>
      <attachid>438473</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-09-17 07:28:16 -0700</bug_when>
    <thetext>Created attachment 438473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794436</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-17 08:01:07 -0700</bug_when>
    <thetext>Committed r282661 (241802@main): &lt;https://commits.webkit.org/241802@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438473.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794437</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-17 08:02:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/83241151&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438462</attachid>
            <date>2021-09-17 05:04:42 -0700</date>
            <delta_ts>2021-09-17 07:28:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230398-20210917150440.patch</filename>
            <type>text/plain</type>
            <size>14009</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTZlNjE0ZGJhZjFhNWQ1
OGQ0NmEzZGZmNTlhZDA1ZDhjMWRlNTRmMS4uMzc3ZWQxYjZhMGVmOGVmYWNmM2FjYmU2ZmEwMDdh
MGE5ODE3M2M2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA5LTE3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gQWRkIHNvbWUgdXNlZnVsIGZ1bmN0aW9ucyB0byBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDM5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBmdXR1cmUgdXNlLgorCisgICAg
ICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3I6OmNs
b3Nlc3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpQYXRoTGluZTo6c2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdC
bG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExp
bmU6OnNlbGVjdGlvbkhlaWdodEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhMaW5lOjpmaXJzdFNlbGVjdGVk
Qm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGlu
ZTo6bGFzdFNlbGVjdGVkQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpQYXRoTGluZTo6Y29udGVudExvZ2ljYWxXaWR0aCBjb25zdCk6CisgICAg
ICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9k
ZXJuUGF0aC5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
blJ1bkl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0
aFRleHRSdW46OmxlZ2FjeUlubGluZUJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6UGF0aFJ1bjo6bGVnYWN5SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoUnVuOjppbmxpbmVCb3ggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuOjpjcmVhdGVU
ZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpSdW5JdGVyYXRvckxlZ2FjeVBhdGg6OmNyZWF0ZVRleHRSdW4gY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TW9kZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0
ZXJhdG9yTW9kZXJuUGF0aDo6Y3JlYXRlVGV4dFJ1biBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JNb2Rlcm5QYXRoOjpydW4gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTW9kZXJuUGF0
aDo6cnVucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVu
SXRlcmF0b3JNb2Rlcm5QYXRoOjpsZWdhY3lJbmxpbmVCb3ggY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94Lmg6CisKIDIwMjEtMDktMTYgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNvbWUg
aXNzdWVzIHdpdGggdGhlIGNvZGUgcGF0aHMgdGhhdCBjYWxsIGludG8gU2Nyb2xsQW5pbWF0b3I6
OmNvbnRlbnRBcmVhV2lsbFBhaW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3Iu
Y3BwCmluZGV4IGFmYmU3ZTIxNDdjNTg0NGU1Y2JhYzI1MzFkYzUyMWFkYjI4NzE3NGMuLmY5N2Iw
MzNkOWQ4MWM5MTY5YmM0Zjc3ZWM3NWMwOGYwM2RmYmQyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0
aW9uTGluZUl0ZXJhdG9yLmNwcApAQCAtMTQ3LDggKzE0Nyw3IEBAIFJ1bkl0ZXJhdG9yIExpbmVJ
dGVyYXRvcjo6Y2xvc2VzdFJ1bkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVu
dHMsIGJvCiAKIFJ1bkl0ZXJhdG9yIExpbmVJdGVyYXRvcjo6Y2xvc2VzdFJ1bkZvckxvZ2ljYWxM
ZWZ0UG9zaXRpb24oaW50IGxlZnRQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkpCiB7Ci0gICAg
YXV0byBpc0VkaXRhYmxlID0gWyZdKGF1dG8gcnVuKQotICAgIHsKKyAgICBhdXRvIGlzRWRpdGFi
bGUgPSBbJl0oYXV0byBydW4pIHsKICAgICAgICAgcmV0dXJuIHJ1biAmJiBydW4tPnJlbmRlcmVy
KCkubm9kZSgpICYmIHJ1bi0+cmVuZGVyZXIoKS5ub2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKTsK
ICAgICB9OwogCkBAIC0yMDIsNiArMjAxLDE2IEBAIGludCBQYXRoTGluZTo6YmxvY2tEaXJlY3Rp
b25Qb2ludEluTGluZSgpIGNvbnN0CiAgICAgcmV0dXJuICFjb250YWluaW5nQmxvY2soKS5zdHls
ZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgPyBzdGQ6Om1heCh0b3AoKSwgc2VsZWN0
aW9uVG9wKCkpIDogc3RkOjptaW4oYm90dG9tKCksIHNlbGVjdGlvbkJvdHRvbSgpKTsKIH0KIAor
TGF5b3V0VW5pdCBQYXRoTGluZTo6c2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9j
aygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jaygpLmFkanVzdFNlbGVjdGlv
blRvcEZvclByZWNlZGluZ0Jsb2NrKHNlbGVjdGlvblRvcCgpKTsKK30KKworTGF5b3V0VW5pdCBQ
YXRoTGluZTo6c2VsZWN0aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIHNlbGVjdGlvbkJvdHRvbSgp
IC0gc2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpKTsKK30KKwogUmVuZGVy
T2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBQYXRoTGluZTo6c2VsZWN0aW9uU3RhdGUoKSBjb25zdAog
ewogICAgIGF1dG8mIGJsb2NrID0gY29udGFpbmluZ0Jsb2NrKCk7CkBAIC0yMjcsNiArMjM2LDI0
IEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgUGF0aExpbmU6OnNlbGVjdGlvblN0YXRl
KCkgY29uc3QKICAgICByZXR1cm4gc3RhdGU7CiB9CiAKK1J1bkl0ZXJhdG9yIFBhdGhMaW5lOjpm
aXJzdFNlbGVjdGVkQm94KCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3RSdW4o
KTsgYm94OyBib3gudHJhdmVyc2VOZXh0T25MaW5lKCkpIHsKKyAgICAgICAgaWYgKGJveC0+c2Vs
ZWN0aW9uU3RhdGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lKQorICAg
ICAgICAgICAgcmV0dXJuIGJveDsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKworUnVuSXRl
cmF0b3IgUGF0aExpbmU6Omxhc3RTZWxlY3RlZEJveCgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRv
IGJveCA9IGxhc3RSdW4oKTsgYm94OyBib3gudHJhdmVyc2VQcmV2aW91c09uTGluZSgpKSB7Cisg
ICAgICAgIGlmIChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGln
aHRTdGF0ZTo6Tm9uZSkKKyAgICAgICAgICAgIHJldHVybiBib3g7CisgICAgfQorICAgIHJldHVy
biB7IH07Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaAppbmRl
eCAxMGYwODc4MTQ3MGJmNmU4NDNhNWNiZDAwOTFhMzNlODUyNjI0MzUxLi4wYzk0M2UwZDM2ZDg1
MWYyMTI2MTg1ZDdjNGYzMGFiOTJhNThhZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRl
cmF0b3IuaApAQCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rp
b25Ub3BGb3JIaXRUZXN0aW5nKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0
b20oKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkhlaWdodCgpIGNvbnN0OworICAg
IExheW91dFVuaXQgc2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0
OworICAgIExheW91dFVuaXQgc2VsZWN0aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9j
aygpIGNvbnN0OwogICAgIExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0OwogICAgIExheW91
dFVuaXQgbGluZUJveEJvdHRvbSgpIGNvbnN0OwogCkBAIC02Niw2ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICBmbG9hdCB5KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxMZWZ0KCkgY29u
c3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0OworICAgIGZsb2F0IGNv
bnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdDsKICAgICBmbG9hdCBsb2dpY2FsSGVpZ2h0KCkgY29u
c3Q7CiAKICAgICBpbnQgYmxvY2tEaXJlY3Rpb25Qb2ludEluTGluZSgpIGNvbnN0OwpAQCAtNzcs
NiArODAsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVuZGVyQmxvY2tGbG93JiBjb250YWluaW5n
QmxvY2soKSBjb25zdDsKICAgICBjb25zdCBMZWdhY3lSb290SW5saW5lQm94KiBsZWdhY3lSb290
SW5saW5lQm94KCkgY29uc3Q7CiAKKyAgICBSdW5JdGVyYXRvciBmaXJzdFNlbGVjdGVkQm94KCkg
Y29uc3Q7CisgICAgUnVuSXRlcmF0b3IgbGFzdFNlbGVjdGVkQm94KCkgY29uc3Q7CisKIHByaXZh
dGU6CiAgICAgUnVuSXRlcmF0b3IgZmlyc3RSdW4oKSBjb25zdDsKICAgICBSdW5JdGVyYXRvciBs
YXN0UnVuKCkgY29uc3Q7CkBAIC0yMTksNiArMjI1LDExIEBAIGlubGluZSBmbG9hdCBQYXRoTGlu
ZTo6Y29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKK2lubGluZSBmbG9h
dCBQYXRoTGluZTo6Y29udGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNv
bnRlbnRMb2dpY2FsUmlnaHQoKSAtIGNvbnRlbnRMb2dpY2FsTGVmdCgpOworfQorCiBpbmxpbmUg
ZmxvYXQgUGF0aExpbmU6OmxvZ2ljYWxIZWlnaHQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxp
bmVJdGVyYXRvck1vZGVyblBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBhdGguaAppbmRleCBkYTFhYmRm
NzIyN2UyNjU3YTg0Nzc2MGI5MjIyY2YxODU4YjYyZmIwLi40ZGRkNGFhNGU5ZjMxY2Q5YjNlNzY4
NzAwNDg4NzRmNjc2MWY1ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0
ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICAvLyAtIHRo
ZSAiYmVmb3JlIiB2YWx1ZSBpcyBhbHJlYWR5IGZhY3RvcmVkIGluIHRvIHRoZSBsaW5lIG9mZnNl
dAogICAgIC8vIC0gdGhpcyBsb2dpYyBuZWdhdGVzIHRoZSBmaXJzdCBsaW5lJ3MgbmF0dXJhbCBv
ZmZzZXQgKGUuZy4gYmxvY2sgaGFzIG5vIGJvcmRlci9wYWRkaW5nIGJ1dCB0aGUgZmlyc3QgbGlu
ZSBoYXMgYSBjb21wdXRlZCBvZmZzZXQpLgogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wRm9y
SGl0VGVzdGluZygpIGNvbnN0IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9j
aygpLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSA6IHNlbGVjdGlvblRvcCgpOyB9OworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgb3IgcmVwbGFjZS4KICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkJv
dHRvbSgpIGNvbnN0IHsgcmV0dXJuIGJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9n
aWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5j
b250ZW50TGVmdCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAppbmRleCA5ZDE5
NmRjYjM0ODRhNTkxOGJhMDVlOTI4MmVlOTRlNjNkOGU2MDUxLi45YWNlOGRiNWFkNTg0MzM3ODY0
NmFhNDU1NGQ4Njg2NDYwNTMxZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgK
QEAgLTg1LDcgKzg1LDggQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSgp
IGNvbnN0OwogCiAgICAgLy8gRm9yIGludGVybWVkaWF0ZSBwb3J0aW5nIHN0ZXBzIG9ubHkuCi0g
ICAgTGVnYWN5SW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdDsKKyAgICBjb25zdCBM
ZWdhY3lJbmxpbmVCb3gqIGxlZ2FjeUlubGluZUJveCgpIGNvbnN0OworICAgIGNvbnN0IExheW91
dDo6UnVuKiBpbmxpbmVCb3goKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFz
cyBSdW5JdGVyYXRvcjsKQEAgLTExOSw4ICsxMjAsMTAgQEAgcHVibGljOgogICAgIFRleHRCb3hT
ZWxlY3RhYmxlUmFuZ2Ugc2VsZWN0YWJsZVJhbmdlKCkgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCBz
ZWxlY3Rpb25SZWN0KHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpIGNvbnN0OwogCisgICAg
VGV4dFJ1biBjcmVhdGVUZXh0UnVuKCkgY29uc3Q7CisKICAgICBjb25zdCBSZW5kZXJUZXh0JiBy
ZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFJlbmRlclRleHQ+KFBhdGhSdW46OnJl
bmRlcmVyKCkpOyB9Ci0gICAgTGVnYWN5SW5saW5lVGV4dEJveCogbGVnYWN5SW5saW5lQm94KCkg
Y29uc3QgeyByZXR1cm4gZG93bmNhc3Q8TGVnYWN5SW5saW5lVGV4dEJveD4oUGF0aFJ1bjo6bGVn
YWN5SW5saW5lQm94KCkpOyB9CisgICAgY29uc3QgTGVnYWN5SW5saW5lVGV4dEJveCogbGVnYWN5
SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8TGVnYWN5SW5saW5lVGV4dEJveD4o
UGF0aFJ1bjo6bGVnYWN5SW5saW5lQm94KCkpOyB9CiB9OwogCiBjbGFzcyBSdW5JdGVyYXRvciB7
CkBAIC0yODQsMTEgKzI4NywxOCBAQCBpbmxpbmUgY29uc3QgUmVuZGVyT2JqZWN0JiBQYXRoUnVu
OjpyZW5kZXJlcigpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBMZWdhY3lJbmxpbmVCb3gq
IFBhdGhSdW46OmxlZ2FjeUlubGluZUJveCgpIGNvbnN0CitpbmxpbmUgY29uc3QgTGVnYWN5SW5s
aW5lQm94KiBQYXRoUnVuOjpsZWdhY3lJbmxpbmVCb3goKSBjb25zdAogewotICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKLSAgICAgICAgcmV0
dXJuIHBhdGgubGVnYWN5SW5saW5lQm94KCk7Ci0gICAgfSk7CisgICAgaWYgKCFXVEY6OmhvbGRz
X2FsdGVybmF0aXZlPFJ1bkl0ZXJhdG9yTGVnYWN5UGF0aD4obV9wYXRoVmFyaWFudCkpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXVEY6OmdldDxSdW5JdGVyYXRvckxlZ2Fj
eVBhdGg+KG1fcGF0aFZhcmlhbnQpLmxlZ2FjeUlubGluZUJveCgpOworfQorCitpbmxpbmUgY29u
c3QgTGF5b3V0OjpSdW4qIFBhdGhSdW46OmlubGluZUJveCgpIGNvbnN0Cit7CisgICAgaWYgKCFX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFJ1bkl0ZXJhdG9yTW9kZXJuUGF0aD4obV9wYXRoVmFyaWFu
dCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAmV1RGOjpnZXQ8UnVuSXRl
cmF0b3JNb2Rlcm5QYXRoPihtX3BhdGhWYXJpYW50KS5ydW4oKTsKIH0KIAogaW5saW5lIGJvb2wg
UGF0aFRleHRSdW46Omhhc0h5cGhlbigpIGNvbnN0CkBAIC0zNTksNiArMzY5LDEzIEBAIGlubGlu
ZSBMYXlvdXRSZWN0IFBhdGhUZXh0UnVuOjpzZWxlY3Rpb25SZWN0KHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBlbmQpIGNvbnN0CiAgICAgfSk7CiB9CiAKK2lubGluZSBUZXh0UnVuIFBhdGhUZXh0
UnVuOjpjcmVhdGVUZXh0UnVuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbiht
X3BhdGhWYXJpYW50LCBbJl0oYXV0byYgcGF0aCkgeworICAgICAgICByZXR1cm4gcGF0aC5jcmVh
dGVUZXh0UnVuKCk7CisgICAgfSk7Cit9CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdh
Y3lQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAppbmRleCAzNzU5ODE2M2M4ZWFjN2Q2ZmNiYjdm
M2JiOWQwZjNkZGEyYmI4MjdjLi5jN2NkYWE2YzAwYjk1ZmFjYjNhOGY5NWY0YTU3MTNhNGRkZWJl
NTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvckxlZ2FjeVBhdGgu
aApAQCAtNzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgVGV4dEJveFNlbGVjdGFibGVSYW5nZSBz
ZWxlY3RhYmxlUmFuZ2UoKSBjb25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPnNlbGVjdGFi
bGVSYW5nZSgpOyB9CiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0KHVuc2lnbmVkIHN0YXJ0
LCB1bnNpZ25lZCBlbmQpIGNvbnN0IHsgcmV0dXJuIGlubGluZVRleHRCb3goKS0+bG9jYWxTZWxl
Y3Rpb25SZWN0KHN0YXJ0LCBlbmQpOyB9CiAKKyAgICBUZXh0UnVuIGNyZWF0ZVRleHRSdW4oKSBj
b25zdCB7IHJldHVybiBpbmxpbmVUZXh0Qm94KCktPmNyZWF0ZVRleHRSdW4oKTsgfQorCiAgICAg
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gbV9pbmxpbmVCb3gtPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGgu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCmluZGV4IDVkMjI0N2RiMjhjZDAzMGExMzliMzIzYmU1YTJi
MDU1N2UyNzdhODYuLjUxODAyMjM5MmFiNTFmMjcyYjIzZWZkYjBmYmMwMTBkM2Y3ZmMwZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9kZXJuUGF0aC5oCkBAIC0x
MzQsNiArMTM0LDI2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHNuYXBwZWRTZWxlY3Rpb25S
ZWN0KHNlbGVjdGlvblJlY3QsIGxvZ2ljYWxSaWdodCwgc2VsZWN0aW9uVG9wLCBzZWxlY3Rpb25I
ZWlnaHQsIGlzSG9yaXpvbnRhbCgpKTsKICAgICB9CiAKKyAgICBlbnVtIGNsYXNzIEh5cGhlbk1v
ZGUgeyBJbmNsdWRlLCBJZ25vcmUgfTsKKyAgICBUZXh0UnVuIGNyZWF0ZVRleHRSdW4oSHlwaGVu
TW9kZSBoeXBoZW5Nb2RlID0gSHlwaGVuTW9kZTo6SW5jbHVkZSkgY29uc3QKKyAgICB7CisgICAg
ICAgIGF1dG8mIHN0eWxlID0gcnVuKCkuc3R5bGUoKTsKKyAgICAgICAgYXV0byBleHBhbnNpb24g
PSBydW4oKS5leHBhbnNpb24oKTsKKyAgICAgICAgYXV0byByZWN0ID0gdGhpcy0+cmVjdCgpOwor
ICAgICAgICBhdXRvIHhQb3MgPSByZWN0LngoKSAtIChsaW5lKCkubGluZUJveExlZnQoKSArIGxp
bmUoKS5jb250ZW50TGVmdCgpKTsKKworICAgICAgICBhdXRvIHRleHRGb3JSdW4gPSBbJl0gewor
ICAgICAgICAgICAgaWYgKGh5cGhlbk1vZGUgPT0gSHlwaGVuTW9kZTo6SWdub3JlIHx8ICFoYXNI
eXBoZW4oKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdGV4dCgpLnRvU3RyaW5nV2l0aG91dENv
cHlpbmcoKTsKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcodGV4dCgpLCBzdHlsZS5o
eXBoZW5TdHJpbmcoKSk7CisgICAgICAgIH0oKTsKKworICAgICAgICBUZXh0UnVuIHRleHRSdW4g
eyB0ZXh0Rm9yUnVuLCB4UG9zLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5z
aW9uLmJlaGF2aW9yIH07CisgICAgICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFw
c2VXaGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7CisgICAgICAgIHJldHVybiB0ZXh0UnVu
OworICAgIH07CisKICAgICBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIHJldHVybiBtX2lubGluZUNvbnRlbnQtPnJlbmRlcmVyRm9yTGF5b3V0Qm94
KHJ1bigpLmxheW91dEJveCgpKTsKQEAgLTE5NywxMSArMjE3LDcgQEAgcHVibGljOgogICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBSdW5JdGVyYXRvck1vZGVyblBhdGgmIG90aGVyKSBjb25zdCB7
IHJldHVybiBtX2lubGluZUNvbnRlbnQgPT0gb3RoZXIubV9pbmxpbmVDb250ZW50ICYmIG1fcnVu
SW5kZXggPT0gb3RoZXIubV9ydW5JbmRleDsgfQogCiAgICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcnVuSW5kZXggPT0gcnVucygpLnNpemUoKTsgfQotCi0gICAgTGVnYWN5SW5saW5l
Qm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQorICAgIGNvbnN0IExheW91dDo6UnVuJiBydW4oKSBjb25zdCB7IHJldHVybiBy
dW5zKClbbV9ydW5JbmRleF07IH0KIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGluZUl0
ZXJhdG9yTW9kZXJuUGF0aDsKQEAgLTIyNCwzMCArMjQwLDkgQEAgcHJpdmF0ZToKICAgICAgICAg
fSB3aGlsZSAoIWF0RW5kKCkgJiYgcnVuKCkuaXNJbmxpbmVCb3goKSk7CiAgICAgfQogCi0gICAg
ZW51bSBjbGFzcyBIeXBoZW5Nb2RlIHsgSW5jbHVkZSwgSWdub3JlIH07Ci0gICAgVGV4dFJ1biBj
cmVhdGVUZXh0UnVuKEh5cGhlbk1vZGUgaHlwaGVuTW9kZSkgY29uc3QKLSAgICB7Ci0gICAgICAg
IGF1dG8mIHN0eWxlID0gcnVuKCkuc3R5bGUoKTsKLSAgICAgICAgYXV0byBleHBhbnNpb24gPSBy
dW4oKS5leHBhbnNpb24oKTsKLSAgICAgICAgYXV0byByZWN0ID0gdGhpcy0+cmVjdCgpOwotICAg
ICAgICBhdXRvIHhQb3MgPSByZWN0LngoKSAtIChsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUo
KS5jb250ZW50TGVmdCgpKTsKLQotICAgICAgICBhdXRvIHRleHRGb3JSdW4gPSBbJl0gewotICAg
ICAgICAgICAgaWYgKGh5cGhlbk1vZGUgPT0gSHlwaGVuTW9kZTo6SWdub3JlIHx8ICFoYXNIeXBo
ZW4oKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdGV4dCgpLnRvU3RyaW5nV2l0aG91dENvcHlp
bmcoKTsKLQotICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcodGV4dCgpLCBzdHlsZS5oeXBo
ZW5TdHJpbmcoKSk7Ci0gICAgICAgIH0oKTsKLQotICAgICAgICBUZXh0UnVuIHRleHRSdW4geyB0
ZXh0Rm9yUnVuLCB4UG9zLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiwgZXhwYW5zaW9u
LmJlaGF2aW9yIH07Ci0gICAgICAgIHRleHRSdW4uc2V0VGFiU2l6ZSghc3R5bGUuY29sbGFwc2VX
aGl0ZVNwYWNlKCksIHN0eWxlLnRhYlNpemUoKSk7Ci0gICAgICAgIHJldHVybiB0ZXh0UnVuOwot
ICAgIH07Ci0KICAgICB2b2lkIHNldEF0RW5kKCkgeyBtX3J1bkluZGV4ID0gcnVucygpLnNpemUo
KTsgfQogCiAgICAgY29uc3QgSW5saW5lQ29udGVudDo6UnVucyYgcnVucygpIGNvbnN0IHsgcmV0
dXJuIG1faW5saW5lQ29udGVudC0+cnVuczsgfQotICAgIGNvbnN0IExheW91dDo6UnVuJiBydW4o
KSBjb25zdCB7IHJldHVybiBydW5zKClbbV9ydW5JbmRleF07IH0KICAgICBjb25zdCBMaW5lJiBs
aW5lKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50LT5saW5lRm9yUnVuKHJ1bigpKTsg
fQogCiAgICAgUmVmUHRyPGNvbnN0IElubGluZUNvbnRlbnQ+IG1faW5saW5lQ29udGVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oCmluZGV4IGQ1
YTk0Y2IwOTExOTkzM2NiNmIyMzlmY2FiMmU3MDYwMDY5NGIyYzYuLjRjNmEyMjg1YWYyYWQ3NTAy
MTRhODc2NDVkZDFkY2U0MDYxMTE1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeUlubGluZVRleHRCb3guaApAQCAtMzEsNiArMzEsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZW5kZXJDb21iaW5lVGV4dDsKIAorbmFtZXNwYWNlIExheW91dEludGVn
cmF0aW9uIHsKK2NsYXNzIFJ1bkl0ZXJhdG9yTGVnYWN5UGF0aDsKK30KKwogY2xhc3MgTGVnYWN5
SW5saW5lVGV4dEJveCA6IHB1YmxpYyBMZWdhY3lJbmxpbmVCb3ggewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoTGVnYWN5SW5saW5lVGV4dEJveCk7CiBwdWJsaWM6CkBAIC0xNTAsNiArMTU0
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzTWFya2VycygpIGNvbnN0OwogCiBwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JMZWdhY3lQYXRo
OwogICAgIGZyaWVuZCBjbGFzcyBUZXh0Qm94UGFpbnRlcjsKIAogICAgIEZsb2F0UG9pbnQgdGV4
dE9yaWdpbkZyb21Cb3hSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438473</attachid>
            <date>2021-09-17 07:28:16 -0700</date>
            <delta_ts>2021-09-17 08:01:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230398-20210917172815.patch</filename>
            <type>text/plain</type>
            <size>13243</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NhY2VhZjU3ZWJiMDVk
ODRkOGIwOWY1OTZjOGIzM2EzNmZiN2IxMy4uYjdmMGI1MGIzZWVkM2Y0ZTczMzU2ZTdiNzNlMTEy
ZTc4YTM3ZDNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA5LTE3ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtJbnRlZ3JhdGlv
bl0gQWRkIHNvbWUgdXNlZnVsIGZ1bmN0aW9ucyB0byBpdGVyYXRvcnMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDM5OAorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsYW4gQnVqdGFzLgorCisgICAgICAgIEZvciBmdXR1cmUgdXNlLgorCisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lSXRlcmF0b3I6OmNsb3Nl
c3RSdW5Gb3JMb2dpY2FsTGVmdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpQYXRoTGluZTo6c2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9j
ayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aExpbmU6
OnNlbGVjdGlvbkhlaWdodEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2sgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhMaW5lOjpmaXJzdFNlbGVjdGVkQm94
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoTGluZTo6
bGFzdFNlbGVjdGVkQm94IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpQYXRoTGluZTo6Y29udGVudExvZ2ljYWxXaWR0aCBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJu
UGF0aC5oOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1
bkl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFRl
eHRSdW46OmxlZ2FjeUlubGluZUJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6UGF0aFJ1bjo6bGVnYWN5SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoUnVuOjppbmxpbmVCb3ggY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuOjpjcmVhdGVUZXh0
UnVuIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25SdW5JdGVyYXRvckxlZ2FjeVBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpSdW5JdGVyYXRvckxlZ2FjeVBhdGg6OmNyZWF0ZVRleHRSdW4gY29uc3QpOgorICAg
ICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTW9k
ZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJh
dG9yTW9kZXJuUGF0aDo6Y3JlYXRlVGV4dFJ1biBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRlcmF0b3JNb2Rlcm5QYXRoOjpydW4gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yTW9kZXJuUGF0aDo6
cnVucyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuSXRl
cmF0b3JNb2Rlcm5QYXRoOjpsZWdhY3lJbmxpbmVCb3ggY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94Lmg6CisKIDIwMjEtMDktMTcgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9u
XSBNb3ZlIG5vbi10cmF2ZXJzYWwgZnVuY3Rpb25zIGZyb20gaXRlcmF0b3IgdG8gdGhlIGRlcmVm
ZXJlbmNlZCB0eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmNwcAppbmRleCA0
NDBhYWJjNjRkNzJmMGI1OTgzYWIxM2UzMDNiOGFkNTUyOWQ3MzZhLi5mYmIzZTU5OGRkY2JmZWMw
YjBhZjA2ZWQ1ODA5ZTE0ZDVkNjM3MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVy
YXRvci5jcHAKQEAgLTE1NCw4ICsxNTQsNyBAQCBSdW5JdGVyYXRvciBQYXRoTGluZTo6Y2xvc2Vz
dFJ1bkZvclBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludEluQ29udGVudHMsIGJvb2wgZQogCiBS
dW5JdGVyYXRvciBQYXRoTGluZTo6Y2xvc2VzdFJ1bkZvckxvZ2ljYWxMZWZ0UG9zaXRpb24oaW50
IGxlZnRQb3NpdGlvbiwgYm9vbCBlZGl0YWJsZU9ubHkpIGNvbnN0CiB7Ci0gICAgYXV0byBpc0Vk
aXRhYmxlID0gWyZdKGF1dG8gcnVuKQotICAgIHsKKyAgICBhdXRvIGlzRWRpdGFibGUgPSBbJl0o
YXV0byBydW4pIHsKICAgICAgICAgcmV0dXJuIHJ1biAmJiBydW4tPnJlbmRlcmVyKCkubm9kZSgp
ICYmIHJ1bi0+cmVuZGVyZXIoKS5ub2RlKCktPmhhc0VkaXRhYmxlU3R5bGUoKTsKICAgICB9Owog
CkBAIC0xOTUsNiArMTk0LDE2IEBAIGludCBQYXRoTGluZTo6YmxvY2tEaXJlY3Rpb25Qb2ludElu
TGluZSgpIGNvbnN0CiAgICAgcmV0dXJuICFjb250YWluaW5nQmxvY2soKS5zdHlsZSgpLmlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkgPyBzdGQ6Om1heCh0b3AoKSwgc2VsZWN0aW9uVG9wKCkp
IDogc3RkOjptaW4oYm90dG9tKCksIHNlbGVjdGlvbkJvdHRvbSgpKTsKIH0KIAorTGF5b3V0VW5p
dCBQYXRoTGluZTo6c2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jaygpLmFkanVzdFNlbGVjdGlvblRvcEZvclBy
ZWNlZGluZ0Jsb2NrKHNlbGVjdGlvblRvcCgpKTsKK30KKworTGF5b3V0VW5pdCBQYXRoTGluZTo6
c2VsZWN0aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHN0ZDo6bWF4PExheW91dFVuaXQ+KDAsIHNlbGVjdGlvbkJvdHRvbSgpIC0gc2VsZWN0
aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpKTsKK30KKwogUmVuZGVyT2JqZWN0OjpI
aWdobGlnaHRTdGF0ZSBQYXRoTGluZTo6c2VsZWN0aW9uU3RhdGUoKSBjb25zdAogewogICAgIGF1
dG8mIGJsb2NrID0gY29udGFpbmluZ0Jsb2NrKCk7CkBAIC0yMjAsNiArMjI5LDI0IEBAIFJlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgUGF0aExpbmU6OnNlbGVjdGlvblN0YXRlKCkgY29uc3QK
ICAgICByZXR1cm4gc3RhdGU7CiB9CiAKK1J1bkl0ZXJhdG9yIFBhdGhMaW5lOjpmaXJzdFNlbGVj
dGVkQm94KCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3RSdW4oKTsgYm94OyBi
b3gudHJhdmVyc2VOZXh0T25MaW5lKCkpIHsKKyAgICAgICAgaWYgKGJveC0+c2VsZWN0aW9uU3Rh
dGUoKSAhPSBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlOjpOb25lKQorICAgICAgICAgICAg
cmV0dXJuIGJveDsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsKK30KKworUnVuSXRlcmF0b3IgUGF0
aExpbmU6Omxhc3RTZWxlY3RlZEJveCgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvIGJveCA9IGxh
c3RSdW4oKTsgYm94OyBib3gudHJhdmVyc2VQcmV2aW91c09uTGluZSgpKSB7CisgICAgICAgIGlm
IChib3gtPnNlbGVjdGlvblN0YXRlKCkgIT0gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6
Tm9uZSkKKyAgICAgICAgICAgIHJldHVybiBib3g7CisgICAgfQorICAgIHJldHVybiB7IH07Cit9
CisKIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaAppbmRleCA1Y2VhYTZj
MmEyOTM2NmZhYjUwMGJjMzc0Mjg3OThkYzE4YTdlNWM0Li43MTZmODY1ZWMwOTdhZjNmMzRlMGM4
MWJiNDkwNTYxN2EwYTVmZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lSXRlcmF0b3IuaApA
QCAtNTcsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3BGb3JI
aXRUZXN0aW5nKCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20oKSBjb25z
dDsKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkhlaWdodCgpIGNvbnN0OworICAgIExheW91dFVu
aXQgc2VsZWN0aW9uVG9wQWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0OworICAgIExh
eW91dFVuaXQgc2VsZWN0aW9uSGVpZ2h0QWRqdXN0ZWRGb3JQcmVjZWRpbmdCbG9jaygpIGNvbnN0
OwogICAgIExheW91dFVuaXQgbGluZUJveFRvcCgpIGNvbnN0OwogICAgIExheW91dFVuaXQgbGlu
ZUJveEJvdHRvbSgpIGNvbnN0OwogCkBAIC02Niw2ICs2OCw3IEBAIHB1YmxpYzoKICAgICBmbG9h
dCB5KCkgY29uc3Q7CiAgICAgZmxvYXQgY29udGVudExvZ2ljYWxMZWZ0KCkgY29uc3Q7CiAgICAg
ZmxvYXQgY29udGVudExvZ2ljYWxSaWdodCgpIGNvbnN0OworICAgIGZsb2F0IGNvbnRlbnRMb2dp
Y2FsV2lkdGgoKSBjb25zdDsKICAgICBmbG9hdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAKICAg
ICBpbnQgYmxvY2tEaXJlY3Rpb25Qb2ludEluTGluZSgpIGNvbnN0OwpAQCAtOTIsNiArOTUsOSBA
QCBwdWJsaWM6CiAgICAgUnVuSXRlcmF0b3IgbG9naWNhbEVuZFJ1bigpIGNvbnN0OwogICAgIFJ1
bkl0ZXJhdG9yIGxvZ2ljYWxTdGFydFJ1bldpdGhOb2RlKCkgY29uc3Q7CiAgICAgUnVuSXRlcmF0
b3IgbG9naWNhbEVuZFJ1bldpdGhOb2RlKCkgY29uc3Q7CisgICAgCisgICAgUnVuSXRlcmF0b3Ig
Zmlyc3RTZWxlY3RlZEJveCgpIGNvbnN0OworICAgIFJ1bkl0ZXJhdG9yIGxhc3RTZWxlY3RlZEJv
eCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBMaW5lSXRlcmF0b3I7CkBA
IC0yMTcsNiArMjIzLDExIEBAIGlubGluZSBmbG9hdCBQYXRoTGluZTo6Y29udGVudExvZ2ljYWxS
aWdodCgpIGNvbnN0CiAgICAgfSk7CiB9CiAKK2lubGluZSBmbG9hdCBQYXRoTGluZTo6Y29udGVu
dExvZ2ljYWxXaWR0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnRlbnRMb2dpY2FsUmlnaHQo
KSAtIGNvbnRlbnRMb2dpY2FsTGVmdCgpOworfQorCiBpbmxpbmUgZmxvYXQgUGF0aExpbmU6Omxv
Z2ljYWxIZWlnaHQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZh
cmlhbnQsIFtdKGNvbnN0IGF1dG8mIHBhdGgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVJdGVyYXRvck1vZGVyblBh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlv
bkxpbmVJdGVyYXRvck1vZGVyblBhdGguaAppbmRleCBkYTFhYmRmNzIyN2UyNjU3YTg0Nzc2MGI5
MjIyY2YxODU4YjYyZmIwLi40ZGRkNGFhNGU5ZjMxY2Q5YjNlNzY4NzAwNDg4NzRmNjc2MWY1ZDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUl0ZXJhdG9yTW9kZXJuUGF0aC5o
CkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICAvLyAtIHRoZSAiYmVmb3JlIiB2YWx1ZSBp
cyBhbHJlYWR5IGZhY3RvcmVkIGluIHRvIHRoZSBsaW5lIG9mZnNldAogICAgIC8vIC0gdGhpcyBs
b2dpYyBuZWdhdGVzIHRoZSBmaXJzdCBsaW5lJ3MgbmF0dXJhbCBvZmZzZXQgKGUuZy4gYmxvY2sg
aGFzIG5vIGJvcmRlci9wYWRkaW5nIGJ1dCB0aGUgZmlyc3QgbGluZSBoYXMgYSBjb21wdXRlZCBv
ZmZzZXQpLgogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wRm9ySGl0VGVzdGluZygpIGNvbnN0
IHsgcmV0dXJuICFtX2xpbmVJbmRleCA/IGNvbnRhaW5pbmdCbG9jaygpLmJvcmRlckFuZFBhZGRp
bmdCZWZvcmUoKSA6IHNlbGVjdGlvblRvcCgpOyB9OworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
b3IgcmVwbGFjZS4KICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkJvdHRvbSgpIGNvbnN0IHsgcmV0
dXJuIGJvdHRvbSgpOyB9CiAKICAgICBmbG9hdCBjb250ZW50TG9naWNhbExlZnQoKSBjb25zdCB7
IHJldHVybiBsaW5lKCkubGluZUJveExlZnQoKSArIGxpbmUoKS5jb250ZW50TGVmdCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAppbmRleCAyZDBhMzAwNDMxNjlmZjAzYjM0N2M0
NjQxMWQxMDM4ODk2ODRlMGIzLi4wNDVlYzBiODgwNGRhMmUzMzI1OWUwYzI4NzhlZDgzNjgyNWE3
NWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmgKQEAgLTg2LDggKzg2LDEwIEBA
IHB1YmxpYzoKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUoKSBjb25zdDsKIAogICAgIC8v
IEZvciBpbnRlcm1lZGlhdGUgcG9ydGluZyBzdGVwcyBvbmx5LgotICAgIExlZ2FjeUlubGluZUJv
eCogbGVnYWN5SW5saW5lQm94KCkgY29uc3Q7Ci0KKyAgICBjb25zdCBMZWdhY3lJbmxpbmVCb3gq
IGxlZ2FjeUlubGluZUJveCgpIGNvbnN0OworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQorICAgIGNvbnN0IExheW91dDo6UnVuKiBpbmxpbmVCb3goKSBjb25zdDsKKyNlbmRp
ZgogICAgIFJ1bkl0ZXJhdG9yIG5leHRPbkxpbmUoKSBjb25zdDsKICAgICBSdW5JdGVyYXRvciBw
cmV2aW91c09uTGluZSgpIGNvbnN0OwogICAgIFJ1bkl0ZXJhdG9yIG5leHRPbkxpbmVJZ25vcmlu
Z0xpbmVCcmVhaygpIGNvbnN0OwpAQCAtMTI1LDggKzEyNywxMCBAQCBwdWJsaWM6CiAgICAgVGV4
dEJveFNlbGVjdGFibGVSYW5nZSBzZWxlY3RhYmxlUmFuZ2UoKSBjb25zdDsKICAgICBMYXlvdXRS
ZWN0IHNlbGVjdGlvblJlY3QodW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkgY29uc3Q7CiAK
KyAgICBUZXh0UnVuIGNyZWF0ZVRleHRSdW4oKSBjb25zdDsKKwogICAgIGNvbnN0IFJlbmRlclRl
eHQmIHJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8UmVuZGVyVGV4dD4oUGF0aFJ1
bjo6cmVuZGVyZXIoKSk7IH0KLSAgICBMZWdhY3lJbmxpbmVUZXh0Qm94KiBsZWdhY3lJbmxpbmVC
b3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0Qm94PihQYXRoUnVu
OjpsZWdhY3lJbmxpbmVCb3goKSk7IH0KKyAgICBjb25zdCBMZWdhY3lJbmxpbmVUZXh0Qm94KiBs
ZWdhY3lJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxMZWdhY3lJbmxpbmVUZXh0
Qm94PihQYXRoUnVuOjpsZWdhY3lJbmxpbmVCb3goKSk7IH0KIAogICAgIFRleHRSdW5JdGVyYXRv
ciBuZXh0VGV4dFJ1bigpIGNvbnN0OwogICAgIFRleHRSdW5JdGVyYXRvciBuZXh0VGV4dFJ1bklu
VGV4dE9yZGVyKCkgY29uc3Q7CkBAIC0yODUsMTIgKzI4OSwyMSBAQCBpbmxpbmUgY29uc3QgUmVu
ZGVyT2JqZWN0JiBQYXRoUnVuOjpyZW5kZXJlcigpIGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGlu
ZSBMZWdhY3lJbmxpbmVCb3gqIFBhdGhSdW46OmxlZ2FjeUlubGluZUJveCgpIGNvbnN0Citpbmxp
bmUgY29uc3QgTGVnYWN5SW5saW5lQm94KiBQYXRoUnVuOjpsZWdhY3lJbmxpbmVCb3goKSBjb25z
dAogewotICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBh
dGgpIHsKLSAgICAgICAgcmV0dXJuIHBhdGgubGVnYWN5SW5saW5lQm94KCk7Ci0gICAgfSk7Cisg
ICAgaWYgKCFXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJ1bkl0ZXJhdG9yTGVnYWN5UGF0aD4obV9w
YXRoVmFyaWFudCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXVEY6Omdl
dDxSdW5JdGVyYXRvckxlZ2FjeVBhdGg+KG1fcGF0aFZhcmlhbnQpLmxlZ2FjeUlubGluZUJveCgp
OworfQorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCitpbmxpbmUgY29u
c3QgTGF5b3V0OjpSdW4qIFBhdGhSdW46OmlubGluZUJveCgpIGNvbnN0Cit7CisgICAgaWYgKCFX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFJ1bkl0ZXJhdG9yTW9kZXJuUGF0aD4obV9wYXRoVmFyaWFu
dCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiAmV1RGOjpnZXQ8UnVuSXRl
cmF0b3JNb2Rlcm5QYXRoPihtX3BhdGhWYXJpYW50KS5ydW4oKTsKIH0KKyNlbmRpZgogCiBpbmxp
bmUgYm9vbCBQYXRoVGV4dFJ1bjo6aGFzSHlwaGVuKCkgY29uc3QKIHsKQEAgLTM2MCw2ICszNzMs
MTMgQEAgaW5saW5lIExheW91dFJlY3QgUGF0aFRleHRSdW46OnNlbGVjdGlvblJlY3QodW5zaWdu
ZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkgY29uc3QKICAgICB9KTsKIH0KIAoraW5saW5lIFRleHRS
dW4gUGF0aFRleHRSdW46OmNyZWF0ZVRleHRSdW4oKSBjb25zdAoreworICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFsmXShhdXRvJiBwYXRoKSB7CisgICAgICAgIHJldHVy
biBwYXRoLmNyZWF0ZVRleHRSdW4oKTsKKyAgICB9KTsKK30KKwogfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5J
dGVyYXRvckxlZ2FjeVBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCmluZGV4IDM3NTk4MTYzYzhl
YWM3ZDZmY2JiN2YzYmI5ZDBmM2RkYTJiYjgyN2MuLmM3Y2RhYTZjMDBiOTVmYWNiM2E4Zjk1ZjRh
NTcxM2E0ZGRlYmU1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3Jh
dGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TGVnYWN5UGF0aC5oCkBAIC03OCw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICBUZXh0Qm94U2VsZWN0
YWJsZVJhbmdlIHNlbGVjdGFibGVSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIGlubGluZVRleHRCb3go
KS0+c2VsZWN0YWJsZVJhbmdlKCk7IH0KICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3QodW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkgY29uc3QgeyByZXR1cm4gaW5saW5lVGV4dEJveCgp
LT5sb2NhbFNlbGVjdGlvblJlY3Qoc3RhcnQsIGVuZCk7IH0KIAorICAgIFRleHRSdW4gY3JlYXRl
VGV4dFJ1bigpIGNvbnN0IHsgcmV0dXJuIGlubGluZVRleHRCb3goKS0+Y3JlYXRlVGV4dFJ1bigp
OyB9CisKICAgICBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX2lubGluZUJveC0+cmVuZGVyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9y
TW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dElu
dGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKaW5kZXggNWQyMjQ3ZGIyOGNkMDMwYTEz
OWIzMjNiZTVhMmIwNTU3ZTI3N2E4Ni4uODUyMTRlNDZiZTllZDQ0NjU2Y2JiMmNkMzk5NWM1ZDll
MjMxMjRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5Q
YXRoLmgKQEAgLTEzNCw2ICsxMzQsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc25hcHBl
ZFNlbGVjdGlvblJlY3Qoc2VsZWN0aW9uUmVjdCwgbG9naWNhbFJpZ2h0LCBzZWxlY3Rpb25Ub3As
IHNlbGVjdGlvbkhlaWdodCwgaXNIb3Jpem9udGFsKCkpOwogICAgIH0KIAorICAgIFRleHRSdW4g
Y3JlYXRlVGV4dFJ1bigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlVGV4dFJ1
bihIeXBoZW5Nb2RlOjpJbmNsdWRlKTsKKyAgICB9OworCiAgICAgY29uc3QgUmVuZGVyT2JqZWN0
JiByZW5kZXJlcigpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9pbmxpbmVDb250ZW50
LT5yZW5kZXJlckZvckxheW91dEJveChydW4oKS5sYXlvdXRCb3goKSk7CkBAIC0xOTcsMTEgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUnVuSXRlcmF0b3JNb2Rl
cm5QYXRoJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50ID09IG90aGVyLm1f
aW5saW5lQ29udGVudCAmJiBtX3J1bkluZGV4ID09IG90aGVyLm1fcnVuSW5kZXg7IH0KIAogICAg
IGJvb2wgYXRFbmQoKSBjb25zdCB7IHJldHVybiBtX3J1bkluZGV4ID09IHJ1bnMoKS5zaXplKCk7
IH0KLQotICAgIExlZ2FjeUlubGluZUJveCogbGVnYWN5SW5saW5lQm94KCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KKyAgICBjb25zdCBMYXlvdXQ6OlJ1biYg
cnVuKCkgY29uc3QgeyByZXR1cm4gcnVucygpW21fcnVuSW5kZXhdOyB9CiAKIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIExpbmVJdGVyYXRvck1vZGVyblBhdGg7CkBAIC0yMjQsNiArMjI1LDEx
IEBAIHByaXZhdGU6CiAgICAgICAgIH0gd2hpbGUgKCFhdEVuZCgpICYmIHJ1bigpLmlzSW5saW5l
Qm94KCkpOwogICAgIH0KIAorICAgIHZvaWQgc2V0QXRFbmQoKSB7IG1fcnVuSW5kZXggPSBydW5z
KCkuc2l6ZSgpOyB9CisKKyAgICBjb25zdCBJbmxpbmVDb250ZW50OjpSdW5zJiBydW5zKCkgY29u
c3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50LT5ydW5zOyB9CisgICAgY29uc3QgTGluZSYgbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ29udGVudC0+bGluZUZvclJ1bihydW4oKSk7IH0K
KwogICAgIGVudW0gY2xhc3MgSHlwaGVuTW9kZSB7IEluY2x1ZGUsIElnbm9yZSB9OwogICAgIFRl
eHRSdW4gY3JlYXRlVGV4dFJ1bihIeXBoZW5Nb2RlIGh5cGhlbk1vZGUpIGNvbnN0CiAgICAgewpA
QCAtMjQ0LDEyICsyNTAsNiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdGV4dFJ1bjsKICAg
ICB9OwogCi0gICAgdm9pZCBzZXRBdEVuZCgpIHsgbV9ydW5JbmRleCA9IHJ1bnMoKS5zaXplKCk7
IH0KLQotICAgIGNvbnN0IElubGluZUNvbnRlbnQ6OlJ1bnMmIHJ1bnMoKSBjb25zdCB7IHJldHVy
biBtX2lubGluZUNvbnRlbnQtPnJ1bnM7IH0KLSAgICBjb25zdCBMYXlvdXQ6OlJ1biYgcnVuKCkg
Y29uc3QgeyByZXR1cm4gcnVucygpW21fcnVuSW5kZXhdOyB9Ci0gICAgY29uc3QgTGluZSYgbGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ29udGVudC0+bGluZUZvclJ1bihydW4oKSk7IH0K
LQogICAgIFJlZlB0cjxjb25zdCBJbmxpbmVDb250ZW50PiBtX2lubGluZUNvbnRlbnQ7CiAgICAg
c2l6ZV90IG1fcnVuSW5kZXggeyAwIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MZWdhY3lJbmxpbmVUZXh0Qm94LmgKaW5kZXggZDVhOTRjYjA5MTE5OTMzY2I2YjIzOWZjYWIy
ZTcwNjAwNjk0YjJjNi4uNGM2YTIyODVhZjJhZDc1MDIxNGE4NzY0NWRkMWRjZTQwNjExMTVkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5oCkBA
IC0zMSw2ICszMSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckNvbWJp
bmVUZXh0OwogCituYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24geworY2xhc3MgUnVuSXRlcmF0
b3JMZWdhY3lQYXRoOworfQorCiBjbGFzcyBMZWdhY3lJbmxpbmVUZXh0Qm94IDogcHVibGljIExl
Z2FjeUlubGluZUJveCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChMZWdhY3lJbmxpbmVU
ZXh0Qm94KTsKIHB1YmxpYzoKQEAgLTE1MCw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBo
YXNNYXJrZXJzKCkgY29uc3Q7CiAKIHByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIExheW91dElu
dGVncmF0aW9uOjpSdW5JdGVyYXRvckxlZ2FjeVBhdGg7CiAgICAgZnJpZW5kIGNsYXNzIFRleHRC
b3hQYWludGVyOwogCiAgICAgRmxvYXRQb2ludCB0ZXh0T3JpZ2luRnJvbUJveFJlY3QoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>