<?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>231069</bug_id>
          
          <creation_ts>2021-10-01 03:35:42 -0700</creation_ts>
          <short_desc>Move InlineWalker to a file of its own and make it use RenderIterator</short_desc>
          <delta_ts>2021-10-01 06:43:57 -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>1799224</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-01 03:35:42 -0700</bug_when>
    <thetext>cleanups</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799228</commentid>
    <comment_count>1</comment_count>
      <attachid>439837</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-10-01 03:44:16 -0700</bug_when>
    <thetext>Created attachment 439837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799263</commentid>
    <comment_count>2</comment_count>
      <attachid>439837</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-10-01 06:23:37 -0700</bug_when>
    <thetext>Comment on attachment 439837
Patch

A+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799270</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-01 06:41:42 -0700</bug_when>
    <thetext>Committed r283365 (242374@main): &lt;https://commits.webkit.org/242374@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439837.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799271</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-01 06:43:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/83763883&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439837</attachid>
            <date>2021-10-01 03:44:16 -0700</date>
            <delta_ts>2021-10-01 06:41:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231069-20211001134415.patch</filename>
            <type>text/plain</type>
            <size>22214</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE0ZDJmY2U1MGM0ZDY4
MzNjYjk0ZmNmMDc2NjkzMjhmM2NiNjFlMC4uODI5YmZiOTU3ZDM0NjA0ZDEwY2I1YzliNzYxM2E4
M2VhYjUwMjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIxLTEwLTAxICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIElubGluZVdhbGtl
ciB0byBhIGZpbGUgb2YgaXRzIG93biBhbmQgbWFrZSBpdCB1c2UgUmVuZGVySXRlcmF0b3IKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTA2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGNvbmZ1
c2luZyBhbmQgb3Zlcmx5IGNvbXBsaWNhdGVkLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OkJveFRyZWU6OmJ1aWxkVHJlZSk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQ292ZXJhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OmNhblVzZUZvckxpbmVMYXlvdXRXaXRoUmVhc29uKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lSXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OmJpZGlOZXh0U2tpcHBp
bmdFbXB0eUlubGluZXMpOgorICAgICAgICAoV2ViQ29yZTo6YmlkaU5leHRTaGFyZWQpOiBEZWxl
dGVkLgorCisgICAgICAgIFRoZXJlIGlzIG5vIG5lZWQgdG8gc2hhcmUgYW55dGhpbmcgaGVyZS4K
KworICAgICAgICAoV2ViQ29yZTo6YmlkaU5leHRJbmNsdWRpbmdFbXB0eUlubGluZXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6YmlkaUZpcnN0SW5jbHVkaW5nRW1wdHlJbmxpbmVzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6SW5saW5lV2Fsa2VyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6cm9vdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVXYWxrZXI6OmN1cnJlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lV2Fsa2VyOjphdEVuZE9mSW5saW5lKTogRGVsZXRlZC4KKwor
ICAgICAgICBOb25lIG9mIHRoZSBjbGllbnRzIGNhcmVkIGFib3V0IHRoZSBmdW5jdGlvbmFsaXR5
IHdoZXJlIHRoZSBpdGVyYXRvciB3b3VsZCBzdG9wIGF0IHRoZSBlbmQgb2YgYSBSZW5kZXJJbmxp
bmUuCisKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YXRFbmQgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lV2Fsa2VyOjphZHZhbmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lV2Fsa2VyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lV2Fsa2VyOjpJbmxpbmVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5s
aW5lV2Fsa2VyOjpjdXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6YXRF
bmQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lV2Fsa2VyOjphZHZhbmNlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpMZWdhY3lMaW5lTGF5b3V0OjpsYXlvdXRMaW5lQm94ZXMpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2ltcGxp
ZmllZE5vcm1hbEZsb3dMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJdGVyYXRv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySXRlcmF0b3I6Om9wZXJhdG9yIGJvb2wgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29uc3RJdGVyYXRvcjo6b3BlcmF0b3IgYm9v
bCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJdGVyYXRvcjxUPjo6dHJhdmVyc2VO
ZXh0U2tpcHBpbmdDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb25zdEl0ZXJh
dG9yPFQ+Ojp0cmF2ZXJzZU5leHRTa2lwcGluZ0NoaWxkcmVuKToKKwogMjAyMS0wOS0yOSAgS2lt
bW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdQVVAgQ29jb2Eg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgc2hvdWxkIGNoZWNrIGZvciBBTkdMRSBwcmVzZW5jZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDAyZDg0MTViNDYwYjI3NTAxNjU0YTE1NzQyOTEyYjVjNGZkYjEyNWEuLjYwMzZlZjAwMjA2
MDQ4MGViZGYzOGNmMDkyMGFjM2U1YjdkZDViMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUyNjYsNiArNTI2Niw3IEBACiAJ
CUU0N0MzOTMxMUZFNkUxMDIwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENv
bnRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
N0MzOTI1MUZFNkUwREIwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRl
bnQuaCAqLzsgfTsKIAkJRTQ3QzM5MzIxRkU2RTEwNTAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWls
ZGVyTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQ3QzM5MjgxRkU2RTBERDAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5oICovOyB9
OwogCQlFNDdDMzkzMzFGRTZFMTA4MDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNv
bHVtbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3
QzM5MjcxRkU2RTBEQzAwQkJCQzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uaCAq
LzsgfTsKKwkJRTQ3Q0VCQzkyNzA2RUY1MjAwQjhEOEY1IC8qIElubGluZVdhbGtlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ3Q0VCQzcyNzA2RUY1
MTAwQjhEOEY1IC8qIElubGluZVdhbGtlci5oICovOyB9OwogCQlFNDdFMjc2NTE2MDM2RUQyMDBF
RTJBRkIgLyogRXh0ZW5zaW9uU3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0UyNzY0MTYwMzZFRDIwMEVFMkFGQiAvKiBFeHRlbnNp
b25TdHlsZVNoZWV0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0N0ZDOEEzMjVCODRENzIwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0N0ZDOEEx
MjVCODRENzEwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDgxMzdCOTFEQjNCNTI2MDA1QzU5
QkYgLyogU3R5bGVWYWxpZGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQ4MTM3QjgxREIzQjUyNjAwNUM1OUJGIC8qIFN0eWxlVmFsaWRpdHkuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTY1MDgs
NiArMTY1MDksNyBAQAogCQlFNDdDMzkyQTFGRTZFMERFMDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1
aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3QzM5MkIxRkU2RTBERjAwQkJC
QzZCIC8qIFJlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW5kZXJUcmVlQnVpbGRlckxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDdDMzkyQzFGRTZFMERGMDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZVVwZGF0ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ3Q0VCQzcyNzA2RUY1MTAwQjhEOEY1
IC8qIElubGluZVdhbGtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxp
bmVXYWxrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ3RTI3NjQxNjAzNkVE
MjAwRUUyQUZCIC8qIEV4dGVuc2lvblN0eWxlU2hlZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV4dGVuc2lvblN0eWxlU2hlZXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUU0N0UyNzY3MTYwMzZFREMwMEVFMkFGQiAvKiBFeHRlbnNpb25TdHlsZVNoZWV0
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHRlbnNpb25TdHls
ZVNoZWV0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0N0ZDOEExMjVCODRE
NzEwMDU0OTVGQyAvKiBMb2FkU2NoZWR1bGluZ01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTG9hZFNjaGVkdWxpbmdNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yOTk1Myw2ICsyOTk1NSw3IEBACiAJCQkJRTRGODE5QzUyNkZCNEVCRjAwOTRFMTYy
IC8qIElubGluZUJveFBhaW50ZXIuaCAqLywKIAkJCQk5MzBDOTBEQzE5Q0Y5NjUzMDBENkMyMUEg
LyogSW5saW5lSXRlcmF0b3IuY3BwICovLAogCQkJCUJDRTc4OTE1MTEyMEQ2MDgwMDYwRUNFNSAv
KiBJbmxpbmVJdGVyYXRvci5oICovLAorCQkJCUU0N0NFQkM3MjcwNkVGNTEwMEI4RDhGNSAvKiBJ
bmxpbmVXYWxrZXIuaCAqLywKIAkJCQkwRkVDMTIwQjIyQkYyQ0M3MDA0RTlEMzUgLyogTGF5ZXJB
bmNlc3RvckNsaXBwaW5nU3RhY2suY3BwICovLAogCQkJCTBGRUMxMjA5MjJCRjJDQzcwMDRFOUQz
NSAvKiBMYXllckFuY2VzdG9yQ2xpcHBpbmdTdGFjay5oICovLAogCQkJCTU4MDM3MTYzMUE2NkYx
RDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggKi8sCkBAIC0zMjk3OCw2ICszMjk4MSw3IEBA
CiAJCQkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIElubGluZVN0eWxlU2hlZXRPd25lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwMTA3MDExOTI1OTRERjAwOEE0MjAxIC8qIElubGluZVRl
eHRCb3hTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYxQ0MxREUyMjVGOEI0OTAwNzIwQUQy
IC8qIElubGluZVRleHRJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDRUJDOTI3MDZFRjUy
MDBCOEQ4RjUgLyogSW5saW5lV2Fsa2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0U4ODY0MTI2
MTA1QkYyMDAwQzgxNkMgLyogSW5NZW1vcnlEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkVCNzY3NTcxREExOUJERjAwM0UyM0I1IC8qIElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU1MkVGREY0MjExMjg3NUEwMEFEMjgyQSAvKiBJbnB1dE1vZGUuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91
dEludGVncmF0aW9uQm94VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAppbmRleCBhNWE2ZjQ1ZTQyNzcwNTllNjkx
N2IxMGE0Y2ZiOGE0YzUzNTc1MTFlLi4wOWM0YmJmYzRmNGJmMGEzM2ZjODgxMzRhZDdiODhiMmUz
NTgzNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNwcApAQCAtMjgsNyArMjgsNyBAQAog
CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJJbmxp
bmVJdGVyYXRvci5oIgorI2luY2x1ZGUgIklubGluZVdhbGtlci5oIgogI2luY2x1ZGUgIkxheW91
dENvbnRhaW5lckJveC5oIgogI2luY2x1ZGUgIkxheW91dElubGluZVRleHRCb3guaCIKICNpbmNs
dWRlICJMYXlvdXRMaW5lQnJlYWtCb3guaCIKQEAgLTE0NCw4ICsxNDQsNiBAQCB2b2lkIEJveFRy
ZWU6OmJ1aWxkVHJlZSgpCiAgICAgfTsKIAogICAgIGZvciAoYXV0byB3YWxrZXIgPSBJbmxpbmVX
YWxrZXIobV9mbG93KTsgIXdhbGtlci5hdEVuZCgpOyB3YWxrZXIuYWR2YW5jZSgpKSB7Ci0gICAg
ICAgIGlmICh3YWxrZXIuYXRFbmRPZklubGluZSgpKQotICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGF1dG8mIGNoaWxkUmVuZGVyZXIgPSAqd2Fsa2VyLmN1cnJlbnQoKTsKICAgICAgICAg
YXV0byBjaGlsZEJveCA9IGNyZWF0ZUNoaWxkQm94KGNoaWxkUmVuZGVyZXIpOwogICAgICAgICBh
cHBlbmRDaGlsZChtYWtlVW5pcXVlUmVmRnJvbU5vbk51bGxVbmlxdWVQdHIoV1RGTW92ZShjaGls
ZEJveCkpLCBjaGlsZFJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdlLmNwcAppbmRl
eCA3MDMyMDliY2I5MDZiZTMwNDlkOTkzMjM2MTM5ODM5NDlmZmYxODQyLi4yN2RiZTdlMmE0ZDQ5
YTUwM2ZiNWUxMmZmYTEzMzBkYmEwNGY0YWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQ292ZXJhZ2Uu
Y3BwCkBAIC02NDQsNyArNjQ0LDcgQEAgT3B0aW9uU2V0PEF2b2lkYW5jZVJlYXNvbj4gY2FuVXNl
Rm9yTGluZUxheW91dFdpdGhSZWFzb24oY29uc3QgUmVuZGVyQmxvY2tGbG93JgogICAgICAgICBT
RVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNMaW5lQ2xhbXAsIHJlYXNvbnMs
IGluY2x1ZGVSZWFzb25zKTsKICAgICAvLyBUaGlzIGN1cnJlbnRseSBjb3ZlcnMgPGJsb2NrZmxv
dz4jdGV4dDwvYmxvY2tmbG93PiwgPGJsb2NrZmxvdz4jdGV4dDxicj48L2Jsb2NrZmxvdz4gYW5k
IG11dGlwbGUgKHNpYmxpbmcpIFJlbmRlclRleHQgY2FzZXMuCiAgICAgLy8gVGhlIDxibG9ja2Zs
b3c+PGlubGluZT4jdGV4dDwvaW5saW5lPjwvYmxvY2tmbG93PiBjYXNlIGlzIGFsc28gcG9wdWxh
ciBhbmQgc2hvdWxkIGJlIHJlbGF0aXZlbHkgZWFzeSB0byBjb3Zlci4KLSAgICBmb3IgKGF1dG8g
d2Fsa2VyID0gSW5saW5lV2Fsa2VyKGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oZmxvdykp
OyAhd2Fsa2VyLmF0RW5kKCk7IHdhbGtlci5hZHZhbmNlKCkpIHsKKyAgICBmb3IgKGF1dG8gd2Fs
a2VyID0gSW5saW5lV2Fsa2VyKGZsb3cpOyAhd2Fsa2VyLmF0RW5kKCk7IHdhbGtlci5hZHZhbmNl
KCkpIHsKICAgICAgICAgaWYgKGF1dG8gY2hpbGRSZWFzb25zID0gY2FuVXNlRm9yQ2hpbGQoZmxv
dywgKndhbGtlci5jdXJyZW50KCksIGluY2x1ZGVSZWFzb25zKSkKICAgICAgICAgICAgIEFERF9S
RUFTT05TX0FORF9SRVRVUk5fSUZfTkVFREVEKGNoaWxkUmVhc29ucywgcmVhc29ucywgaW5jbHVk
ZVJlYXNvbnMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9y
LmgKaW5kZXggM2NhOWI4NjQ4MmY1Yzc3MzJiZDRhODMwOWM1OWMyMjk5NTBjMjZiNC4uNjBhYzEz
NWYwNGIyM2NiZTQzYjVkYjUxMzc0NmI1ZjJhNTdhNzVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUl0ZXJhdG9yLmgKQEAgLTE5OSwxMiArMTk5LDYgQEAgc3RhdGljIGlubGlu
ZSBib29sIGlzSXRlcmF0b3JUYXJnZXQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJu
IG9iamVjdC0+aXNUZXh0T3JMaW5lQnJlYWsoKSB8fCBvYmplY3QtPmlzRmxvYXRpbmcoKSB8fCBv
YmplY3QtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IG9iamVjdC0+aXNSZXBsYWNlZCgpOwog
fQogCi0vLyBUaGlzIGVudW0gaXMgb25seSB1c2VkIGZvciBiaWRpTmV4dFNoYXJlZCgpCi1lbnVt
IEVtcHR5SW5saW5lQmVoYXZpb3IgewotICAgIFNraXBFbXB0eUlubGluZXMsCi0gICAgSW5jbHVk
ZUVtcHR5SW5saW5lcywKLX07Ci0KIHN0YXRpYyBib29sIGlzRW1wdHlJbmxpbmUoY29uc3QgUmVu
ZGVySW5saW5lJiByZW5kZXJlcikKIHsKICAgICBmb3IgKGF1dG8mIGN1cnJlbnQgOiBjaGlsZHJl
bk9mVHlwZTxSZW5kZXJPYmplY3Q+KHJlbmRlcmVyKSkgewpAQCAtMjIxLDMzICsyMTUsMTkgQEAg
c3RhdGljIGJvb2wgaXNFbXB0eUlubGluZShjb25zdCBSZW5kZXJJbmxpbmUmIHJlbmRlcmVyKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi0vLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBtaXNsZWFk
aW5nbHkgbmFtZWQuIEl0IGhhcyBsaXR0bGUgdG8gZG8gd2l0aCBiaWRpLgotLy8gVGhpcyBmdW5j
dGlvbiB3aWxsIGl0ZXJhdGUgb3ZlciBpbmxpbmVzIHdpdGhpbiBhIGJsb2NrLCBvcHRpb25hbGx5
IG5vdGlmeWluZwotLy8gYSBiaWRpIHJlc29sdmVyIGFzIGl0IGVudGVycy9leGl0cyBpbmxpbmVz
IChzbyBpdCBjYW4gcHVzaC9wb3AgZW1iZWRkaW5nIGxldmVscykuCiB0ZW1wbGF0ZSA8Y2xhc3Mg
T2JzZXJ2ZXI+Ci1zdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogYmlkaU5leHRTaGFyZWQoUmVu
ZGVyRWxlbWVudCYgcm9vdCwgUmVuZGVyT2JqZWN0KiBjdXJyZW50LCBPYnNlcnZlciogb2JzZXJ2
ZXIgPSBudWxscHRyLCBFbXB0eUlubGluZUJlaGF2aW9yIGVtcHR5SW5saW5lQmVoYXZpb3IgPSBT
a2lwRW1wdHlJbmxpbmVzLCBib29sKiBlbmRPZklubGluZVB0ciA9IG51bGxwdHIpCitzdGF0aWMg
aW5saW5lIFJlbmRlck9iamVjdCogYmlkaU5leHRTa2lwcGluZ0VtcHR5SW5saW5lcyhSZW5kZXJF
bGVtZW50JiByb290LCBSZW5kZXJPYmplY3QqIGN1cnJlbnQsIE9ic2VydmVyKiBvYnNlcnZlcikK
IHsKICAgICBSZW5kZXJPYmplY3QqIG5leHQgPSBudWxscHRyOwotICAgIC8vIG9sZEVuZE9mSW5s
aW5lIGRlbm90ZXMgaWYgd2hlbiB3ZSBsYXN0IHN0b3BwZWQgaXRlcmF0aW5nIGlmIHdlIHdlcmUg
YXQgdGhlIGVuZCBvZiBhbiBpbmxpbmUuCi0gICAgYm9vbCBvbGRFbmRPZklubGluZSA9IGVuZE9m
SW5saW5lUHRyID8gKmVuZE9mSW5saW5lUHRyIDogZmFsc2U7Ci0gICAgYm9vbCBlbmRPZklubGlu
ZSA9IGZhbHNlOwogCiAgICAgd2hpbGUgKGN1cnJlbnQpIHsKICAgICAgICAgbmV4dCA9IG51bGxw
dHI7Ci0gICAgICAgIGlmICghb2xkRW5kT2ZJbmxpbmUgJiYgIWlzSXRlcmF0b3JUYXJnZXQoY3Vy
cmVudCkpIHsKKyAgICAgICAgaWYgKCFpc0l0ZXJhdG9yVGFyZ2V0KGN1cnJlbnQpKSB7CiAgICAg
ICAgICAgICBuZXh0ID0gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKmN1cnJlbnQpLmZpcnN0Q2hp
bGQoKTsKICAgICAgICAgICAgIG5vdGlmeU9ic2VydmVyRW50ZXJlZE9iamVjdChvYnNlcnZlciwg
bmV4dCk7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBXZSBoaXQgdGhpcyB3aGVuIGVpdGhlciBj
dXJyZW50IGhhcyBubyBjaGlsZHJlbiwgb3Igd2hlbiBjdXJyZW50IGlzIG5vdCBhIHJlbmRlcmVy
IHdlIGNhcmUgYWJvdXQuCiAgICAgICAgIGlmICghbmV4dCkgewotICAgICAgICAgICAgLy8gSWYg
aXQgaXMgYSByZW5kZXJlciB3ZSBjYXJlIGFib3V0LCBhbmQgd2UncmUgZG9pbmcgb3VyIGlubGlu
ZS13YWxrLCByZXR1cm4gaXQuCi0gICAgICAgICAgICBpZiAoZW1wdHlJbmxpbmVCZWhhdmlvciA9
PSBJbmNsdWRlRW1wdHlJbmxpbmVzICYmICFvbGRFbmRPZklubGluZSAmJiBpczxSZW5kZXJJbmxp
bmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgICAgIG5leHQgPSBjdXJyZW50OwotICAgICAg
ICAgICAgICAgIGVuZE9mSW5saW5lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLQogICAgICAgICAgICAgd2hpbGUgKGN1cnJlbnQgJiYgY3VycmVudCAhPSAm
cm9vdCkgewogICAgICAgICAgICAgICAgIG5vdGlmeU9ic2VydmVyV2lsbEV4aXRPYmplY3Qob2Jz
ZXJ2ZXIsIGN1cnJlbnQpOwogCkBAIC0yNTgsMzYgKzIzOCwyMCBAQCBzdGF0aWMgaW5saW5lIFJl
bmRlck9iamVjdCogYmlkaU5leHRTaGFyZWQoUmVuZGVyRWxlbWVudCYgcm9vdCwgUmVuZGVyT2Jq
ZWN0KiBjdQogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBj
dXJyZW50LT5wYXJlbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoZW1wdHlJbmxpbmVCZWhhdmlv
ciA9PSBJbmNsdWRlRW1wdHlJbmxpbmVzICYmIGN1cnJlbnQgJiYgY3VycmVudCAhPSAmcm9vdCAm
JiBpczxSZW5kZXJJbmxpbmU+KCpjdXJyZW50KSkgewotICAgICAgICAgICAgICAgICAgICBuZXh0
ID0gY3VycmVudDsKLSAgICAgICAgICAgICAgICAgICAgZW5kT2ZJbmxpbmUgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW5leHQpCiAgICAgICAgICAgICBicmVhazsKIAot
ICAgICAgICBpZiAoaXNJdGVyYXRvclRhcmdldChuZXh0KQotICAgICAgICAgICAgfHwgKGlzPFJl
bmRlcklubGluZT4oKm5leHQpICYmIChlbXB0eUlubGluZUJlaGF2aW9yID09IEluY2x1ZGVFbXB0
eUlubGluZXMgfHwgaXNFbXB0eUlubGluZShkb3duY2FzdDxSZW5kZXJJbmxpbmU+KCpuZXh0KSkp
KSkKKyAgICAgICAgaWYgKGlzSXRlcmF0b3JUYXJnZXQobmV4dCkgfHwgKGlzPFJlbmRlcklubGlu
ZT4oKm5leHQpICYmIGlzRW1wdHlJbmxpbmUoZG93bmNhc3Q8UmVuZGVySW5saW5lPigqbmV4dCkp
KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjdXJyZW50ID0gbmV4dDsKICAgICB9CiAK
LSAgICBpZiAoZW5kT2ZJbmxpbmVQdHIpCi0gICAgICAgICplbmRPZklubGluZVB0ciA9IGVuZE9m
SW5saW5lOwotCiAgICAgcmV0dXJuIG5leHQ7CiB9CiAKLXRlbXBsYXRlIDxjbGFzcyBPYnNlcnZl
cj4KLXN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBiaWRpTmV4dFNraXBwaW5nRW1wdHlJbmxp
bmVzKFJlbmRlckVsZW1lbnQmIHJvb3QsIFJlbmRlck9iamVjdCogY3VycmVudCwgT2JzZXJ2ZXIq
IG9ic2VydmVyKQotewotICAgIC8vIFRoZSBTa2lwRW1wdHlJbmxpbmVzIGNhbGxlcnMgbmV2ZXIg
Y2FyZSBhYm91dCBlbmRPZklubGluZVB0ci4KLSAgICByZXR1cm4gYmlkaU5leHRTaGFyZWQocm9v
dCwgY3VycmVudCwgb2JzZXJ2ZXIsIFNraXBFbXB0eUlubGluZXMpOwotfQotCiAvLyBUaGlzIG1h
a2VzIGNhbGxlcnMgY2xlYW5lciBhcyB0aGV5IGRvbid0IGhhdmUgdG8gc3BlY2lmeSBhIHR5cGUg
Zm9yIHRoZSBvYnNlcnZlciB3aGVuIG5vdCBwcm92aWRpbmcgb25lLgogc3RhdGljIGlubGluZSBS
ZW5kZXJPYmplY3QqIGJpZGlOZXh0U2tpcHBpbmdFbXB0eUlubGluZXMoUmVuZGVyRWxlbWVudCYg
cm9vdCwgUmVuZGVyT2JqZWN0KiBjdXJyZW50KQogewpAQCAtMjk1LDEyICsyNTksNiBAQCBzdGF0
aWMgaW5saW5lIFJlbmRlck9iamVjdCogYmlkaU5leHRTa2lwcGluZ0VtcHR5SW5saW5lcyhSZW5k
ZXJFbGVtZW50JiByb290LCBSZQogICAgIHJldHVybiBiaWRpTmV4dFNraXBwaW5nRW1wdHlJbmxp
bmVzKHJvb3QsIGN1cnJlbnQsIG9ic2VydmVyKTsKIH0KIAotc3RhdGljIGlubGluZSBSZW5kZXJP
YmplY3QqIGJpZGlOZXh0SW5jbHVkaW5nRW1wdHlJbmxpbmVzKFJlbmRlckVsZW1lbnQmIHJvb3Qs
IFJlbmRlck9iamVjdCogY3VycmVudCwgYm9vbCogZW5kT2ZJbmxpbmVQdHIgPSBudWxscHRyKQot
ewotICAgIElubGluZUJpZGlSZXNvbHZlciogb2JzZXJ2ZXIgPSBudWxscHRyOyAvLyBDYWxsZXJz
IHdobyBpbmNsdWRlIGVtcHR5IGlubGluZXMsIG5ldmVyIHVzZSBhbiBvYnNlcnZlci4KLSAgICBy
ZXR1cm4gYmlkaU5leHRTaGFyZWQocm9vdCwgY3VycmVudCwgb2JzZXJ2ZXIsIEluY2x1ZGVFbXB0
eUlubGluZXMsIGVuZE9mSW5saW5lUHRyKTsKLX0KLQogc3RhdGljIGlubGluZSBSZW5kZXJPYmpl
Y3QqIGJpZGlGaXJzdFNraXBwaW5nRW1wdHlJbmxpbmVzKFJlbmRlckVsZW1lbnQmIHJvb3QsIElu
bGluZUJpZGlSZXNvbHZlciogcmVzb2x2ZXIgPSBudWxscHRyKQogewogICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSByb290LmZpcnN0Q2hpbGQoKTsKQEAgLTMyOCwxOCArMjg2LDYgQEAgc3Rh
dGljIGlubGluZSBSZW5kZXJPYmplY3QqIGJpZGlGaXJzdFNraXBwaW5nRW1wdHlJbmxpbmVzKFJl
bmRlckVsZW1lbnQmIHJvb3QsIEkKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9CiAKLS8vIEZJWE1F
OiBUaGlzIG1ldGhvZCBuZWVkcyB0byBiZSByZW5hbWVkIHdoZW4gYmlkaU5leHQgZmluZHMgYSBn
b29kIG5hbWUuCi1zdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogYmlkaUZpcnN0SW5jbHVkaW5n
RW1wdHlJbmxpbmVzKFJlbmRlckVsZW1lbnQmIHJvb3QpCi17Ci0gICAgUmVuZGVyT2JqZWN0KiBv
ID0gcm9vdC5maXJzdENoaWxkKCk7Ci0gICAgLy8gSWYgZWl0aGVyIHRoZXJlIGFyZSBubyBjaGls
ZHJlbiB0byB3YWxrLCBvciB0aGUgZmlyc3Qgb25lIGlzIGNvcnJlY3QKLSAgICAvLyB0aGVuIGp1
c3QgcmV0dXJuIGl0LgotICAgIGlmICghbyB8fCBvLT5pc1JlbmRlcklubGluZSgpIHx8IGlzSXRl
cmF0b3JUYXJnZXQobykpCi0gICAgICAgIHJldHVybiBvOwotCi0gICAgcmV0dXJuIGJpZGlOZXh0
SW5jbHVkaW5nRW1wdHlJbmxpbmVzKHJvb3QsIG8pOwotfQotCiBpbmxpbmUgdm9pZCBJbmxpbmVJ
dGVyYXRvcjo6ZmFzdEluY3JlbWVudEluVGV4dE5vZGUoKQogewogICAgIEFTU0VSVChtX3JlbmRl
cmVyKTsKQEAgLTM3MywzNiArMzE5LDYgQEAgaW5saW5lIHZvaWQgSW5saW5lSXRlcmF0b3I6OnNl
dFJlZmVyc1RvRW5kT2ZQcmV2aW91c05vZGUoKQogICAgIG1fcmVmZXJzVG9FbmRPZlByZXZpb3Vz
Tm9kZSA9IHRydWU7CiB9CiAKLS8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgYnkgUmVuZGVyQmxvY2sg
Zm9yIHNpbXBsaWZpZWQgbGF5b3V0LCBhbmQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBiaWRpCi0v
LyBpdCBzaG91bGRuJ3QgdXNlIGZ1bmN0aW9ucyBjYWxsZWQgYmlkaUZpcnN0IGFuZCBiaWRpTmV4
dC4KLWNsYXNzIElubGluZVdhbGtlciB7Ci1wdWJsaWM6Ci0gICAgSW5saW5lV2Fsa2VyKFJlbmRl
ckVsZW1lbnQmIHJvb3QpCi0gICAgICAgIDogbV9yb290KHJvb3QpCi0gICAgICAgICwgbV9jdXJy
ZW50KG51bGxwdHIpCi0gICAgICAgICwgbV9hdEVuZE9mSW5saW5lKGZhbHNlKQotICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IFRoaXMgY2xhc3Mgc2hvdWxkIGJlIHRhdWdodCBob3cgdG8gZG8gdGhl
IFNraXBFbXB0eUlubGluZXMgY29kZXBhdGggYXMgd2VsbC4KLSAgICAgICAgbV9jdXJyZW50ID0g
YmlkaUZpcnN0SW5jbHVkaW5nRW1wdHlJbmxpbmVzKG1fcm9vdCk7Ci0gICAgfQotCi0gICAgUmVu
ZGVyRWxlbWVudCYgcm9vdCgpIHsgcmV0dXJuIG1fcm9vdDsgfQotICAgIFJlbmRlck9iamVjdCog
Y3VycmVudCgpIHsgcmV0dXJuIG1fY3VycmVudDsgfQotCi0gICAgYm9vbCBhdEVuZE9mSW5saW5l
KCkgeyByZXR1cm4gbV9hdEVuZE9mSW5saW5lOyB9Ci0gICAgYm9vbCBhdEVuZCgpIGNvbnN0IHsg
cmV0dXJuICFtX2N1cnJlbnQ7IH0KLQotICAgIFJlbmRlck9iamVjdCogYWR2YW5jZSgpCi0gICAg
ewotICAgICAgICAvLyBGSVhNRTogU3VwcG9ydCBTa2lwRW1wdHlJbmxpbmVzIGFuZCBvYnNlcnZl
ciBwYXJhbWV0ZXJzLgotICAgICAgICBtX2N1cnJlbnQgPSBiaWRpTmV4dEluY2x1ZGluZ0VtcHR5
SW5saW5lcyhtX3Jvb3QsIG1fY3VycmVudCwgJm1fYXRFbmRPZklubGluZSk7Ci0gICAgICAgIHJl
dHVybiBtX2N1cnJlbnQ7Ci0gICAgfQotcHJpdmF0ZToKLSAgICBSZW5kZXJFbGVtZW50JiBtX3Jv
b3Q7Ci0gICAgUmVuZGVyT2JqZWN0KiBtX2N1cnJlbnQ7Ci0gICAgYm9vbCBtX2F0RW5kT2ZJbmxp
bmU7Ci19OwogCiBpbmxpbmUgdm9pZCBJbmxpbmVJdGVyYXRvcjo6aW5jcmVtZW50KElubGluZUJp
ZGlSZXNvbHZlciogcmVzb2x2ZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lV2Fs
a2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjk2YmMyZmE3ZjllZTI5ZDA0N2I4YWQ5ZTM4ZDMyZTkxZDVjNzYy
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVXYWxr
ZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yLmgiCisjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgSW5saW5lV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICBJbmxpbmVXYWxrZXIoY29uc3Qg
UmVuZGVyQmxvY2tGbG93JiByb290KQorICAgICAgICA6IG1faXRlcmF0b3Iocm9vdCwgcm9vdC5m
aXJzdENoaWxkKCkpCisgICAgeworICAgIH0KKworICAgIFJlbmRlck9iamVjdCogY3VycmVudCgp
IHsgcmV0dXJuIG1faXRlcmF0b3IgPyAmKm1faXRlcmF0b3IgOiBudWxscHRyOyB9CisKKyAgICBi
b29sIGF0RW5kKCkgY29uc3QgeyByZXR1cm4gIW1faXRlcmF0b3I7IH0KKworICAgIHZvaWQgYWR2
YW5jZSgpCisgICAgeworICAgICAgICBpZiAoaXM8UmVuZGVySW5saW5lPigqbV9pdGVyYXRvcikp
CisgICAgICAgICAgICBtX2l0ZXJhdG9yLnRyYXZlcnNlTmV4dCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX2l0ZXJhdG9yLnRyYXZlcnNlTmV4dFNraXBwaW5nQ2hpbGRyZW4oKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFJlbmRlck9iamVj
dD4gbV9pdGVyYXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNwcAppbmRleCBkZTE5M2RhY2Y5ZGRi
YjQ0YTg5MDU1OGMwYjc4NmYxNGI3Nzg2NzllLi43MjljNTRkNDY3YjJmYzI0NDNhNzU5NTQ5YWU5
M2YyMjczODIyNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5
TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUxpbmVM
YXlvdXQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5o
IgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveFN0
eWxlLmgiCisjaW5jbHVkZSAiSW5saW5lV2Fsa2VyLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5oIgogI2luY2x1ZGUgIkxlZ2FjeUlubGluZUVsZW1lbnRCb3guaCIK
ICNpbmNsdWRlICJMZWdhY3lJbmxpbmVUZXh0Qm94LmgiCkBAIC0xNzY3LDcgKzE3NjgsNyBAQCB2
b2lkIExlZ2FjeUxpbmVMYXlvdXQ6OmxheW91dExpbmVCb3hlcyhib29sIHJlbGF5b3V0Q2hpbGRy
ZW4sIExheW91dFVuaXQmIHJlcGFpbgogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgICAgICAgICBib3gubGF5b3V0SWZOZWVkZWQoKTsKICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKG8uaXNUZXh0T3JMaW5lQnJlYWsoKSB8fCAoaXM8UmVu
ZGVySW5saW5lPihvKSAmJiAhd2Fsa2VyLmF0RW5kT2ZJbmxpbmUoKSkpIHsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoby5pc1RleHRPckxpbmVCcmVhaygpIHx8IGlzPFJlbmRlcklubGluZT4obykp
IHsKICAgICAgICAgICAgICAgICBpZiAobGF5b3V0U3RhdGUuaXNGdWxsTGF5b3V0KCkgfHwgby5z
ZWxmTmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgICAgICAgICAgZGlydHlMaW5lQm94ZXNGb3JS
ZW5kZXJlcihvLCBsYXlvdXRTdGF0ZS5pc0Z1bGxMYXlvdXQoKSk7CiAgICAgICAgICAgICAgICAg
by5jbGVhck5lZWRzTGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcAppbmRleCA2OWNkMDBiMjliYmEzMDAzNTY2ZGNhYjVkMmY4NGIzNDBiY2NkYzRkLi5lNGE2
ZmE1ZGM3YjBlMjE2NDVhMGFjYjExYmQwZDJmZWUyODZhMzRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJIaXRU
ZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbmxpbmVJ
dGVyYXRvci5oIgorI2luY2x1ZGUgIklubGluZVdhbGtlci5oIgogI2luY2x1ZGUgIkxheW91dFJl
cGFpbnRlci5oIgogI2luY2x1ZGUgIkxlZ2FjeUlubGluZUVsZW1lbnRCb3guaCIKICNpbmNsdWRl
ICJMZWdhY3lJbmxpbmVUZXh0Qm94LmgiCkBAIC04NzQsMTQgKzg3NSwxNCBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpzaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpCiB7CiAgICAgaWYgKGNoaWxkcmVu
SW5saW5lKCkpIHsKICAgICAgICAgTGlzdEhhc2hTZXQ8TGVnYWN5Um9vdElubGluZUJveCo+IGxp
bmVCb3hlczsKLSAgICAgICAgZm9yIChJbmxpbmVXYWxrZXIgd2Fsa2VyKCp0aGlzKTsgIXdhbGtl
ci5hdEVuZCgpOyB3YWxrZXIuYWR2YW5jZSgpKSB7CisgICAgICAgIGZvciAoSW5saW5lV2Fsa2Vy
IHdhbGtlcihkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzKSk7ICF3YWxrZXIuYXRFbmQo
KTsgd2Fsa2VyLmFkdmFuY2UoKSkgewogICAgICAgICAgICAgUmVuZGVyT2JqZWN0JiByZW5kZXJl
ciA9ICp3YWxrZXIuY3VycmVudCgpOwogICAgICAgICAgICAgaWYgKCFyZW5kZXJlci5pc091dE9m
Rmxvd1Bvc2l0aW9uZWQoKSAmJiAocmVuZGVyZXIuaXNSZXBsYWNlZCgpIHx8IHJlbmRlcmVyLmlz
RmxvYXRpbmcoKSkpIHsKICAgICAgICAgICAgICAgICBSZW5kZXJCb3gmIGJveCA9IGRvd25jYXN0
PFJlbmRlckJveD4ocmVuZGVyZXIpOwogICAgICAgICAgICAgICAgIGJveC5sYXlvdXRJZk5lZWRl
ZCgpOwogICAgICAgICAgICAgICAgIGlmIChib3guaW5saW5lQm94V3JhcHBlcigpKQogICAgICAg
ICAgICAgICAgICAgICBsaW5lQm94ZXMuYWRkKCZib3guaW5saW5lQm94V3JhcHBlcigpLT5yb290
KCkpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChpczxSZW5kZXJUZXh0PihyZW5kZXJlcikgfHwg
KGlzPFJlbmRlcklubGluZT4ocmVuZGVyZXIpICYmICF3YWxrZXIuYXRFbmRPZklubGluZSgpKSkK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoaXM8UmVuZGVyVGV4dD4ocmVuZGVyZXIpIHx8IGlzPFJl
bmRlcklubGluZT4ocmVuZGVyZXIpKQogICAgICAgICAgICAgICAgIHJlbmRlcmVyLmNsZWFyTmVl
ZHNMYXlvdXQoKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
dGVyYXRvci5oCmluZGV4IGYwNTU5NTkyMzNlMGIyYzRkODE3OWM4MGQwYjdkMzUzYTA3ZTUxMTAu
LmI1YTk0ZjQ3YmM3NTgwNTg5YjE1MzBlNzUxOTVmOWU5ZmM0NjM5MmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJdGVyYXRvci5oCkBAIC00MCwxMSArNDAsMTQgQEAgcHVibGlj
OgogICAgIFQmIG9wZXJhdG9yKigpOwogICAgIFQqIG9wZXJhdG9yLT4oKTsKIAorICAgIG9wZXJh
dG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnQ7IH0KKwogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBSZW5kZXJJdGVyYXRvciYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0
b3IhPShjb25zdCBSZW5kZXJJdGVyYXRvciYgb3RoZXIpIGNvbnN0OwogCiAgICAgUmVuZGVySXRl
cmF0b3ImIHRyYXZlcnNlTmV4dCgpOwogICAgIFJlbmRlckl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRT
aWJsaW5nKCk7CisgICAgUmVuZGVySXRlcmF0b3ImIHRyYXZlcnNlTmV4dFNraXBwaW5nQ2hpbGRy
ZW4oKTsKICAgICBSZW5kZXJJdGVyYXRvciYgdHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoKTsKICAg
ICBSZW5kZXJJdGVyYXRvciYgdHJhdmVyc2VBbmNlc3RvcigpOwogCkBAIC02MiwxMSArNjUsMTQg
QEAgcHVibGljOgogICAgIGNvbnN0IFQmIG9wZXJhdG9yKigpIGNvbnN0OwogICAgIGNvbnN0IFQq
IG9wZXJhdG9yLT4oKSBjb25zdDsKIAorICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVy
biBtX2N1cnJlbnQ7IH0KKwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW5kZXJDb25zdEl0
ZXJhdG9yJiBvdGhlcikgY29uc3Q7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFJlbmRlckNv
bnN0SXRlcmF0b3ImIG90aGVyKSBjb25zdDsKIAogICAgIFJlbmRlckNvbnN0SXRlcmF0b3ImIHRy
YXZlcnNlTmV4dCgpOwogICAgIFJlbmRlckNvbnN0SXRlcmF0b3ImIHRyYXZlcnNlTmV4dFNpYmxp
bmcoKTsKKyAgICBSZW5kZXJDb25zdEl0ZXJhdG9yJiB0cmF2ZXJzZU5leHRTa2lwcGluZ0NoaWxk
cmVuKCk7CiAgICAgUmVuZGVyQ29uc3RJdGVyYXRvciYgdHJhdmVyc2VQcmV2aW91c1NpYmxpbmco
KTsKICAgICBSZW5kZXJDb25zdEl0ZXJhdG9yJiB0cmF2ZXJzZUFuY2VzdG9yKCk7CiAKQEAgLTIz
OCw2ICsyNDQsMTQgQEAgaW5saW5lIFJlbmRlckl0ZXJhdG9yPFQ+JiBSZW5kZXJJdGVyYXRvcjxU
Pjo6dHJhdmVyc2VOZXh0KCkKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKK3RlbXBsYXRlIDx0eXBl
bmFtZSBUPgoraW5saW5lIFJlbmRlckl0ZXJhdG9yPFQ+JiBSZW5kZXJJdGVyYXRvcjxUPjo6dHJh
dmVyc2VOZXh0U2tpcHBpbmdDaGlsZHJlbigpCit7CisgICAgQVNTRVJUKG1fY3VycmVudCk7Cisg
ICAgbV9jdXJyZW50ID0gUmVuZGVyT2JqZWN0VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJl
bigqbV9jdXJyZW50LCBtX3Jvb3QpOworICAgIHJldHVybiAqdGhpczsKK30KKwogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBpbmxpbmUgUmVuZGVySXRlcmF0b3I8VD4mIFJlbmRlckl0ZXJhdG9yPFQ+
Ojp0cmF2ZXJzZVByZXZpb3VzU2libGluZygpCiB7CkBAIC0zMTQsNiArMzI4LDE0IEBAIGlubGlu
ZSBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+JiBSZW5kZXJDb25zdEl0ZXJhdG9yPFQ+Ojp0cmF2ZXJz
ZU5leHQoKQogICAgIHJldHVybiAqdGhpczsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Citp
bmxpbmUgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPiYgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPjo6dHJh
dmVyc2VOZXh0U2tpcHBpbmdDaGlsZHJlbigpCit7CisgICAgQVNTRVJUKG1fY3VycmVudCk7Cisg
ICAgbV9jdXJyZW50ID0gUmVuZGVyT2JqZWN0VHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJl
bigqbV9jdXJyZW50LCBtX3Jvb3QpOworICAgIHJldHVybiAqdGhpczsKK30KKwogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBpbmxpbmUgUmVuZGVyQ29uc3RJdGVyYXRvcjxUPiYgUmVuZGVyQ29uc3RJ
dGVyYXRvcjxUPjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoKQogewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>