<?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>160888</bug_id>
          
          <creation_ts>2016-08-15 19:53:57 -0700</creation_ts>
          <short_desc>Simplify SocketStreamError</short_desc>
          <delta_ts>2016-08-16 00:56:52 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1220322</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-15 19:53:57 -0700</bug_when>
    <thetext>Simplify SocketStreamError</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220323</commentid>
    <comment_count>1</comment_count>
      <attachid>286139</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-15 19:55:49 -0700</bug_when>
    <thetext>Created attachment 286139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220339</commentid>
    <comment_count>2</comment_count>
      <attachid>286144</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-15 20:39:05 -0700</bug_when>
    <thetext>Created attachment 286144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220371</commentid>
    <comment_count>3</comment_count>
      <attachid>286144</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-15 23:02:37 -0700</bug_when>
    <thetext>Comment on attachment 286144
Patch

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

&gt; Source/WebCore/platform/network/soup/SocketStreamHandleImplSoup.cpp:117
&gt; +        handle-&gt;didFail(SocketStreamError(error-&gt;code, String(), String(error-&gt;message)));

Do we really need to cast the second thing to String?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220397</commentid>
    <comment_count>4</comment_count>
      <attachid>286159</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-16 00:17:43 -0700</bug_when>
    <thetext>Created attachment 286159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220407</commentid>
    <comment_count>5</comment_count>
      <attachid>286159</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 00:56:47 -0700</bug_when>
    <thetext>Comment on attachment 286159
Patch

Clearing flags on attachment: 286159

Committed r204501: &lt;http://trac.webkit.org/changeset/204501&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220408</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-16 00:56:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286139</attachid>
            <date>2016-08-15 19:55:49 -0700</date>
            <delta_ts>2016-08-15 20:39:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160888-20160815195404.patch</filename>
            <type>text/plain</type>
            <size>31785</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA4LTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkg
U29ja2V0U3RyZWFtRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MDg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgU29j
a2V0U3RyZWFtRXJyb3Igd2VyZSBvdmVybHkgY29tcGxpY2F0ZWQuCisgICAgICAgIFRoZXkgaGFk
IG1hbnkgZnVuY3Rpb25zIHRoYXQgd2VyZSBuZXZlciB1c2VkLiAgVGhlcmUncyBubyByZWFzb24g
dG8gaGF2ZSB0d28gc2VwYXJhdGUgY2xhc3Nlcy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0
cmVhbUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmguCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1F
cnJvcjo6U29ja2V0U3RyZWFtRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFt
RXJyb3I6OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvcjo6ZXJy
b3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpmYWlsaW5nVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpsb2NhbGl6ZWREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmlzTnVsbCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmVycm9y
Q29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6
OmZhaWxpbmdVUkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtRXJy
b3JCYXNlOjpsb2NhbGl6ZWREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OlNvY2tldFN0cmVhbUVycm9yQmFzZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Om9wZXJhdG9yIT0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUVycm9yQmFzZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKwog
MjAxNi0wOC0xNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNwZWVk
IHVwIGNvbXBpbGUgdGltZXMgYnkgbm90IGluY2x1ZGluZyB3dGYvVmFyaWFudC5oIHNvIG11Y2gK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAxNyw4ICsyMDE3LDcgQEAK
IAkJNTEwQTU4RTUxQkFBNDBCMTAwQzE5MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTU4RTMxQkFBNDBB
RTAwQzE5MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEE1OEY5MUJBQ0M3RjIwMEMxOTI4MiAvKiBJ
REJSZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBBNThGNTFCQUNDNEE1MDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuY3BwICov
OyB9OwogCQk1MTBBNThGQTFCQUNDN0YyMDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE1OEY2MUJBQ0M0
QTUwMEMxOTI4MiAvKiBJREJSZXF1ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxMEQ0QTMzMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1FcnJvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9y
QmFzZS5jcHAgKi87IH07Ci0JCTUxMEQ0QTM0MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1FcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAq
LzsgfTsKKwkJNTEwRDRBMzQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEyRTEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTEwRDRBMzYx
MDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVh
bUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMy
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjI0MCw3ICsyMjM5LDYg
QEAKIAkJNTFBOUQ5RTkxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUU3MTk1Qjkz
MUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgKi87IH07CiAJCTUxQTlEOUVBMTk1Qjkz
MUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRN
YW5hZ2VyLmggKi87IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxv
YWRlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAqLzsgfTsK
LQkJNTFBQkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEwM0MxOEZG
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkx
MzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTFBQkFFMUYxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVh
bUhhbmRsZUltcGxDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxl
SW1wbENGTmV0LmNwcCAqLzsgfTsKIAkJNTFBQkY2NEQxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRl
clN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgKi87IH07
CkBAIC05MzUwLDggKzkzNDgsNyBAQAogCQk1MTBBNThGNjFCQUNDNEE1MDBDMTkyODIgLyogSURC
UmVxdWVzdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVxdWVz
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTU4RkQxQkIwN0E5NjAw
QzE5MjgyIC8qIElEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEwQTU4RkUxQkIwN0FBNTAwQzE5MjgyIC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwRDRBMkQxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3JCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUVy
cm9yQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBENEEyRTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNvY2tldFN0cmVhbUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBE
NEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTU2Niw3ICs5NTYzLDYgQEAKIAkJNTFBOUQ5
RTcxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBS
ZXNvdXJjZUxvYWRlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlc291cmNlTG9hZGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MUFCQUUxQTEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVh
bUhhbmRsZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3Ry
ZWFtSGFuZGxlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCQUUxRDEw
M0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5l
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJGNjRDMTYzOTJFMjgwMDEz
MkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2FkZXJTdHJhdGVneS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNzk3Miw4ICsxNzk2OCw3IEBACiAJCQkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlUmVxdWVzdEJhc2UuaCAqLywKIAkJCQk1MTRDNzY2OTBDRTkyM0ExMDA3RUYzQ0QgLyog
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwICovLAogCQkJCTUxNEM3NjZBMENFOTIzQTEwMDdFRjND
RCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5oICovLAotCQkJCTUxMEQ0QTJEMTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwICovLAotCQkJCTUxMEQ0QTJFMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLywKKwkJCQk1MTBENEEyRTEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLywKIAkJCQk1MTBENEEzMDEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmNwcCAqLywKIAkJCQk1MTBENEEz
MTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8sCiAJCQkJNTEwRDRB
MzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovLApAQCAt
MjE4NzMsNyArMjE4NjgsNiBAQAogCQkJCTdFRTY4NDVDMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlcXVlc3RDRk5ldC5oICovLAogCQkJCTdFRTY4NDVEMTJEMjZFMzgwMEU3OTQxNSAvKiBS
ZXNvdXJjZVJlc3BvbnNlLmggKi8sCiAJCQkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJl
c291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8sCi0JCQkJNTFBQkFFMUExMDNDMThGRjAwOEM1MjYw
IC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi8sCiAJCQkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYw
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGwuaCAqLywKIAkJCQk1MUFCQUUxRDEwM0MxOTEzMDA4
QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLywKIAkJCQk0NDJBQkNE
NTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5jcHAgKi8s
CkBAIC0yNzU3Niw4ICsyNzU3MCw3IEBACiAJCQkJRTRBRkQwMEMwREFGMzM1NDAwRjVGNTVDIC8q
IFNNSUxUaW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFGRDAwRTBEQUYzMzU1MDBGNUY1NUMg
LyogU01JTFRpbWVDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDN0M4OEQ4MUQwRjFG
NEEwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFBQkFF
MUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3Ry
ZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBENEEzNzEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTMxMjIyLDcgKzMxMjE1LDYgQEAKIAkJCQlFNEFGRDAwQjBEQUYz
MzU0MDBGNUY1NUMgLyogU01JTFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBRkQwMEQw
REFGMzM1NTAwRjVGNTVDIC8qIFNNSUxUaW1lQ29udGFpbmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNjg4QUEzMUQzODE0QkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92aWRlci5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkFFMUYxMDND
MTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFNDUzOTA0NzBFQUZENjM3MDAzNjk1QzggLyogU291bmRJT1MubW0gaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ5MykJKGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaDoyMDQ0OTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAor
I2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFNvY2tldFN0cmVh
bUVycm9yOworCisgICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIC8vIE1ha2VzIGEgZGVlcCBjb3B5LiAgVXNlZnVsIGZvciB3aGVuIHlvdSBuZWVk
IHRvIHVzZSBhIFNvY2tldFN0cmVhbUVycm9yIG9uIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBT
b2NrZXRTdHJlYW1FcnJvciBjb3B5KCkgY29uc3Q7CisKKyAgICAgICAgYm9vbCBpc051bGwoKSBj
b25zdCB7IHJldHVybiBtX2lzTnVsbDsgfQorCisgICAgICAgIGludCBlcnJvckNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yQ29kZTsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIGZhaWxpbmdV
UkwoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxpbmdVUkw7IH0KKyAgICAgICAgY29uc3QgU3RyaW5n
JiBsb2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVzY3Jp
cHRpb247IH0KKworICAgICAgICBzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0IFNvY2tldFN0cmVh
bUVycm9yJiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKTsKKworICAgIHByb3RlY3RlZDoKKyAg
ICAgICAgU29ja2V0U3RyZWFtRXJyb3JCYXNlKCkKKyAgICAgICAgICAgIDogbV9lcnJvckNvZGUo
MCkKKyAgICAgICAgICAgICwgbV9pc051bGwodHJ1ZSkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgZXhwbGljaXQgU29ja2V0U3RyZWFtRXJyb3JCYXNlKGludCBlcnJvckNvZGUpCisg
ICAgICAgICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgICAgICwgbV9pc051
bGwoZmFsc2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFNvY2tldFN0cmVhbUVy
cm9yQmFzZShpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZhaWxpbmdVUkwsIGNvbnN0IFN0
cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAgICAgICAgICA6IG1fZXJyb3JDb2RlKGVy
cm9yQ29kZSkKKyAgICAgICAgICAgICwgbV9mYWlsaW5nVVJMKGZhaWxpbmdVUkwpCisgICAgICAg
ICAgICAsIG1fbG9jYWxpemVkRGVzY3JpcHRpb24obG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAg
ICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBpbnQgbV9lcnJvckNvZGU7CisgICAgICAgIFN0cmluZyBtX2ZhaWxpbmdVUkw7CisgICAgICAg
IFN0cmluZyBtX2xvY2FsaXplZERlc2NyaXB0aW9uOworICAgICAgICBib29sIG1faXNOdWxsOwor
ICAgIH07CisKKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvY2tldFN0cmVhbUVy
cm9yJiBhLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYikgeyByZXR1cm4gU29ja2V0U3RyZWFt
RXJyb3JCYXNlOjpjb21wYXJlKGEsIGIpOyB9CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsg
cmV0dXJuICEoYSA9PSBiKTsgfQorCit9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
IC8vIFNvY2tldFN0cmVhbUVycm9yQmFzZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvci5oCShyZXZpc2lvbiAyMDQ0OTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0yOSw1OCArMjksNDIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTb2NrZXRT
dHJlYW1FcnJvckJhc2VfaAotI2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3I7CitjbGFzcyBTb2NrZXRTdHJl
YW1FcnJvciB7CitwdWJsaWM6CisgICAgU29ja2V0U3RyZWFtRXJyb3IoKQorICAgIHsKKyAgICB9
CisKKyAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQorICAgICAg
ICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKKyAg
ICB7CisgICAgfQorCisgICAgU29ja2V0U3RyZWFtRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQor
ICAgICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2ZhaWxpbmdVUkwo
ZmFpbGluZ1VSTCkKKyAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXplZERl
c2NyaXB0aW9uKQorICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAg
ICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOdWxsOyB9CisgICAgaW50IGVycm9y
Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBm
YWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9CisgICAgY29uc3QgU3Ry
aW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVz
Y3JpcHRpb247IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9lcnJvckNvZGUgeyAwIH07CisgICAg
U3RyaW5nIG1fZmFpbGluZ1VSTDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsK
KyAgICBib29sIG1faXNOdWxsIHsgdHJ1ZSB9OworfTsKIAotICAgIGNsYXNzIFNvY2tldFN0cmVh
bUVycm9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBNYWtlcyBhIGRlZXAgY29weS4g
IFVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBTb2NrZXRTdHJlYW1FcnJvciBvbiBh
bm90aGVyIHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFtRXJyb3IgY29weSgpIGNvbnN0Owot
Ci0gICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9pc051bGw7IH0KLQotICAg
ICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvckNvZGU7IH0KLSAgICAg
ICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJM
OyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24oKSBjb25zdCB7
IHJldHVybiBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wg
Y29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9y
Jik7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSgpCi0g
ICAgICAgICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAgICAgICAsIG1faXNOdWxsKHRydWUp
Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cGxpY2l0IFNvY2tldFN0cmVhbUVy
cm9yQmFzZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNv
ZGUpCi0gICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50IGVycm9yQ29kZSwgY29uc3QgU3Ry
aW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAg
ICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1fZmFpbGlu
Z1VSTChmYWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxv
Y2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJyb3JDb2RlOwotICAgICAgICBTdHJp
bmcgbV9mYWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsK
LSAgICAgICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0gICAgaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3Im
IGIpIHsgcmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6Y29tcGFyZShhLCBiKTsgfQotICAg
IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGEsIGNvbnN0
IFNvY2tldFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KLQotfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmNwcAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwCShub25leGlzdGVu
dCkKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU29ja2V0
U3RyZWFtRXJyb3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Tb2NrZXRTdHJlYW1FcnJv
ciBTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmNvcHkoKSBjb25zdAotewotICAgIFNvY2tldFN0cmVh
bUVycm9yIGVycm9yQ29weTsKLSAgICBlcnJvckNvcHkubV9lcnJvckNvZGUgPSBtX2Vycm9yQ29k
ZTsKLSAgICByZXR1cm4gZXJyb3JDb3B5OwotfQotCi1ib29sIFNvY2tldFN0cmVhbUVycm9yQmFz
ZTo6Y29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFt
RXJyb3ImIGIpCi17Ci0gICAgaWYgKGEuaXNOdWxsKCkgJiYgYi5pc051bGwoKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoYS5pc051bGwoKSB8fCBiLmlzTnVsbCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5lcnJvckNvZGUoKSAhPSBiLmVycm9yQ29kZSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5mYWlsaW5nVVJMKCkgIT0gYi5m
YWlsaW5nVVJMKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkgIT0gYi5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNv
cmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5
bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JC
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2Nr
ZXRTdHJlYW1FcnJvckJhc2UuaAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JCYXNlX2gKLSNkZWZpbmUgU29j
a2V0U3RyZWFtRXJyb3JCYXNlX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKLQot
ICAgIGNsYXNzIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAv
LyBNYWtlcyBhIGRlZXAgY29weS4gIFVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBT
b2NrZXRTdHJlYW1FcnJvciBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFt
RXJyb3IgY29weSgpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1
cm4gbV9pc051bGw7IH0KLQotICAgICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9lcnJvckNvZGU7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVk
RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0K
LSAgICAgICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNv
bnN0IFNvY2tldFN0cmVhbUVycm9yJik7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tl
dFN0cmVhbUVycm9yQmFzZSgpCi0gICAgICAgICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAg
ICAgICAsIG1faXNOdWxsKHRydWUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4
cGxpY2l0IFNvY2tldFN0cmVhbUVycm9yQmFzZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAg
OiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQot
ICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50
IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2Fs
aXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0g
ICAgICAgICAgICAsIG1fZmFpbGluZ1VSTChmYWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xv
Y2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBt
X2lzTnVsbChmYWxzZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJy
b3JDb2RlOwotICAgICAgICBTdHJpbmcgbV9mYWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9s
b2NhbGl6ZWREZXNjcmlwdGlvbjsKLSAgICAgICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0g
ICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29u
c3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsgcmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6
Y29tcGFyZShhLCBiKTsgfQotICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0
U3RyZWFtRXJyb3ImIGEsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEg
PT0gYik7IH0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRT
dHJlYW1FcnJvckJhc2VfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29j
a2V0U3RyZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvcl9oCi0jZGVm
aW5lIFNvY2tldFN0cmVhbUVycm9yX2gKLQotI2luY2x1ZGUgIlNvY2tldFN0cmVhbUVycm9yQmFz
ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNvY2tldFN0cmVhbUVycm9yIDog
cHVibGljIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci1wdWJsaWM6Ci0gICAgU29ja2V0U3RyZWFt
RXJyb3IoKSB7IH0KLSAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2Rl
KQotICAgICAgICA6IFNvY2tldFN0cmVhbUVycm9yQmFzZShlcnJvckNvZGUpCi0gICAgewotICAg
IH0KLSAgICBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi0gICAgICAgIDog
U29ja2V0U3RyZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVz
Y3JpcHRpb24pCi0gICAgewotICAgIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAgLy8gU29ja2V0U3RyZWFtRXJyb3JfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1FcnJvci5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9u
IDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRT
dHJlYW1FcnJvci5oCShub25leGlzdGVudCkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNvY2tl
dFN0cmVhbUVycm9yX2gKLSNkZWZpbmUgU29ja2V0U3RyZWFtRXJyb3JfaAotCi0jaW5jbHVkZSAi
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNs
YXNzIFNvY2tldFN0cmVhbUVycm9yIDogcHVibGljIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0g
ICAgcHVibGljOgotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvcigpIHsgfQotICAgICAgICBleHBs
aWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBTb2Nr
ZXRTdHJlYW1FcnJvckJhc2UoZXJyb3JDb2RlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
IH07Ci0KLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAgLy8gU29ja2V0U3RyZWFt
RXJyb3JfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3Ry
ZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUVycm9yLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JfaAot
I2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvcl9oCi0KLSNpbmNsdWRlICJTb2NrZXRTdHJlYW1FcnJv
ckJhc2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU29ja2V0U3RyZWFt
RXJyb3IgOiBwdWJsaWMgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIFNvY2tldFN0cmVhbUVycm9yKCkgeyB9Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yKGlu
dCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBkZXNjcmlwdGlvbikKLSAgICAgICAgICAgIDogU29j
a2V0U3RyZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgU3RyaW5nKCksIFN0cmluZyhkZXNjcmlwdGlv
bikpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgfTsKLQotfSAgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvcl9oCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJy
b3IuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286144</attachid>
            <date>2016-08-15 20:39:05 -0700</date>
            <delta_ts>2016-08-16 00:17:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160888-20160815203720.patch</filename>
            <type>text/plain</type>
            <size>33546</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA4LTE1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkg
U29ja2V0U3RyZWFtRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MDg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgU29j
a2V0U3RyZWFtRXJyb3Igd2VyZSBvdmVybHkgY29tcGxpY2F0ZWQuCisgICAgICAgIFRoZXkgaGFk
IG1hbnkgZnVuY3Rpb25zIHRoYXQgd2VyZSBuZXZlciB1c2VkLiAgVGhlcmUncyBubyByZWFzb24g
dG8gaGF2ZSB0d28gc2VwYXJhdGUgY2xhc3Nlcy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0
cmVhbUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmguCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1F
cnJvcjo6U29ja2V0U3RyZWFtRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFt
RXJyb3I6OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvcjo6ZXJy
b3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpmYWlsaW5nVVJM
KToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpsb2NhbGl6ZWREZXNjcmlw
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmlzTnVsbCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmVycm9y
Q29kZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6
OmZhaWxpbmdVUkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtRXJy
b3JCYXNlOjpsb2NhbGl6ZWREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OlNvY2tldFN0cmVhbUVycm9yQmFzZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Om9wZXJhdG9yIT0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUVycm9yQmFzZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKwog
MjAxNi0wOC0xNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNwZWVk
IHVwIGNvbXBpbGUgdGltZXMgYnkgbm90IGluY2x1ZGluZyB3dGYvVmFyaWFudC5oIHNvIG11Y2gK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAxNyw4ICsyMDE3LDcgQEAK
IAkJNTEwQTU4RTUxQkFBNDBCMTAwQzE5MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTU4RTMxQkFBNDBB
RTAwQzE5MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMEE1OEY5MUJBQ0M3RjIwMEMxOTI4MiAvKiBJ
REJSZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBBNThGNTFCQUNDNEE1MDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuY3BwICov
OyB9OwogCQk1MTBBNThGQTFCQUNDN0YyMDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE1OEY2MUJBQ0M0
QTUwMEMxOTI4MiAvKiBJREJSZXF1ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUxMEQ0QTMzMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1FcnJvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9y
QmFzZS5jcHAgKi87IH07Ci0JCTUxMEQ0QTM0MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1FcnJvckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAq
LzsgfTsKKwkJNTEwRDRBMzQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEyRTEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTEwRDRBMzYx
MDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVh
bUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMy
MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjI0MCw3ICsyMjM5LDYg
QEAKIAkJNTFBOUQ5RTkxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUU3MTk1Qjkz
MUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgKi87IH07CiAJCTUxQTlEOUVBMTk1Qjkz
MUYwMDFCMkI1QyAvKiBHYW1lcGFkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRN
YW5hZ2VyLmggKi87IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxv
YWRlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAqLzsgfTsK
LQkJNTFBQkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEwM0MxOEZG
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkx
MzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBT
b2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTFBQkFFMUYxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVh
bUhhbmRsZUltcGxDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxl
SW1wbENGTmV0LmNwcCAqLzsgfTsKIAkJNTFBQkY2NEQxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRl
clN0cmF0ZWd5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgKi87IH07
CkBAIC05MzUwLDggKzkzNDgsNyBAQAogCQk1MTBBNThGNjFCQUNDNEE1MDBDMTkyODIgLyogSURC
UmVxdWVzdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVxdWVz
dERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTU4RkQxQkIwN0E5NjAw
QzE5MjgyIC8qIElEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEwQTU4RkUxQkIwN0FBNTAwQzE5MjgyIC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9DbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwRDRBMkQxMDMxNjVFRTAwNDlF
QTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3JCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUVy
cm9yQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBENEEyRTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQg
LyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNvY2tldFN0cmVhbUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBE
NEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTU2Niw3ICs5NTYzLDYgQEAKIAkJNTFBOUQ5
RTcxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBS
ZXNvdXJjZUxvYWRlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFJlc291cmNlTG9hZGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MUFCQUUxQTEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVh
bUhhbmRsZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3Ry
ZWFtSGFuZGxlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCQUUxRDEw
M0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5l
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJGNjRDMTYzOTJFMjgwMDEz
MkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2FkZXJTdHJhdGVneS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNzk3Miw4ICsxNzk2OCw3IEBACiAJCQkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlUmVxdWVzdEJhc2UuaCAqLywKIAkJCQk1MTRDNzY2OTBDRTkyM0ExMDA3RUYzQ0QgLyog
UmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwICovLAogCQkJCTUxNEM3NjZBMENFOTIzQTEwMDdFRjND
RCAvKiBSZXNvdXJjZVJlc3BvbnNlQmFzZS5oICovLAotCQkJCTUxMEQ0QTJEMTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwICovLAotCQkJCTUxMEQ0QTJFMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLywKKwkJCQk1MTBENEEyRTEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLywKIAkJCQk1MTBENEEzMDEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmNwcCAqLywKIAkJCQk1MTBENEEz
MTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8sCiAJCQkJNTEwRDRB
MzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovLApAQCAt
MjE4NzMsNyArMjE4NjgsNiBAQAogCQkJCTdFRTY4NDVDMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNv
dXJjZVJlcXVlc3RDRk5ldC5oICovLAogCQkJCTdFRTY4NDVEMTJEMjZFMzgwMEU3OTQxNSAvKiBS
ZXNvdXJjZVJlc3BvbnNlLmggKi8sCiAJCQkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJl
c291cmNlUmVzcG9uc2VDRk5ldC5jcHAgKi8sCi0JCQkJNTFBQkFFMUExMDNDMThGRjAwOEM1MjYw
IC8qIFNvY2tldFN0cmVhbUVycm9yLmggKi8sCiAJCQkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYw
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGwuaCAqLywKIAkJCQk1MUFCQUUxRDEwM0MxOTEzMDA4
QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLywKIAkJCQk0NDJBQkNE
NTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5jcHAgKi8s
CkBAIC0yNzU3Niw4ICsyNzU3MCw3IEBACiAJCQkJRTRBRkQwMEMwREFGMzM1NDAwRjVGNTVDIC8q
IFNNSUxUaW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFGRDAwRTBEQUYzMzU1MDBGNUY1NUMg
LyogU01JTFRpbWVDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDN0M4OEQ4MUQwRjFG
NEEwMDlEMkY2RCAvKiBTb2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFBQkFF
MUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3Ry
ZWFtRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBENEEzNzEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTMxMjIyLDcgKzMxMjE1LDYgQEAKIAkJCQlFNEFGRDAwQjBEQUYz
MzU0MDBGNUY1NUMgLyogU01JTFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBRkQwMEQw
REFGMzM1NTAwRjVGNTVDIC8qIFNNSUxUaW1lQ29udGFpbmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTVDNjg4QUEzMUQzODE0QkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92aWRlci5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkFFMUYxMDND
MTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFNDUzOTA0NzBFQUZENjM3MDAzNjk1QzggLyogU291bmRJT1MubW0gaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ5MykJKGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaDoyMDQ0OTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAor
I2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFNvY2tldFN0cmVh
bUVycm9yOworCisgICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIC8vIE1ha2VzIGEgZGVlcCBjb3B5LiAgVXNlZnVsIGZvciB3aGVuIHlvdSBuZWVk
IHRvIHVzZSBhIFNvY2tldFN0cmVhbUVycm9yIG9uIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBT
b2NrZXRTdHJlYW1FcnJvciBjb3B5KCkgY29uc3Q7CisKKyAgICAgICAgYm9vbCBpc051bGwoKSBj
b25zdCB7IHJldHVybiBtX2lzTnVsbDsgfQorCisgICAgICAgIGludCBlcnJvckNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2Vycm9yQ29kZTsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIGZhaWxpbmdV
UkwoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxpbmdVUkw7IH0KKyAgICAgICAgY29uc3QgU3RyaW5n
JiBsb2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVzY3Jp
cHRpb247IH0KKworICAgICAgICBzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0IFNvY2tldFN0cmVh
bUVycm9yJiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKTsKKworICAgIHByb3RlY3RlZDoKKyAg
ICAgICAgU29ja2V0U3RyZWFtRXJyb3JCYXNlKCkKKyAgICAgICAgICAgIDogbV9lcnJvckNvZGUo
MCkKKyAgICAgICAgICAgICwgbV9pc051bGwodHJ1ZSkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgZXhwbGljaXQgU29ja2V0U3RyZWFtRXJyb3JCYXNlKGludCBlcnJvckNvZGUpCisg
ICAgICAgICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgICAgICwgbV9pc051
bGwoZmFsc2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFNvY2tldFN0cmVhbUVy
cm9yQmFzZShpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZhaWxpbmdVUkwsIGNvbnN0IFN0
cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAgICAgICAgICA6IG1fZXJyb3JDb2RlKGVy
cm9yQ29kZSkKKyAgICAgICAgICAgICwgbV9mYWlsaW5nVVJMKGZhaWxpbmdVUkwpCisgICAgICAg
ICAgICAsIG1fbG9jYWxpemVkRGVzY3JpcHRpb24obG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAg
ICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBpbnQgbV9lcnJvckNvZGU7CisgICAgICAgIFN0cmluZyBtX2ZhaWxpbmdVUkw7CisgICAgICAg
IFN0cmluZyBtX2xvY2FsaXplZERlc2NyaXB0aW9uOworICAgICAgICBib29sIG1faXNOdWxsOwor
ICAgIH07CisKKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvY2tldFN0cmVhbUVy
cm9yJiBhLCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYikgeyByZXR1cm4gU29ja2V0U3RyZWFt
RXJyb3JCYXNlOjpjb21wYXJlKGEsIGIpOyB9CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsg
cmV0dXJuICEoYSA9PSBiKTsgfQorCit9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
IC8vIFNvY2tldFN0cmVhbUVycm9yQmFzZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvci5oCShyZXZpc2lvbiAyMDQ0OTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC0yOSw1OCArMjksNDIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTb2NrZXRT
dHJlYW1FcnJvckJhc2VfaAotI2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3I7CitjbGFzcyBTb2NrZXRTdHJl
YW1FcnJvciB7CitwdWJsaWM6CisgICAgU29ja2V0U3RyZWFtRXJyb3IoKQorICAgIHsKKyAgICB9
CisKKyAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQorICAgICAg
ICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKKyAg
ICB7CisgICAgfQorCisgICAgU29ja2V0U3RyZWFtRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQor
ICAgICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2ZhaWxpbmdVUkwo
ZmFpbGluZ1VSTCkKKyAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXplZERl
c2NyaXB0aW9uKQorICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAg
ICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOdWxsOyB9CisgICAgaW50IGVycm9y
Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBm
YWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9CisgICAgY29uc3QgU3Ry
aW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVz
Y3JpcHRpb247IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9lcnJvckNvZGUgeyAwIH07CisgICAg
U3RyaW5nIG1fZmFpbGluZ1VSTDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsK
KyAgICBib29sIG1faXNOdWxsIHsgdHJ1ZSB9OworfTsKIAotICAgIGNsYXNzIFNvY2tldFN0cmVh
bUVycm9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBNYWtlcyBhIGRlZXAgY29weS4g
IFVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBTb2NrZXRTdHJlYW1FcnJvciBvbiBh
bm90aGVyIHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFtRXJyb3IgY29weSgpIGNvbnN0Owot
Ci0gICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9pc051bGw7IH0KLQotICAg
ICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvckNvZGU7IH0KLSAgICAg
ICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJM
OyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24oKSBjb25zdCB7
IHJldHVybiBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wg
Y29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9y
Jik7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSgpCi0g
ICAgICAgICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAgICAgICAsIG1faXNOdWxsKHRydWUp
Ci0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cGxpY2l0IFNvY2tldFN0cmVhbUVy
cm9yQmFzZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNv
ZGUpCi0gICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQotICAgICAgICB7Ci0gICAgICAgIH0K
LQotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50IGVycm9yQ29kZSwgY29uc3QgU3Ry
aW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAg
ICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1fZmFpbGlu
Z1VSTChmYWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxv
Y2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJyb3JDb2RlOwotICAgICAgICBTdHJp
bmcgbV9mYWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsK
LSAgICAgICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0gICAgaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3Im
IGIpIHsgcmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6Y29tcGFyZShhLCBiKTsgfQotICAg
IGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGEsIGNvbnN0
IFNvY2tldFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KLQotfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmNwcAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwCShub25leGlzdGVu
dCkKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU29ja2V0
U3RyZWFtRXJyb3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Tb2NrZXRTdHJlYW1FcnJv
ciBTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmNvcHkoKSBjb25zdAotewotICAgIFNvY2tldFN0cmVh
bUVycm9yIGVycm9yQ29weTsKLSAgICBlcnJvckNvcHkubV9lcnJvckNvZGUgPSBtX2Vycm9yQ29k
ZTsKLSAgICByZXR1cm4gZXJyb3JDb3B5OwotfQotCi1ib29sIFNvY2tldFN0cmVhbUVycm9yQmFz
ZTo6Y29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFt
RXJyb3ImIGIpCi17Ci0gICAgaWYgKGEuaXNOdWxsKCkgJiYgYi5pc051bGwoKSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoYS5pc051bGwoKSB8fCBiLmlzTnVsbCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5lcnJvckNvZGUoKSAhPSBiLmVycm9yQ29kZSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5mYWlsaW5nVVJMKCkgIT0gYi5m
YWlsaW5nVVJMKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkgIT0gYi5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNv
cmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5
bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JC
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2Nr
ZXRTdHJlYW1FcnJvckJhc2UuaAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JCYXNlX2gKLSNkZWZpbmUgU29j
a2V0U3RyZWFtRXJyb3JCYXNlX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKLQot
ICAgIGNsYXNzIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAv
LyBNYWtlcyBhIGRlZXAgY29weS4gIFVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBT
b2NrZXRTdHJlYW1FcnJvciBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFt
RXJyb3IgY29weSgpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1
cm4gbV9pc051bGw7IH0KLQotICAgICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9lcnJvckNvZGU7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVk
RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0K
LSAgICAgICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNv
bnN0IFNvY2tldFN0cmVhbUVycm9yJik7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tl
dFN0cmVhbUVycm9yQmFzZSgpCi0gICAgICAgICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAg
ICAgICAsIG1faXNOdWxsKHRydWUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4
cGxpY2l0IFNvY2tldFN0cmVhbUVycm9yQmFzZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAg
OiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQot
ICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50
IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2Fs
aXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0g
ICAgICAgICAgICAsIG1fZmFpbGluZ1VSTChmYWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xv
Y2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBt
X2lzTnVsbChmYWxzZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJy
b3JDb2RlOwotICAgICAgICBTdHJpbmcgbV9mYWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9s
b2NhbGl6ZWREZXNjcmlwdGlvbjsKLSAgICAgICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0g
ICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29u
c3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsgcmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6
Y29tcGFyZShhLCBiKTsgfQotICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0
U3RyZWFtRXJyb3ImIGEsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEg
PT0gYik7IH0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRT
dHJlYW1FcnJvckJhc2VfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29j
a2V0U3RyZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ5MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvcl9oCi0jZGVm
aW5lIFNvY2tldFN0cmVhbUVycm9yX2gKLQotI2luY2x1ZGUgIlNvY2tldFN0cmVhbUVycm9yQmFz
ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNvY2tldFN0cmVhbUVycm9yIDog
cHVibGljIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci1wdWJsaWM6Ci0gICAgU29ja2V0U3RyZWFt
RXJyb3IoKSB7IH0KLSAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2Rl
KQotICAgICAgICA6IFNvY2tldFN0cmVhbUVycm9yQmFzZShlcnJvckNvZGUpCi0gICAgewotICAg
IH0KLSAgICBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZh
aWxpbmdVUkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi0gICAgICAgIDog
U29ja2V0U3RyZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVz
Y3JpcHRpb24pCi0gICAgewotICAgIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAgLy8gU29ja2V0U3RyZWFtRXJyb3JfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1FcnJvci5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9u
IDIwNDQ5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRT
dHJlYW1FcnJvci5oCShub25leGlzdGVudCkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNvY2tl
dFN0cmVhbUVycm9yX2gKLSNkZWZpbmUgU29ja2V0U3RyZWFtRXJyb3JfaAotCi0jaW5jbHVkZSAi
U29ja2V0U3RyZWFtRXJyb3JCYXNlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNs
YXNzIFNvY2tldFN0cmVhbUVycm9yIDogcHVibGljIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0g
ICAgcHVibGljOgotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvcigpIHsgfQotICAgICAgICBleHBs
aWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBTb2Nr
ZXRTdHJlYW1FcnJvckJhc2UoZXJyb3JDb2RlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
IH07Ci0KLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAgLy8gU29ja2V0U3RyZWFt
RXJyb3JfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3Ry
ZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUVycm9yLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JfaAot
I2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvcl9oCi0KLSNpbmNsdWRlICJTb2NrZXRTdHJlYW1FcnJv
ckJhc2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU29ja2V0U3RyZWFt
RXJyb3IgOiBwdWJsaWMgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIFNvY2tldFN0cmVhbUVycm9yKCkgeyB9Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yKGlu
dCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBkZXNjcmlwdGlvbikKLSAgICAgICAgICAgIDogU29j
a2V0U3RyZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgU3RyaW5nKCksIFN0cmluZyhkZXNjcmlwdGlv
bikpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgfTsKLQotfSAgLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvcl9oCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJy
b3IuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0
cmVhbUhhbmRsZUltcGxTb3VwLmNwcAkocmV2aXNpb24gMjA0NDkzKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxl
SW1wbDo6Y29ubmVjdGVkQ2EKICAgICB9CiAKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIGhhbmRs
ZS0+ZGlkRmFpbChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2Up
KTsKKyAgICAgICAgaGFuZGxlLT5kaWRGYWlsKFNvY2tldFN0cmVhbUVycm9yKGVycm9yLT5jb2Rl
LCBTdHJpbmcoKSwgU3RyaW5nKGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAg
aGFuZGxlLT5jb25uZWN0ZWQoV1RGTW92ZShzb2NrZXRDb25uZWN0aW9uKSk7CiB9CkBAIC0xNDcs
NyArMTQ3LDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpyZWFkUmVhZHlDYQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIGhhbmRsZS0+ZGlkRmFpbChT
b2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAgICAgICAg
aGFuZGxlLT5kaWRGYWlsKFNvY2tldFN0cmVhbUVycm9yKGVycm9yLT5jb2RlLCBTdHJpbmcoKSwg
U3RyaW5nKGVycm9yLT5tZXNzYWdlKSkpOwogICAgIGVsc2UKICAgICAgICAgaGFuZGxlLT5yZWFk
Qnl0ZXMoYnl0ZXNSZWFkKTsKIH0KQEAgLTE4MCw3ICsxODAsNyBAQCBpbnQgU29ja2V0U3RyZWFt
SGFuZGxlSW1wbDo6cGxhdGZvcm1TZW5kCiAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMoZXJy
b3IuZ2V0KCksIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfV09VTERfQkxPQ0spKQogICAgICAgICAg
ICAgYmVnaW5XYWl0aW5nRm9yU29ja2V0V3JpdGFiaWxpdHkoKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZGlkRmFpbChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgZXJyb3ItPm1l
c3NhZ2UpKTsKKyAgICAgICAgICAgIGRpZEZhaWwoU29ja2V0U3RyZWFtRXJyb3IoZXJyb3ItPmNv
ZGUsIFN0cmluZygpLCBTdHJpbmcoZXJyb3ItPm1lc3NhZ2UpKSk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KIApAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1w
bDo6cGxhdGZvcm1DbG8KICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAg
ICAgICBnX2lvX3N0cmVhbV9jbG9zZShHX0lPX1NUUkVBTShtX3NvY2tldENvbm5lY3Rpb24uZ2V0
KCkpLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkpOwogICAgICAgICBpZiAoZXJyb3IpCi0gICAg
ICAgICAgICBkaWRGYWlsKFNvY2tldFN0cmVhbUVycm9yKGVycm9yLT5jb2RlLCBlcnJvci0+bWVz
c2FnZSkpOworICAgICAgICAgICAgZGlkRmFpbChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29k
ZSwgU3RyaW5nKCksIFN0cmluZyhlcnJvci0+bWVzc2FnZSkpKTsKICAgICAgICAgbV9zb2NrZXRD
b25uZWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286159</attachid>
            <date>2016-08-16 00:17:43 -0700</date>
            <delta_ts>2016-08-16 00:56:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160888-20160816001558.patch</filename>
            <type>text/plain</type>
            <size>33565</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE2LTA4LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2ltcGxpZnkg
U29ja2V0U3RyZWFtRXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2MDg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisg
ICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSBhbmQgcGxhdGZvcm0tc3BlY2lmaWMgU29ja2V0
U3RyZWFtRXJyb3Igd2VyZSBvdmVybHkgY29tcGxpY2F0ZWQuCisgICAgICAgIFRoZXkgaGFkIG1h
bnkgZnVuY3Rpb25zIHRoYXQgd2VyZSBuZXZlciB1c2VkLiAgVGhlcmUncyBubyByZWFzb24gdG8g
aGF2ZSB0d28gc2VwYXJhdGUgY2xhc3Nlcy4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVh
bUVycm9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29j
a2V0U3RyZWFtRXJyb3JCYXNlLmguCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJv
cjo6U29ja2V0U3RyZWFtRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtRXJy
b3I6OmlzTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvcjo6ZXJyb3JD
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpmYWlsaW5nVVJMKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUVycm9yOjpsb2NhbGl6ZWREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmlzTnVsbCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmVycm9yQ29k
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTb2NrZXRTdHJlYW1FcnJvckJhc2U6OmZh
aWxpbmdVUkwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtRXJyb3JC
YXNlOjpsb2NhbGl6ZWREZXNjcmlwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpT
b2NrZXRTdHJlYW1FcnJvckJhc2U6OlNvY2tldFN0cmVhbUVycm9yQmFzZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yIT0pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0
U3RyZWFtRXJyb3JCYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L1NvY2tldFN0cmVhbUVycm9yQmFzZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaDogUmVtb3ZlZC4KKwogMjAx
Ni0wOC0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbmFtZSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlIHRvIFNvY2tldFN0cmVhbUhhbmRs
ZSBhbmQgU29ja2V0U3RyZWFtSGFuZGxlIHRvIFNvY2tldFN0cmVhbUhhbmRsZUltcGwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDIwNDQ4MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAxNyw4ICsyMDE3LDcgQEAKIAkJNTEw
QTU4RTUxQkFBNDBCMTAwQzE5MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTU4RTMxQkFBNDBBRTAwQzE5
MjgyIC8qIEluUHJvY2Vzc0lEQlNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxMEE1OEY5MUJBQ0M3RjIwMEMxOTI4MiAvKiBJREJSZXF1
ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTBBNThGNTFCQUNDNEE1MDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuY3BwICovOyB9Owog
CQk1MTBBNThGQTFCQUNDN0YyMDBDMTkyODIgLyogSURCUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE1OEY2MUJBQ0M0QTUwMEMx
OTI4MiAvKiBJREJSZXF1ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTUxMEQ0QTMzMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1FcnJvckJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEwRDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yQmFzZS5j
cHAgKi87IH07Ci0JCTUxMEQ0QTM0MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJv
ckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MEQ0QTJFMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLzsgfTsK
KwkJNTEwRDRBMzQxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEyRTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTEwRDRBMzYxMDMxNjVF
RTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
MEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjI0MCw3ICsyMjM5LDYgQEAKIAkJ
NTFBOUQ5RTkxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQTlEOUU3MTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5jcHAgKi87IH07CiAJCTUxQTlEOUVBMTk1QjkzMUYwMDFC
MkI1QyAvKiBHYW1lcGFkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2Vy
LmggKi87IH07CiAJCTUxQUEzRjZGMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUEz
RjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJjZUxvYWRlck1hYy5tbSAqLzsgfTsKLQkJNTFB
QkFFMUIxMDNDMThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFCQUUxQTEwM0MxOEZGMDA4QzUy
NjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLzsgfTsKIAkJNTFBQkFFMUUxMDNDMTkxMzAwOEM1
MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQUJBRTFDMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVJbXBsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNTFBQkFFMUYxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENG
TmV0LmNwcCAqLzsgfTsKIAkJNTFBQkY2NEQxNjM5MkUyODAwMTMyQTdBIC8qIExvYWRlclN0cmF0
ZWd5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgKi87IH07CkBAIC05
MzUwLDggKzkzNDgsNyBAQAogCQk1MTBBNThGNjFCQUNDNEE1MDBDMTkyODIgLyogSURCUmVxdWVz
dERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCUmVxdWVzdERhdGEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwQTU4RkQxQkIwN0E5NjAwQzE5Mjgy
IC8qIElEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwQTU4RkUxQkIwN0FBNTAwQzE5MjgyIC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9DbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTEwRDRBMkQxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1MTBENEEyRTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUVycm9yQmFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTBENEEyRTEwMzE2NUVFMDA0OUVB
NTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
RDRBMzAxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tl
dFN0cmVhbUhhbmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEw
MzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTU2Niw3ICs5NTYzLDYgQEAKIAkJNTFBOUQ5RTcxOTVC
OTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTFBOUQ5RTgxOTVCOTMxRjAwMUIyQjVDIC8qIEdhbWVwYWRNYW5hZ2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdhbWVwYWRNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUEzRjZFMEJENUFBOUUwMDg5Mjk3MSAvKiBSZXNvdXJj
ZUxvYWRlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJl
c291cmNlTG9hZGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUFCQUUx
QTEwM0MxOEZGMDA4QzUyNjAgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRs
ZUltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUFCQUUxRDEwM0MxOTEz
MDA4QzUyNjAgLyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQUJGNjRDMTYzOTJFMjgwMDEzMkE3QSAv
KiBMb2FkZXJTdHJhdGVneS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMb2FkZXJTdHJhdGVneS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk3
Miw4ICsxNzk2OCw3IEBACiAJCQkJNTE0Qzc2NjgwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVxdWVzdEJhc2UuaCAqLywKIAkJCQk1MTRDNzY2OTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwICovLAogCQkJCTUxNEM3NjZBMENFOTIzQTEwMDdFRjNDRCAvKiBS
ZXNvdXJjZVJlc3BvbnNlQmFzZS5oICovLAotCQkJCTUxMEQ0QTJEMTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwICovLAotCQkJCTUxMEQ0QTJFMTAzMTY1RUUwMDQ5
RUE1NCAvKiBTb2NrZXRTdHJlYW1FcnJvckJhc2UuaCAqLywKKwkJCQk1MTBENEEyRTEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3IuaCAqLywKIAkJCQk1MTBENEEzMDEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmNwcCAqLywKIAkJCQk1MTBENEEzMTEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi8sCiAJCQkJNTEwRDRBMzIxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovLApAQCAtMjE4NzMs
NyArMjE4NjgsNiBAQAogCQkJCTdFRTY4NDVDMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJjZVJl
cXVlc3RDRk5ldC5oICovLAogCQkJCTdFRTY4NDVEMTJEMjZFMzgwMEU3OTQxNSAvKiBSZXNvdXJj
ZVJlc3BvbnNlLmggKi8sCiAJCQkJN0VFNjg0NUUxMkQyNkUzODAwRTc5NDE1IC8qIFJlc291cmNl
UmVzcG9uc2VDRk5ldC5jcHAgKi8sCi0JCQkJNTFBQkFFMUExMDNDMThGRjAwOEM1MjYwIC8qIFNv
Y2tldFN0cmVhbUVycm9yLmggKi8sCiAJCQkJNTFBQkFFMUMxMDNDMTkxMzAwOEM1MjYwIC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUltcGwuaCAqLywKIAkJCQk1MUFCQUUxRDEwM0MxOTEzMDA4QzUyNjAg
LyogU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcCAqLywKIAkJCQk0NDJBQkNENTE3RDky
NjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5jcHAgKi8sCkBAIC0y
NzU3Niw4ICsyNzU3MCw3IEBACiAJCQkJRTRBRkQwMEMwREFGMzM1NDAwRjVGNTVDIC8qIFNNSUxU
aW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEFGRDAwRTBEQUYzMzU1MDBGNUY1NUMgLyogU01J
TFRpbWVDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDN0M4OEQ4MUQwRjFGNEEwMDlE
MkY2RCAvKiBTb2NrZXRQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTFBQkFFMUIxMDND
MThGRjAwOEM1MjYwIC8qIFNvY2tldFN0cmVhbUVycm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk1
MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MTBENEEzNDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJy
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQUJBRTFFMTAzQzE5MTMwMDhDNTI2MCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBENEEzNzEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBE
NEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTMxMjIyLDcgKzMxMjE1LDYgQEAKIAkJCQlFNEFGRDAwQjBEQUYzMzU0MDBG
NUY1NUMgLyogU01JTFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTRBRkQwMEQwREFGMzM1
NTAwRjVGNTVDIC8qIFNNSUxUaW1lQ29udGFpbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVD
Njg4QUEzMUQzODE0QkYwMDBCNTRGQSAvKiBTb2NrZXRQcm92aWRlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk1MTBENEEzMzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtRXJyb3JCYXNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBQkFFMUYxMDNDMTkxMzAw
OEM1MjYwIC8qIFNvY2tldFN0cmVhbUhhbmRsZUltcGxDRk5ldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFNDUzOTA0NzBFQUZENjM3MDAzNjk1QzggLyogU291bmRJT1MubW0gaW4gU291cmNlcyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJy
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ4MykJKGZyb20gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaDoyMDQ0ODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorI2RlZmlu
ZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFNvY2tldFN0cmVhbUVycm9y
OworCisgICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIC8vIE1ha2VzIGEgZGVlcCBjb3B5LiAgVXNlZnVsIGZvciB3aGVuIHlvdSBuZWVkIHRvIHVz
ZSBhIFNvY2tldFN0cmVhbUVycm9yIG9uIGFub3RoZXIgdGhyZWFkLgorICAgICAgICBTb2NrZXRT
dHJlYW1FcnJvciBjb3B5KCkgY29uc3Q7CisKKyAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7
IHJldHVybiBtX2lzTnVsbDsgfQorCisgICAgICAgIGludCBlcnJvckNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yQ29kZTsgfQorICAgICAgICBjb25zdCBTdHJpbmcmIGZhaWxpbmdVUkwoKSBj
b25zdCB7IHJldHVybiBtX2ZhaWxpbmdVUkw7IH0KKyAgICAgICAgY29uc3QgU3RyaW5nJiBsb2Nh
bGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVzY3JpcHRpb247
IH0KKworICAgICAgICBzdGF0aWMgYm9vbCBjb21wYXJlKGNvbnN0IFNvY2tldFN0cmVhbUVycm9y
JiwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAg
U29ja2V0U3RyZWFtRXJyb3JCYXNlKCkKKyAgICAgICAgICAgIDogbV9lcnJvckNvZGUoMCkKKyAg
ICAgICAgICAgICwgbV9pc051bGwodHJ1ZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAg
ICAgZXhwbGljaXQgU29ja2V0U3RyZWFtRXJyb3JCYXNlKGludCBlcnJvckNvZGUpCisgICAgICAg
ICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgICAgICwgbV9pc051bGwoZmFs
c2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFz
ZShpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZhaWxpbmdVUkwsIGNvbnN0IFN0cmluZyYg
bG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAgICAgICAgICA6IG1fZXJyb3JDb2RlKGVycm9yQ29k
ZSkKKyAgICAgICAgICAgICwgbV9mYWlsaW5nVVJMKGZhaWxpbmdVUkwpCisgICAgICAgICAgICAs
IG1fbG9jYWxpemVkRGVzY3JpcHRpb24obG9jYWxpemVkRGVzY3JpcHRpb24pCisgICAgICAgICAg
ICAsIG1faXNOdWxsKGZhbHNlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBpbnQg
bV9lcnJvckNvZGU7CisgICAgICAgIFN0cmluZyBtX2ZhaWxpbmdVUkw7CisgICAgICAgIFN0cmlu
ZyBtX2xvY2FsaXplZERlc2NyaXB0aW9uOworICAgICAgICBib29sIG1faXNOdWxsOworICAgIH07
CisKKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBh
LCBjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYikgeyByZXR1cm4gU29ja2V0U3RyZWFtRXJyb3JC
YXNlOjpjb21wYXJlKGEsIGIpOyB9CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBT
b2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsgcmV0dXJu
ICEoYSA9PSBiKTsgfQorCit9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgIC8vIFNv
Y2tldFN0cmVhbUVycm9yQmFzZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvci5oCShyZXZpc2lvbiAyMDQ0ODMpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw1
OCArMjksNDIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBTb2NrZXRTdHJlYW1F
cnJvckJhc2VfaAotI2RlZmluZSBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi0gICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3I7CitjbGFzcyBTb2NrZXRTdHJlYW1FcnJv
ciB7CitwdWJsaWM6CisgICAgU29ja2V0U3RyZWFtRXJyb3IoKQorICAgIHsKKyAgICB9CisKKyAg
ICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQorICAgICAgICA6IG1f
ZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKKyAgICB7Cisg
ICAgfQorCisgICAgU29ja2V0U3RyZWFtRXJyb3IoaW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5n
JiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQorICAgICAg
ICA6IG1fZXJyb3JDb2RlKGVycm9yQ29kZSkKKyAgICAgICAgLCBtX2ZhaWxpbmdVUkwoZmFpbGlu
Z1VSTCkKKyAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXplZERlc2NyaXB0
aW9uKQorICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICBib29s
IGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOdWxsOyB9CisgICAgaW50IGVycm9yQ29kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CisgICAgY29uc3QgU3RyaW5nJiBmYWlsaW5n
VVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9CisgICAgY29uc3QgU3RyaW5nJiBs
b2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxpemVkRGVzY3JpcHRp
b247IH0KKworcHJpdmF0ZToKKyAgICBpbnQgbV9lcnJvckNvZGUgeyAwIH07CisgICAgU3RyaW5n
IG1fZmFpbGluZ1VSTDsKKyAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsKKyAgICBi
b29sIG1faXNOdWxsIHsgdHJ1ZSB9OworfTsKIAotICAgIGNsYXNzIFNvY2tldFN0cmVhbUVycm9y
QmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBNYWtlcyBhIGRlZXAgY29weS4gIFVzZWZ1
bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBTb2NrZXRTdHJlYW1FcnJvciBvbiBhbm90aGVy
IHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFtRXJyb3IgY29weSgpIGNvbnN0OwotCi0gICAg
ICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9pc051bGw7IH0KLQotICAgICAgICBp
bnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvckNvZGU7IH0KLSAgICAgICAgY29u
c3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsaW5nVVJMOyB9Ci0g
ICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wgY29tcGFy
ZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJik7Ci0K
LSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yQmFzZSgpCi0gICAgICAg
ICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAgICAgICAsIG1faXNOdWxsKHRydWUpCi0gICAg
ICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cGxpY2l0IFNvY2tldFN0cmVhbUVycm9yQmFz
ZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0g
ICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAg
ICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBm
YWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAg
ICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1fZmFpbGluZ1VSTChm
YWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xvY2FsaXplZERlc2NyaXB0aW9uKGxvY2FsaXpl
ZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBtX2lzTnVsbChmYWxzZSkKLSAgICAgICAgewot
ICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJyb3JDb2RlOwotICAgICAgICBTdHJpbmcgbV9m
YWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9sb2NhbGl6ZWREZXNjcmlwdGlvbjsKLSAgICAg
ICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGIpIHsg
cmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6Y29tcGFyZShhLCBiKTsgfQotICAgIGlubGlu
ZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0U3RyZWFtRXJyb3ImIGEsIGNvbnN0IFNvY2tl
dFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEgPT0gYik7IH0KLQotfSAgLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvckJhc2VfaAorfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlLmNwcAkocmV2aXNpb24gMjA0NDgzKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwCShub25leGlzdGVudCkKQEAg
LTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU29ja2V0U3RyZWFt
RXJyb3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1Tb2NrZXRTdHJlYW1FcnJvciBTb2Nr
ZXRTdHJlYW1FcnJvckJhc2U6OmNvcHkoKSBjb25zdAotewotICAgIFNvY2tldFN0cmVhbUVycm9y
IGVycm9yQ29weTsKLSAgICBlcnJvckNvcHkubV9lcnJvckNvZGUgPSBtX2Vycm9yQ29kZTsKLSAg
ICByZXR1cm4gZXJyb3JDb3B5OwotfQotCi1ib29sIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6Y29t
cGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29ja2V0U3RyZWFtRXJyb3Im
IGIpCi17Ci0gICAgaWYgKGEuaXNOdWxsKCkgJiYgYi5pc051bGwoKSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICBpZiAoYS5pc051bGwoKSB8fCBiLmlzTnVsbCgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5lcnJvckNvZGUoKSAhPSBiLmVycm9yQ29kZSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS5mYWlsaW5nVVJMKCkgIT0gYi5mYWlsaW5n
VVJMKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLmxvY2FsaXplZERlc2Ny
aXB0aW9uKCkgIT0gYi5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKClBy
b3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0
U3RyZWFtRXJyb3JCYXNlLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMg
LTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJl
YW1FcnJvckJhc2UuaAkocmV2aXNpb24gMjA0NDgzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDg2
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JCYXNlX2gKLSNkZWZpbmUgU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBTb2NrZXRTdHJlYW1FcnJvcjsKLQotICAgIGNs
YXNzIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICAvLyBNYWtl
cyBhIGRlZXAgY29weS4gIFVzZWZ1bCBmb3Igd2hlbiB5b3UgbmVlZCB0byB1c2UgYSBTb2NrZXRT
dHJlYW1FcnJvciBvbiBhbm90aGVyIHRocmVhZC4KLSAgICAgICAgU29ja2V0U3RyZWFtRXJyb3Ig
Y29weSgpIGNvbnN0OwotCi0gICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9p
c051bGw7IH0KLQotICAgICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
ckNvZGU7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1
cm4gbV9mYWlsaW5nVVJMOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3Jp
cHRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsaXplZERlc2NyaXB0aW9uOyB9Ci0KLSAgICAg
ICAgc3RhdGljIGJvb2wgY29tcGFyZShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYsIGNvbnN0IFNv
Y2tldFN0cmVhbUVycm9yJik7Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFNvY2tldFN0cmVh
bUVycm9yQmFzZSgpCi0gICAgICAgICAgICA6IG1fZXJyb3JDb2RlKDApCi0gICAgICAgICAgICAs
IG1faXNOdWxsKHRydWUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGV4cGxpY2l0
IFNvY2tldFN0cmVhbUVycm9yQmFzZShpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBtX2Vy
cm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAgICAgICAsIG1faXNOdWxsKGZhbHNlKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvckJhc2UoaW50IGVycm9y
Q29kZSwgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMLCBjb25zdCBTdHJpbmcmIGxvY2FsaXplZERl
c2NyaXB0aW9uKQotICAgICAgICAgICAgOiBtX2Vycm9yQ29kZShlcnJvckNvZGUpCi0gICAgICAg
ICAgICAsIG1fZmFpbGluZ1VSTChmYWlsaW5nVVJMKQotICAgICAgICAgICAgLCBtX2xvY2FsaXpl
ZERlc2NyaXB0aW9uKGxvY2FsaXplZERlc2NyaXB0aW9uKQotICAgICAgICAgICAgLCBtX2lzTnVs
bChmYWxzZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaW50IG1fZXJyb3JDb2Rl
OwotICAgICAgICBTdHJpbmcgbV9mYWlsaW5nVVJMOwotICAgICAgICBTdHJpbmcgbV9sb2NhbGl6
ZWREZXNjcmlwdGlvbjsKLSAgICAgICAgYm9vbCBtX2lzTnVsbDsKLSAgICB9OwotCi0gICAgaW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTb2NrZXRTdHJlYW1FcnJvciYgYSwgY29uc3QgU29j
a2V0U3RyZWFtRXJyb3ImIGIpIHsgcmV0dXJuIFNvY2tldFN0cmVhbUVycm9yQmFzZTo6Y29tcGFy
ZShhLCBiKTsgfQotICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU29ja2V0U3RyZWFt
RXJyb3ImIGEsIGNvbnN0IFNvY2tldFN0cmVhbUVycm9yJiBiKSB7IHJldHVybiAhKGEgPT0gYik7
IH0KLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1F
cnJvckJhc2VfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpl
b2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJv
cGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3Ry
ZWFtRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ4MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtRXJyb3IuaAkobm9uZXhpc3RlbnQp
CkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTb2NrZXRTdHJlYW1FcnJvcl9oCi0jZGVmaW5lIFNv
Y2tldFN0cmVhbUVycm9yX2gKLQotI2luY2x1ZGUgIlNvY2tldFN0cmVhbUVycm9yQmFzZS5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFNvY2tldFN0cmVhbUVycm9yIDogcHVibGlj
IFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci1wdWJsaWM6Ci0gICAgU29ja2V0U3RyZWFtRXJyb3Io
KSB7IH0KLSAgICBleHBsaWNpdCBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQotICAg
ICAgICA6IFNvY2tldFN0cmVhbUVycm9yQmFzZShlcnJvckNvZGUpCi0gICAgewotICAgIH0KLSAg
ICBTb2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlLCBjb25zdCBTdHJpbmcmIGZhaWxpbmdV
UkwsIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24pCi0gICAgICAgIDogU29ja2V0
U3RyZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRp
b24pCi0gICAgewotICAgIH0KLX07Ci0KLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAgLy8gU29ja2V0U3RyZWFtRXJyb3JfaAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1FcnJvci5oCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
RGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUVycm9yLmgJKHJldmlzaW9uIDIwNDQ4
MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1F
cnJvci5oCShub25leGlzdGVudCkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNvY2tldFN0cmVh
bUVycm9yX2gKLSNkZWZpbmUgU29ja2V0U3RyZWFtRXJyb3JfaAotCi0jaW5jbHVkZSAiU29ja2V0
U3RyZWFtRXJyb3JCYXNlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIFNv
Y2tldFN0cmVhbUVycm9yIDogcHVibGljIFNvY2tldFN0cmVhbUVycm9yQmFzZSB7Ci0gICAgcHVi
bGljOgotICAgICAgICBTb2NrZXRTdHJlYW1FcnJvcigpIHsgfQotICAgICAgICBleHBsaWNpdCBT
b2NrZXRTdHJlYW1FcnJvcihpbnQgZXJyb3JDb2RlKQotICAgICAgICAgICAgOiBTb2NrZXRTdHJl
YW1FcnJvckJhc2UoZXJyb3JDb2RlKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgIH07Ci0K
LX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAgLy8gU29ja2V0U3RyZWFtRXJyb3Jf
aAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1NvY2tldFN0cmVhbUVycm9yLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJy
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
U29ja2V0U3RyZWFtRXJyb3IuaAkocmV2aXNpb24gMjA0NDgzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUVycm9yLmgJKG5vbmV4aXN0ZW50KQpA
QCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDExIEdvb2dsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU29ja2V0U3RyZWFtRXJyb3JfaAotI2RlZmlu
ZSBTb2NrZXRTdHJlYW1FcnJvcl9oCi0KLSNpbmNsdWRlICJTb2NrZXRTdHJlYW1FcnJvckJhc2Uu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgU29ja2V0U3RyZWFtRXJyb3Ig
OiBwdWJsaWMgU29ja2V0U3RyZWFtRXJyb3JCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFNv
Y2tldFN0cmVhbUVycm9yKCkgeyB9Ci0gICAgICAgIFNvY2tldFN0cmVhbUVycm9yKGludCBlcnJv
ckNvZGUsIGNvbnN0IGdjaGFyKiBkZXNjcmlwdGlvbikKLSAgICAgICAgICAgIDogU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlKGVycm9yQ29kZSwgU3RyaW5nKCksIFN0cmluZyhkZXNjcmlwdGlvbikpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgfTsKLQotfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmICAvLyBTb2NrZXRTdHJlYW1FcnJvcl9oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtRXJyb3IuaApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZUltcGxTb3VwLmNwcAkocmV2aXNpb24gMjA0NDgzKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhhbmRsZUltcGxTb3VwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6
Y29ubmVjdGVkQ2EKICAgICB9CiAKICAgICBpZiAoZXJyb3IpCi0gICAgICAgIGhhbmRsZS0+ZGlk
RmFpbChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpKTsKKyAg
ICAgICAgaGFuZGxlLT5kaWRGYWlsKFNvY2tldFN0cmVhbUVycm9yKGVycm9yLT5jb2RlLCBTdHJp
bmcoKSwgZXJyb3ItPm1lc3NhZ2UpKTsKICAgICBlbHNlCiAgICAgICAgIGhhbmRsZS0+Y29ubmVj
dGVkKFdURk1vdmUoc29ja2V0Q29ubmVjdGlvbikpOwogfQpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZv
aWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cmVhZFJlYWR5Q2EKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKGVycm9yKQotICAgICAgICBoYW5kbGUtPmRpZEZhaWwoU29ja2V0U3RyZWFtRXJy
b3IoZXJyb3ItPmNvZGUsIGVycm9yLT5tZXNzYWdlKSk7CisgICAgICAgIGhhbmRsZS0+ZGlkRmFp
bChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgU3RyaW5nKCksIGVycm9yLT5tZXNzYWdl
KSk7CiAgICAgZWxzZQogICAgICAgICBoYW5kbGUtPnJlYWRCeXRlcyhieXRlc1JlYWQpOwogfQpA
QCAtMTgwLDcgKzE4MCw3IEBAIGludCBTb2NrZXRTdHJlYW1IYW5kbGVJbXBsOjpwbGF0Zm9ybVNl
bmQKICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnJvci5nZXQoKSwgR19JT19FUlJPUiwg
R19JT19FUlJPUl9XT1VMRF9CTE9DSykpCiAgICAgICAgICAgICBiZWdpbldhaXRpbmdGb3JTb2Nr
ZXRXcml0YWJpbGl0eSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkaWRGYWlsKFNvY2tl
dFN0cmVhbUVycm9yKGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICAgICAg
ZGlkRmFpbChTb2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgU3RyaW5nKCksIGVycm9yLT5t
ZXNzYWdlKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtMjAzLDcgKzIwMyw3IEBA
IHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlSW1wbDo6cGxhdGZvcm1DbG8KICAgICAgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOwogICAgICAgICBnX2lvX3N0cmVhbV9jbG9zZShHX0lPX1NU
UkVBTShtX3NvY2tldENvbm5lY3Rpb24uZ2V0KCkpLCBudWxscHRyLCAmZXJyb3Iub3V0UHRyKCkp
OwogICAgICAgICBpZiAoZXJyb3IpCi0gICAgICAgICAgICBkaWRGYWlsKFNvY2tldFN0cmVhbUVy
cm9yKGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSkpOworICAgICAgICAgICAgZGlkRmFpbChT
b2NrZXRTdHJlYW1FcnJvcihlcnJvci0+Y29kZSwgU3RyaW5nKCksIGVycm9yLT5tZXNzYWdlKSk7
CiAgICAgICAgIG1fc29ja2V0Q29ubmVjdGlvbiA9IG51bGxwdHI7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>