<?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>246452</bug_id>
          
          <creation_ts>2022-10-13 04:45:37 -0700</creation_ts>
          <short_desc>[MQ4] Make more media query code generic</short_desc>
          <delta_ts>2022-10-13 10:30:18 -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>CSS</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>
          
          <blocked>180234</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youssefdevelops</cc>
    
    <cc>y_soliman</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1905307</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-13 04:45:37 -0700</bug_when>
    <thetext>More sharing between media queries and container queries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905308</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-13 04:48:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/101121497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905309</commentid>
    <comment_count>2</comment_count>
      <attachid>462959</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-10-13 04:55:07 -0700</bug_when>
    <thetext>Created attachment 462959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1905367</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-13 10:30:15 -0700</bug_when>
    <thetext>Committed 255488@main (7c39226934f7): &lt;https://commits.webkit.org/255488@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 462959.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>462959</attachid>
            <date>2022-10-13 04:55:07 -0700</date>
            <delta_ts>2022-10-13 10:30:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246452-20221013145505.patch</filename>
            <type>text/plain</type>
            <size>37063</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBmZjZkOTExMTViZWJhMmNkZTAyOWYxMDViMGQzY2MwMGM0M2EyY2RmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUaHUsIDEzIE9jdCAyMDIyIDE0OjUxOjE5ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gW01RNF0g
TWFrZSBtb3JlIG1lZGlhIHF1ZXJ5IGNvZGUgZ2VuZXJpYwogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI0NjQ1MiByZGFyOi8vMTAxMTIxNDk3CgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCk1vcmUgc2hhcmluZyBiZXR3ZWVuIG1lZGlhIHF1ZXJpZXMgYW5kIGNv
bnRhaW5lciBxdWVyaWVzLgpBbHNvIGltcGxlbWVudCBzZXJpYWxpemF0aW9uLgoKKiBTb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dDoKKiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CiogU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3Bw
OgooV2ViQ29yZTo6Q1NTQ29udGFpbmVyUnVsZTo6Y29uZGl0aW9uVGV4dCBjb25zdCk6CiogU291
cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcDoKKiBTb3VyY2UvV2ViQ29yZS9jc3Mv
Q29udGFpbmVyUXVlcnkuaDoKKCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL0NvbnRh
aW5lclF1ZXJ5UGFyc2VyLmNwcDoKKFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25z
dW1lQ29udGFpbmVyUXVlcnkpOgooV2ViQ29yZTo6Q29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1
bWVGZWF0dXJlKToKKFdlYkNvcmU6OkNvbnRhaW5lclF1ZXJ5UGFyc2VyOjpjb25zdW1lUXVlcnlJ
blBhcmVucyk6IERlbGV0ZWQuCihXZWJDb3JlOjpDb250YWluZXJRdWVyeVBhcnNlcjo6Y29uc3Vt
ZVNpemVGZWF0dXJlKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVl
cnlQYXJzZXIuaDoKKiBTb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlF
dmFsdWF0b3IuaDoKKFdlYkNvcmU6Ok1ROjpHZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvcjxDb25j
cmV0ZUV2YWx1YXRvcj46OmV2YWx1YXRlUXVlcnlJblBhcmVucyBjb25zdCk6CihXZWJDb3JlOjpN
UTo6R2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3I8Q29uY3JldGVFdmFsdWF0b3I+OjpldmFsdWF0
ZUNvbmRpdGlvbiBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRp
YVF1ZXJ5UGFyc2VyLmNwcDoKKFdlYkNvcmU6Ok1ROjpHZW5lcmljTWVkaWFRdWVyeVBhcnNlckJh
c2U6OmNvbnN1bWVGZWF0dXJlKToKKiBTb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01l
ZGlhUXVlcnlQYXJzZXIuaDoKKFdlYkNvcmU6Ok1ROjpHZW5lcmljTWVkaWFRdWVyeVBhcnNlcjxD
b25jcmV0ZVBhcnNlcj46OmNvbnN1bWVDb25kaXRpb24pOgooV2ViQ29yZTo6TVE6OkdlbmVyaWNN
ZWRpYVF1ZXJ5UGFyc2VyPENvbmNyZXRlUGFyc2VyPjo6Y29uc3VtZVF1ZXJ5SW5QYXJlbnMpOgoq
IFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24u
Y3BwOiBBZGRlZC4KKFdlYkNvcmU6Ok1ROjpzZXJpYWxpemUpOgoqIFNvdXJjZS9XZWJDb3JlL2Nz
cy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMuaC4KKiBTb3VyY2Uv
V2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlUeXBlcy5oOgoqIFNvdXJjZS9XZWJD
b3JlL2Nzcy9xdWVyeS9NZWRpYVF1ZXJ5UGFyc2VyLmNwcDoKKFdlYkNvcmU6Ok1ROjpNZWRpYVF1
ZXJ5UGFyc2VyOjpNZWRpYVF1ZXJ5UGFyc2VyKToKKFdlYkNvcmU6Ok1ROjpNZWRpYVF1ZXJ5UGFy
c2VyOjpjb25zdW1lTWVkaWFRdWVyeSk6CihXZWJDb3JlOjpNUTo6c2VyaWFsaXplKToKKFdlYkNv
cmU6Ok1ROjpNZWRpYVF1ZXJ5UGFyc2VyOjpjb25zdW1lUXVlcnlJblBhcmVucyk6IERlbGV0ZWQu
CihXZWJDb3JlOjpNUTo6TWVkaWFRdWVyeVBhcnNlcjo6Y29uc3VtZU1lZGlhRmVhdHVyZSk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L01lZGlhUXVlcnlQYXJzZXIuaDoKKFdl
YkNvcmU6Ok1ROjpNZWRpYVF1ZXJ5UGFyc2VyOjpNZWRpYVF1ZXJ5UGFyc2VyKTogRGVsZXRlZC4K
KiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHA6CihXZWJD
b3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRmVhdHVyZSBjb25z
dCk6CihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlUXVl
cnlJblBhcmVucyBjb25zdCk6IERlbGV0ZWQuCihXZWJDb3JlOjpTdHlsZTo6Q29udGFpbmVyUXVl
cnlFdmFsdWF0b3I6OmV2YWx1YXRlU2l6ZUZlYXR1cmUgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmg6Ci0tLQogU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiB8ICAgNiArCiBTb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAgICAgICAgfCAgIDMgKy0KIFNvdXJjZS9XZWJDb3Jl
L2Nzcy9Db250YWluZXJRdWVyeS5jcHAgICAgICAgICB8IDEwNSArLS0tLS0tLS0tLS0tLQogU291
cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmggICAgICAgICAgIHwgIDE1ICstCiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwICAgfCAgMzUgKy0tLS0KIFNv
dXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5oICAgICB8ICAgNCArLQogLi4u
L2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeUV2YWx1YXRvci5oICAgIHwgIDIwICsrLQogLi4u
L2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVBhcnNlci5jcHAgICAgIHwgICA0ICstCiAuLi4v
Y3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyLmggICAgICAgfCAgMzggKysrKy0KIC4u
Li9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uY3BwICB8IDEzMCArKysrKysr
KysrKysrKysrKysKIC4uLi9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCAg
ICB8ICAzNyArKysrKwogLi4uL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVR5cGVzLmggICAg
ICAgIHwgICA5ICsrCiBTb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvTWVkaWFRdWVyeVBhcnNlci5j
cHAgfCAgNTcgKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9NZWRpYVF1ZXJ5UGFy
c2VyLmggICB8ICAyNSArLS0tCiAuLi4vV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1
YXRvci5jcHAgfCAgMTMgKy0KIC4uLi9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVh
dG9yLmggICB8ICAgMyArLQogMTcgZmlsZXMgY2hhbmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDIy
MyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9jc3MvcXVl
cnkvR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmNwcAogY3JlYXRlIG1vZGUgMTAwNjQ0
IFNvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24u
aAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMTQ5MWIzY2ZmYzZlLi42ODcwMDc1NDRjZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CkBAIC04ODMsNiArODgzLDcgQEAgY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAKIGNzcy9wYXJzZXIvU2l6ZXNDYWxjUGFyc2VyLmNwcAogY3NzL3F1ZXJ5L0dlbmVyaWNN
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAogY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2Vy
LmNwcAorY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5U2VyaWFsaXphdGlvbi5jcHAKIGNzcy9x
dWVyeS9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAogY3NzL3R5cGVkb20vQ29tcHV0ZWRTdHlsZVByb3Bl
cnR5TWFwUmVhZE9ubHkuY3BwCiBjc3MvdHlwZWRvbS9TdHlsZVByb3BlcnR5TWFwUmVhZE9ubHku
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYzlhMWUwZjc0MTM2Li40ZGJlOTFiZTBhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MjAsNiArNTUyMCw3
IEBACiAJCUU0NEEwMjU2MjczQUUwQzAwMDk5M0E1NiAvKiBNYXRjaFJlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0QTAyNTQyNzNBRTBCRjAw
OTkzQTU2IC8qIE1hdGNoUmVzdWx0LmggKi87IH07CiAJCUU0NEI0QkI0MTQxNjUwRDcwMDJCMUQ4
QiAvKiBTZWxlY3RvckNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0NEI0QkIyMTQxNjUwRDcwMDJCMUQ4QiAvKiBTZWxlY3RvckNoZWNrZXIu
aCAqLzsgfTsKIAkJRTQ0RjQyMkUyOEY2QTY0ODAwMEY4N0JDIC8qIE1lZGlhUXVlcnlQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NEY0MjJE
MjhGNkE2NDgwMDBGODdCQyAvKiBNZWRpYVF1ZXJ5UGFyc2VyLmggKi87IH07CisJCUU0NEY0MjQy
MjhGN0Y5NDcwMDBGODdCQyAvKiBHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NEY0MjQxMjhGN0Y5
NDcwMDBGODdCQyAvKiBHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCAqLzsgfTsKIAkJ
RTQ0RkExODUxQkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDRGQTE4NDFCQ0E2QjVB
MDA5MUI2RUYgLyogQ29tcG9zZWRUcmVlSXRlcmF0b3IuaCAqLzsgfTsKIAkJRTQ1MUM2MzEyMzk0
MDI3OTAwOTkzMTkwIC8qIExheW91dFVuaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2RjczOTE4QzIxMDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5p
dHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
NDUxQzYzMjIzOTQwMzFBMDA5OTMxOTAgLyogTWFyZ2luVHlwZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTdBQTI2MjFDMzdCNjMwMDI5NkRDRCAv
KiBNYXJnaW5UeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xODA0Niw2ICsxODA0Nyw4IEBACiAJCUU0NEVFM0E3MTc1NzZFNTUwMEVFRThD
RiAvKiBGb250R2VuZXJpY0ZhbWlsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRHZW5lcmljRmFt
aWxpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0RjQyMkQyOEY2QTY0ODAw
MEY4N0JDIC8qIE1lZGlhUXVlcnlQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFRdWVyeVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDRGNDIyRjI4RjZBNjUyMDAwRjg3QkMgLyogTWVkaWFRdWVyeVBhcnNlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVF1ZXJ5UGFyc2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ0RjQyM0YyOEY3RjkzMTAwMEY4N0JDIC8qIEdlbmVy
aWNNZWRpYVF1ZXJ5U2VyaWFsaXphdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNDRGNDI0MTI4RjdGOTQ3MDAwRjg3QkMgLyogR2VuZXJpY01l
ZGlhUXVlcnlTZXJpYWxpemF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdlbmVyaWNNZWRpYVF1ZXJ5U2VyaWFsaXphdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDRGQTE4NDFCQ0E2QjVBMDA5MUI2RUYgLyogQ29tcG9zZWRUcmVlSXRlcmF0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zZWRUcmVlSXRlcmF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0RkExODYxQkNBOTE1NjAwOTFCNkVG
IC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENvbXBvc2VkVHJlZUl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQ1MUM2MzMyMzk0MDU4RTAwOTkzMTkwIC8qIExheW91dEludGVncmF0aW9uSW5s
aW5lQ29udGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRl
Z3JhdGlvbklubGluZUNvbnRlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMy
NTY2LDYgKzMyNTY5LDggQEAKIAkJCQlFNERBNUUzRjI4QTI4OEY4MDA4NDlCQ0YgLyogR2VuZXJp
Y01lZGlhUXVlcnlFdmFsdWF0b3IuaCAqLywKIAkJCQlFNERBNUU0NTI4QTNBRjU0MDA4NDlCQ0Yg
LyogR2VuZXJpY01lZGlhUXVlcnlQYXJzZXIuY3BwICovLAogCQkJCUU0REE1RTM0Mjg5RDIzRjMw
MDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeVBhcnNlci5oICovLAorCQkJCUU0NEY0MjNGMjhG
N0Y5MzEwMDBGODdCQyAvKiBHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uY3BwICovLAor
CQkJCUU0NEY0MjQxMjhGN0Y5NDcwMDBGODdCQyAvKiBHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6
YXRpb24uaCAqLywKIAkJCQlFNERBNUUzNTI4OUQyM0ZEMDA4NDlCQ0YgLyogR2VuZXJpY01lZGlh
UXVlcnlUeXBlcy5oICovLAogCQkJCUU0NEY0MjJGMjhGNkE2NTIwMDBGODdCQyAvKiBNZWRpYVF1
ZXJ5UGFyc2VyLmNwcCAqLywKIAkJCQlFNDRGNDIyRDI4RjZBNjQ4MDAwRjg3QkMgLyogTWVkaWFR
dWVyeVBhcnNlci5oICovLApAQCAtMzU4NzQsNiArMzU4NzksNyBAQAogCQkJCTgzMDAzMEY2MUI3
RDMzQjUwMEVEM0FBQyAvKiBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0REE1RTQwMjhBMjg4RjgwMDg0OUJDRiAvKiBHZW5lcmljTWVkaWFRdWVyeUV2
YWx1YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTREQTVFMzYyODlEMjQyMDAwODQ5QkNGIC8q
IEdlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDRGNDI0MjI4
RjdGOTQ3MDAwRjg3QkMgLyogR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFNERBNUUzRDI4QTI4MDU3MDA4NDlCQ0YgLyogR2VuZXJpY01lZGlhUXVl
cnlUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0NkFGMjQxNEY0RERFNjAwM0U3QTcwIC8q
IEdlb2xvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzQ2QUYyNTE0RjREREU2MDAzRTdB
NzEgLyogR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NvbnRhaW5lclJ1bGUuY3BwCmluZGV4IDgxYmUwZjZhNjUxNC4uNjg2NjYyN2M0NjQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29udGFpbmVyUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbnRhaW5lclJ1bGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJDU1NNYXJrdXAuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiR2VuZXJpY01lZGlhUXVlcnlTZXJpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiU3R5
bGVSdWxlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC02Niw3
ICs2Nyw3IEBAIFN0cmluZyBDU1NDb250YWluZXJSdWxlOjpjc3NUZXh0KCkgY29uc3QKIFN0cmlu
ZyBDU1NDb250YWluZXJSdWxlOjpjb25kaXRpb25UZXh0KCkgY29uc3QKIHsKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7Ci0gICAgQ1E6OnNlcmlhbGl6ZShidWlsZGVyLCBzdHlsZVJ1bGVDb250
YWluZXIoKS5jb250YWluZXJRdWVyeSgpLmNvbmRpdGlvbik7CisgICAgTVE6OnNlcmlhbGl6ZShi
dWlsZGVyLCBzdHlsZVJ1bGVDb250YWluZXIoKS5jb250YWluZXJRdWVyeSgpLmNvbmRpdGlvbik7
CiAgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250
YWluZXJRdWVyeS5jcHAKaW5kZXggMTk0MjgyZjg1MWFmLi4wZjA4ZTRjMjA4YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiQ1NTTWFya3VwLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNsdWRlICJHZW5lcmlj
TWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTg3LDExMCArODgs
NiBAQCBPcHRpb25TZXQ8QXhpcz4gcmVxdWlyZWRBeGVzRm9yRmVhdHVyZShjb25zdCBBdG9tU3Ry
aW5nJiBmZWF0dXJlTmFtZSkKICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIHNlcmlhbGl6ZShT
dHJpbmdCdWlsZGVyJiwgY29uc3QgU2l6ZUZlYXR1cmUmKTsKLXRlbXBsYXRlPHR5cGVuYW1lIENv
bmRpdGlvblR5cGU+IHZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBjb25zdCBDb25kaXRp
b25UeXBlJik7Ci0KLXN0YXRpYyB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVy
LCBjb25zdCBRdWVyeUluUGFyZW5zJiBxdWVyeSkKLXsKLSAgICBXVEY6OnN3aXRjaE9uKHF1ZXJ5
LCBbJl0oYXV0byYgbm9kZSkgewotICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwotICAgICAg
ICBzZXJpYWxpemUoYnVpbGRlciwgbm9kZSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcpJyk7
Ci0gICAgfSwgWyZdKGNvbnN0IE1ROjpHZW5lcmFsRW5jbG9zZWQmIGdlbmVyYWxFbmNsb3NlZCkg
ewotICAgICAgICBidWlsZGVyLmFwcGVuZChnZW5lcmFsRW5jbG9zZWQubmFtZSk7Ci0gICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCcoJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGdlbmVyYWxFbmNs
b3NlZC50ZXh0KTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoJyknKTsKLSAgICB9KTsKLX0KLQot
dm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgU2l6ZUZlYXR1cmUm
IHNpemVGZWF0dXJlKQotewotICAgIGF1dG8gc2VyaWFsaXplUmFuZ2VDb21wYXJpc29uT3BlcmF0
b3IgPSBbJl0oTVE6OkNvbXBhcmlzb25PcGVyYXRvciBvcCkgewotICAgICAgICBidWlsZGVyLmFw
cGVuZCgnICcpOwotICAgICAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgICAgIGNhc2UgTVE6OkNvbXBh
cmlzb25PcGVyYXRvcjo6TGVzc1RoYW46Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnPCcp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTVE6OkNvbXBhcmlzb25PcGVyYXRv
cjo6TGVzc1RoYW5PckVxdWFsOgotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIjw9Iik7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpF
cXVhbDoKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc9Jyk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBNUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbjoKLSAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCc+Jyk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBNUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw6Ci0gICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZCgiPj0iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgfTsKLQotICAgIHN3aXRjaCAo
c2l6ZUZlYXR1cmUuc3ludGF4KSB7Ci0gICAgY2FzZSBNUTo6U3ludGF4OjpCb29sZWFuOgotICAg
ICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHNpemVGZWF0dXJlLm5hbWUsIGJ1aWxkZXIpOwotICAg
ICAgICBicmVhazsKLQotICAgIGNhc2UgTVE6OlN5bnRheDo6UGxhaW46Ci0gICAgICAgIHN3aXRj
aCAoc2l6ZUZlYXR1cmUucmlnaHRDb21wYXJpc29uLT5vcCkgewotICAgICAgICBjYXNlIE1ROjpD
b21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuT3JFcXVhbDoKLSAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCJtYXgtIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNUTo6Q29t
cGFyaXNvbk9wZXJhdG9yOjpFcXVhbDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IE1ROjpDb21wYXJpc29uT3BlcmF0b3I6OkdyZWF0ZXJUaGFuT3JFcXVhbDoKLSAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKCJtaW4tIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBNUTo6Q29tcGFyaXNvbk9wZXJhdG9yOjpMZXNzVGhhbjoKLSAgICAgICAgY2FzZSBNUTo6Q29t
cGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbjoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgc2VyaWFsaXpl
SWRlbnRpZmllcihzaXplRmVhdHVyZS5uYW1lLCBidWlsZGVyKTsKLQotICAgICAgICBidWlsZGVy
LmFwcGVuZCgiOiAiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoc2l6ZUZlYXR1cmUucmlnaHRD
b21wYXJpc29uLT52YWx1ZS0+Y3NzVGV4dCgpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNl
IE1ROjpTeW50YXg6OlJhbmdlOgotICAgICAgICBpZiAoc2l6ZUZlYXR1cmUubGVmdENvbXBhcmlz
b24pIHsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNpemVGZWF0dXJlLmxlZnRDb21wYXJp
c29uLT52YWx1ZS0+Y3NzVGV4dCgpKTsKLSAgICAgICAgICAgIHNlcmlhbGl6ZVJhbmdlQ29tcGFy
aXNvbk9wZXJhdG9yKHNpemVGZWF0dXJlLmxlZnRDb21wYXJpc29uLT5vcCk7Ci0gICAgICAgIH0K
LQotICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHNpemVGZWF0dXJlLm5hbWUsIGJ1aWxkZXIp
OwotCi0gICAgICAgIGlmIChzaXplRmVhdHVyZS5yaWdodENvbXBhcmlzb24pIHsKLSAgICAgICAg
ICAgIHNlcmlhbGl6ZVJhbmdlQ29tcGFyaXNvbk9wZXJhdG9yKHNpemVGZWF0dXJlLnJpZ2h0Q29t
cGFyaXNvbi0+b3ApOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2l6ZUZlYXR1cmUucmln
aHRDb21wYXJpc29uLT52YWx1ZS0+Y3NzVGV4dCgpKTsKLSAgICAgICAgfQotICAgICAgICBicmVh
azsKLSAgICB9Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIENvbmRpdGlvblR5cGU+Ci12b2lkIHNl
cmlhbGl6ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBDb25kaXRpb25UeXBlJiBjb25k
aXRpb24pCi17Ci0gICAgaWYgKGNvbmRpdGlvbi5xdWVyaWVzLnNpemUoKSA9PSAxICYmIGNvbmRp
dGlvbi5sb2dpY2FsT3BlcmF0b3IgPT0gTVE6OkxvZ2ljYWxPcGVyYXRvcjo6Tm90KSB7Ci0gICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKCJub3QgIik7Ci0gICAgICAgIHNlcmlhbGl6ZShidWlsZGVyLCBj
b25kaXRpb24ucXVlcmllcy5maXJzdCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGZvciAoYXV0byYgcXVlcnkgOiBjb25kaXRpb24ucXVlcmllcykgewotICAgICAgICBpZiAoJnF1
ZXJ5ICE9ICZjb25kaXRpb24ucXVlcmllcy5maXJzdCgpKQotICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoY29uZGl0aW9uLmxvZ2ljYWxPcGVyYXRvciA9PSBNUTo6TG9naWNhbE9wZXJhdG9yOjpB
bmQgPyAiIGFuZCAiIDogIiBvciAiKTsKLSAgICAgICAgc2VyaWFsaXplKGJ1aWxkZXIsIHF1ZXJ5
KTsKLSAgICB9Ci19Ci0KLXZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNv
bnN0IENvbnRhaW5lckNvbmRpdGlvbiYgY29uZGl0aW9uKQotewotICAgIHNlcmlhbGl6ZTxDb250
YWluZXJDb25kaXRpb24+KGJ1aWxkZXIsIGNvbmRpdGlvbik7Ci19Ci0KIHZvaWQgc2VyaWFsaXpl
KFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IENvbnRhaW5lclF1ZXJ5JiBxdWVyeSkKIHsK
ICAgICBhdXRvIG5hbWUgPSBxdWVyeS5uYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NvbnRhaW5lclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnku
aAppbmRleCBmYjk2ZTMxMjFmOTYuLjY2NjY5ZjhmMmM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRh
aW5lclF1ZXJ5LmgKQEAgLTM2LDE4ICszNiw2IEBAIGNsYXNzIEVsZW1lbnQ7CiAKIG5hbWVzcGFj
ZSBDUSB7CiAKLXVzaW5nIFNpemVGZWF0dXJlID0gTVE6OkZlYXR1cmU7Ci0KLXN0cnVjdCBDb250
YWluZXJDb25kaXRpb247Ci1zdHJ1Y3QgU2l6ZUNvbmRpdGlvbjsKLQotdXNpbmcgUXVlcnlJblBh
cmVucyA9IHN0ZDo6dmFyaWFudDxDb250YWluZXJDb25kaXRpb24sIFNpemVGZWF0dXJlLCBNUTo6
R2VuZXJhbEVuY2xvc2VkPjsKLQotc3RydWN0IENvbnRhaW5lckNvbmRpdGlvbiB7Ci0gICAgTVE6
OkxvZ2ljYWxPcGVyYXRvciBsb2dpY2FsT3BlcmF0b3IgeyBNUTo6TG9naWNhbE9wZXJhdG9yOjpB
bmQgfTsKLSAgICBWZWN0b3I8UXVlcnlJblBhcmVucz4gcXVlcmllczsKLX07Ci0KIG5hbWVzcGFj
ZSBGZWF0dXJlTmFtZXMgewogY29uc3QgQXRvbVN0cmluZyYgd2lkdGgoKTsKIGNvbnN0IEF0b21T
dHJpbmcmIGhlaWdodCgpOwpAQCAtNjgsMTAgKzU2LDkgQEAgT3B0aW9uU2V0PEF4aXM+IHJlcXVp
cmVkQXhlc0ZvckZlYXR1cmUoY29uc3QgQXRvbVN0cmluZyYpOwogc3RydWN0IENvbnRhaW5lclF1
ZXJ5IHsKICAgICBBdG9tU3RyaW5nIG5hbWU7CiAgICAgT3B0aW9uU2V0PENROjpBeGlzPiBheGlz
RmlsdGVyOwotICAgIENROjpDb250YWluZXJDb25kaXRpb24gY29uZGl0aW9uOworICAgIE1ROjpD
b25kaXRpb24gY29uZGl0aW9uOwogfTsKIAotdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYs
IGNvbnN0IENvbnRhaW5lckNvbmRpdGlvbiYpOwogdm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRl
ciYsIGNvbnN0IENvbnRhaW5lclF1ZXJ5Jik7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29u
dGFpbmVyUXVlcnlQYXJzZXIuY3BwCmluZGV4IGI1YTY2OTBkMmQwZi4uZmMxNTY0NGRlMWE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Db250YWluZXJRdWVyeVBhcnNlci5jcHAKQEAgLTUxLDQ1
ICs1MSwxNiBAQCBzdGQ6Om9wdGlvbmFsPENROjpDb250YWluZXJRdWVyeT4gQ29udGFpbmVyUXVl
cnlQYXJzZXI6OmNvbnN1bWVDb250YWluZXJRdWVyeShDUwogCiAgICAgbV9yZXF1aXJlZEF4ZXMg
PSB7IH07CiAKLSAgICBhdXRvIGNvbmRpdGlvbiA9IGNvbnN1bWVDb25kaXRpb248Q1E6OkNvbnRh
aW5lckNvbmRpdGlvbj4ocmFuZ2UpOworICAgIGF1dG8gY29uZGl0aW9uID0gY29uc3VtZUNvbmRp
dGlvbihyYW5nZSk7CiAgICAgaWYgKCFjb25kaXRpb24pCiAgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICByZXR1cm4gQ1E6OkNvbnRhaW5lclF1ZXJ5IHsgbmFtZSwgbV9yZXF1aXJlZEF4ZXMsICpj
b25kaXRpb24gfTsKIH0KIAotc3RkOjpvcHRpb25hbDxDUTo6UXVlcnlJblBhcmVucz4gQ29udGFp
bmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQorc3RkOjpvcHRpb25hbDxNUTo6RmVhdHVyZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6
OmNvbnN1bWVGZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChy
YW5nZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pIHsKLSAgICAgICAgYXV0byBuYW1l
ID0gcmFuZ2UucGVlaygpLnZhbHVlKCk7Ci0gICAgICAgIGF1dG8gZnVuY3Rpb25SYW5nZSA9IHJh
bmdlLmNvbnN1bWVCbG9jaygpOwotICAgICAgICAvLyBUaGlzIGlzIHdoZXJlIHdlIHdvdWxkIHN1
cHBvcnQgc3R5bGUoKSBxdWVyaWVzLgotICAgICAgICByZXR1cm4gTVE6OkdlbmVyYWxFbmNsb3Nl
ZCB7IG5hbWUudG9TdHJpbmcoKSwgZnVuY3Rpb25SYW5nZS5zZXJpYWxpemUoKSB9OwotICAgIH0K
LQotICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgpID09IExlZnRQYXJlbnRoZXNpc1Rva2VuKSB7
Ci0gICAgICAgIGF1dG8gYmxvY2tSYW5nZSA9IHJhbmdlLmNvbnN1bWVCbG9jaygpOwotICAgICAg
ICByYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOwotCi0gICAgICAgIGJsb2NrUmFuZ2UuY29uc3Vt
ZVdoaXRlc3BhY2UoKTsKLQotICAgICAgICAvLyBUcnkgdG8gcGFyc2UgYXMgYSBjb25kaXRpb24g
Zmlyc3QuCi0gICAgICAgIGF1dG8gY29uZGl0aW9uUmFuZ2UgPSBibG9ja1JhbmdlOwotICAgICAg
ICBpZiAoYXV0byBjb25kaXRpb24gPSBjb25zdW1lQ29uZGl0aW9uPENROjpDb250YWluZXJDb25k
aXRpb24+KGNvbmRpdGlvblJhbmdlKSkKLSAgICAgICAgICAgIHJldHVybiB7IGNvbmRpdGlvbiB9
OwotCi0gICAgICAgIGlmIChhdXRvIHNpemVGZWF0dXJlID0gY29uc3VtZVNpemVGZWF0dXJlKGJs
b2NrUmFuZ2UpKQotICAgICAgICAgICAgcmV0dXJuIHsgKnNpemVGZWF0dXJlIH07Ci0KLSAgICAg
ICAgcmV0dXJuIE1ROjpHZW5lcmFsRW5jbG9zZWQgeyB7IH0sIGJsb2NrUmFuZ2Uuc2VyaWFsaXpl
KCkgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4geyB9OwotfQotCi1zdGQ6Om9wdGlvbmFsPENROjpT
aXplRmVhdHVyZT4gQ29udGFpbmVyUXVlcnlQYXJzZXI6OmNvbnN1bWVTaXplRmVhdHVyZShDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSkKLXsKLSAgICBhdXRvIHNpemVGZWF0dXJlID0gY29uc3Vt
ZUZlYXR1cmUocmFuZ2UpOworICAgIGF1dG8gc2l6ZUZlYXR1cmUgPSBNUTo6R2VuZXJpY01lZGlh
UXVlcnlQYXJzZXI8Q29udGFpbmVyUXVlcnlQYXJzZXI+Ojpjb25zdW1lRmVhdHVyZShyYW5nZSk7
CiAgICAgaWYgKCFzaXplRmVhdHVyZSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ29udGFpbmVyUXVlcnlQYXJzZXIuaAppbmRleCAxZmM5NDAwZTM2NDUuLjUwMzY0
YjJhMjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NvbnRhaW5lclF1ZXJ5UGFyc2VyLmgKQEAg
LTM4LDkgKzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENROjpDb250
YWluZXJRdWVyeT4gY29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmLCBj
b25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CiAKICAgICBzdGQ6Om9wdGlvbmFsPENROjpDb250YWlu
ZXJRdWVyeT4gY29uc3VtZUNvbnRhaW5lclF1ZXJ5KENTU1BhcnNlclRva2VuUmFuZ2UmKTsKLSAg
ICBzdGQ6Om9wdGlvbmFsPENROjpRdWVyeUluUGFyZW5zPiBjb25zdW1lUXVlcnlJblBhcmVucyhD
U1NQYXJzZXJUb2tlblJhbmdlJik7Ci0gICAgc3RkOjpvcHRpb25hbDxDUTo6U2l6ZUZlYXR1cmU+
IGNvbnN1bWVTaXplRmVhdHVyZShDU1NQYXJzZXJUb2tlblJhbmdlJik7Ci0gICAgUmVmUHRyPENT
U1ZhbHVlPiBjb25zdW1lVmFsdWUoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOworICAgIHN0ZDo6b3B0
aW9uYWw8TVE6OkZlYXR1cmU+IGNvbnN1bWVGZWF0dXJlKENTU1BhcnNlclRva2VuUmFuZ2UmKTsK
IAogcHJpdmF0ZToKICAgICBDb250YWluZXJRdWVyeVBhcnNlcihjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVy
aWNNZWRpYVF1ZXJ5RXZhbHVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJp
Y01lZGlhUXVlcnlFdmFsdWF0b3IuaAppbmRleCAyNTk2NDA4ZDk0NGQuLjk1NjFmMjUxMDY4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5RXZh
bHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgKQEAgLTQ2LDE1ICs0NiwyOSBAQCBwdWJsaWM6CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBDb25jcmV0ZUV2YWx1YXRvcj4KIGNsYXNzIEdlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yIDog
cHVibGljIEdlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yQmFzZSB7CiBwdWJsaWM6Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgQ29udGV4dD4gRXZhbHVhdGlv
blJlc3VsdCBldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb25UeXBlJiwgY29uc3QgQ29u
dGV4dCYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRleHQ+IEV2YWx1YXRpb25S
ZXN1bHQgZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNvbnN0IFF1ZXJ5SW5QYXJlbnMmLCBjb25zdCBD
b250ZXh0JikgY29uc3Q7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29udGV4dD4gRXZhbHVhdGlv
blJlc3VsdCBldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb24mLCBjb25zdCBDb250ZXh0
JikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQ29uY3JldGVFdmFsdWF0b3ImIGNvbmNy
ZXRlRXZhbHVhdG9yKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ29uY3JldGVF
dmFsdWF0b3ImPigqdGhpcyk7IH0KIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbmNyZXRlRXZh
bHVhdG9yPgotdGVtcGxhdGU8dHlwZW5hbWUgQ29uZGl0aW9uVHlwZSwgdHlwZW5hbWUgQ29udGV4
dD4KLUV2YWx1YXRpb25SZXN1bHQgR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3I8Q29uY3JldGVF
dmFsdWF0b3I+OjpldmFsdWF0ZUNvbmRpdGlvbihjb25zdCBDb25kaXRpb25UeXBlJiBjb25kaXRp
b24sICBjb25zdCBDb250ZXh0JiBjb250ZXh0KSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgQ29u
dGV4dD4KK0V2YWx1YXRpb25SZXN1bHQgR2VuZXJpY01lZGlhUXVlcnlFdmFsdWF0b3I8Q29uY3Jl
dGVFdmFsdWF0b3I+OjpldmFsdWF0ZVF1ZXJ5SW5QYXJlbnMoY29uc3QgUXVlcnlJblBhcmVucyYg
cXVlcnlJblBhcmVucywgY29uc3QgQ29udGV4dCYgY29udGV4dCkgY29uc3QKK3sKKyAgICByZXR1
cm4gV1RGOjpzd2l0Y2hPbihxdWVyeUluUGFyZW5zLCBbJl0oY29uc3QgQ29uZGl0aW9uJiBjb25k
aXRpb24pIHsKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbiwgY29u
dGV4dCk7CisgICAgfSwgWyZdKGNvbnN0IE1ROjpGZWF0dXJlJiBmZWF0dXJlKSB7CisgICAgICAg
IHJldHVybiBjb25jcmV0ZUV2YWx1YXRvcigpLmV2YWx1YXRlRmVhdHVyZShmZWF0dXJlLCBjb250
ZXh0KTsKKyAgICB9LCBbJl0oY29uc3QgTVE6OkdlbmVyYWxFbmNsb3NlZCYpIHsKKyAgICAgICAg
cmV0dXJuIE1ROjpFdmFsdWF0aW9uUmVzdWx0OjpVbmtub3duOworICAgIH0pOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBDb25jcmV0ZUV2YWx1YXRvcj4KK3RlbXBsYXRlPHR5cGVuYW1lIENvbnRl
eHQ+CitFdmFsdWF0aW9uUmVzdWx0IEdlbmVyaWNNZWRpYVF1ZXJ5RXZhbHVhdG9yPENvbmNyZXRl
RXZhbHVhdG9yPjo6ZXZhbHVhdGVDb25kaXRpb24oY29uc3QgQ29uZGl0aW9uJiBjb25kaXRpb24s
IGNvbnN0IENvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgaWYgKGNvbmRpdGlvbi5xdWVy
aWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEV2YWx1YXRpb25SZXN1bHQ6OlVua25vd247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFy
c2VyLmNwcAppbmRleCA5MzNjMmE0NjJiZmIuLjRkMmE0YWVjMjhiNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlQYXJzZXIuY3BwCkBAIC00
MSw4ICs0MSw4IEBAIHN0YXRpYyBBdG9tU3RyaW5nIGNvbnN1bWVGZWF0dXJlTmFtZShDU1NQYXJz
ZXJUb2tlblJhbmdlJiByYW5nZSkKIHN0ZDo6b3B0aW9uYWw8RmVhdHVyZT4gR2VuZXJpY01lZGlh
UXVlcnlQYXJzZXJCYXNlOjpjb25zdW1lRmVhdHVyZShDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5n
ZSkKIHsKICAgICBhdXRvIHJhbmdlQ29weSA9IHJhbmdlOwotICAgIGlmIChhdXRvIHNpemVGZWF0
dXJlID0gY29uc3VtZUJvb2xlYW5PclBsYWluRmVhdHVyZShyYW5nZSkpCi0gICAgICAgIHJldHVy
biBzaXplRmVhdHVyZTsKKyAgICBpZiAoYXV0byBmZWF0dXJlID0gY29uc3VtZUJvb2xlYW5PclBs
YWluRmVhdHVyZShyYW5nZSkpCisgICAgICAgIHJldHVybiBmZWF0dXJlOwogCiAgICAgcmFuZ2Ug
PSByYW5nZUNvcHk7CiAgICAgcmV0dXJuIGNvbnN1bWVSYW5nZUZlYXR1cmUocmFuZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01lZGlhUXVlcnlQYXJzZXIuaApp
bmRleCA1NmJmMmRlYWI5ZjEuLjVhMWU5M2Y3NjIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyLmgKQEAgLTU0LDI2ICs1NCwyNiBA
QCBwdWJsaWM6CiAgICAgICAgIDogR2VuZXJpY01lZGlhUXVlcnlQYXJzZXJCYXNlKGNvbnRleHQp
CiAgICAgeyB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPiBzdGQ6Om9w
dGlvbmFsPENvbmRpdGlvblR5cGU+IGNvbnN1bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYpOworICAgIHN0ZDo6b3B0aW9uYWw8Q29uZGl0aW9uPiBjb25zdW1lQ29uZGl0aW9uKENTU1Bh
cnNlclRva2VuUmFuZ2UmKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFF1ZXJ5SW5QYXJlbnM+IGNvbnN1
bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2UmKTsKIAogcHJpdmF0ZToKICAgICBD
b25jcmV0ZVBhcnNlciYgY29uY3JldGVQYXJzZXIoKSB7IHJldHVybiBzdGF0aWNfY2FzdDxDb25j
cmV0ZVBhcnNlciY+KCp0aGlzKTsgfQogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQ29uY3JldGVQ
YXJzZXI+Ci10ZW1wbGF0ZTx0eXBlbmFtZSBDb25kaXRpb25UeXBlPgotc3RkOjpvcHRpb25hbDxD
b25kaXRpb25UeXBlPiBHZW5lcmljTWVkaWFRdWVyeVBhcnNlcjxDb25jcmV0ZVBhcnNlcj46OmNv
bnN1bWVDb25kaXRpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCitzdGQ6Om9wdGlvbmFs
PENvbmRpdGlvbj4gR2VuZXJpY01lZGlhUXVlcnlQYXJzZXI8Q29uY3JldGVQYXJzZXI+Ojpjb25z
dW1lQ29uZGl0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQogewogICAgIGlmIChyYW5n
ZS5wZWVrKCkudHlwZSgpID09IElkZW50VG9rZW4pIHsKICAgICAgICAgaWYgKHJhbmdlLnBlZWso
KS5pZCgpID09IENTU1ZhbHVlTm90KSB7CiAgICAgICAgICAgICByYW5nZS5jb25zdW1lSW5jbHVk
aW5nV2hpdGVzcGFjZSgpOwogICAgICAgICAgICAgaWYgKGF1dG8gcXVlcnkgPSBjb25jcmV0ZVBh
cnNlcigpLmNvbnN1bWVRdWVyeUluUGFyZW5zKHJhbmdlKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gQ29uZGl0aW9uVHlwZSB7IExvZ2ljYWxPcGVyYXRvcjo6Tm90LCB7ICpxdWVyeSB9IH07Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIENvbmRpdGlvbiB7IExvZ2ljYWxPcGVyYXRvcjo6Tm90LCB7
ICpxdWVyeSB9IH07CiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICB9CiAgICAgfQog
Ci0gICAgQ29uZGl0aW9uVHlwZSBjb25kaXRpb247CisgICAgQ29uZGl0aW9uIGNvbmRpdGlvbjsK
IAogICAgIGF1dG8gcXVlcnkgPSBjb25jcmV0ZVBhcnNlcigpLmNvbnN1bWVRdWVyeUluUGFyZW5z
KHJhbmdlKTsKICAgICBpZiAoIXF1ZXJ5KQpAQCAtMTEzLDUgKzExMywzMyBAQCBzdGQ6Om9wdGlv
bmFsPENvbmRpdGlvblR5cGU+IEdlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyPENvbmNyZXRlUGFyc2Vy
Pjo6Y29uc3VtZUNvbgogICAgIHJldHVybiBjb25kaXRpb247CiB9CiAKK3RlbXBsYXRlPHR5cGVu
YW1lIENvbmNyZXRlUGFyc2VyPgorc3RkOjpvcHRpb25hbDxRdWVyeUluUGFyZW5zPiBHZW5lcmlj
TWVkaWFRdWVyeVBhcnNlcjxDb25jcmV0ZVBhcnNlcj46OmNvbnN1bWVRdWVyeUluUGFyZW5zKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQoreworICAgIGlmIChyYW5nZS5wZWVrKCkudHlwZSgp
ID09IEZ1bmN0aW9uVG9rZW4pIHsKKyAgICAgICAgYXV0byBuYW1lID0gcmFuZ2UucGVlaygpLnZh
bHVlKCk7CisgICAgICAgIGF1dG8gZnVuY3Rpb25SYW5nZSA9IHJhbmdlLmNvbnN1bWVCbG9jaygp
OworICAgICAgICByZXR1cm4gR2VuZXJhbEVuY2xvc2VkIHsgbmFtZS50b1N0cmluZygpLCBmdW5j
dGlvblJhbmdlLnNlcmlhbGl6ZSgpIH07CisgICAgfQorCisgICAgaWYgKHJhbmdlLnBlZWsoKS50
eXBlKCkgPT0gTGVmdFBhcmVudGhlc2lzVG9rZW4pIHsKKyAgICAgICAgYXV0byBibG9ja1Jhbmdl
ID0gcmFuZ2UuY29uc3VtZUJsb2NrKCk7CisgICAgICAgIHJhbmdlLmNvbnN1bWVXaGl0ZXNwYWNl
KCk7CisKKyAgICAgICAgYmxvY2tSYW5nZS5jb25zdW1lV2hpdGVzcGFjZSgpOworCisgICAgICAg
IGF1dG8gY29uZGl0aW9uUmFuZ2UgPSBibG9ja1JhbmdlOworICAgICAgICBpZiAoYXV0byBjb25k
aXRpb24gPSBjb25zdW1lQ29uZGl0aW9uKGNvbmRpdGlvblJhbmdlKSkKKyAgICAgICAgICAgIHJl
dHVybiB7IGNvbmRpdGlvbiB9OworCisgICAgICAgIGlmIChhdXRvIGZlYXR1cmUgPSBjb25jcmV0
ZVBhcnNlcigpLmNvbnN1bWVGZWF0dXJlKGJsb2NrUmFuZ2UpKQorICAgICAgICAgICAgcmV0dXJu
IHsgKmZlYXR1cmUgfTsKKworICAgICAgICByZXR1cm4gR2VuZXJhbEVuY2xvc2VkIHsgeyB9LCBi
bG9ja1JhbmdlLnNlcmlhbGl6ZSgpIH07CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30KKwog
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1
ZXJ5U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvR2VuZXJpY01l
ZGlhUXVlcnlTZXJpYWxpemF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjI2MWM2ODcyYTFmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uY3BwCkBAIC0wLDAgKzEs
MTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJHZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCIKKworI2luY2x1
ZGUgIkNTU01hcmt1cC5oIgorI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK25hbWVzcGFjZSBNUSB7CisKK3N0YXRpYyB2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWls
ZGVyJiBidWlsZGVyLCBjb25zdCBRdWVyeUluUGFyZW5zJiBxdWVyeUluUGFyZW5zKQoreworICAg
IFdURjo6c3dpdGNoT24ocXVlcnlJblBhcmVucywgWyZdKGF1dG8mIG5vZGUpIHsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoJygnKTsKKyAgICAgICAgc2VyaWFsaXplKGJ1aWxkZXIsIG5vZGUpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZCgnKScpOworICAgIH0sIFsmXShjb25zdCBHZW5lcmFsRW5j
bG9zZWQmIGdlbmVyYWxFbmNsb3NlZCkgeworICAgICAgICBidWlsZGVyLmFwcGVuZChnZW5lcmFs
RW5jbG9zZWQubmFtZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGdlbmVyYWxFbmNsb3NlZC50ZXh0KTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoJyknKTsKKyAgICB9KTsKK30KKwordm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVp
bGRlciwgY29uc3QgQ29uZGl0aW9uJiBjb25kaXRpb24pCit7CisgICAgaWYgKGNvbmRpdGlvbi5x
dWVyaWVzLnNpemUoKSA9PSAxICYmIGNvbmRpdGlvbi5sb2dpY2FsT3BlcmF0b3IgPT0gTG9naWNh
bE9wZXJhdG9yOjpOb3QpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoIm5vdCAiKTsKKyAgICAg
ICAgc2VyaWFsaXplKGJ1aWxkZXIsIGNvbmRpdGlvbi5xdWVyaWVzLmZpcnN0KCkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChhdXRvJiBxdWVyeSA6IGNvbmRpdGlvbi5xdWVy
aWVzKSB7CisgICAgICAgIGlmICgmcXVlcnkgIT0gJmNvbmRpdGlvbi5xdWVyaWVzLmZpcnN0KCkp
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChjb25kaXRpb24ubG9naWNhbE9wZXJhdG9yID09
IExvZ2ljYWxPcGVyYXRvcjo6QW5kID8gIiBhbmQgIiA6ICIgb3IgIik7CisgICAgICAgIHNlcmlh
bGl6ZShidWlsZGVyLCBxdWVyeSk7CisgICAgfQorfQorCit2b2lkIHNlcmlhbGl6ZShTdHJpbmdC
dWlsZGVyJiBidWlsZGVyLCBjb25zdCBGZWF0dXJlJiBmZWF0dXJlKQoreworICAgIGF1dG8gc2Vy
aWFsaXplUmFuZ2VDb21wYXJpc29uT3BlcmF0b3IgPSBbJl0oQ29tcGFyaXNvbk9wZXJhdG9yIG9w
KSB7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHN3aXRjaCAob3ApIHsK
KyAgICAgICAgY2FzZSBDb21wYXJpc29uT3BlcmF0b3I6Okxlc3NUaGFuOgorICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoJzwnKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENv
bXBhcmlzb25PcGVyYXRvcjo6TGVzc1RoYW5PckVxdWFsOgorICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoIjw9Iik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb21wYXJpc29u
T3BlcmF0b3I6OkVxdWFsOgorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJz0nKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvbXBhcmlzb25PcGVyYXRvcjo6R3JlYXRlclRo
YW46CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnPicpOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgQ29tcGFyaXNvbk9wZXJhdG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw6Cisg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiPj0iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgfTsKKworICAgIHN3aXRj
aCAoZmVhdHVyZS5zeW50YXgpIHsKKyAgICBjYXNlIFN5bnRheDo6Qm9vbGVhbjoKKyAgICAgICAg
c2VyaWFsaXplSWRlbnRpZmllcihmZWF0dXJlLm5hbWUsIGJ1aWxkZXIpOworICAgICAgICBicmVh
azsKKworICAgIGNhc2UgU3ludGF4OjpQbGFpbjoKKyAgICAgICAgc3dpdGNoIChmZWF0dXJlLnJp
Z2h0Q29tcGFyaXNvbi0+b3ApIHsKKyAgICAgICAgY2FzZSBNUTo6Q29tcGFyaXNvbk9wZXJhdG9y
OjpMZXNzVGhhbk9yRXF1YWw6CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgibWF4LSIpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVE6OkNvbXBhcmlzb25PcGVyYXRvcjo6
RXF1YWw6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUTo6Q29tcGFyaXNvbk9w
ZXJhdG9yOjpHcmVhdGVyVGhhbk9yRXF1YWw6CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgi
bWluLSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVE6OkNvbXBhcmlzb25P
cGVyYXRvcjo6TGVzc1RoYW46CisgICAgICAgIGNhc2UgTVE6OkNvbXBhcmlzb25PcGVyYXRvcjo6
R3JlYXRlclRoYW46CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIoZmVhdHVy
ZS5uYW1lLCBidWlsZGVyKTsKKworICAgICAgICBidWlsZGVyLmFwcGVuZCgiOiAiKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmQoZmVhdHVyZS5yaWdodENvbXBhcmlzb24tPnZhbHVlLT5jc3NUZXh0
KCkpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgU3ludGF4OjpSYW5nZToKKyAgICAgICAg
aWYgKGZlYXR1cmUubGVmdENvbXBhcmlzb24pIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGZlYXR1cmUubGVmdENvbXBhcmlzb24tPnZhbHVlLT5jc3NUZXh0KCkpOworICAgICAgICAgICAg
c2VyaWFsaXplUmFuZ2VDb21wYXJpc29uT3BlcmF0b3IoZmVhdHVyZS5sZWZ0Q29tcGFyaXNvbi0+
b3ApOworICAgICAgICB9CisKKyAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihmZWF0dXJlLm5h
bWUsIGJ1aWxkZXIpOworCisgICAgICAgIGlmIChmZWF0dXJlLnJpZ2h0Q29tcGFyaXNvbikgewor
ICAgICAgICAgICAgc2VyaWFsaXplUmFuZ2VDb21wYXJpc29uT3BlcmF0b3IoZmVhdHVyZS5yaWdo
dENvbXBhcmlzb24tPm9wKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGZlYXR1cmUucmln
aHRDb21wYXJpc29uLT52YWx1ZS0+Y3NzVGV4dCgpKTsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVy
eS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9x
dWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLmUzNTBhYmRiYjUwZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVNlcmlhbGl6YXRpb24uaApA
QCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiR2VuZXJpY01lZGlhUXVlcnlUeXBlcy5oIgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNl
IE1RIHsKKwordm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IEZlYXR1cmUmKTsK
K3ZvaWQgc2VyaWFsaXplKFN0cmluZ0J1aWxkZXImLCBjb25zdCBDb25kaXRpb24mKTsKKworfQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5
VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVR5cGVz
LmgKaW5kZXggMDcxNjU4MmM1MzhmLi4wMzM0ZDMyMzE1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9xdWVyeS9HZW5lcmljTWVkaWFRdWVyeVR5cGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL3F1ZXJ5L0dlbmVyaWNNZWRpYVF1ZXJ5VHlwZXMuaApAQCAtMzMsNiArMzMsOCBA
QCBlbnVtIGNsYXNzIExvZ2ljYWxPcGVyYXRvciA6IHVpbnQ4X3QgeyBBbmQsIE9yLCBOb3QgfTsK
IGVudW0gY2xhc3MgQ29tcGFyaXNvbk9wZXJhdG9yIDogdWludDhfdCB7IExlc3NUaGFuLCBMZXNz
VGhhbk9yRXF1YWwsIEVxdWFsLCBHcmVhdGVyVGhhbiwgR3JlYXRlclRoYW5PckVxdWFsIH07CiBl
bnVtIGNsYXNzIFN5bnRheCA6IHVpbnQ4X3QgeyBCb29sZWFuLCBQbGFpbiwgUmFuZ2UgfTsKIAor
c3RydWN0IENvbmRpdGlvbjsKKwogc3RydWN0IENvbXBhcmlzb24gewogICAgIENvbXBhcmlzb25P
cGVyYXRvciBvcDsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlOwpAQCAtNTAsNCArNTIsMTEg
QEAgc3RydWN0IEdlbmVyYWxFbmNsb3NlZCB7CiAgICAgU3RyaW5nIHRleHQ7CiB9OwogCit1c2lu
ZyBRdWVyeUluUGFyZW5zID0gc3RkOjp2YXJpYW50PENvbmRpdGlvbiwgRmVhdHVyZSwgR2VuZXJh
bEVuY2xvc2VkPjsKKworc3RydWN0IENvbmRpdGlvbiB7CisgICAgTG9naWNhbE9wZXJhdG9yIGxv
Z2ljYWxPcGVyYXRvciB7IExvZ2ljYWxPcGVyYXRvcjo6QW5kIH07CisgICAgVmVjdG9yPFF1ZXJ5
SW5QYXJlbnM+IHF1ZXJpZXM7Cit9OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcXVlcnkvTWVkaWFRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkv
TWVkaWFRdWVyeVBhcnNlci5jcHAKaW5kZXggNzU4NGM2YzcyZWYyLi4wYjJhNDM2N2IyODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9xdWVyeS9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcXVlcnkvTWVkaWFRdWVyeVBhcnNlci5jcHAKQEAgLTMw
LDYgKzMwLDExIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTVEgewogCitNZWRp
YVF1ZXJ5UGFyc2VyOjpNZWRpYVF1ZXJ5UGFyc2VyKGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNv
bnRleHQpCisgICAgOiBHZW5lcmljTWVkaWFRdWVyeVBhcnNlcihjb250ZXh0KQoreworfQorCiBN
ZWRpYVF1ZXJ5TGlzdCBNZWRpYVF1ZXJ5UGFyc2VyOjpjb25zdW1lTWVkaWFRdWVyeUxpc3QoQ1NT
UGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UpCiB7CiAgICAgTWVkaWFRdWVyeUxpc3QgbGlzdDsKQEAg
LTYyLDcgKzY3LDcgQEAgc3RkOjpvcHRpb25hbDxNZWRpYVF1ZXJ5PiBNZWRpYVF1ZXJ5UGFyc2Vy
Ojpjb25zdW1lTWVkaWFRdWVyeShDU1NQYXJzZXJUb2tlblJhbmcKICAgICAvLyA8bWVkaWEtY29u
ZGl0aW9uPgogCiAgICAgYXV0byByYW5nZUNvcHkgPSByYW5nZTsKLSAgICBpZiAoYXV0byBjb25k
aXRpb24gPSBjb25zdW1lQ29uZGl0aW9uPE1lZGlhQ29uZGl0aW9uPihyYW5nZSkpCisgICAgaWYg
KGF1dG8gY29uZGl0aW9uID0gY29uc3VtZUNvbmRpdGlvbihyYW5nZSkpCiAgICAgICAgIHJldHVy
biBNZWRpYVF1ZXJ5IHsgeyB9LCB7IH0sIGNvbmRpdGlvbiB9OwogCiAgICAgcmFuZ2UgPSByYW5n
ZUNvcHk7CkBAIC0xMTAsNyArMTE1LDcgQEAgc3RkOjpvcHRpb25hbDxNZWRpYVF1ZXJ5PiBNZWRp
YVF1ZXJ5UGFyc2VyOjpjb25zdW1lTWVkaWFRdWVyeShDU1NQYXJzZXJUb2tlblJhbmcKIAogICAg
IHJhbmdlLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7CiAKLSAgICBhdXRvIGNvbmRpdGlv
biA9IGNvbnN1bWVDb25kaXRpb248TWVkaWFDb25kaXRpb24+KHJhbmdlKTsKKyAgICBhdXRvIGNv
bmRpdGlvbiA9IGNvbnN1bWVDb25kaXRpb24ocmFuZ2UpOwogICAgIGlmICghY29uZGl0aW9uKQog
ICAgICAgICByZXR1cm4geyB9OwogCkBAIC0xMjAsMzYgKzEyNSwzNiBAQCBzdGQ6Om9wdGlvbmFs
PE1lZGlhUXVlcnk+IE1lZGlhUXVlcnlQYXJzZXI6OmNvbnN1bWVNZWRpYVF1ZXJ5KENTU1BhcnNl
clRva2VuUmFuZwogICAgIHJldHVybiBNZWRpYVF1ZXJ5IHsgcHJlZml4LCBtZWRpYVR5cGUsIGNv
bmRpdGlvbiB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPE1lZGlhSW5QYXJlbnM+IE1lZGlhUXVlcnlQ
YXJzZXI6OmNvbnN1bWVRdWVyeUluUGFyZW5zKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlKQor
dm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYgYnVpbGRlciwgY29uc3QgTWVkaWFRdWVyeUxp
c3QmIGxpc3QpCiB7Ci0gICAgaWYgKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tl
bikgewotICAgICAgICBhdXRvIG5hbWUgPSByYW5nZS5wZWVrKCkudmFsdWUoKTsKLSAgICAgICAg
YXV0byBmdW5jdGlvblJhbmdlID0gcmFuZ2UuY29uc3VtZUJsb2NrKCk7Ci0gICAgICAgIHJldHVy
biBHZW5lcmFsRW5jbG9zZWQgeyBuYW1lLnRvU3RyaW5nKCksIGZ1bmN0aW9uUmFuZ2Uuc2VyaWFs
aXplKCkgfTsKKyAgICBmb3IgKGF1dG8mIHF1ZXJ5IDogbGlzdCkgeworICAgICAgICBpZiAoJnF1
ZXJ5ICE9ICZsaXN0LmZpcnN0KCkpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsK
KyAgICAgICAgc2VyaWFsaXplKGJ1aWxkZXIsIHF1ZXJ5KTsKICAgICB9Cit9CiAKLSAgICBpZiAo
cmFuZ2UucGVlaygpLnR5cGUoKSA9PSBMZWZ0UGFyZW50aGVzaXNUb2tlbikgewotICAgICAgICBh
dXRvIGJsb2NrUmFuZ2UgPSByYW5nZS5jb25zdW1lQmxvY2soKTsKLSAgICAgICAgcmFuZ2UuY29u
c3VtZVdoaXRlc3BhY2UoKTsKLQotICAgICAgICBibG9ja1JhbmdlLmNvbnN1bWVXaGl0ZXNwYWNl
KCk7Ci0KLSAgICAgICAgYXV0byBjb25kaXRpb25SYW5nZSA9IGJsb2NrUmFuZ2U7Ci0gICAgICAg
IGlmIChhdXRvIGNvbmRpdGlvbiA9IGNvbnN1bWVDb25kaXRpb248TWVkaWFDb25kaXRpb24+KGNv
bmRpdGlvblJhbmdlKSkKLSAgICAgICAgICAgIHJldHVybiB7IGNvbmRpdGlvbiB9OwotCi0gICAg
ICAgIGlmIChhdXRvIGZlYXR1cmUgPSBjb25zdW1lTWVkaWFGZWF0dXJlKGJsb2NrUmFuZ2UpKQot
ICAgICAgICAgICAgcmV0dXJuIHsgKmZlYXR1cmUgfTsKLQotICAgICAgICByZXR1cm4gR2VuZXJh
bEVuY2xvc2VkIHsgeyB9LCBibG9ja1JhbmdlLnNlcmlhbGl6ZSgpIH07Cit2b2lkIHNlcmlhbGl6
ZShTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBjb25zdCBNZWRpYVF1ZXJ5JiBxdWVyeSkKK3sKKyAg
ICBpZiAocXVlcnkucHJlZml4KSB7CisgICAgICAgIHN3aXRjaCAoKnF1ZXJ5LnByZWZpeCkgewor
ICAgICAgICBjYXNlIFByZWZpeDo6Tm90OgorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIm5v
dCAiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFByZWZpeDo6T25seToKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJvbmx5ICIpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4geyB9OwotfQorICAgIGlmICghcXVlcnkubWVk
aWFUeXBlLmlzRW1wdHkoKSkgeworICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKHF1ZXJ5Lm1l
ZGlhVHlwZSwgYnVpbGRlcik7CisgICAgICAgIGlmIChxdWVyeS5jb25kaXRpb24pCisgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZCgiIGFuZCAiKTsKKyAgICB9CiAKLXN0ZDo6b3B0aW9uYWw8TWVk
aWFGZWF0dXJlPiBNZWRpYVF1ZXJ5UGFyc2VyOjpjb25zdW1lTWVkaWFGZWF0dXJlKENTU1BhcnNl
clRva2VuUmFuZ2UmIHJhbmdlKQotewotICAgIHJldHVybiBjb25zdW1lRmVhdHVyZShyYW5nZSk7
CisgICAgaWYgKHF1ZXJ5LmNvbmRpdGlvbikKKyAgICAgICAgc2VyaWFsaXplKGJ1aWxkZXIsICpx
dWVyeS5jb25kaXRpb24pOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cXVlcnkvTWVkaWFRdWVyeVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L01lZGlh
UXVlcnlQYXJzZXIuaAppbmRleCA1OWQ5NWU3NWE2MTUuLjFhNDVkYWQwODcyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL3F1ZXJ5L01lZGlhUXVlcnlQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcXVlcnkvTWVkaWFRdWVyeVBhcnNlci5oCkBAIC0yOSwzOSArMjksMjYg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBNUSB7CiAKLXN0cnVjdCBNZWRpYUNv
bmRpdGlvbjsKLQotdXNpbmcgTWVkaWFGZWF0dXJlID0gRmVhdHVyZTsKLXVzaW5nIE1lZGlhSW5Q
YXJlbnMgPSBzdGQ6OnZhcmlhbnQ8TWVkaWFDb25kaXRpb24sIE1lZGlhRmVhdHVyZSwgR2VuZXJh
bEVuY2xvc2VkPjsKLQogZW51bSBjbGFzcyBQcmVmaXggOiBib29sIHsgTm90LCBPbmx5IH07CiAK
LXN0cnVjdCBNZWRpYUNvbmRpdGlvbiB7Ci0gICAgTG9naWNhbE9wZXJhdG9yIGxvZ2ljYWxPcGVy
YXRvciB7IExvZ2ljYWxPcGVyYXRvcjo6QW5kIH07Ci0gICAgVmVjdG9yPE1lZGlhSW5QYXJlbnM+
IHF1ZXJpZXM7Ci19OwotCiBzdHJ1Y3QgTWVkaWFRdWVyeSB7CiAgICAgc3RkOjpvcHRpb25hbDxQ
cmVmaXg+IHByZWZpeDsKICAgICBBdG9tU3RyaW5nIG1lZGlhVHlwZTsKLSAgICBzdGQ6Om9wdGlv
bmFsPE1lZGlhQ29uZGl0aW9uPiBjb25kaXRpb24geyB9OworICAgIHN0ZDo6b3B0aW9uYWw8Q29u
ZGl0aW9uPiBjb25kaXRpb24geyB9OwogfTsKIAogdXNpbmcgTWVkaWFRdWVyeUxpc3QgPSBWZWN0
b3I8TWVkaWFRdWVyeT47CiAKIGNsYXNzIE1lZGlhUXVlcnlQYXJzZXIgOiBwdWJsaWMgR2VuZXJp
Y01lZGlhUXVlcnlQYXJzZXI8TWVkaWFRdWVyeVBhcnNlcj4gIHsKIHB1YmxpYzoKLSAgICBNZWRp
YVF1ZXJ5TGlzdCBjb25zdW1lTWVkaWFRdWVyeUxpc3QoQ1NTUGFyc2VyVG9rZW5SYW5nZSYpOwor
ICAgIE1lZGlhUXVlcnlQYXJzZXIoY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYpOwogICAgIAorICAg
IE1lZGlhUXVlcnlMaXN0IGNvbnN1bWVNZWRpYVF1ZXJ5TGlzdChDU1NQYXJzZXJUb2tlblJhbmdl
Jik7CiAgICAgc3RkOjpvcHRpb25hbDxNZWRpYVF1ZXJ5PiBjb25zdW1lTWVkaWFRdWVyeShDU1NQ
YXJzZXJUb2tlblJhbmdlJik7Ci0gICAgc3RkOjpvcHRpb25hbDxNZWRpYUluUGFyZW5zPiBjb25z
dW1lUXVlcnlJblBhcmVucyhDU1NQYXJzZXJUb2tlblJhbmdlJik7Ci0KLXByaXZhdGU6Ci0gICAg
c3RkOjpvcHRpb25hbDxNZWRpYUZlYXR1cmU+IGNvbnN1bWVNZWRpYUZlYXR1cmUoQ1NTUGFyc2Vy
VG9rZW5SYW5nZSYpOwotCi0gICAgTWVkaWFRdWVyeVBhcnNlcihjb25zdCBDU1NQYXJzZXJDb250
ZXh0JiBjb250ZXh0KQotICAgICAgICA6IEdlbmVyaWNNZWRpYVF1ZXJ5UGFyc2VyKGNvbnRleHQp
IHsgfQogfTsKIAordm9pZCBzZXJpYWxpemUoU3RyaW5nQnVpbGRlciYsIGNvbnN0IE1lZGlhUXVl
cnlMaXN0Jik7Cit2b2lkIHNlcmlhbGl6ZShTdHJpbmdCdWlsZGVyJiwgY29uc3QgTWVkaWFRdWVy
eSYpOworCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJR
dWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2
YWx1YXRvci5jcHAKaW5kZXggOGYxMjNiNjFkOGNmLi45MzFkMjFiMGQzZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9Db250YWluZXJRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTE2NCwx
OCArMTY0LDcgQEAgY29uc3QgRWxlbWVudCogQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OnNlbGVj
dENvbnRhaW5lcihPcHRpb25TZXQ8Q1E6OkF4aXM+IGF4ZXMKICAgICByZXR1cm4geyB9OwogfQog
Ci1hdXRvIENvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yOjpldmFsdWF0ZVF1ZXJ5SW5QYXJlbnMoY29u
c3QgQ1E6OlF1ZXJ5SW5QYXJlbnMmIHF1ZXJ5SW5QYXJlbnMsIGNvbnN0IFNlbGVjdGVkQ29udGFp
bmVyJiBjb250YWluZXIpIGNvbnN0IC0+IE1ROjpFdmFsdWF0aW9uUmVzdWx0Ci17Ci0gICAgcmV0
dXJuIFdURjo6c3dpdGNoT24ocXVlcnlJblBhcmVucywgWyZdKGNvbnN0IENROjpDb250YWluZXJD
b25kaXRpb24mIGNvbnRhaW5lckNvbmRpdGlvbikgewotICAgICAgICByZXR1cm4gZXZhbHVhdGVD
b25kaXRpb24oY29udGFpbmVyQ29uZGl0aW9uLCBjb250YWluZXIpOwotICAgIH0sIFsmXShjb25z
dCBDUTo6U2l6ZUZlYXR1cmUmIHNpemVGZWF0dXJlKSB7Ci0gICAgICAgIHJldHVybiBldmFsdWF0
ZVNpemVGZWF0dXJlKHNpemVGZWF0dXJlLCBjb250YWluZXIpOwotICAgIH0sIFsmXShjb25zdCBN
UTo6R2VuZXJhbEVuY2xvc2VkJikgewotICAgICAgICByZXR1cm4gTVE6OkV2YWx1YXRpb25SZXN1
bHQ6OlVua25vd247Ci0gICAgfSk7Ci19Ci0KLWF1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6
OmV2YWx1YXRlU2l6ZUZlYXR1cmUoY29uc3QgQ1E6OlNpemVGZWF0dXJlJiBzaXplRmVhdHVyZSwg
Y29uc3QgU2VsZWN0ZWRDb250YWluZXImIGNvbnRhaW5lcikgY29uc3QgLT4gTVE6OkV2YWx1YXRp
b25SZXN1bHQKK2F1dG8gQ29udGFpbmVyUXVlcnlFdmFsdWF0b3I6OmV2YWx1YXRlRmVhdHVyZShj
b25zdCBNUTo6RmVhdHVyZSYgc2l6ZUZlYXR1cmUsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJiBj
b250YWluZXIpIGNvbnN0IC0+IE1ROjpFdmFsdWF0aW9uUmVzdWx0CiB7CiAgICAgLy8gIklmIHRo
ZSBxdWVyeSBjb250YWluZXIgZG9lcyBub3QgaGF2ZSBhIHByaW5jaXBhbCBib3gsIG9yIHRoZSBw
cmluY2lwYWwgYm94IGlzIG5vdCBhIGxheW91dCBjb250YWlubWVudCBib3gsCiAgICAgLy8gb3Ig
dGhlIHF1ZXJ5IGNvbnRhaW5lciBkb2VzIG5vdCBzdXBwb3J0IGNvbnRhaW5lciBzaXplIHF1ZXJp
ZXMgb24gdGhlIHJlbGV2YW50IGF4ZXMsIHRoZW4gdGhlIHJlc3VsdCBvZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVlcnlFdmFsdWF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0NvbnRhaW5lclF1ZXJ5RXZhbHVhdG9yLmgKaW5kZXggNWRiMzg0MTdhOWQy
Li40MzFjOTEyYjAyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0NvbnRhaW5l
clF1ZXJ5RXZhbHVhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvQ29udGFpbmVyUXVl
cnlFdmFsdWF0b3IuaApAQCAtNDYsOCArNDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IEVsZW1lbnQqIHNlbGVjdENvbnRhaW5lcihPcHRpb25TZXQ8Q1E6OkF4aXM+LCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IEVsZW1lbnQmLCBTZWxlY3Rpb25Nb2RlID0gU2VsZWN0aW9uTW9kZTo6
RWxlbWVudCwgU2NvcGVPcmRpbmFsID0gU2NvcGVPcmRpbmFsOjpFbGVtZW50LCBjb25zdCBDYWNo
ZWRRdWVyeUNvbnRhaW5lcnMqID0gbnVsbHB0cik7CiAKICAgICBzdHJ1Y3QgU2VsZWN0ZWRDb250
YWluZXI7Ci0gICAgTVE6OkV2YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVRdWVyeUluUGFyZW5zKGNv
bnN0IENROjpRdWVyeUluUGFyZW5zJiwgY29uc3QgU2VsZWN0ZWRDb250YWluZXImKSBjb25zdDsK
LSAgICBNUTo6RXZhbHVhdGlvblJlc3VsdCBldmFsdWF0ZVNpemVGZWF0dXJlKGNvbnN0IENROjpT
aXplRmVhdHVyZSYsIGNvbnN0IFNlbGVjdGVkQ29udGFpbmVyJikgY29uc3Q7CisgICAgTVE6OkV2
YWx1YXRpb25SZXN1bHQgZXZhbHVhdGVGZWF0dXJlKGNvbnN0IE1ROjpGZWF0dXJlJiwgY29uc3Qg
U2VsZWN0ZWRDb250YWluZXImKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFs
PFNlbGVjdGVkQ29udGFpbmVyPiBzZWxlY3RDb250YWluZXIoY29uc3QgQ1E6OkNvbnRhaW5lclF1
ZXJ5JikgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>