<?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>51916</bug_id>
          
          <creation_ts>2011-01-04 23:16:29 -0800</creation_ts>
          <short_desc>Merge cf and mac header files with same name</short_desc>
          <delta_ts>2011-01-05 13:56:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>51836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pratik Solanki">psolanki</reporter>
          <assigned_to name="Pratik Solanki">psolanki</assigned_to>
          <cc>psolanki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329437</commentid>
    <comment_count>0</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-01-04 23:16:29 -0800</bug_when>
    <thetext>We have header files with the same name and mostly identical code in mac and cf directories e.g.

WebCore/platform/network/cf/ResourceRequest.h
WebCore/platform/network/mac/ResourceRequest.h

We can merge the two and use #if USE(CFNETWORK) to separate out the code now that all the cf files have been added to the Xcode project in bug 51850.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329452</commentid>
    <comment_count>1</comment_count>
      <attachid>77975</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-01-04 23:33:46 -0800</bug_when>
    <thetext>Created attachment 77975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329568</commentid>
    <comment_count>2</comment_count>
      <attachid>77975</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-05 08:09:45 -0800</bug_when>
    <thetext>Comment on attachment 77975
Patch

It seems we could cut down the #ifs even further with some typedefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329678</commentid>
    <comment_count>3</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-01-05 11:15:33 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 77975 [details])
&gt; It seems we could cut down the #ifs even further with some typedefs.

True. I tried it and it was easy to do for the ResourceError class, however for ResourceRequest and ResourceResponse we would also have to merge the member field names from m_nsURLRequest/m_cfURLRequest to m_urlRequest and refactor the code. That&apos;s turning out to be a much bigger patch. I&apos;ll do that separately from this one. Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329770</commentid>
    <comment_count>4</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2011-01-05 13:56:46 -0800</bug_when>
    <thetext>Committed r75103: &lt;http://trac.webkit.org/changeset/75103&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77975</attachid>
            <date>2011-01-04 23:33:46 -0800</date>
            <delta_ts>2011-01-05 08:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51916-20110104233345.patch</filename>
            <type>text/plain</type>
            <size>35991</size>
            <attacher name="Pratik Solanki">psolanki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDhhOTI4Yzc2MTE4MzQ4NDliNzg2OTY3NjNkNGJhMGZkYmE3YmZkNS4uOWY2MjAxYWNjNWEzNTcy
OTkwYmM0MWYwNjRkNWFmOTAwMjUxMjk5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wMS0wNCAgUHJh
dGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgY2YgYW5kIG1hYyBoZWFkZXIgZmlsZXMg
d2l0aCBzYW1lIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxOTE2CisKKyAgICAgICAgU2luY2UgbW9zdCBvZiB0aGUgY29kZSBpbiB0aGUgaGVh
ZGVyIGZpbGVzIGlzIGlkZW50aWNhbCwgd2UgY2FuIG1lcmdlIHRoZW0gYW5kIGhhdmUgI2lmCisg
ICAgICAgIFVTRShDRk5FVFdPUkspIHRvIHNlcGFyYXRlIG91dCB0aGUgbmV0d29yayBzcGVjaWZp
YyBwYXJ0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg6
CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6c2VuZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpuc1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJy
b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlJlc291cmNlRXJyb3IpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3QuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlc3BvbnNlLmg6IFJlbW92ZWQu
CisKIDIwMTEtMDEtMDQgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTUxOTA0MzFm
M2UwMzcyMjQwY2JmYzg2MmUwNjkxNGM1NWI2YWM4NC4uNDFjMjUzMmYwNGYwYThiZTJkZjI2NjRl
MWZmM2E5NzhmYmZjYjgzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEyNjUsOSArMTI2NSw3IEBACiAJCTUxNEM3NjRGMENFOTIzNEUwMDdFRjNDRCAv
KiBGb3JtRGF0YVN0cmVhbU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNEM3NjQ1MENFOTIzNEUwMDdFRjNDRCAvKiBGb3JtRGF0YVN0cmVhbU1h
Yy5tbSAqLzsgfTsKIAkJNTE0Qzc2NTAwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlRXJyb3JN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRD
NzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1hYy5tbSAqLzsgfTsKIAkJNTE0
Qzc2NTEwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NDcwQ0U5MjM0RTAwN0VG
M0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICovOyB9OwotCQk1MTRDNzY1MjBDRTkyMzRFMDA3
RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0ODBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NTE0Qzc2NTMwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdE1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjQ5MENFOTIzNEUw
MDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RNYWMubW0gKi87IH07Ci0JCTUxNEM3NjU0MENFOTIz
NEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRDNzY0QTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VSZXNwb25zZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUxNEM3NjU1MENFOTIzNEYwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2NEIw
Q0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMubW0gKi87IH07CiAJCTUxNEM3
NjZEMENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEM3NjU4MENFOTIzQTEwMDdFRjNDRCAvKiBD
cmVkZW50aWFsLmNwcCAqLzsgfTsKIAkJNTE0Qzc2NkUwQ0U5MjNBMTAwN0VGM0NEIC8qIENyZWRl
bnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NEM3NjU5MENFOTIzQTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE2MTYsNyArMTYxNCw3IEBACiAJCTdF
MzNDRDAxMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcg
LyogUHVyZ2VQcmlvcml0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTdFRTY4NDVGMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNG
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4
NDRDMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLzsgfTsKIAkJN0VF
Njg0NjAxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDREMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNGLmggKi87IH07Ci0JCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEUxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmggKi87IH07CisJCTdFRTY4NDYxMTJEMjZFMzgwMEU3OTQxNSAvKiBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0VFNjg0NEUxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJN0VFNjg0NjIxMkQyNkUzODAwRTc5NDE1IC8qIENvb2tpZUphckNGTmV0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRGMTJEMjZF
MzgwMEU3OTQxNSAvKiBDb29raWVKYXJDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDYzMTJEMjZF
MzgwMEU3OTQxNSAvKiBDb29raWVTdG9yYWdlQ0ZOZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NTAxMkQyNkUzODAwRTc5NDE1IC8qIENv
b2tpZVN0b3JhZ2VDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDY0MTJEMjZFMzgwMEU3OTQxNSAv
KiBDb29raWVTdG9yYWdlQ0ZOZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdFRTY4NDUxMTJEMjZFMzgwMEU3OTQxNSAvKiBDb29raWVTdG9yYWdlQ0ZO
ZXQuaCAqLzsgfTsKQEAgLTE2MjUsMTMgKzE2MjMsMTMgQEAKIAkJN0VFNjg0NjcxMkQyNkUzODAw
RTc5NDE1IC8qIEZvcm1EYXRhU3RyZWFtQ0ZOZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDU0MTJEMjZFMzgwMEU3OTQxNSAvKiBGb3JtRGF0
YVN0cmVhbUNGTmV0LmggKi87IH07CiAJCTdFRTY4NDY4MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2Fk
ZXJSdW5Mb29wQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0VFNjg0NTUxMkQyNkUzODAwRTc5NDE1IC8qIExvYWRlclJ1bkxvb3BDRi5jcHAgKi87
IH07CiAJCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0YuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDU2MTJEMjZF
MzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0YuaCAqLzsgfTsKLQkJN0VFNjg0NkExMkQyNkUz
ODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDU3MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVy
cm9yLmggKi87IH07CisJCTdFRTY4NDZBMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUVycm9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1
NzEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdFRTY4NDZCMTJEMjZFMzgwMEU3OTQxNSAv
KiBSZXNvdXJjZUVycm9yQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0VFNjg0NTgxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlRXJyb3JDRi5j
cHAgKi87IH07CiAJCTdFRTY4NDZDMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdF
RTY4NDU5MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCAqLzsgfTsK
LQkJN0VFNjg0NkQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NUExMkQyNkUzODAw
RTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdC5oICovOyB9OworCQk3RUU2ODQ2RDEyRDI2RTM4MDBF
Nzk0MTUgLyogUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1QTEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0VFNjg0NkUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVCMTJEMjZF
MzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5jcHAgKi87IH07CiAJCTdFRTY4NDZG
MTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJlcXVlc3RDRk5ldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NUMxMkQyNkUzODAwRTc5NDE1
IC8qIFJlc291cmNlUmVxdWVzdENGTmV0LmggKi87IH07Ci0JCTdFRTY4NDcwMTJEMjZFMzgwMEU3
OTQxNSAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ1RDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZS5oICovOyB9OworCQk3RUU2ODQ3MDEyRDI2RTM4MDBFNzk0MTUgLyogUmVzb3VyY2VSZXNw
b25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VF
Njg0NUQxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RUU2ODQ3MTEyRDI2RTM4MDBF
Nzk0MTUgLyogUmVzb3VyY2VSZXNwb25zZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDVFMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlc3BvbnNlQ0ZOZXQuY3BwICovOyB9OwogCQk3RUU2ODQ3NTEyRDI2RTcwMDBFNzk0MTUg
LyogUmVzb3VyY2VMb2FkZXJDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3RUU2ODQ3NDEyRDI2RTcwMDBFNzk0MTUgLyogUmVzb3VyY2VMb2Fk
ZXJDRk5ldC5jcHAgKi87IH07CiAJCTgxQTczMjVFMTIxMDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJz
b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTcz
MjVEMTIxMDE4OUIwMEZDMEQ5RSAvKiBJREJDdXJzb3IuaCAqLzsgfTsKQEAgLTI4MjEsOCArMjgx
OSw2IEBACiAJCTkzNEY3MTNBMEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNEY3MTM5MEQ1QTZGMTAwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzRG
NzEzQzBENUE2RjE5MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNEY3MTNCMEQ1QTZGMTkwMDAxOEQ2
OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzNEY3MTNFMEQ1QTZGMjgwMDAxOEQ2OSAvKiBSZXNvdXJjZUVy
cm9yQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzRGNzEzRDBENUE2RjI4MDAwMThENjkgLyogUmVzb3VyY2VFcnJvckJhc2UuY3BwICovOyB9
OwotCQk5MzRGNzE0MjBENUE2RjQ0MDAwMThENjkgLyogUmVzb3VyY2VFcnJvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0RjcxNDEwRDVBNkY0NDAw
MDE4RDY5IC8qIFJlc291cmNlRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5MzRGNzE0NDBENUE2RjUzMDAwMThENjkgLyogQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNEY3MTQzMEQ1QTZGNTMwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkz
NEZFOUU1MEI1Q0E1MzkwMDNFNEE3MyAvKiBGaWxlQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGRTlFNDBCNUNBNTM5MDAzRTRBNzMg
LyogRmlsZUNob29zZXIuY3BwICovOyB9OwogCQk5MzUyMDdCRTA5QkQ0MTBBMDBGMjAzOEQgLyog
TG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM1MjA3QkQwOUJENDEwQTAwRjIwMzhEIC8qIExvY2FsaXplZFN0cmluZ3MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzUyMDg0
NTA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3VhZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzUyMDg0NDA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3Vh
Z2UubW0gKi87IH07CkBAIC03NjM0LDkgKzc2MzAsNyBAQAogCQk1MTRDNzY0NTBDRTkyMzRFMDA3
RUYzQ0QgLyogRm9ybURhdGFTdHJlYW1NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBGb3JtRGF0YVN0cmVhbU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE0Qzc2NDYwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlRXJyb3JNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZXNvdXJjZUVycm9yTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYz
Q0QgLyogUmVzb3VyY2VIYW5kbGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBSZXNvdXJjZUhhbmRsZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTE0Qzc2NDgwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJlcXVlc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNl
UmVxdWVzdE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJl
c291cmNlUmVxdWVzdE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE0Qzc2
NEEwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTRDNzY0QjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlc291cmNlUmVz
cG9uc2VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEM3NjU4MENFOTIz
QTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyZWRlbnRpYWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTRDNzY1OTBDRTkyM0ExMDA3RUYzQ0QgLyogQ3JlZGVudGlhbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDcmVkZW50aWFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC05MTgwLDggKzkxNzQsNiBAQAogCQk5MzRGNzEzOTBENUE2RjEwMDAwMThENjkgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM0RjcxM0IwRDVBNkYxOTAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3JCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUVycm9yQmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGNzEzRDBENUE2RjI4MDAwMThENjkgLyog
UmVzb3VyY2VFcnJvckJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJlc291cmNlRXJyb3JCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OTM0RjcxNDEwRDVBNkY0NDAwMDE4RDY5IC8qIFJlc291cmNlRXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTM0RjcxNDMwRDVBNkY1MzAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzRGRTlFNDBCNUNB
NTM5MDAzRTRBNzMgLyogRmlsZUNob29zZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRmlsZUNob29zZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzUyMDdCRDA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWRTdHJpbmdzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNTIwODQ0MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExhbmd1YWdlLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM2NjgsNyArMTM2NjAsNiBAQAogCQk2NTZC
ODRFNzBBRUExREFFMDBBMDk1QjQgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk5MzRGNzE0MzBENUE2RjUzMDAwMThENjkgLyogQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaCAqLywKIAkJCQk1MTRDNzY0MjBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0
aGVudGljYXRpb25NYWMuaCAqLywKIAkJCQk1MTRDNzY0MzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0
aGVudGljYXRpb25NYWMubW0gKi8sCiAJCQkJRTEzRjAxRjAxMjcwRTE5MDAwREZCQTcxIC8qIENv
b2tpZVN0b3JhZ2VNYWMubW0gKi8sCkBAIC0xMzY3NiwxMiArMTM2NjcsOSBAQAogCQkJCTUxNEM3
NjQ0MENFOTIzNEUwMDdFRjNDRCAvKiBGb3JtRGF0YVN0cmVhbU1hYy5oICovLAogCQkJCTUxNEM3
NjQ1MENFOTIzNEUwMDdFRjNDRCAvKiBGb3JtRGF0YVN0cmVhbU1hYy5tbSAqLywKIAkJCQkxQTdG
QTY0NzBEREEzQ0JBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwICovLAot
CQkJCTkzNEY3MTQxMEQ1QTZGNDQwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yLmggKi8sCiAJCQkJ
NTE0Qzc2NDYwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlRXJyb3JNYWMubW0gKi8sCiAJCQkJ
NTE0Qzc2NDcwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlTWFjLm1tICovLAotCQkJ
CTUxNEM3NjQ4MENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3QuaCAqLywKIAkJCQk1
MTRDNzY0OTBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXF1ZXN0TWFjLm1tICovLAotCQkJ
CTUxNEM3NjRBMENFOTIzNEUwMDdFRjNDRCAvKiBSZXNvdXJjZVJlc3BvbnNlLmggKi8sCiAJCQkJ
NTE0Qzc2NEIwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVzcG9uc2VNYWMubW0gKi8sCiAJ
CQkJMzdGODE4RkIwRDY1NzYwNjAwNUUxRjA1IC8qIFdlYkNvcmVVUkxSZXNwb25zZS5oICovLAog
CQkJCTM3RjgxOEZDMEQ2NTc2MDYwMDVFMUYwNSAvKiBXZWJDb3JlVVJMUmVzcG9uc2UubW0gKi8s
CkBAIC0xOTM3OSw3ICsxOTM2Nyw2IEBACiAJCQkJRkQzMTYwMjIxMkIwMjY3NjAwQzFBMzU5IC8q
IEF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwODkxMkIwMjZGNzAw
QzFBMzU5IC8qIEF1ZGlvU291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2
MDhCMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTM0RjcxNDQwRDVBNkY1MzAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzRGNzEzQTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI0NzQ4NDEwQUExNjFE
MDBCNzk0OTMgLyogQXV0aGVudGljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
NEM3NjRDMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMTYyMyw3ICsyMTYxMCw2IEBACiAJCQkJQTg5Q0NDNTMwRjQ0RTk4MTAwQjVEQTEw
IC8qIFJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMw
OUUwQTA5OUU2NDkyMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1NUIzREQwMTI1MUYxMkQwMDNFRjI2OSAvKiBSZXNldElucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTM0RjcxNDIwRDVBNkY0NDAwMDE4RDY5IC8qIFJlc291cmNl
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBS
ZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2NzkwQ0U5MjNBMTAw
N0VGM0NEIC8qIFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3QTBD
RTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovLApA
QCAtMjE2MzQsOSArMjE2MjAsNyBAQAogCQkJCUU0Mjk1RkE0MTJCMDYxNEUwMEQxQUNFMCAvKiBS
ZXNvdXJjZUxvYWRQcmlvcml0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDBDRTU4RjkxMjVFNEND
MjAwRjNGMTk5IC8qIFJlc291cmNlTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEE4MUJGODUxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNTE0Qzc2NTIwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0Qzc2N0QwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVxdWVzdEJhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxNEM3NjU0MENFOTIzNEUwMDdFRjND
RCAvKiBSZXNvdXJjZVJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3RjBDRTky
M0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE1MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MEE3MTJCMDI2RjcwMEMxQTM1OSAvKiBSZXZlcmJBY2N1bXVsYXRpb25CdWZmZXIuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaAppbmRleCBlN2Q2NmRlNmJkM2ViMmJmNDc0ODFmN2Y1YTdl
NWQ1MDAzMThjNTRmLi5mMzk2YjU0MzdkNzE2N2Q0OWQzNWJmNWNmOWRkNTEwZGY3ODA1MTY1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaApAQCAtMzAsNyArMzAsMTYgQEAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorI2lmIFVTRShDRk5FVFdPUkspCiB0
eXBlZGVmIHN0cnVjdCBfQ0ZVUkxBdXRoQ2hhbGxlbmdlKiBDRlVSTEF1dGhDaGFsbGVuZ2VSZWY7
CisjZWxzZQorI2lmbmRlZiBfX09CSkNfXwordHlwZWRlZiBzdHJ1Y3Qgb2JqY19vYmplY3QgKmlk
OworY2xhc3MgTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKKyNlbHNlCitAY2xhc3MgTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKKyNlbmRpZgorI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzgsMTkgKzQ3LDM0IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlIDogcHVibGljIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZSB7CiBwdWJsaWM6CiAgICAg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKSB7fQogICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50aWFs
JiBwcm9wb3NlZENyZWRlbnRpYWwsIHVuc2lnbmVkIHByZXZpb3VzRmFpbHVyZUNvdW50LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
OworI2lmIFVTRShDRk5FVFdPUkspCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoQ0ZVUkxB
dXRoQ2hhbGxlbmdlUmVmLCBBdXRoZW50aWNhdGlvbkNsaWVudCopOwogCiAgICAgQXV0aGVudGlj
YXRpb25DbGllbnQqIGF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9hdXRo
ZW50aWNhdGlvbkNsaWVudC5nZXQoKTsgfQogICAgIHZvaWQgc2V0QXV0aGVudGljYXRpb25DbGll
bnQoQXV0aGVudGljYXRpb25DbGllbnQqIGNsaWVudCkgeyBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50
ID0gY2xpZW50OyB9CiAKICAgICBDRlVSTEF1dGhDaGFsbGVuZ2VSZWYgY2ZVUkxBdXRoQ2hhbGxl
bmdlUmVmKCkgY29uc3QgeyByZXR1cm4gbV9jZkNoYWxsZW5nZS5nZXQoKTsgfQorI2Vsc2UKKyAg
ICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICop
OworCisgICAgaWQgc2VuZGVyKCkgY29uc3QgeyByZXR1cm4gbV9zZW5kZXIuZ2V0KCk7IH0KKyAg
ICBOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICpuc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKCkgY29uc3QgeyByZXR1cm4gbV9uc0NoYWxsZW5nZS5nZXQoKTsgfQorCisgICAgdm9pZCBz
ZXRBdXRoZW50aWNhdGlvbkNsaWVudChBdXRoZW50aWNhdGlvbkNsaWVudCopOyAvLyBDaGFuZ2Vz
IHNlbmRlciB0byBvbmUgdGhhdCBpbnZva2VzIGNsaWVudCBtZXRob2RzLgorICAgIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50KiBhdXRoZW50aWNhdGlvbkNsaWVudCgpIGNvbnN0OworI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZTsKICAg
ICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGEsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBiKTsKIAorI2lmIFVTRShDRk5F
VFdPUkspCiAgICAgUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2xpZW50PiBtX2F1dGhlbnRpY2F0aW9u
Q2xpZW50OwogICAgIFJldGFpblB0cjxDRlVSTEF1dGhDaGFsbGVuZ2VSZWY+IG1fY2ZDaGFsbGVu
Z2U7CisjZWxzZQorICAgIFJldGFpblB0cjxpZD4gbV9zZW5kZXI7IC8vIEFsd2F5cyB0aGUgc2Ft
ZSBhcyBbbV9tYWNDaGFsbGVuZ2UuZ2V0KCkgc2VuZGVyXSwgY2FjaGVkIGhlcmUgZm9yIHBlcmZv
cm1hbmNlLgorICAgIFJldGFpblB0cjxOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICo+IG1f
bnNDaGFsbGVuZ2U7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VFcnJvci5oCmluZGV4IDcwYzNmYTVkNWI4NmY2NWQxMTBhODZlYWI2MWJiZmJi
N2ZkYjM1MTAuLmFhZTlhNGExM2UwMzY2ZWU1MWRlMTNhZDE4NjY1ZTExYTBmN2E5MmMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUVycm9yLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlRXJyb3IuaApAQCAtMjYsMTIgKzI2
LDE4IEBACiAjaWZuZGVmIFJlc291cmNlRXJyb3JfaAogI2RlZmluZSBSZXNvdXJjZUVycm9yX2gK
IAotI2lmIFVTRShDRk5FVFdPUkspCi0KICNpbmNsdWRlICJSZXNvdXJjZUVycm9yQmFzZS5oIgog
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2lmIFVTRShDRk5FVFdPUkspCiAjaW5jbHVk
ZSA8Q29yZUZvdW5kYXRpb24vQ0ZTdHJlYW0uaD4KKyNlbHNlCisjaWZkZWYgX19PQkpDX18KK0Bj
bGFzcyBOU0Vycm9yOworI2Vsc2UKK2NsYXNzIE5TRXJyb3I7CisjZW5kaWYKKyNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDYgKzU0LDcgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKKyNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIFJlc291cmNlRXJyb3IoQ0ZTdHJlYW1FcnJv
ciBlcnJvcik7CiAKICAgICBSZXNvdXJjZUVycm9yKENGRXJyb3JSZWYgZXJyb3IpCkBAIC01OSw2
ICs2NiwxNiBAQCBwdWJsaWM6CiAKICAgICBvcGVyYXRvciBDRkVycm9yUmVmKCkgY29uc3Q7CiAg
ICAgb3BlcmF0b3IgQ0ZTdHJlYW1FcnJvcigpIGNvbnN0OworI2Vsc2UKKyAgICBSZXNvdXJjZUVy
cm9yKE5TRXJyb3IqIGVycm9yKQorICAgICAgICA6IG1fZGF0YUlzVXBUb0RhdGUoZmFsc2UpCisg
ICAgICAgICwgbV9wbGF0Zm9ybUVycm9yKGVycm9yKQorICAgIHsKKyAgICAgICAgbV9pc051bGwg
PSAhZXJyb3I7CisgICAgfQorCisgICAgb3BlcmF0b3IgTlNFcnJvciooKSBjb25zdDsKKyNlbmRp
ZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZUVycm9yQmFzZTsKQEAgLTY3
LDExICs4NCwxMyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShj
b25zdCBSZXNvdXJjZUVycm9yJiBhLCBjb25zdCBSZXNvdXJjZUVycm9yJiBiKTsKIAogICAgIGJv
b2wgbV9kYXRhSXNVcFRvRGF0ZTsKKyNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIG11dGFibGUgUmV0
YWluUHRyPENGRXJyb3JSZWY+IG1fcGxhdGZvcm1FcnJvcjsKKyNlbHNlCisgICAgbXV0YWJsZSBS
ZXRhaW5QdHI8TlNFcnJvcj4gbV9wbGF0Zm9ybUVycm9yOworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQ0ZORVRXT1JLKQotCiAjZW5kaWYgLy8g
UmVzb3VyY2VFcnJvcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2Yv
UmVzb3VyY2VSZXF1ZXN0LmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VS
ZXF1ZXN0LmgKaW5kZXggYWMxZmI2YjhlOGRhZmY5OTdkOWQzOTBiNzgyOWE5ODg4MWE1MTJlZi4u
MTcyZWJlMWQyOGYzNTlmZjEyYWQyM2Q2NDgzNjYwN2I0YWZmMjEyOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlcXVlc3QuaApAQCAtMjcsMTIgKzI3LDE4IEBA
CiAjaWZuZGVmIFJlc291cmNlUmVxdWVzdF9oCiAjZGVmaW5lIFJlc291cmNlUmVxdWVzdF9oCiAK
LSNpZiBVU0UoQ0ZORVRXT1JLKQotCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIgog
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2lmIFVTRShDRk5FVFdPUkspCiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBfQ0ZVUkxSZXF1ZXN0KiBDRlVSTFJlcXVlc3RSZWY7CisjZWxzZQorI2lm
ZGVmIF9fT0JKQ19fCitAY2xhc3MgTlNVUkxSZXF1ZXN0OworI2Vsc2UKK2NsYXNzIE5TVVJMUmVx
dWVzdDsKKyNlbmRpZgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTksMTEg
KzY1LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICB9CiAgICAg
ICAgIAorI2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJlc291cmNlUmVxdWVzdChDRlVSTFJl
cXVlc3RSZWYgY2ZSZXF1ZXN0KQogICAgICAgICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKCkK
ICAgICAgICAgICAgICwgbV9jZlJlcXVlc3QoY2ZSZXF1ZXN0KSB7IH0KLSAgICAgICAgCi0gICAg
ICAgIENGVVJMUmVxdWVzdFJlZiBjZlVSTFJlcXVlc3QoKSBjb25zdDsgICAgICAgCisKKyAgICAg
ICAgQ0ZVUkxSZXF1ZXN0UmVmIGNmVVJMUmVxdWVzdCgpIGNvbnN0OworI2Vsc2UKKyAgICAgICAg
UmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVxdWVzdCogbnNSZXF1ZXN0KQorICAgICAgICAgICAgOiBS
ZXNvdXJjZVJlcXVlc3RCYXNlKCkKKyAgICAgICAgICAgICwgbV9uc1JlcXVlc3QobnNSZXF1ZXN0
KSB7IH0KKworICAgICAgICB2b2lkIGFwcGx5V2ViQXJjaGl2ZUhhY2tGb3JNYWlsKCk7CisgICAg
ICAgIE5TVVJMUmVxdWVzdCogbnNVUkxSZXF1ZXN0KCkgY29uc3Q7CisjZW5kaWYKIAogICAgIHBy
aXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwpAQCAtNzQs
NyArODksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzT3duUHRyPENyb3Nz
VGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gZG9QbGF0Zm9ybUNvcHlEYXRhKFBhc3NPd25QdHI8
Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9CiAgICAgICAgIHZvaWQgZG9QbGF0Zm9ybUFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRS
ZXNvdXJjZVJlcXVlc3REYXRhPikgeyB9CiAKLSAgICAgICAgUmV0YWluUHRyPENGVVJMUmVxdWVz
dFJlZj4gbV9jZlJlcXVlc3Q7ICAgICAgCisjaWYgVVNFKENGTkVUV09SSykKKyAgICAgICAgUmV0
YWluUHRyPENGVVJMUmVxdWVzdFJlZj4gbV9jZlJlcXVlc3Q7CisjZWxzZQorICAgICAgICBSZXRh
aW5QdHI8TlNVUkxSZXF1ZXN0PiBtX25zUmVxdWVzdDsKKyNlbmRpZgogICAgIH07CiAKICAgICBz
dHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhIDogcHVibGljIENyb3NzVGhyZWFk
UmVzb3VyY2VSZXF1ZXN0RGF0YUJhc2UgewpAQCAtODIsNiArMTAxLDQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBVU0UoQ0ZORVRX
T1JLKQotCiAjZW5kaWYgLy8gUmVzb3VyY2VSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJlc3BvbnNlLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VSZXNwb25zZS5oCmluZGV4IGE0NmZjNmY5ZGNmODYyYjZkMmEy
YmQ5MWNjYjVkMDJhMzUwZTE4NGMuLjMzYjZkZGNiMjNhOTkwYTJjZjE2OWFhM2M2N2I1OGI5YWVj
MjZlMTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZVJl
c3BvbnNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlUmVzcG9u
c2UuaApAQCAtMjYsMTIgKzI2LDE4IEBACiAjaWZuZGVmIFJlc291cmNlUmVzcG9uc2VfaAogI2Rl
ZmluZSBSZXNvdXJjZVJlc3BvbnNlX2gKIAotI2lmIFVTRShDRk5FVFdPUkspCi0KICNpbmNsdWRl
ICJSZXNvdXJjZVJlc3BvbnNlQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAor
I2lmIFVTRShDRk5FVFdPUkspCiB0eXBlZGVmIHN0cnVjdCBfQ0ZVUkxSZXNwb25zZSogQ0ZVUkxS
ZXNwb25zZVJlZjsKKyNlbHNlCisjaWZkZWYgX19PQkpDX18KK0BjbGFzcyBOU1VSTFJlc3BvbnNl
OworI2Vsc2UKK2NsYXNzIE5TVVJMUmVzcG9uc2U7CisjZW5kaWYKKyNlbmRpZgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQyLDEyICs0OCwyMSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAorI2lmIFVTRShDRk5FVFdPUkspCiAgICAgUmVzb3VyY2VSZXNwb25zZShDRlVSTFJlc3BvbnNl
UmVmIGNmUmVzcG9uc2UpCiAgICAgICAgIDogbV9jZlJlc3BvbnNlKGNmUmVzcG9uc2UpCiAgICAg
ICAgICwgbV9pc1VwVG9EYXRlKGZhbHNlKQogICAgIHsKICAgICAgICAgbV9pc051bGwgPSAhY2ZS
ZXNwb25zZTsKICAgICB9CisjZWxzZQorICAgIFJlc291cmNlUmVzcG9uc2UoTlNVUkxSZXNwb25z
ZSogbnNSZXNwb25zZSkKKyAgICAgICAgOiBtX25zUmVzcG9uc2UobnNSZXNwb25zZSkKKyAgICAg
ICAgLCBtX2lzVXBUb0RhdGUoZmFsc2UpCisgICAgeworICAgICAgICBtX2lzTnVsbCA9ICFuc1Jl
c3BvbnNlOworICAgIH0KKyNlbmRpZgogCiAgICAgUmVzb3VyY2VSZXNwb25zZShjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGxvbmcgbG9uZyBleHBlY3RlZExlbmd0aCwg
Y29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdOYW1lLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKQog
ICAgICAgICA6IFJlc291cmNlUmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUsIGV4cGVjdGVkTGVu
Z3RoLCB0ZXh0RW5jb2RpbmdOYW1lLCBmaWxlbmFtZSkKQEAgLTY3LDcgKzgyLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgICovCiAgICAgfQogCisjaWYgVVNFKENGTkVUV09SSykKICAgICBDRlVSTFJl
c3BvbnNlUmVmIGNmVVJMUmVzcG9uc2UoKSBjb25zdDsKKyNlbHNlCisgICAgTlNVUkxSZXNwb25z
ZSAqbnNVUkxSZXNwb25zZSgpIGNvbnN0OworI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlOwpAQCAtNzgsNyArOTcsMTEgQEAgcHJpdmF0ZToK
IAogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ29tcGFyZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiBhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBiKTsKIAorI2lmIFVTRShDRk5FVFdPUkspCiAg
ICAgUmV0YWluUHRyPENGVVJMUmVzcG9uc2VSZWY+IG1fY2ZSZXNwb25zZTsKKyNlbHNlCisgICAg
UmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IG1fbnNSZXNwb25zZTsKKyNlbmRpZgogICAgIGJvb2wg
bV9pc1VwVG9EYXRlOwogfTsKIApAQCAtODcsNiArMTEwLDQgQEAgc3RydWN0IENyb3NzVGhyZWFk
UmVzb3VyY2VSZXNwb25zZURhdGEgOiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YUIKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gVVNFKENGTkVUV09S
SykKLQogI2VuZGlmIC8vIFJlc291cmNlUmVzcG9uc2VfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4ZjYwOTMzNTRjOTcwZjZiN2ZmY2QxYzJiMzE4NmI0MTY2Y2Yy
ODM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaAorKysgL2Rl
di9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSNpZm5kZWYgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VfaAotI2RlZmluZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZV9oCi0KLSNpbmNsdWRl
ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCIKLQotI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KLSNpZm5kZWYgX19PQkpDX18KLXR5cGVkZWYgc3RydWN0IG9iamNfb2JqZWN0ICppZDsK
LWNsYXNzIE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7Ci0jZWxzZQotQGNsYXNzIE5TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBBdXRoZW50aWNhdGlvbkNsaWVudDsKLQotY2xhc3MgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgOiBwdWJsaWMgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlIHsKLXB1YmxpYzoKLSAg
ICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpIHsgfQotICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBjb25zdCBDcmVkZW50
aWFsJiBwcm9wb3NlZENyZWRlbnRpYWwsIHVuc2lnbmVkIHByZXZpb3VzRmFpbHVyZUNvdW50LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpOwotICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKE5TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKik7Ci0KLSAgICBpZCBzZW5kZXIoKSBjb25zdCB7IHJldHVybiBtX3NlbmRlci5nZXQo
KTsgfQotICAgIE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKm5zVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKSBjb25zdCB7IHJldHVybiBtX25zQ2hhbGxlbmdlLmdldCgpOyB9Ci0KLSAg
ICB2b2lkIHNldEF1dGhlbnRpY2F0aW9uQ2xpZW50KEF1dGhlbnRpY2F0aW9uQ2xpZW50Kik7IC8v
IENoYW5nZXMgc2VuZGVyIHRvIG9uZSB0aGF0IGludm9rZXMgY2xpZW50IG1ldGhvZHMuCi0gICAg
QXV0aGVudGljYXRpb25DbGllbnQqIGF1dGhlbnRpY2F0aW9uQ2xpZW50KCkgY29uc3Q7Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZTsKLSAg
ICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGEsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBiKTsKLQotICAgIFJldGFpblB0
cjxpZD4gbV9zZW5kZXI7IC8vIEFsd2F5cyB0aGUgc2FtZSBhcyBbbV9tYWNDaGFsbGVuZ2UuZ2V0
KCkgc2VuZGVyXSwgY2FjaGVkIGhlcmUgZm9yIHBlcmZvcm1hbmNlLgotICAgIFJldGFpblB0cjxO
U1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICo+IG1fbnNDaGFsbGVuZ2U7Ci19OwotCi19Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUVycm9yLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3IuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA1NTM5ZTljOTYyYzdjZGY0YTUwNWEyMmJj
M2FjODdmM2IwODNiZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlRXJyb3IuaAorKysgL2Rl
di9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUmVz
b3VyY2VFcnJvcl9oCi0jZGVmaW5lIFJlc291cmNlRXJyb3JfaAotCi0jaWYgIVVTRShDRk5FVFdP
UkspCi0KLSNpbmNsdWRlICJSZXNvdXJjZUVycm9yQmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KLQotI2lmZGVmIF9fT0JKQ19fCi1AY2xhc3MgTlNFcnJvcjsKLSNlbHNlCi1jbGFz
cyBOU0Vycm9yOwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFJl
c291cmNlRXJyb3IgOiBwdWJsaWMgUmVzb3VyY2VFcnJvckJhc2UgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgUmVzb3VyY2VFcnJvcigpCi0gICAgICAgICAgICA6IG1fZGF0YUlzVXBUb0RhdGUodHJ1
ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgUmVzb3VyY2VFcnJvcihjb25zdCBT
dHJpbmcmIGRvbWFpbiwgaW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMLCBj
b25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgOiBSZXNvdXJj
ZUVycm9yQmFzZShkb21haW4sIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3Jp
cHRpb24pCi0gICAgICAgICAgICAsIG1fZGF0YUlzVXBUb0RhdGUodHJ1ZSkKLSAgICAgICAgewot
ICAgICAgICB9Ci0KLSAgICAgICAgUmVzb3VyY2VFcnJvcihOU0Vycm9yKiBlcnJvcikKLSAgICAg
ICAgICAgIDogbV9kYXRhSXNVcFRvRGF0ZShmYWxzZSkKLSAgICAgICAgICAgICwgbV9wbGF0Zm9y
bUVycm9yKGVycm9yKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2lzTnVsbCA9ICFlcnJvcjsK
LSAgICAgICAgfQotCi0gICAgICAgIG9wZXJhdG9yIE5TRXJyb3IqKCkgY29uc3Q7Ci0KLSAgICBw
cml2YXRlOgotICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VFcnJvckJhc2U7Ci0KLSAgICAg
ICAgdm9pZCBwbGF0Zm9ybUxhenlJbml0KCk7Ci0gICAgICAgIHN0YXRpYyBib29sIHBsYXRmb3Jt
Q29tcGFyZShjb25zdCBSZXNvdXJjZUVycm9yJiBhLCBjb25zdCBSZXNvdXJjZUVycm9yJiBiKTsK
LQotICAgICAgICBib29sIG1fZGF0YUlzVXBUb0RhdGU7Ci0gICAgICAgIG11dGFibGUgUmV0YWlu
UHRyPE5TRXJyb3I+IG1fcGxhdGZvcm1FcnJvcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vICFVU0UoQ0ZORVRXT1JLKQotCi0jZW5kaWYgLy8gUmVzb3VyY2VFcnJv
cl9oXwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJl
cXVlc3QuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXF1ZXN0LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliMWQ3ODhkZWMwZjZhOGY4NDg5ZjIzZGUy
NTYzM2JkM2NjYTRmZTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZVJlcXVlc3QuaAorKysg
L2Rldi9udWxsCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZu
ZGVmIFJlc291cmNlUmVxdWVzdF9oCi0jZGVmaW5lIFJlc291cmNlUmVxdWVzdF9oCi0KLSNpZiAh
VVNFKENGTkVUV09SSykKLQotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdEJhc2UuaCIKLQotI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpZmRlZiBfX09CSkNfXwotQGNsYXNzIE5TVVJMUmVx
dWVzdDsKLSNlbHNlCi1jbGFzcyBOU1VSTFJlcXVlc3Q7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0gICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0IDogcHVibGljIFJlc291cmNlUmVx
dWVzdEJhc2UgewotICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0
cmluZyYgdXJsKSAKLSAgICAgICAgICAgIDogUmVzb3VyY2VSZXF1ZXN0QmFzZShLVVJMKFBhcnNl
ZFVSTFN0cmluZywgdXJsKSwgVXNlUHJvdG9jb2xDYWNoZVBvbGljeSkKLSAgICAgICAgewotICAg
ICAgICB9Ci0KLSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IEtVUkwmIHVybCkgCi0gICAg
ICAgICAgICA6IFJlc291cmNlUmVxdWVzdEJhc2UodXJsLCBVc2VQcm90b2NvbENhY2hlUG9saWN5
KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBSZXNvdXJjZVJlcXVlc3QoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBv
bGljeSBwb2xpY3kgPSBVc2VQcm90b2NvbENhY2hlUG9saWN5KSAKLSAgICAgICAgICAgIDogUmVz
b3VyY2VSZXF1ZXN0QmFzZSh1cmwsIHBvbGljeSkKLSAgICAgICAgewotICAgICAgICAgICAgc2V0
SFRUUFJlZmVycmVyKHJlZmVycmVyKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgUmVz
b3VyY2VSZXF1ZXN0KCkKLSAgICAgICAgICAgIDogUmVzb3VyY2VSZXF1ZXN0QmFzZShLVVJMKCks
IFVzZVByb3RvY29sQ2FjaGVQb2xpY3kpCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgUmVzb3VyY2VSZXF1ZXN0KE5TVVJMUmVxdWVzdCogbnNSZXF1ZXN0KQotICAgICAg
ICAgICAgOiBSZXNvdXJjZVJlcXVlc3RCYXNlKCkKLSAgICAgICAgICAgICwgbV9uc1JlcXVlc3Qo
bnNSZXF1ZXN0KSB7IH0KLSAgICAgICAgCi0gICAgICAgIHZvaWQgYXBwbHlXZWJBcmNoaXZlSGFj
a0Zvck1haWwoKTsKLSAgICAgICAgTlNVUkxSZXF1ZXN0KiBuc1VSTFJlcXVlc3QoKSBjb25zdDsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNl
OwotCi0gICAgICAgIHZvaWQgZG9VcGRhdGVQbGF0Zm9ybVJlcXVlc3QoKTsKLSAgICAgICAgdm9p
ZCBkb1VwZGF0ZVJlc291cmNlUmVxdWVzdCgpOwotCi0gICAgICAgIFBhc3NPd25QdHI8Q3Jvc3NU
aHJlYWRSZXNvdXJjZVJlcXVlc3REYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGE+IGRhdGEpIGNvbnN0IHsgcmV0dXJuIGRhdGE7
IH0KLSAgICAgICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJl
c291cmNlUmVxdWVzdERhdGE+KSB7IH0KLQotICAgICAgICBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0
PiBtX25zUmVxdWVzdDsKLSAgICB9OwotCi0gICAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VS
ZXF1ZXN0RGF0YSA6IHB1YmxpYyBDcm9zc1RocmVhZFJlc291cmNlUmVxdWVzdERhdGFCYXNlIHsK
LSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhVVNFKENGTkVU
V09SSykKLQotI2VuZGlmIC8vIFJlc291cmNlUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlUmVzcG9uc2UuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3ZWY0NDNiYmRjYTRmOTM4MjUwOTViNDQyMGJhMDdhY2M4OWU2NGNjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VSZXNwb25zZS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTcgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBSZXNvdXJjZVJlc3BvbnNlX2gKLSNk
ZWZpbmUgUmVzb3VyY2VSZXNwb25zZV9oCi0KLSNpZiAhVVNFKENGTkVUV09SSykKLQotI2luY2x1
ZGUgIlJlc291cmNlUmVzcG9uc2VCYXNlLmgiCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgot
Ci0jaWZkZWYgX19PQkpDX18KLUBjbGFzcyBOU1VSTFJlc3BvbnNlOwotI2Vsc2UKLWNsYXNzIE5T
VVJMUmVzcG9uc2U7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNv
dXJjZVJlc3BvbnNlIDogcHVibGljIFJlc291cmNlUmVzcG9uc2VCYXNlIHsKLXB1YmxpYzoKLSAg
ICBSZXNvdXJjZVJlc3BvbnNlKCkKLSAgICAgICAgOiBtX2lzVXBUb0RhdGUodHJ1ZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgUmVzb3VyY2VSZXNwb25zZShOU1VSTFJlc3BvbnNlKiBuc1Jlc3BvbnNl
KQotICAgICAgICA6IG1fbnNSZXNwb25zZShuc1Jlc3BvbnNlKQotICAgICAgICAsIG1faXNVcFRv
RGF0ZShmYWxzZSkKLSAgICB7Ci0gICAgICAgIG1faXNOdWxsID0gIW5zUmVzcG9uc2U7Ci0gICAg
fQotICAgIAotICAgIFJlc291cmNlUmVzcG9uc2UoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBsb25nIGxvbmcgZXhwZWN0ZWRMZW5ndGgsIGNvbnN0IFN0cmluZyYgdGV4
dEVuY29kaW5nTmFtZSwgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSkKLSAgICAgICAgOiBSZXNvdXJj
ZVJlc3BvbnNlQmFzZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZExlbmd0aCwgdGV4dEVuY29kaW5n
TmFtZSwgZmlsZW5hbWUpCi0gICAgICAgICwgbV9pc1VwVG9EYXRlKHRydWUpCi0gICAgewotICAg
IH0KLQotICAgIHVuc2lnbmVkIG1lbW9yeVVzYWdlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIC8v
IEZJWE1FOiBGaW5kIHNvbWUgcHJvZ3JhbW1hdGljIGxpZ2h3ZWlnaHQgd2F5IHRvIGNhbGN1bGF0
ZSBSZXNvdXJjZVJlc3BvbnNlIGFuZCBhc3NvY2lhdGVkIGNsYXNzZXMuCi0gICAgICAgIC8vIFRo
aXMgaXMgYSByb3VnaCBlc3RpbWF0ZSBvZiByZXNvdXJjZSBvdmVyaGVhZCBiYXNlZCBvbiBzdGF0
cyBjb2xsZWN0ZWQgZnJvbSB0aGUgc3RyZXNzIHRlc3QuCi0gICAgICAgIHJldHVybiAzMDcyOwot
ICAgICAgICAvKiAgMTI4MCAqIDIgKyAgICAgICAgICAgICAgICAvLyBhdmVyYWdlIHNpemUgb2Yg
UmVzb3VyY2VSZXNwb25zZS4gRG91YmxlZCB0byBhY2NvdW50IGZvciB0aGUgV2ViQ29yZSBjb3B5
IGFuZCB0aGUgQ0YgY29weS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTW9zdGx5IGR1ZSB0byB0aGUgc2l6ZSBvZiB0aGUgaGFzaCBtYXBzLCB0aGUgSGVhZGVyIE1h
cCBzdHJpbmdzIGFuZCB0aGUgVVJMLgotICAgICAgICAgICAgMjU2ICogMiAgICAgICAgICAgICAg
ICAgICAvLyBPdmVyaGVhZCBmcm9tIFJlc291cmNlUmVxdWVzdCwgZG91YmxlZCB0byBhY2NvdW50
IGZvciBXZWJDb3JlIGNvcHkgYW5kIENGIGNvcHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIE1vc3RseSBkdWUgdG8gdGhlIFVSTCBhbmQgSGVhZGVyIE1hcC4KLSAg
ICAgICAgICovCi0gICAgfQotCi0gICAgTlNVUkxSZXNwb25zZSAqbnNVUkxSZXNwb25zZSgpIGNv
bnN0OwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZTsK
LQotICAgIHZvaWQgcGxhdGZvcm1MYXp5SW5pdCgpOwotCi0gICAgUGFzc093blB0cjxDcm9zc1Ro
cmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkb1BsYXRmb3JtQ29weURhdGEoUGFzc093blB0cjxD
cm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPiBkYXRhKSBjb25zdCB7IHJldHVybiBkYXRh
OyB9Ci0gICAgdm9pZCBkb1BsYXRmb3JtQWRvcHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291
cmNlUmVzcG9uc2VEYXRhPikgeyB9Ci0KLSAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNvbXBhcmUo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYSwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgYik7Ci0K
LSAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gbV9uc1Jlc3BvbnNlOwotICAgIGJvb2wgbV9p
c1VwVG9EYXRlOwotfTsKLQotc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGEg
OiBwdWJsaWMgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YUJhc2UgewotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIVVTRShDRk5FVFdPUkspCi0KLSNlbmRp
ZiAvLyBSZXNvdXJjZVJlc3BvbnNlX2gK
</data>
<flag name="review"
          id="69216"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>