<?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>165481</bug_id>
          
          <creation_ts>2016-12-06 11:19:29 -0800</creation_ts>
          <short_desc>Remove old Wasm object model</short_desc>
          <delta_ts>2016-12-06 16:28:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          
          <blocked>165482</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1256874</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-06 11:19:29 -0800</bug_when>
    <thetext>It makes the current code quite confusing to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256913</commentid>
    <comment_count>1</comment_count>
      <attachid>296309</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-06 12:45:46 -0800</bug_when>
    <thetext>Created attachment 296309
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256914</commentid>
    <comment_count>2</comment_count>
      <attachid>296309</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-12-06 12:47:31 -0800</bug_when>
    <thetext>Comment on attachment 296309
patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256915</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 12:48:18 -0800</bug_when>
    <thetext>Attachment 296309 did not pass style-queue:


ERROR: Source/JavaScriptCore/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1296:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256916</commentid>
    <comment_count>4</comment_count>
      <attachid>296309</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-12-06 12:48:45 -0800</bug_when>
    <thetext>Comment on attachment 296309
patch

r=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256984</commentid>
    <comment_count>5</comment_count>
      <attachid>296325</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-06 14:46:13 -0800</bug_when>
    <thetext>Created attachment 296325
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256985</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 14:48:40 -0800</bug_when>
    <thetext>Attachment 296325 did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:1296:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257066</commentid>
    <comment_count>7</comment_count>
      <attachid>296325</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 16:28:26 -0800</bug_when>
    <thetext>Comment on attachment 296325
patch for landing

Clearing flags on attachment: 296325

Committed r209433: &lt;http://trac.webkit.org/changeset/209433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257067</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 16:28:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296309</attachid>
            <date>2016-12-06 12:45:46 -0800</date>
            <delta_ts>2016-12-06 14:46:13 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>51004</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NDEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDE2LTEyLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBvbGQgV2FzbSBvYmplY3QgbW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCQorICAgICAgICBJdCdzIGNvbmZ1c2luZyB0byBzZWUgY29kZSB0aGF0IGNv
bnN1bHRzIGJvdGggdGhlIG9sZAorICAgICAgICBXYXNtIG9iamVjdCBtb2RlbCBhbG9uZ3NpZGUg
dGhlIG5ldyBvbmUuIFRoZSBvbGQgb2JqZWN0CisgICAgICAgIG1vZGVsIGlzIG5vdCBhIHRoaW5n
LCBhbmQgaXQncyBub3QgYmVpbmcgdXNlZC4gTGV0J3MKKyAgICAgICAgcmVtb3ZlIGl0IG5vdyB0
byBwcmV2ZW50IGZ1cnRoZXIgY29uZnVzaW9uLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6
OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnJl
cGxhY2VtZW50KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjb21wdXRlQ2FwYWJpbGl0eUxl
dmVsKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp1cGRhdGVBbGxQcmVkaWN0aW9ucyk6Cisg
ICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgICogYnl0ZWNvZGUvV2ViQXNz
ZW1ibHlDb2RlQmxvY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJ5dGVjb2RlL1dlYkFzc2Vt
Ymx5Q29kZUJsb2NrLmg6IFJlbW92ZWQuCisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6aXNTdXBwb3J0ZWRGb3JJbmxpbmluZyk6CisgICAgICAg
ICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpHZXRTdGFja1Ry
YWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSk6CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om9w
ZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjppc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSk6IERlbGV0
ZWQuCisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGppdC9SZXBh
dGNoLmNwcDoKKyAgICAgICAgKEpTQzo6bGlua1BvbHltb3JwaGljQ2FsbCk6CisgICAgICAgICog
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6c2V0VXBDYWxs
KToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGVCYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
RXhlY3V0YWJsZUJhc2U6OmNsZWFyQ29kZSk6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxl
QmFzZS5oOgorICAgICAgICAoSlNDOjpFeGVjdXRhYmxlQmFzZTo6aXNXZWJBc3NlbWJseUV4ZWN1
dGFibGUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5jcHA6CisgICAg
ICAgICogcnVudGltZS9KU0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0Z1bmN0aW9u
SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0Z1bmN0aW9uOjppc0J1aWx0aW5GdW5jdGlvbik6
CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisgICAg
ICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAqIHJ1bnRpbWUvV2ViQXNzZW1ibHlFeGVjdXRh
YmxlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYkFzc2VtYmx5RXhlY3V0YWJs
ZS5oOiBSZW1vdmVkLgorCiAyMDE2LTEyLTA0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgQVNDSUlDVHlwZSBtb3JlLCBhbmQgaW1wcm92ZSBpdCBhIGxpdHRs
ZSBiaXQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIw
OTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjU0LDcgKzI1NCw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAg
Ynl0ZWNvZGUvVmFyaWFibGVXcml0ZUZpcmVEZXRhaWwuY3BwCiAgICAgYnl0ZWNvZGUvVmlydHVh
bFJlZ2lzdGVyLmNwcAogICAgIGJ5dGVjb2RlL1dhdGNocG9pbnQuY3BwCi0gICAgYnl0ZWNvZGUv
V2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwCiAKICAgICBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuY3BwCiAgICAgYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTg4Nyw3ICs4
ODYsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvV2Vha01hcFBy
b3RvdHlwZS5jcHAKICAgICBydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKICAgICBydW50
aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCi0gICAgcnVudGltZS9XZWJBc3NlbWJseUV4ZWN1dGFi
bGUuY3BwCiAKICAgICB0b29scy9Db2RlUHJvZmlsZS5jcHAKICAgICB0b29scy9Db2RlUHJvZmls
aW5nLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIwOTQw
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDk5LDE0ICsxMDk5LDEyIEBACiAJCTE0
NzM0MUQ0MURDMDJFNkQwMEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxRDMxREMwMkU2RDAwQUEy
OUJBIC8qIFByb2dyYW1FeGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3MzQxRDYxREMwMkVCOTAwQUEyOUJBIC8qIE1vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDczNDFENTFEQzAyRUI5MDBBQTI5QkEgLyogTW9kdWxlUHJvZ3JhbUV4ZWN1dGFi
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
NDczNDFEODFEQzAyRjk5MDBBQTI5QkEgLyogRnVuY3Rpb25FeGVjdXRhYmxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDczNDFENzFEQzAyRjk5MDBB
QTI5QkEgLyogRnVuY3Rpb25FeGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMTQ3MzQxREExREMwMzAwMTAwQUEyOUJBIC8qIFdlYkFz
c2VtYmx5RXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQ3MzQxRDkxREMwMzAwMTAwQUEyOUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0
NzM0MUUyMURDMkNFOTYwMEFBMjlCQSAvKiBFdmFsRXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDczNDFEQjFEQzJDRTk2MDBBQTI5
QkEgLyogRXZhbEV4ZWN1dGFibGUuY3BwICovOyB9OwogCQkxNDczNDFFMzFEQzJDRTk2MDBBQTI5
QkEgLyogRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MURDMURDMkNFOTYwMEFBMjlCQSAvKiBGdW5jdGlvbkV4
ZWN1dGFibGUuY3BwICovOyB9OwogCQkxNDczNDFFNDFEQzJDRTk2MDBBQTI5QkEgLyogTW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ3MzQxREQxREMyQ0U5NjAwQUEyOUJBIC8qIE1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlLmNwcCAqLzsgfTsKIAkJMTQ3MzQxRTUxREMyQ0U5NjAwQUEyOUJBIC8qIE5hdGl2ZUV4
ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ3MzQxREUxREMyQ0U5NjAwQUEyOUJBIC8qIE5hdGl2ZUV4ZWN1dGFibGUuY3BwICovOyB9
OwogCQkxNDczNDFFNjFEQzJDRTk2MDBBQTI5QkEgLyogUHJvZ3JhbUV4ZWN1dGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxREYxREMy
Q0U5NjAwQUEyOUJBIC8qIFByb2dyYW1FeGVjdXRhYmxlLmNwcCAqLzsgfTsKIAkJMTQ3MzQxRTcx
REMyQ0U5NjAwQUEyOUJBIC8qIFNjcmlwdEV4ZWN1dGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxRTAxREMyQ0U5NjAwQUEyOUJBIC8q
IFNjcmlwdEV4ZWN1dGFibGUuY3BwICovOyB9OwotCQkxNDczNDFFODFEQzJDRTk2MDBBQTI5QkEg
LyogV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MUUxMURDMkNFOTYwMEFBMjlCQSAvKiBXZWJBc3NlbWJs
eUV4ZWN1dGFibGUuY3BwICovOyB9OwogCQkxNDczNDFFQTFEQzJDRjI1MDBBQTI5QkEgLyogRXhl
Y3V0YWJsZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQ3MzQxRTkxREMyQ0YyNTAwQUEyOUJBIC8qIEV4ZWN1dGFibGVCYXNlLmNwcCAqLzsg
fTsKIAkJMTQ3NEMzM0IxNkFBMkQ5NTAwNjJGMDFEIC8qIFByb3RvdHlwZU1hcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREODQ0QTMxNkFBMkM3MDAw
QTY1QUYwIC8qIFByb3RvdHlwZU1hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTE0NzRDMzNDMTZBQTJEOUIwMDYyRjAxRCAvKiBQcm90b3R5cGVN
YXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRE
ODQ0QTIxNkFBMkM3MDAwQTY1QUYwIC8qIFByb3RvdHlwZU1hcC5jcHAgKi87IH07CkBAIC0xMTU3
LDExICsxMTU1LDkgQEAKIAkJMTRBRDkxMEUxRENBOTI5NDAwMTRGOUZFIC8qIEdsb2JhbENvZGVC
bG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRB
RDkxMDgxRENBOTI5NDAwMTRGOUZFIC8qIEdsb2JhbENvZGVCbG9jay5oICovOyB9OwogCQkxNEFE
OTEwRjFEQ0E5Mjk0MDAxNEY5RkUgLyogTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBRDkxMDkxRENBOTI5NDAw
MTRGOUZFIC8qIE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaCAqLzsgfTsKIAkJMTRBRDkxMTAxRENB
OTI5NDAwMTRGOUZFIC8qIFByb2dyYW1Db2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTBBMURDQTkyOTQwMDE0RjlGRSAvKiBQcm9n
cmFtQ29kZUJsb2NrLmggKi87IH07Ci0JCTE0QUQ5MTExMURDQTkyOTQwMDE0RjlGRSAvKiBXZWJB
c3NlbWJseUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTRBRDkxMEIxRENBOTI5NDAwMTRGOUZFIC8qIFdlYkFzc2VtYmx5Q29kZUJsb2Nr
LmggKi87IH07CiAJCTE0QUQ5MTE3MURDQTk3RkQwMDE0RjlGRSAvKiBFdmFsQ29kZUJsb2NrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTEy
MURDQTk3RkQwMDE0RjlGRSAvKiBFdmFsQ29kZUJsb2NrLmNwcCAqLzsgfTsKIAkJMTRBRDkxMTgx
RENBOTdGRDAwMTRGOUZFIC8qIE1vZHVsZVByb2dyYW1Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBRDkxMTMxRENBOTdGRDAwMTRG
OUZFIC8qIE1vZHVsZVByb2dyYW1Db2RlQmxvY2suY3BwICovOyB9OwogCQkxNEFEOTExOTFEQ0E5
N0ZEMDAxNEY5RkUgLyogUHJvZ3JhbUNvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFEOTExNDFEQ0E5N0ZEMDAxNEY5RkUgLyogUHJv
Z3JhbUNvZGVCbG9jay5jcHAgKi87IH07Ci0JCTE0QUQ5MTFBMURDQTk3RkQwMDE0RjlGRSAvKiBX
ZWJBc3NlbWJseUNvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNEFEOTExNTFEQ0E5N0ZEMDAxNEY5RkUgLyogV2ViQXNzZW1ibHlDb2Rl
QmxvY2suY3BwICovOyB9OwogCQkxNEFEOTExQjFEQ0E5N0ZEMDAxNEY5RkUgLyogRnVuY3Rpb25D
b2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRBRDkxMTYxRENBOTdGRDAwMTRGOUZFIC8qIEZ1bmN0aW9uQ29kZUJsb2NrLmNwcCAqLzsg
fTsKIAkJMTRBRDkxMjIxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkR2xvYmFsQ29kZUJsb2Nr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFEOTEx
QzFEQ0E5RkE0MDAxNEY5RkUgLyogVW5saW5rZWRHbG9iYWxDb2RlQmxvY2suaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEFEOTEyMzFEQ0E5RkE0
MDAxNEY5RkUgLyogVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBRDkxMUQxRENBOUZBNDAwMTRGOUZFIC8q
IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQ4NSwxNCArMzQ4MSwxMiBAQAogCQkxNDczNDFEMzFE
QzAyRTZEMDBBQTI5QkEgLyogUHJvZ3JhbUV4ZWN1dGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJvZ3JhbUV4ZWN1dGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTQ3MzQxRDUxREMwMkVCOTAwQUEyOUJBIC8qIE1vZHVsZVByb2dyYW1FeGVjdXRh
YmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVByb2dyYW1FeGVj
dXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0MUQ3MURDMDJGOTkw
MEFBMjlCQSAvKiBGdW5jdGlvbkV4ZWN1dGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRnVuY3Rpb25FeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTE0NzM0MUQ5MURDMDMwMDEwMEFBMjlCQSAvKiBXZWJBc3NlbWJseUV4ZWN1dGFibGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0MURCMURDMkNFOTYwMEFBMjlCQSAv
KiBFdmFsRXhlY3V0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFdmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0
MURDMURDMkNFOTYwMEFBMjlCQSAvKiBGdW5jdGlvbkV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3MzQxREQxREMyQ0U5NjAwQUEyOUJBIC8qIE1vZHVs
ZVByb2dyYW1FeGVjdXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTQ3MzQxREUxREMyQ0U5NjAwQUEyOUJBIC8qIE5hdGl2ZUV4ZWN1dGFibGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF0aXZlRXhlY3V0YWJsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0MURGMURDMkNFOTYwMEFBMjlCQSAv
KiBQcm9ncmFtRXhlY3V0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQcm9ncmFtRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0NzM0MUUwMURDMkNFOTYwMEFBMjlCQSAvKiBTY3JpcHRFeGVjdXRhYmxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEV4ZWN1dGFibGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDczNDFFMTFEQzJDRTk2MDBBQTI5QkEgLyogV2Vi
QXNzZW1ibHlFeGVjdXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE0NzM0MUU5MURDMkNGMjUwMEFBMjlCQSAvKiBFeGVjdXRhYmxlQmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGVjdXRhYmxlQmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0N0I4M0FBMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRj
aGVkVHJhbnNpdGlvbk9wdGltaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDdCODQ2MjBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1dFByb3BlcnR5U2xvdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMzUyMywxMSArMzUxNyw5IEBACiAJCTE0QUQ5MTA4MURDQTky
OTQwMDE0RjlGRSAvKiBHbG9iYWxDb2RlQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gR2xvYmFsQ29kZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0QUQ5MTA5MURDQTkyOTQwMDE0RjlGRSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZVByb2dyYW1Db2RlQmxvY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRBRDkxMEExRENBOTI5NDAwMTRGOUZFIC8q
IFByb2dyYW1Db2RlQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Z3JhbUNvZGVCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNEFEOTEwQjFE
Q0E5Mjk0MDAxNEY5RkUgLyogV2ViQXNzZW1ibHlDb2RlQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXNzZW1ibHlDb2RlQmxvY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRBRDkxMTIxRENBOTdGRDAwMTRGOUZFIC8qIEV2YWxDb2RlQmxvY2su
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZhbENvZGVCbG9jay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUQ5MTEzMURDQTk3RkQwMDE0RjlG
RSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IE1vZHVsZVByb2dyYW1Db2RlQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxNEFEOTExNDFEQ0E5N0ZEMDAxNEY5RkUgLyogUHJvZ3JhbUNvZGVCbG9j
ay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9ncmFtQ29kZUJs
b2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTRBRDkxMTUxRENBOTdGRDAw
MTRGOUZFIC8qIFdlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRBRDkxMTYxRENBOTdGRDAwMTRGOUZFIC8qIEZ1bmN0aW9uQ29kZUJs
b2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uQ29k
ZUJsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRBRDkxMUMxRENBOUZB
NDAwMTRGOUZFIC8qIFVubGlua2VkR2xvYmFsQ29kZUJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFVubGlua2VkR2xvYmFsQ29kZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0QUQ5MTFEMURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVubGlua2Vk
RnVuY3Rpb25Db2RlQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY2NjAs
OCArNjY1Miw2IEBACiAJCQkJNzA5RkI4NjQxQUUzMzVDNjAwMzlEMDY5IC8qIFdlYWtTZXRDb25z
dHJ1Y3Rvci5oICovLAogCQkJCTcwOUZCODY1MUFFMzM1QzYwMDM5RDA2OSAvKiBXZWFrU2V0UHJv
dG90eXBlLmNwcCAqLywKIAkJCQk3MDlGQjg2NjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vha1NldFBy
b3RvdHlwZS5oICovLAotCQkJCTE0NzM0MUUxMURDMkNFOTYwMEFBMjlCQSAvKiBXZWJBc3NlbWJs
eUV4ZWN1dGFibGUuY3BwICovLAotCQkJCTE0NzM0MUQ5MURDMDMwMDEwMEFBMjlCQSAvKiBXZWJB
c3NlbWJseUV4ZWN1dGFibGUuaCAqLywKIAkJCQlBN0RDQjc3OTEyRTNEOTA1MDA5MTE5NDAgLyog
V3JpdGVCYXJyaWVyLmggKi8sCiAJCQkJQzJCNkQ3NTIxOEEzMzc5MzAwNEE5MzAxIC8qIFdyaXRl
QmFycmllcklubGluZXMuaCAqLywKIAkJCQk4QjQ3RjIzNDM2NkM0QjcyQUM4NTJBN0UgLyogVGVt
cGxhdGVSZWdpc3RyeUtleVRhYmxlLmNwcCAqLywKQEAgLTczMDksOCArNzI5OSw2IEBACiAJCQkJ
MEY0MjZBNDYxNDYwQ0JBQjAwMTMxRjhGIC8qIFZpcnR1YWxSZWdpc3Rlci5oICovLAogCQkJCTBG
OTE5RDIyMTU4NTNDREUwMDRBNEU3RCAvKiBXYXRjaHBvaW50LmNwcCAqLywKIAkJCQkwRjkxOUQy
MzE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5oICovLAotCQkJCTE0QUQ5MTE1MURDQTk3
RkQwMDE0RjlGRSAvKiBXZWJBc3NlbWJseUNvZGVCbG9jay5jcHAgKi8sCi0JCQkJMTRBRDkxMEIx
RENBOTI5NDAwMTRGOUZFIC8qIFdlYkFzc2VtYmx5Q29kZUJsb2NrLmggKi8sCiAJCQkJMTQxNDJF
NTAxQjc5NkVDRTAwRjRCRjRCIC8qIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGJ5dGVjb2RlOwpAQCAtNzgxOCw3ICs3ODA2LDYgQEAKIAkJCQkyNjlE
NjM2RTFCRkJFNUQxMDAxMDFCMUQgLyogRlRMT3V0cHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkVDODUzRTFCREFDREFDMDA4MEZGNzQgLyogQjNVcHNpbG9uVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NTQwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1VzZUNvdW50cy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMTRBRDkxMTExRENBOTI5NDAwMTRGOUZFIC8qIFdlYkFzc2VtYmx5Q29kZUJs
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU0MjFCREFDREFDMDA4MEZGNzQgLyogQjNW
YWxpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NDQxQkRBQ0RBQzAwODBGRjc0IC8q
IEIzVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTQ1MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM1ZhbHVlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC04MTgyLDcgKzgxNjksNiBAQAog
CQkJCTUzRkY3Rjk5MURCRkNEOTAwMEEyNkNDQyAvKiBXYXNtVmFsaWRhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzk3RjQyMTgyMDIxMTkwMDJDOUIyNiAvKiBERkdXYXRjaHBvaW50Q29sbGVj
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRCMkNFODE3NDgzMEEyMDA3QjNDMUIg
LyogREZHV29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0NzM0MURBMURDMDMwMDEwMEFB
MjlCQSAvKiBXZWJBc3NlbWJseUV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDcw
QTQ5MUQ1NDNBOTMwMDZFNzIzMiAvKiBIZWFwQ2VsbElubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTA1MDE4MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRTA1MDE2MUFBOTA5MTEwMEQzM0IzMyAvKiBEaXJlY3RBcmd1bWVudHNP
ZmZzZXQuaCBpbiBIZWFkZXJzICovLApAQCAtOTU1NSw3ICs5NTQxLDYgQEAKIAkJCQkwRkVDODU4
NzFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BlY2lhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVDODU4OTFCREFDREM3MDA4MEZGNzQgLyogQWlyU3BpbGxFdmVyeXRoaW5nLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NThCMUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJTdGFja1Nsb3QuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMTRBRDkxMUExRENBOTdGRDAwMTRGOUZFIC8qIFdlYkFzc2Vt
Ymx5Q29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NThEMUJEQUNEQzcwMDgw
RkY3NCAvKiBBaXJUbXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1OTAxQkRBQ0RDNzAw
ODBGRjc0IC8qIEFpclZhbGlkYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0N0YzOUJEMTA3
RUMzNzYwMDQyN0E0OCAvKiBBcmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTgxMiw3ICs5
Nzk3LDYgQEAKIAkJCQkwRjJCOUNFQTE5RDBCQTdEMDBCMUQxQjUgLyogREZHUGhpQ2hpbGRyZW4u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc4QTk3N0ExNzk3MzhCODAwOURGNzQ0IC8qIERGR1Bs
YW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZCRTBGNzQxNkMxREIwOTAwODJDNUU4IC8qIERG
R1ByZWRpY3Rpb25JbmplY3Rpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDczNDFF
ODFEQzJDRTk2MDBBQTI5QkEgLyogV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRkZDOTVEMTRFRjkwQjMwMEM3MjUzMiAvKiBERkdQcmVkaWN0aW9uUHJvcGFn
YXRpb25QaGFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjNFMDFBQTE5RDM1M0E1MDBGNjFC
N0YgLyogREZHUHJlUG9zdE51bWJlcmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCOUNF
QzE5RDBCQTdEMDBCMUQxQjUgLyogREZHUHJvbW90ZWRIZWFwTG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmNwcAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc0LDggKzc0LDYgQEAKICNpbmNsdWRl
ICJUeXBlUHJvZmlsZXIuaCIKICNpbmNsdWRlICJVbmxpbmtlZEluc3RydWN0aW9uU3RyZWFtLmgi
CiAjaW5jbHVkZSAiVk1JbmxpbmVzLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlDb2RlQmxvY2su
aCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUV4ZWN1dGFibGUuaCIKICNpbmNsdWRlIDx3dGYvQmFn
VG9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1ZGUgPHd0
Zi9TaW1wbGVTdGF0cy5oPgpAQCAtMjM2NCw0MyArMjM2Miw2IEBAIHZvaWQgQ29kZUJsb2NrOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFMKICAgICBoZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5QWxs
b2NhdGVkKG1faW5zdHJ1Y3Rpb25zLnNpemUoKSAqIHNpemVvZihJbnN0cnVjdGlvbikpOwogfQog
Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotQ29kZUJsb2NrOjpDb2RlQmxvY2soVk0qIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFi
bGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBKU0NlbGwoKnZtLCBzdHJ1
Y3R1cmUpCi0gICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QtPnZtKCksIHRoaXMsIGds
b2JhbE9iamVjdCkKLSAgICAsIG1fbnVtQ2FsbGVlTG9jYWxzKDApCi0gICAgLCBtX251bVZhcnMo
MCkKLSAgICAsIG1fc2hvdWxkQWx3YXlzQmVJbmxpbmVkKGZhbHNlKQotI2lmIEVOQUJMRShKSVQp
Ci0gICAgLCBtX2NhcGFiaWxpdHlMZXZlbFN0YXRlKERGRzo6Q2Fubm90Q29tcGlsZSkKLSNlbmRp
ZgotICAgICwgbV9kaWRGYWlsSklUQ29tcGlsYXRpb24oZmFsc2UpCi0gICAgLCBtX2RpZEZhaWxG
VExDb21waWxhdGlvbihmYWxzZSkKLSAgICAsIG1faGFzQmVlbkNvbXBpbGVkV2l0aEZUTChmYWxz
ZSkKLSAgICAsIG1faXNDb25zdHJ1Y3RvcihmYWxzZSkKLSAgICAsIG1faXNTdHJpY3RNb2RlKGZh
bHNlKQotICAgICwgbV9jb2RlVHlwZShGdW5jdGlvbkNvZGUpCi0gICAgLCBtX2hhc0RlYnVnZ2Vy
U3RhdGVtZW50KGZhbHNlKQotICAgICwgbV9zdGVwcGluZ01vZGUoU3RlcHBpbmdNb2RlRGlzYWJs
ZWQpCi0gICAgLCBtX251bUJyZWFrcG9pbnRzKDApCi0gICAgLCBtX293bmVyRXhlY3V0YWJsZSht
X2dsb2JhbE9iamVjdC0+dm0oKSwgdGhpcywgb3duZXJFeGVjdXRhYmxlKQotICAgICwgbV92bSh2
bSkKLSAgICAsIG1fb3NyRXhpdENvdW50ZXIoMCkKLSAgICAsIG1fb3B0aW1pemF0aW9uRGVsYXlD
b3VudGVyKDApCi0gICAgLCBtX3Jlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyKDApCi0gICAgLCBt
X2NyZWF0aW9uVGltZShzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKSkKLXsKLSAgICBB
U1NFUlQoaGVhcCgpLT5pc0RlZmVycmVkKCkpOwotfQotCi12b2lkIENvZGVCbG9jazo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBXZWJBc3NlbWJseUV4ZWN1dGFibGUqLCBKU0dsb2JhbE9iamVjdCop
Ci17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotCi0gICAgaGVhcCgpLT5tX2NvZGVC
bG9ja3MtPmFkZCh0aGlzKTsKLX0KLSNlbmRpZgotCiBDb2RlQmxvY2s6On5Db2RlQmxvY2soKQog
ewogICAgIGlmIChtX3ZtLT5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpCkBAIC0yODE3LDExICsyNzc4
LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmNsZWFyTExJbnRHZXRCeUlkQ2FjaGUoSQogCiB2b2lkIENv
ZGVCbG9jazo6ZmluYWxpemVMTEludElubGluZUNhY2hlcygpCiB7Ci0jaWYgRU5BQkxFKFdFQkFT
U0VNQkxZKQotICAgIGlmIChtX293bmVyRXhlY3V0YWJsZS0+aXNXZWJBc3NlbWJseUV4ZWN1dGFi
bGUoKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCi0KICAgICBJbnRlcnByZXRlciogaW50ZXJw
cmV0ZXIgPSBtX3ZtLT5pbnRlcnByZXRlcjsKICAgICBjb25zdCBWZWN0b3I8dW5zaWduZWQ+JiBw
cm9wZXJ0eUFjY2Vzc0luc3RydWN0aW9ucyA9IG1fdW5saW5rZWRDb2RlLT5wcm9wZXJ0eUFjY2Vz
c0luc3RydWN0aW9ucygpOwogICAgIGZvciAoc2l6ZV90IHNpemUgPSBwcm9wZXJ0eUFjY2Vzc0lu
c3RydWN0aW9ucy5zaXplKCksIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CkBAIC0zMzc2LDExICsz
MzMyLDYgQEAgQ29kZUJsb2NrKiBDb2RlQmxvY2s6OnJlcGxhY2VtZW50KCkKICAgICBpZiAoY2xh
c3NJbmZvID09IE1vZHVsZVByb2dyYW1Db2RlQmxvY2s6OmluZm8oKSkKICAgICAgICAgcmV0dXJu
IGpzQ2FzdDxNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSo+KG93bmVyRXhlY3V0YWJsZSgpKS0+Y29k
ZUJsb2NrKCk7CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaWYgKGNsYXNzSW5mbyA9
PSBXZWJBc3NlbWJseUNvZGVCbG9jazo6aW5mbygpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSNlbmRpZgotCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KQEAgLTM0MDQsMTEgKzMzNTUsNiBAQCBERkc6OkNhcGFiaWxpdHlMZXZlbCBD
b2RlQmxvY2s6OmNvbXB1dGVDCiAgICAgaWYgKGNsYXNzSW5mbyA9PSBNb2R1bGVQcm9ncmFtQ29k
ZUJsb2NrOjppbmZvKCkpCiAgICAgICAgIHJldHVybiBERkc6OnByb2dyYW1DYXBhYmlsaXR5TGV2
ZWwodGhpcyk7CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaWYgKGNsYXNzSW5mbyA9
PSBXZWJBc3NlbWJseUNvZGVCbG9jazo6aW5mbygpKQotICAgICAgICByZXR1cm4gREZHOjpDYW5u
b3RDb21waWxlOwotI2VuZGlmCi0KICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBERkc6OkNhbm5vdENvbXBpbGU7CiB9CkBAIC00MDgwLDEwICs0MDI2LDYgQEAg
dm9pZCBDb2RlQmxvY2s6OnVwZGF0ZUFsbEFycmF5UHJlZGljdGlvbgogCiB2b2lkIENvZGVCbG9j
azo6dXBkYXRlQWxsUHJlZGljdGlvbnMoKQogewotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAg
ICBpZiAobV9vd25lckV4ZWN1dGFibGUtPmlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKCkpCi0gICAg
ICAgIHJldHVybjsKLSNlbmRpZgogICAgIHVwZGF0ZUFsbFZhbHVlUHJvZmlsZVByZWRpY3Rpb25z
KCk7CiAgICAgdXBkYXRlQWxsQXJyYXlQcmVkaWN0aW9ucygpOwogfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMjA5NDA3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTksMTUgKzExOSw5IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBDb2RlQmxvY2so
Vk0qLCBTdHJ1Y3R1cmUqLCBDb3B5UGFyc2VkQmxvY2tUYWcsIENvZGVCbG9jayYgb3RoZXIpOwog
ICAgIENvZGVCbG9jayhWTSosIFN0cnVjdHVyZSosIFNjcmlwdEV4ZWN1dGFibGUqIG93bmVyRXhl
Y3V0YWJsZSwgVW5saW5rZWRDb2RlQmxvY2sqLCBKU1Njb3BlKiwgUGFzc1JlZlB0cjxTb3VyY2VQ
cm92aWRlcj4sIHVuc2lnbmVkIHNvdXJjZU9mZnNldCwgdW5zaWduZWQgZmlyc3RMaW5lQ29sdW1u
T2Zmc2V0KTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgQ29kZUJsb2NrKFZNKiwgU3Ry
dWN0dXJlKiwgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIEpTR2xvYmFs
T2JqZWN0Kik7Ci0jZW5kaWYKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBDb3B5UGFy
c2VkQmxvY2tUYWcsIENvZGVCbG9jayYgb3RoZXIpOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJsb2Nr
KiwgSlNTY29wZSopOwotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIEpTR2xv
YmFsT2JqZWN0Kik7Ci0jZW5kaWYKIAogICAgIFdyaXRlQmFycmllcjxKU0dsb2JhbE9iamVjdD4g
bV9nbG9iYWxPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9X
ZWJBc3NlbWJseUNvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcAkocmV2aXNpb24gMjA5NDA3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA4LTIwMTAsIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBad2FyaWNoIDxjd3p3YXJpY2hAdXdhdGVybG9vLmNh
PgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5Q29kZUJsb2NrLmgiCi0KLW5hbWVzcGFj
ZSBKU0MgewotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotY29uc3QgQ2xhc3NJbmZvIFdlYkFz
c2VtYmx5Q29kZUJsb2NrOjpzX2luZm8gPSB7Ci0gICAgIldlYkFzc2VtYmx5Q29kZUJsb2NrIiwg
JkJhc2U6OnNfaW5mbywgMCwKLSAgICBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5Q29k
ZUJsb2NrKQotfTsKLQotdm9pZCBXZWJBc3NlbWJseUNvZGVCbG9jazo6ZGVzdHJveShKU0NlbGwq
IGNlbGwpCi17Ci0gICAganNDYXN0PFdlYkFzc2VtYmx5Q29kZUJsb2NrKj4oY2VsbCktPn5XZWJB
c3NlbWJseUNvZGVCbG9jaygpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dlYkFzc2VtYmx5Q29kZUJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dlYkFzc2VtYmx5
Q29kZUJsb2NrLmgJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9XZWJBc3NlbWJseUNvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2FtZXJvbiBad2FyaWNoIDxjd3p3
YXJpY2hAdXdhdGVybG9vLmNhPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb2RlQmxvY2suaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1jbGFzcyBXZWJBc3NlbWJseUNv
ZGVCbG9jayA6IHB1YmxpYyBDb2RlQmxvY2sgewotcHVibGljOgotICAgIHR5cGVkZWYgQ29kZUJs
b2NrIEJhc2U7Ci0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgc3RhdGljIFdlYkFzc2VtYmx5Q29k
ZUJsb2NrKiBjcmVhdGUoVk0qIHZtLCBDb3B5UGFyc2VkQmxvY2tUYWcsIFdlYkFzc2VtYmx5Q29k
ZUJsb2NrJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIFdlYkFzc2VtYmx5Q29kZUJsb2NrKiBpbnN0
YW5jZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5Q29kZUJsb2NrPih2
bS0+aGVhcCkpCi0gICAgICAgICAgICBXZWJBc3NlbWJseUNvZGVCbG9jayh2bSwgdm0tPndlYkFz
c2VtYmx5Q29kZUJsb2NrU3RydWN0dXJlLmdldCgpLCBDb3B5UGFyc2VkQmxvY2ssIG90aGVyKTsK
LSAgICAgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0aW9uKCp2bSwgQ29weVBhcnNlZEJsb2NrLCBv
dGhlcik7Ci0gICAgICAgIHJldHVybiBpbnN0YW5jZTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgV2Vi
QXNzZW1ibHlDb2RlQmxvY2sqIGNyZWF0ZShWTSogdm0sIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSog
b3duZXJFeGVjdXRhYmxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIHsKLSAg
ICAgICAgV2ViQXNzZW1ibHlDb2RlQmxvY2sqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8V2ViQXNzZW1ibHlDb2RlQmxvY2s+KHZtLT5oZWFwKSkKLSAgICAgICAgICAgIFdl
YkFzc2VtYmx5Q29kZUJsb2NrKHZtLCB2bS0+d2ViQXNzZW1ibHlDb2RlQmxvY2tTdHJ1Y3R1cmUu
Z2V0KCksIG93bmVyRXhlY3V0YWJsZSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgaW5zdGFuY2Ut
PmZpbmlzaENyZWF0aW9uKCp2bSwgb3duZXJFeGVjdXRhYmxlLCBnbG9iYWxPYmplY3QpOwotICAg
ICAgICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfQotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhDZWxsVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBXZWJBc3NlbWJseUNvZGVCbG9j
ayhWTSogdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBDb3B5UGFyc2VkQmxvY2tUYWcsIFdlYkFz
c2VtYmx5Q29kZUJsb2NrJiBvdGhlcikKLSAgICAgICAgOiBDb2RlQmxvY2sodm0sIHN0cnVjdHVy
ZSwgQ29weVBhcnNlZEJsb2NrLCBvdGhlcikKLSAgICB7Ci0gICAgfQotCi0gICAgV2ViQXNzZW1i
bHlDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2ViQXNzZW1ibHlFeGVj
dXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0g
ICAgICAgIDogQ29kZUJsb2NrKHZtLCBzdHJ1Y3R1cmUsIG93bmVyRXhlY3V0YWJsZSwgZ2xvYmFs
T2JqZWN0KQotICAgIHsKLSAgICB9Ci0KLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCop
OwotfTsKLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsMTAgKzQ0LDYgQEAgYm9vbCBpc1N1cHBvcnRlZCgpCiAKIGJvb2wgaXNTdXBw
b3J0ZWRGb3JJbmxpbmluZyhDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi0gICAgaWYgKGNvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCktPmlzV2ViQXNz
ZW1ibHlFeGVjdXRhYmxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogICAgIHJl
dHVybiBjb2RlQmxvY2stPm93bmVyU2NyaXB0RXhlY3V0YWJsZSgpLT5pc0lubGluaW5nQ2FuZGlk
YXRlKCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ3
LDE2ICs0NDcsNiBAQCBib29sIEludGVycHJldGVyOjppc09wY29kZShPcGNvZGUgb3Bjb2RlCiAj
ZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBib29sIGlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKEV4
ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlKQotewotI2lmICFFTkFCTEUoV0VCQVNTRU1CTFkpCi0g
ICAgVU5VU0VEX1BBUkFNKGV4ZWN1dGFibGUpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbHNlCi0g
ICAgcmV0dXJuIGV4ZWN1dGFibGUtPmlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKCk7Ci0jZW5kaWYK
LX0KLQogY2xhc3MgR2V0U3RhY2tUcmFjZUZ1bmN0b3IgewogcHVibGljOgogICAgIEdldFN0YWNr
VHJhY2VGdW5jdG9yKFZNJiB2bSwgVmVjdG9yPFN0YWNrRnJhbWU+JiByZXN1bHRzLCBzaXplX3Qg
ZnJhbWVzVG9Ta2lwLCBzaXplX3QgY2FwYWNpdHkpCkBAIC00NzcsNyArNDY3LDYgQEAgcHVibGlj
OgogCiAgICAgICAgIGlmIChtX3JlbWFpbmluZ0NhcGFjaXR5Rm9yRnJhbWVDYXB0dXJlKSB7CiAg
ICAgICAgICAgICBpZiAodmlzaXRvci0+aXNKU0ZyYW1lKCkKLSAgICAgICAgICAgICAgICAmJiAh
aXNXZWJBc3NlbWJseUV4ZWN1dGFibGUodmlzaXRvci0+Y29kZUJsb2NrKCktPm93bmVyRXhlY3V0
YWJsZSgpKQogICAgICAgICAgICAgICAgICYmICF2aXNpdG9yLT5jb2RlQmxvY2soKS0+dW5saW5r
ZWRDb2RlQmxvY2soKS0+aXNCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAgIFN0
YWNrRnJhbWUgcyA9IHsKICAgICAgICAgICAgICAgICAgICAgU3Ryb25nPEpTT2JqZWN0PihtX3Zt
LCB2aXNpdG9yLT5jYWxsZWUoKSksCkBAIC02MTksNyArNjA4LDcgQEAgcHVibGljOgogCiAgICAg
ICAgIG1faGFuZGxlciA9IG51bGxwdHI7CiAgICAgICAgIGlmICghbV9pc1Rlcm1pbmF0aW9uKSB7
Ci0gICAgICAgICAgICBpZiAobV9jb2RlQmxvY2sgJiYgIWlzV2ViQXNzZW1ibHlFeGVjdXRhYmxl
KG1fY29kZUJsb2NrLT5vd25lckV4ZWN1dGFibGUoKSkpCisgICAgICAgICAgICBpZiAobV9jb2Rl
QmxvY2spCiAgICAgICAgICAgICAgICAgbV9oYW5kbGVyID0gZmluZEV4Y2VwdGlvbkhhbmRsZXIo
dmlzaXRvciwgbV9jb2RlQmxvY2ssIFJlcXVpcmVkSGFuZGxlcjo6QW55SGFuZGxlcik7CiAgICAg
ICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw2IEBACiAjaW5jbHVkZSAi
VGVzdFJ1bm5lclV0aWxzLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9nLmgiCiAjaW5jbHVk
ZSAiVk1JbmxpbmVzLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKICNpbmNs
dWRlIDx3dGYvSW5saW5lQVNNLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtODk1LDE4ICs4OTQs
NiBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpCiAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2sgPSAwOwogICAgIGlmIChleGVjdXRhYmxlLT5pc0hvc3RGdW5jdGlvbigp
KSB7CiAgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKGtpbmQsIE11
c3RDaGVja0FyaXR5KTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgfSBlbHNlIGlmIChl
eGVjdXRhYmxlLT5pc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSgpKSB7Ci0gICAgICAgIFdlYkFzc2Vt
Ymx5RXhlY3V0YWJsZSogd2ViQXNzZW1ibHlFeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8V2ViQXNz
ZW1ibHlFeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSk7Ci0gICAgICAgIGNvZGVCbG9jayA9IHdlYkFz
c2VtYmx5RXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9yQ2FsbCgpOwotICAgICAgICBBU1NFUlQoY29k
ZUJsb2NrKTsKLSAgICAgICAgQXJpdHlDaGVja01vZGUgYXJpdHk7Ci0gICAgICAgIGlmIChleGVj
Q2FsbGVlLT5hcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIDwgc3RhdGljX2Nhc3Q8c2l6ZV90
Pihjb2RlQmxvY2stPm51bVBhcmFtZXRlcnMoKSkpCi0gICAgICAgICAgICBhcml0eSA9IE11c3RD
aGVja0FyaXR5OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcml0eSA9IEFyaXR5Q2hlY2tO
b3RSZXF1aXJlZDsKLSAgICAgICAgY29kZVB0ciA9IHdlYkFzc2VtYmx5RXhlY3V0YWJsZS0+ZW50
cnlwb2ludEZvcihraW5kLCBhcml0eSk7Ci0jZW5kaWYKICAgICB9IGVsc2UgewogICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0
aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogCkBAIC0xMDE1LDM3ICsxMDAyLDIyIEBAIGlu
bGluZSBTbG93UGF0aFJldHVyblR5cGUgdmlydHVhbEZvcldpdGgKICAgICBKU1Njb3BlKiBzY29w
ZSA9IGZ1bmN0aW9uLT5zY29wZVVuY2hlY2tlZCgpOwogICAgIEV4ZWN1dGFibGVCYXNlKiBleGVj
dXRhYmxlID0gZnVuY3Rpb24tPmV4ZWN1dGFibGUoKTsKICAgICBpZiAoVU5MSUtFTFkoIWV4ZWN1
dGFibGUtPmhhc0pJVENvZGVGb3Ioa2luZCkpKSB7Ci0gICAgICAgIGJvb2wgaXNXZWJBc3NlbWJs
eUV4ZWN1dGFibGUgPSBmYWxzZTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgIGlz
V2ViQXNzZW1ibHlFeGVjdXRhYmxlID0gZXhlY3V0YWJsZS0+aXNXZWJBc3NlbWJseUV4ZWN1dGFi
bGUoKTsKLSNlbmRpZgotICAgICAgICBpZiAoIWlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKSB7Ci0g
ICAgICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRp
Y19jYXN0PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOworICAgICAgICBGdW5jdGlv
bkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0aW9uRXhl
Y3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogCi0gICAgICAgICAgICBpZiAoIWlzQ2FsbChraW5kKSAm
JiBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvbnN0cnVjdEFiaWxpdHkoKSA9PSBDb25zdHJ1Y3RBYmls
aXR5OjpDYW5ub3RDb25zdHJ1Y3QpIHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihl
eGVjLCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihleGVjLCBmdW5jdGlv
bikpOwotICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoCi0gICAgICAgICAgICAg
ICAgICAgIHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVy
YXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksCi0gICAgICAgICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwotICAgICAgICAgICAgfQorICAg
ICAgICBpZiAoIWlzQ2FsbChraW5kKSAmJiBmdW5jdGlvbkV4ZWN1dGFibGUtPmNvbnN0cnVjdEFi
aWxpdHkoKSA9PSBDb25zdHJ1Y3RBYmlsaXR5OjpDYW5ub3RDb25zdHJ1Y3QpIHsKKyAgICAgICAg
ICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEFDb25zdHJ1Y3Rv
ckVycm9yKGV4ZWMsIGZ1bmN0aW9uKSk7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0
KAorICAgICAgICAgICAgICAgIHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxT
bG93UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksCisgICAgICAgICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1lKSk7CisgICAgICAgIH0K
IAotICAgICAgICAgICAgQ29kZUJsb2NrKiogY29kZUJsb2NrU2xvdCA9IGV4ZWNDYWxsZWUtPmFk
ZHJlc3NPZkNvZGVCbG9jaygpOwotICAgICAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVuY3Rp
b25FeGVjdXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uPEZ1bmN0aW9uRXhlY3V0YWJsZT4oKnZt
LCBmdW5jdGlvbiwgc2NvcGUsIGtpbmQsICpjb2RlQmxvY2tTbG90KTsKLSAgICAgICAgICAgIGlm
IChlcnJvcikgewotICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHRocm93U2Nv
cGUsIGVycm9yKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KAotICAgICAg
ICAgICAgICAgICAgICB2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xvd1Bh
dGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAotICAgICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgICAg
ICBpZiAoIWlzQ2FsbChraW5kKSkgewotICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGV4
ZWMsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEFDb25zdHJ1Y3RvckVycm9yKGV4ZWMsIGZ1bmN0aW9u
KSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdCgKLSAgICAgICAgICAgICAg
ICAgICAgdm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJh
dG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKLSAgICAgICAgICAgICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1lKSk7Ci0gICAgICAgICAgICB9Ci0jZW5k
aWYKKyAgICAgICAgQ29kZUJsb2NrKiogY29kZUJsb2NrU2xvdCA9IGV4ZWNDYWxsZWUtPmFkZHJl
c3NPZkNvZGVCbG9jaygpOworICAgICAgICBKU09iamVjdCogZXJyb3IgPSBmdW5jdGlvbkV4ZWN1
dGFibGUtPnByZXBhcmVGb3JFeGVjdXRpb248RnVuY3Rpb25FeGVjdXRhYmxlPigqdm0sIGZ1bmN0
aW9uLCBzY29wZSwga2luZCwgKmNvZGVCbG9ja1Nsb3QpOworICAgICAgICBpZiAoZXJyb3IpIHsK
KyAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHRocm93U2NvcGUsIGVycm9yKTsKKyAg
ICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoCisgICAgICAgICAgICAgICAgdm0tPmdldENU
SVN0dWIodGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKSwKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQq
PihLZWVwVGhlRnJhbWUpKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZW5jb2RlUmVz
dWx0KGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1JlcGF0Y2guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvUmVwYXRjaC5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDYgQEAKICNpbmNs
dWRlICJTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgiCiAjaW5jbHVkZSAiU3RydWN0
dXJlU3R1YkluZm8uaCIKICNpbmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKLSNpbmNsdWRlICJX
ZWJBc3NlbWJseUNvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KQEAgLTcxNCwxMiArNzEzLDcgQEAgdm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKAogICAgICAg
ICAgICAgY29kZUJsb2NrID0gbnVsbHB0cjsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBF
eGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9IHZhcmlhbnQuZXhlY3V0YWJsZSgpOwotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgICAgIGlmIChleGVjdXRhYmxlLT5pc1dlYkFzc2Vt
Ymx5RXhlY3V0YWJsZSgpKQotICAgICAgICAgICAgICAgIGNvZGVCbG9jayA9IGpzQ2FzdDxXZWJB
c3NlbWJseUV4ZWN1dGFibGUqPihleGVjdXRhYmxlKS0+Y29kZUJsb2NrRm9yQ2FsbCgpOwotICAg
ICAgICAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgICAgICAgICAgY29kZUJsb2NrID0ganNDYXN0
PEZ1bmN0aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpLT5jb2RlQmxvY2tGb3JDYWxsKCk7Cisg
ICAgICAgICAgICBjb2RlQmxvY2sgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0
YWJsZSktPmNvZGVCbG9ja0ZvckNhbGwoKTsKICAgICAgICAgICAgIC8vIElmIHdlIGNhbm5vdCBo
YW5kbGUgYSBjYWxsZWUsIGVpdGhlciBiZWNhdXNlIHdlIGRvbid0IGhhdmUgYSBDb2RlQmxvY2sg
b3IgYmVjYXVzZSBhcml0eSBtaXNtYXRjaCwKICAgICAgICAgICAgIC8vIGFzc3VtZSB0aGF0IGl0
J3MgYmV0dGVyIGZvciB0aGlzIHdob2xlIHRoaW5nIHRvIGJlIGEgdmlydHVhbCBjYWxsLgogICAg
ICAgICAgICAgaWYgKCFjb2RlQmxvY2sgfHwgZXhlYy0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1Ro
aXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpIHx8
IGNhbGxMaW5rSW5mby5pc1ZhcmFyZ3MoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02Niw3ICs2Niw2IEBACiAjaW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZVJhcmVEYXRhSW5saW5lcy5oIgogI2luY2x1ZGUgIlZNSW5saW5lcy5oIgotI2lu
Y2x1ZGUgIldlYkFzc2VtYmx5Q29kZUJsb2NrLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKQEAgLTEyOTIsMTQg
KzEyOTEsOSBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVjCiAKICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cjsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9j
ayA9IDA7Ci0gICAgYm9vbCBpc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSA9IGZhbHNlOwotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICBpc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSA9IGV4ZWN1dGFi
bGUtPmlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKCk7Ci0jZW5kaWYKLQogICAgIGlmIChleGVjdXRh
YmxlLT5pc0hvc3RGdW5jdGlvbigpKSB7CiAgICAgICAgIGNvZGVQdHIgPSBleGVjdXRhYmxlLT5l
bnRyeXBvaW50Rm9yKGtpbmQsIE11c3RDaGVja0FyaXR5KTsKLSAgICB9IGVsc2UgaWYgKCFpc1dl
YkFzc2VtYmx5RXhlY3V0YWJsZSkgeworICAgIH0gZWxzZSB7CiAgICAgICAgIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZnVuY3Rpb25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRh
YmxlKj4oZXhlY3V0YWJsZSk7CiAKICAgICAgICAgaWYgKCFpc0NhbGwoa2luZCkgJiYgZnVuY3Rp
b25FeGVjdXRhYmxlLT5jb25zdHJ1Y3RBYmlsaXR5KCkgPT0gQ29uc3RydWN0QWJpbGl0eTo6Q2Fu
bm90Q29uc3RydWN0KQpAQCAtMTMxOCwyMCArMTMxMiw4IEBAIGlubGluZSBTbG93UGF0aFJldHVy
blR5cGUgc2V0VXBDYWxsKEV4ZWMKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYXJpdHkgPSBB
cml0eUNoZWNrTm90UmVxdWlyZWQ7CiAgICAgICAgIGNvZGVQdHIgPSBmdW5jdGlvbkV4ZWN1dGFi
bGUtPmVudHJ5cG9pbnRGb3Ioa2luZCwgYXJpdHkpOwotICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQotICAgICAgICBXZWJBc3NlbWJseUV4ZWN1dGFibGUqIHdlYkFzc2VtYmx5
RXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PFdlYkFzc2VtYmx5RXhlY3V0YWJsZSo+KGV4ZWN1dGFi
bGUpOwotICAgICAgICBjb2RlQmxvY2sgPSB3ZWJBc3NlbWJseUV4ZWN1dGFibGUtPmNvZGVCbG9j
a0ZvckNhbGwoKTsKLSAgICAgICAgQVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgICAgIEFyaXR5Q2hl
Y2tNb2RlIGFyaXR5OwotICAgICAgICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1
ZGluZ1RoaXMoKSA8IHN0YXRpY19jYXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJz
KCkpKQotICAgICAgICAgICAgYXJpdHkgPSBNdXN0Q2hlY2tBcml0eTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgYXJpdHkgPSBBcml0eUNoZWNrTm90UmVxdWlyZWQ7Ci0gICAgICAgIGNvZGVQ
dHIgPSB3ZWJBc3NlbWJseUV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3Ioa2luZCwgYXJpdHkpOwot
I2VuZGlmCiAgICAgfQotICAgIAorCiAgICAgQVNTRVJUKCEhY29kZVB0cik7CiAgICAgCiAgICAg
aWYgKCFMTElOVF9BTFdBWVNfQUNDRVNTX1NMT1cgJiYgY2FsbExpbmtJbmZvKSB7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlQmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuY3BwCShy
ZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDE0ICs4OSw2IEBAIHZvaWQgRXhlY3V0
YWJsZUJhc2U6OmNsZWFyQ29kZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGlmIChjbGFzc0luZm8oKSA9PSBXZWJBc3NlbWJseUV4
ZWN1dGFibGU6OmluZm8oKSkgewotICAgICAgICBXZWJBc3NlbWJseUV4ZWN1dGFibGUqIGV4ZWN1
dGFibGUgPSBqc0Nhc3Q8V2ViQXNzZW1ibHlFeGVjdXRhYmxlKj4odGhpcyk7Ci0gICAgICAgIGV4
ZWN1dGFibGUtPm1fY29kZUJsb2NrRm9yQ2FsbC5jbGVhcigpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotI2VuZGlmCi0KICAgICBBU1NFUlQoY2xhc3NJbmZvKCkgPT0gTmF0aXZlRXhlY3V0YWJs
ZTo6aW5mbygpKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhl
Y3V0YWJsZUJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlQmFzZS5oCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1
MCw2IEBAIGNsYXNzIEpTV2ViQXNzZW1ibHlNb2R1bGU7CiBjbGFzcyBMTEludE9mZnNldHNFeHRy
YWN0b3I7CiBjbGFzcyBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrOwogY2xhc3MgUHJvZ3JhbUNvZGVC
bG9jazsKLWNsYXNzIFdlYkFzc2VtYmx5Q29kZUJsb2NrOwogCiBlbnVtIENvbXBpbGF0aW9uS2lu
ZCB7IEZpcnN0Q29tcGlsYXRpb24sIE9wdGltaXppbmdDb21waWxhdGlvbiB9OwogCkBAIC0xMTUs
MTMgKzExNCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbnVtUGFyYW1ldGVyc0ZvckNh
bGwgPT0gTlVNX1BBUkFNRVRFUlNfSVNfSE9TVDsKICAgICB9CiAKLSNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCi0gICAgYm9vbCBpc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gdHlwZSgpID09IFdlYkFzc2VtYmx5RXhlY3V0YWJsZVR5cGU7Ci0gICAg
fQotI2VuZGlmCi0KICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSB7IHJldHVybiBT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90bywgVHlwZUluZm8oQ2VsbFR5
cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsgfQogICAgICAgICAKICAgICB2b2lkIGNsZWFy
Q29kZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxNiArNzQsNiBAQCBKU0Z1bmN0
aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUoVk0mIHZtLCBGCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLUpTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0
ZShWTSYgdm0sIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgSlNTY29wZSogc2Nv
cGUpCi17Ci0gICAgSlNGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxKU0Z1bmN0aW9uPih2bS5oZWFwKSkgSlNGdW5jdGlvbih2bSwgZXhlY3V0YWJsZSwgc2Nv
cGUpOwotICAgIEFTU0VSVChmdW5jdGlvbi0+c3RydWN0dXJlKHZtKS0+Z2xvYmFsT2JqZWN0KCkp
OwotICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmV0dXJuIGZ1bmN0aW9u
OwotfQotI2VuZGlmCi0KIEpTRnVuY3Rpb24qIEpTRnVuY3Rpb246OmNyZWF0ZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgTmF0aXZlRnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIEludHJpbnNpYyBpbnRyaW5zaWMsIE5h
dGl2ZUZ1bmN0aW9uIG5hdGl2ZUNvbnN0cnVjdG9yLCBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSog
c2lnbmF0dXJlKQogewogICAgIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSB2bS5nZXRI
b3N0RnVuY3Rpb24obmF0aXZlRnVuY3Rpb24sIGludHJpbnNpYywgbmF0aXZlQ29uc3RydWN0b3Is
IHNpZ25hdHVyZSwgbmFtZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0Z1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAgY2xh
c3MgSlNHbG9iYWxPYmplY3Q7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiBjbGFzcyBO
YXRpdmVFeGVjdXRhYmxlOwogY2xhc3MgU291cmNlQ29kZTsKLWNsYXNzIFdlYkFzc2VtYmx5RXhl
Y3V0YWJsZTsKIGNsYXNzIEludGVybmFsRnVuY3Rpb247CiBuYW1lc3BhY2UgREZHIHsKIGNsYXNz
IFNwZWN1bGF0aXZlSklUOwpAQCAtNzgsOSArNzcsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
SlNGdW5jdGlvbiogY3JlYXRlKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNTY29wZSopOwog
ICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGUoVk0mLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBK
U1Njb3BlKiwgU3RydWN0dXJlKik7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIHN0YXRp
YyBKU0Z1bmN0aW9uKiBjcmVhdGUoVk0mLCBXZWJBc3NlbWJseUV4ZWN1dGFibGUqLCBKU1Njb3Bl
Kik7Ci0jZW5kaWYKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBKU0Z1bmN0aW9uKiBj
cmVhdGVCdWlsdGluRnVuY3Rpb24oVk0mLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBKU0dsb2JhbE9i
amVjdCopOwogICAgIHN0YXRpYyBKU0Z1bmN0aW9uKiBjcmVhdGVCdWlsdGluRnVuY3Rpb24oVk0m
LCBGdW5jdGlvbkV4ZWN1dGFibGUqLCBKU0dsb2JhbE9iamVjdCosIGNvbnN0IFN0cmluZyYgbmFt
ZSk7CkBAIC0xNjAsMTAgKzE1Niw2IEBAIHByb3RlY3RlZDoKICAgICBKU19FWFBPUlRfUFJJVkFU
RSBKU0Z1bmN0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICBKU0Z1
bmN0aW9uKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNTY29wZSosIFN0cnVjdHVyZSopOwog
Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIEpTRnVuY3Rpb24oVk0mLCBXZWJBc3NlbWJs
eUV4ZWN1dGFibGUqLCBKU1Njb3BlKik7Ci0jZW5kaWYKLQogICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oVk0mLCBOYXRpdmVFeGVjdXRhYmxlKiwgaW50IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBuYW1l
KTsKICAgICB1c2luZyBCYXNlOjpmaW5pc2hDcmVhdGlvbjsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5lcy5oCShyZXZpc2lvbiAy
MDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uSW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiRnVuY3Rpb25F
eGVjdXRhYmxlLmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIk5hdGl2ZUV4
ZWN1dGFibGUuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUV4ZWN1dGFibGUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTQ2LDE1ICs0NSw2IEBAIGlubGluZSBKU0Z1bmN0aW9uOjpKU0Z1bmN0
aW9uKFZNJiB2bSwgRnUKIHsKIH0KIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLWlubGluZSBK
U0Z1bmN0aW9uOjpKU0Z1bmN0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiBleGVj
dXRhYmxlLCBKU1Njb3BlKiBzY29wZSkKLSAgICA6IEJhc2Uodm0sIHNjb3BlLCBzY29wZS0+Z2xv
YmFsT2JqZWN0KHZtKS0+ZnVuY3Rpb25TdHJ1Y3R1cmUoKSkKLSAgICAsIG1fZXhlY3V0YWJsZSh2
bSwgdGhpcywgZXhlY3V0YWJsZSkKLSAgICAsIG1fcmFyZURhdGEoKQotewotfQotI2VuZGlmCi0K
IGlubGluZSBGdW5jdGlvbkV4ZWN1dGFibGUqIEpTRnVuY3Rpb246OmpzRXhlY3V0YWJsZSgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKCFpc0hvc3RGdW5jdGlvbk5vbklubGluZSgpKTsKQEAgLTc0LDEw
ICs2NCw2IEBAIGlubGluZSBJbnRyaW5zaWMgSlNGdW5jdGlvbjo6aW50cmluc2ljKCkKIAogaW5s
aW5lIGJvb2wgSlNGdW5jdGlvbjo6aXNCdWlsdGluRnVuY3Rpb24oKSBjb25zdAogewotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAobV9leGVjdXRhYmxlLT5pc1dlYkFzc2VtYmx5RXhl
Y3V0YWJsZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKICAgICByZXR1cm4gIWlz
SG9zdEZ1bmN0aW9uKCkgJiYganNFeGVjdXRhYmxlKCktPmlzQnVpbHRpbkZ1bmN0aW9uKCk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDIwOTQw
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAzLDcgKzEwMyw2IEBACiAjaW5jbHVkZSAiV2F0Y2hkb2cuaCIKICNpbmNsdWRlICJX
ZWFrR0NNYXBJbmxpbmVzLmgiCiAjaW5jbHVkZSAiV2Vha01hcERhdGEuaCIKLSNpbmNsdWRlICJX
ZWJBc3NlbWJseUNvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KICNpbmNsdWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KQEAg
LTIyOSw3ICsyMjgsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUp
CiAgICAgcHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBQcm9ncmFtRXhlY3V0
YWJsZTo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGZ1bmN0aW9u
RXhlY3V0YWJsZVN0cnVjdHVyZS5zZXQoKnRoaXMsIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y3JlYXRl
U3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
LSAgICB3ZWJBc3NlbWJseUV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBXZWJBc3NlbWJs
eUV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICB3
ZWJBc3NlbWJseUNhbGxlZVN0cnVjdHVyZS5zZXQoKnRoaXMsIEpTV2ViQXNzZW1ibHlDYWxsZWU6
OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICNlbmRpZgogICAgIG1vZHVs
ZVByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKQEAgLTI1OSw5ICsy
NTcsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAgbW9k
dWxlUHJvZ3JhbUNvZGVCbG9ja1N0cnVjdHVyZS5zZXQoKnRoaXMsIE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2s6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBldmFsQ29k
ZUJsb2NrU3RydWN0dXJlLnNldCgqdGhpcywgRXZhbENvZGVCbG9jazo6Y3JlYXRlU3RydWN0dXJl
KCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGZ1bmN0aW9uQ29kZUJsb2NrU3RydWN0dXJlLnNl
dCgqdGhpcywgRnVuY3Rpb25Db2RlQmxvY2s6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNO
dWxsKCkpKTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgd2ViQXNzZW1ibHlDb2RlQmxv
Y2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBXZWJBc3NlbWJseUNvZGVCbG9jazo6Y3JlYXRlU3RydWN0
dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwotI2VuZGlmCiAgICAgaGFzaE1hcEJ1Y2tldFNldFN0
cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXk+Ojpj
cmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAgICAgaGFzaE1hcEJ1Y2tldE1h
cFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBCdWNrZXQ8SGFzaE1hcEJ1Y2tldERhdGFLZXlW
YWx1ZT46OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBoYXNoTWFw
SW1wbFNldFN0cnVjdHVyZS5zZXQoKnRoaXMsIEhhc2hNYXBJbXBsPEhhc2hNYXBCdWNrZXQ8SGFz
aE1hcEJ1Y2tldERhdGFLZXk+Pjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMDk0MDcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MDksNyArMzA5LDYgQEAgcHVibGljOgogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IHByb2dyYW1FeGVj
dXRhYmxlU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGZ1bmN0aW9uRXhlY3V0YWJs
ZVN0cnVjdHVyZTsKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgU3Ryb25nPFN0cnVjdHVy
ZT4gd2ViQXNzZW1ibHlFeGVjdXRhYmxlU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+
IHdlYkFzc2VtYmx5Q2FsbGVlU3RydWN0dXJlOwogI2VuZGlmCiAgICAgU3Ryb25nPFN0cnVjdHVy
ZT4gbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmU7CkBAIC0zNDAsNyArMzM5LDYgQEAg
cHVibGljOgogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IG1vZHVsZVByb2dyYW1Db2RlQmxvY2tTdHJ1
Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gZXZhbENvZGVCbG9ja1N0cnVjdHVyZTsKICAg
ICBTdHJvbmc8U3RydWN0dXJlPiBmdW5jdGlvbkNvZGVCbG9ja1N0cnVjdHVyZTsKLSAgICBTdHJv
bmc8U3RydWN0dXJlPiB3ZWJBc3NlbWJseUNvZGVCbG9ja1N0cnVjdHVyZTsKICAgICBTdHJvbmc8
U3RydWN0dXJlPiBoYXNoTWFwQnVja2V0U2V0U3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1
cmU+IGhhc2hNYXBCdWNrZXRNYXBTdHJ1Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gaGFz
aE1hcEltcGxTZXRTdHJ1Y3R1cmU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XZWJBc3NlbWJseUV4ZWN1dGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1dlYkFzc2VtYmx5RXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDIwOTQw
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYkFzc2VtYmx5RXhlY3V0YWJs
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwOSwgMjAxMCwgMjAxMywgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmgi
Ci0jaW5jbHVkZSAiQ29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiRGVidWdnZXIuaCIKLSNpbmNsdWRl
ICJKSVQuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiSlNXZWJBc3NlbWJs
eU1vZHVsZS5oIgotI2luY2x1ZGUgIkxMSW50RW50cnlwb2ludC5oIgotI2luY2x1ZGUgIlBhcnNl
ci5oIgotI2luY2x1ZGUgIlR5cGVQcm9maWxlci5oIgotI2luY2x1ZGUgIlZNSW5saW5lcy5oIgot
I2luY2x1ZGUgIldlYkFzc2VtYmx5Q29kZUJsb2NrLmgiCi0jaW5jbHVkZSA8d3RmL0NvbW1hUHJp
bnRlci5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLWNv
bnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIldlYkFzc2Vt
Ymx5RXhlY3V0YWJsZSIsICZFeGVjdXRhYmxlQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFdlYkFzc2VtYmx5RXhlY3V0YWJsZSkgfTsKLQotV2ViQXNzZW1ibHlFeGVjdXRhYmxl
OjpXZWJBc3NlbWJseUV4ZWN1dGFibGUoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSwgdW5zaWduZWQgZnVuY3Rpb25JbmRleCkKLSAg
ICA6IEV4ZWN1dGFibGVCYXNlKHZtLCB2bS53ZWJBc3NlbWJseUV4ZWN1dGFibGVTdHJ1Y3R1cmUu
Z2V0KCksIE5VTV9QQVJBTUVURVJTX05PVF9DT01QSUxFRCwgTm9JbnRyaW5zaWMpCi0gICAgLCBt
X3NvdXJjZShzb3VyY2UpCi0gICAgLCBtX21vZHVsZSh2bSwgdGhpcywgbW9kdWxlKQotICAgICwg
bV9mdW5jdGlvbkluZGV4KGZ1bmN0aW9uSW5kZXgpCi17Ci0gICAgQVNTRVJUKHNvdXJjZS5wcm92
aWRlcigpLT5zb3VyY2VUeXBlKCkgPT0gU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlOjpXZWJBc3Nl
bWJseSk7Ci19Ci0KLXZvaWQgV2ViQXNzZW1ibHlFeGVjdXRhYmxlOjpkZXN0cm95KEpTQ2VsbCog
Y2VsbCkKLXsKLSAgICBzdGF0aWNfY2FzdDxXZWJBc3NlbWJseUV4ZWN1dGFibGUqPihjZWxsKS0+
V2ViQXNzZW1ibHlFeGVjdXRhYmxlOjp+V2ViQXNzZW1ibHlFeGVjdXRhYmxlKCk7Ci19Ci0KLXZv
aWQgV2ViQXNzZW1ibHlFeGVjdXRhYmxlOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFdlYkFzc2VtYmx5RXhlY3V0YWJsZSo+KGNlbGwpOwotICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBFeGVjdXRhYmxlQmFz
ZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICBpZiAodGhpc09iamVj
dC0+bV9jb2RlQmxvY2tGb3JDYWxsKQotICAgICAgICB0aGlzT2JqZWN0LT5tX2NvZGVCbG9ja0Zv
ckNhbGwtPnZpc2l0V2Vha2x5KHZpc2l0b3IpOwotICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2Jq
ZWN0LT5tX21vZHVsZSk7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWJBc3NlbWJseUV4ZWN1dGFibGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWJBc3NlbWJseUV4ZWN1
dGFibGUuaAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCwgMjAxMy0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRXhlY3V0YWJsZUJhc2UuaCIKLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1jbGFzcyBXZWJBc3Nl
bWJseUV4ZWN1dGFibGUgZmluYWwgOiBwdWJsaWMgRXhlY3V0YWJsZUJhc2UgewotcHVibGljOgot
ICAgIHR5cGVkZWYgRXhlY3V0YWJsZUJhc2UgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IFN0cnVjdHVyZUlzSW1t
b3J0YWw7Ci0KLSAgICBzdGF0aWMgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiBjcmVhdGUoVk0mIHZt
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTV2ViQXNzZW1ibHlNb2R1bGUqIG1vZHVsZSwg
dW5zaWduZWQgZnVuY3Rpb25JbmRleCkKLSAgICB7Ci0gICAgICAgIFdlYkFzc2VtYmx5RXhlY3V0
YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5
RXhlY3V0YWJsZT4odm0uaGVhcCkpIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSh2bSwgc291cmNlLCBt
b2R1bGUsIGZ1bmN0aW9uSW5kZXgpOwotICAgICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlv
bih2bSk7Ci0gICAgICAgIHJldHVybiBleGVjdXRhYmxlOwotICAgIH0KLQotICAgIHN0YXRpYyBT
dHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIEpTVmFsdWUgcHJvdG8pCi0gICAgewotICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKFdlYkFzc2VtYmx5RXhlY3V0
YWJsZVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOwotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgdm9pZCBw
cmVwYXJlRm9yRXhlY3V0aW9uKFZNJik7Ci0KLSAgICBXZWJBc3NlbWJseUNvZGVCbG9jayogY29k
ZUJsb2NrRm9yQ2FsbCgpCi0gICAgewotICAgICAgICByZXR1cm4gbV9jb2RlQmxvY2tGb3JDYWxs
LmdldCgpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgRXhlY3V0YWJsZUJh
c2U7Ci0gICAgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKFZNJiwgY29uc3QgU291cmNlQ29kZSYsIEpT
V2ViQXNzZW1ibHlNb2R1bGUqLCB1bnNpZ25lZCBmdW5jdGlvbkluZGV4KTsKLQotICAgIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKLQotICAgIFNvdXJj
ZUNvZGUgbV9zb3VyY2U7Ci0gICAgV3JpdGVCYXJyaWVyPEpTV2ViQXNzZW1ibHlNb2R1bGU+IG1f
bW9kdWxlOwotICAgIHVuc2lnbmVkIG1fZnVuY3Rpb25JbmRleDsKLQotICAgIFdyaXRlQmFycmll
cjxXZWJBc3NlbWJseUNvZGVCbG9jaz4gbV9jb2RlQmxvY2tGb3JDYWxsOwotfTsKLSNlbmRpZgot
Ci19IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTQwNykKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTEyLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBvbGQgV2FzbSBvYmplY3QgbW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YSk6CisKIDIwMTYtMTItMDYgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFudXA6IFJlbmFtZSBz
b21lIEhUVFAgMC45LXNwZWNpZmljIGZ1bmN0aW9ucyB0byBjb25mb3JtIHRvIFdlYktpdCBDb2Rl
IFN0eWxlIEd1aWRlbGluZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTU1MiwxMCArMTU1Miw2IEBAIFN0cmluZyBJbnRlcm5hbHM6
OnBhcnNlck1ldGFEYXRhKEpTQzo6SlMKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIm1v
ZHVsZSIpOwogICAgIGVsc2UgaWYgKGV4ZWN1dGFibGUtPmlzUHJvZ3JhbUV4ZWN1dGFibGUoKSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInByb2dyYW0iKTsKLSNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi0gICAgZWxzZSBpZiAoZXhlY3V0YWJsZS0+aXNXZWJBc3NlbWJseUV4ZWN1dGFi
bGUoKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIldlYkFzc2VtYmx5Iik7Ci0jZW5k
aWYKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCg==
</data>
<flag name="review"
          id="318762"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296325</attachid>
            <date>2016-12-06 14:46:13 -0800</date>
            <delta_ts>2016-12-06 16:28:26 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>51025</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NDEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDE2LTEyLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBvbGQgV2FzbSBvYmplY3QgbW9kZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTQ4MQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlaXRo
IE1pbGxlciBhbmQgTWFyayBMYW0uCisKKyAgICAgICAgSXQncyBjb25mdXNpbmcgdG8gc2VlIGNv
ZGUgdGhhdCBjb25zdWx0cyBib3RoIHRoZSBvbGQKKyAgICAgICAgV2FzbSBvYmplY3QgbW9kZWwg
YWxvbmdzaWRlIHRoZSBuZXcgb25lLiBUaGUgb2xkIG9iamVjdAorICAgICAgICBtb2RlbCBpcyBu
b3QgYSB0aGluZywgYW5kIGl0J3Mgbm90IGJlaW5nIHVzZWQuIExldCdzCisgICAgICAgIHJlbW92
ZSBpdCBub3cgdG8gcHJldmVudCBmdXJ0aGVyIGNvbmZ1c2lvbi4KKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6
Q29kZUJsb2NrOjpmaW5hbGl6ZUxMSW50SW5saW5lQ2FjaGVzKToKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpyZXBsYWNlbWVudCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Y29tcHV0ZUNh
cGFiaWxpdHlMZXZlbCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6dXBkYXRlQWxsUHJlZGlj
dGlvbnMpOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVj
b2RlL1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBieXRlY29k
ZS9XZWJBc3NlbWJseUNvZGVCbG9jay5oOiBSZW1vdmVkLgorICAgICAgICAqIGRmZy9ERkdDYXBh
YmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmlzU3VwcG9ydGVkRm9ySW5saW5pbmcp
OgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
R2V0U3RhY2tUcmFjZUZ1bmN0b3I6Om9wZXJhdG9yKCkpOgorICAgICAgICAoSlNDOjpVbndpbmRG
dW5jdG9yOjpvcGVyYXRvcigpKToKKyAgICAgICAgKEpTQzo6aXNXZWJBc3NlbWJseUV4ZWN1dGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAg
KiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OmxpbmtQb2x5bW9ycGhpY0NhbGwpOgor
ICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6
OnNldFVwQ2FsbCk6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlQmFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUpOgorICAgICAgICAqIHJ1bnRpbWUv
RXhlY3V0YWJsZUJhc2UuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmlzV2ViQXNz
ZW1ibHlFeGVjdXRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24u
Y3BwOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNGdW5jdGlvbklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNGdW5jdGlvbjo6aXNCdWlsdGlu
RnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6
Vk0pOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKiBydW50aW1lL1dlYkFzc2Vt
Ymx5RXhlY3V0YWJsZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9XZWJBc3NlbWJs
eUV4ZWN1dGFibGUuaDogUmVtb3ZlZC4KKwogMjAxNi0xMi0wNCAgRGFyaW4gQWRsZXIgIDxkYXJp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIEFTQ0lJQ1R5cGUgbW9yZSwgYW5kIGltcHJvdmUg
aXQgYSBsaXR0bGUgYml0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTI1NCw3ICsyNTQsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09V
UkNFUwogICAgIGJ5dGVjb2RlL1ZhcmlhYmxlV3JpdGVGaXJlRGV0YWlsLmNwcAogICAgIGJ5dGVj
b2RlL1ZpcnR1YWxSZWdpc3Rlci5jcHAKICAgICBieXRlY29kZS9XYXRjaHBvaW50LmNwcAotICAg
IGJ5dGVjb2RlL1dlYkFzc2VtYmx5Q29kZUJsb2NrLmNwcAogCiAgICAgYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcAogICAgIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBA
IC04ODcsNyArODg2LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1l
L1dlYWtNYXBQcm90b3R5cGUuY3BwCiAgICAgcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3Bw
CiAgICAgcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNwcAotICAgIHJ1bnRpbWUvV2ViQXNzZW1i
bHlFeGVjdXRhYmxlLmNwcAogCiAgICAgdG9vbHMvQ29kZVByb2ZpbGUuY3BwCiAgICAgdG9vbHMv
Q29kZVByb2ZpbGluZy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA5OSwxNCArMTA5OSwx
MiBAQAogCQkxNDczNDFENDFEQzAyRTZEMDBBQTI5QkEgLyogUHJvZ3JhbUV4ZWN1dGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MUQzMURD
MDJFNkQwMEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NzM0MUQ2MURDMDJFQjkwMEFBMjlCQSAv
KiBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxRDUxREMwMkVCOTAwQUEyOUJBIC8qIE1vZHVsZVByb2dy
YW1FeGVjdXRhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTQ3MzQxRDgxREMwMkY5OTAwQUEyOUJBIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxRDcx
REMwMkY5OTAwQUEyOUJBIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTE0NzM0MURBMURDMDMwMDEwMEFBMjlC
QSAvKiBXZWJBc3NlbWJseUV4ZWN1dGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MUQ5MURDMDMwMDEwMEFBMjlCQSAvKiBXZWJBc3NlbWJs
eUV4ZWN1dGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxNDczNDFFMjFEQzJDRTk2MDBBQTI5QkEgLyogRXZhbEV4ZWN1dGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3MzQxREIxREMy
Q0U5NjAwQUEyOUJBIC8qIEV2YWxFeGVjdXRhYmxlLmNwcCAqLzsgfTsKIAkJMTQ3MzQxRTMxREMy
Q0U5NjAwQUEyOUJBIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDczNDFEQzFEQzJDRTk2MDBBQTI5QkEgLyog
RnVuY3Rpb25FeGVjdXRhYmxlLmNwcCAqLzsgfTsKIAkJMTQ3MzQxRTQxREMyQ0U5NjAwQUEyOUJB
IC8qIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MUREMURDMkNFOTYwMEFBMjlCQSAvKiBNb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZS5jcHAgKi87IH07CiAJCTE0NzM0MUU1MURDMkNFOTYwMEFBMjlCQSAv
KiBOYXRpdmVFeGVjdXRhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0NzM0MURFMURDMkNFOTYwMEFBMjlCQSAvKiBOYXRpdmVFeGVjdXRhYmxl
LmNwcCAqLzsgfTsKIAkJMTQ3MzQxRTYxREMyQ0U5NjAwQUEyOUJBIC8qIFByb2dyYW1FeGVjdXRh
YmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NzM0MURGMURDMkNFOTYwMEFBMjlCQSAvKiBQcm9ncmFtRXhlY3V0YWJsZS5jcHAgKi87IH07CiAJ
CTE0NzM0MUU3MURDMkNFOTYwMEFBMjlCQSAvKiBTY3JpcHRFeGVjdXRhYmxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzM0MUUwMURDMkNFOTYw
MEFBMjlCQSAvKiBTY3JpcHRFeGVjdXRhYmxlLmNwcCAqLzsgfTsKLQkJMTQ3MzQxRTgxREMyQ0U5
NjAwQUEyOUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDczNDFFMTFEQzJDRTk2MDBBQTI5QkEgLyog
V2ViQXNzZW1ibHlFeGVjdXRhYmxlLmNwcCAqLzsgfTsKIAkJMTQ3MzQxRUExREMyQ0YyNTAwQUEy
OUJBIC8qIEV4ZWN1dGFibGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0NzM0MUU5MURDMkNGMjUwMEFBMjlCQSAvKiBFeGVjdXRhYmxlQmFz
ZS5jcHAgKi87IH07CiAJCTE0NzRDMzNCMTZBQTJEOTUwMDYyRjAxRCAvKiBQcm90b3R5cGVNYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RDg0NEEz
MTZBQTJDNzAwMEE2NUFGMCAvKiBQcm90b3R5cGVNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDc0QzMzQzE2QUEyRDlCMDA2MkYwMUQgLyog
UHJvdG90eXBlTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0RDg0NEEyMTZBQTJDNzAwMEE2NUFGMCAvKiBQcm90b3R5cGVNYXAuY3BwICovOyB9
OwpAQCAtMTE1NywxMSArMTE1NSw5IEBACiAJCTE0QUQ5MTBFMURDQTkyOTQwMDE0RjlGRSAvKiBH
bG9iYWxDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0QUQ5MTA4MURDQTkyOTQwMDE0RjlGRSAvKiBHbG9iYWxDb2RlQmxvY2suaCAqLzsg
fTsKIAkJMTRBRDkxMEYxRENBOTI5NDAwMTRGOUZFIC8qIE1vZHVsZVByb2dyYW1Db2RlQmxvY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTA5
MURDQTkyOTQwMDE0RjlGRSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmggKi87IH07CiAJCTE0
QUQ5MTEwMURDQTkyOTQwMDE0RjlGRSAvKiBQcm9ncmFtQ29kZUJsb2NrLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEFEOTEwQTFEQ0E5Mjk0MDAxNEY5
RkUgLyogUHJvZ3JhbUNvZGVCbG9jay5oICovOyB9OwotCQkxNEFEOTExMTFEQ0E5Mjk0MDAxNEY5
RkUgLyogV2ViQXNzZW1ibHlDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTBCMURDQTkyOTQwMDE0RjlGRSAvKiBXZWJBc3NlbWJs
eUNvZGVCbG9jay5oICovOyB9OwogCQkxNEFEOTExNzFEQ0E5N0ZEMDAxNEY5RkUgLyogRXZhbENv
ZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNEFEOTExMjFEQ0E5N0ZEMDAxNEY5RkUgLyogRXZhbENvZGVCbG9jay5jcHAgKi87IH07CiAJ
CTE0QUQ5MTE4MURDQTk3RkQwMDE0RjlGRSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTEzMURD
QTk3RkQwMDE0RjlGRSAvKiBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmNwcCAqLzsgfTsKIAkJMTRB
RDkxMTkxRENBOTdGRDAwMTRGOUZFIC8qIFByb2dyYW1Db2RlQmxvY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBRDkxMTQxRENBOTdGRDAwMTRG
OUZFIC8qIFByb2dyYW1Db2RlQmxvY2suY3BwICovOyB9OwotCQkxNEFEOTExQTFEQ0E5N0ZEMDAx
NEY5RkUgLyogV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRBRDkxMTUxRENBOTdGRDAwMTRGOUZFIC8qIFdlYkFz
c2VtYmx5Q29kZUJsb2NrLmNwcCAqLzsgfTsKIAkJMTRBRDkxMUIxRENBOTdGRDAwMTRGOUZFIC8q
IEZ1bmN0aW9uQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0QUQ5MTE2MURDQTk3RkQwMDE0RjlGRSAvKiBGdW5jdGlvbkNvZGVCbG9j
ay5jcHAgKi87IH07CiAJCTE0QUQ5MTIyMURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZEdsb2Jh
bENvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRBRDkxMUMxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkR2xvYmFsQ29kZUJsb2NrLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRBRDkx
MjMxRENBOUZBNDAwMTRGOUZFIC8qIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0QUQ5MTFEMURDQTlGQTQw
MDE0RjlGRSAvKiBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM0ODUsMTQgKzM0ODEsMTIgQEAKIAkJ
MTQ3MzQxRDMxREMwMkU2RDAwQUEyOUJBIC8qIFByb2dyYW1FeGVjdXRhYmxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2dyYW1FeGVjdXRhYmxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0MUQ1MURDMDJFQjkwMEFBMjlCQSAvKiBNb2R1bGVQcm9n
cmFtRXhlY3V0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDczNDFE
NzFEQzAyRjk5MDBBQTI5QkEgLyogRnVuY3Rpb25FeGVjdXRhYmxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZ1bmN0aW9uRXhlY3V0YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxNDczNDFEOTFEQzAzMDAxMDBBQTI5QkEgLyogV2ViQXNzZW1ibHlFeGVj
dXRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5RXhl
Y3V0YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDczNDFEQjFEQzJDRTk2
MDBBQTI5QkEgLyogRXZhbEV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRXZhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDczNDFEQzFEQzJDRTk2MDBBQTI5QkEgLyogRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZ1bmN0aW9uRXhlY3V0YWJsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0NzM0MUREMURDMkNFOTYwMEFBMjlC
QSAvKiBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0NzM0MURFMURDMkNFOTYwMEFBMjlCQSAvKiBOYXRpdmVFeGVjdXRh
YmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdGl2ZUV4ZWN1
dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDczNDFERjFEQzJDRTk2
MDBBQTI5QkEgLyogUHJvZ3JhbUV4ZWN1dGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUHJvZ3JhbUV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDczNDFFMDFEQzJDRTk2MDBBQTI5QkEgLyogU2NyaXB0RXhlY3V0YWJsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFeGVjdXRhYmxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ3MzQxRTExREMyQ0U5NjAwQUEy
OUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBc3NlbWJseUV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxNDczNDFFOTFEQzJDRjI1MDBBQTI5QkEgLyogRXhlY3V0YWJsZUJhc2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhlY3V0YWJsZUJhc2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDdCODNBQTBFNkRCOEM5MDA0Nzc1
QTQgLyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTQ3Qjg0NjIwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3BlcnR5U2xv
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXRQcm9wZXJ0eVNsb3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1MjMsMTEgKzM1MTcsOSBAQAogCQkxNEFE
OTEwODFEQ0E5Mjk0MDAxNEY5RkUgLyogR2xvYmFsQ29kZUJsb2NrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdsb2JhbENvZGVCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNEFEOTEwOTFEQ0E5Mjk0MDAxNEY5RkUgLyogTW9kdWxlUHJvZ3JhbUNvZGVC
bG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVQcm9ncmFtQ29k
ZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUQ5MTBBMURDQTkyOTQw
MDE0RjlGRSAvKiBQcm9ncmFtQ29kZUJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2dyYW1Db2RlQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MTRBRDkxMEIxRENBOTI5NDAwMTRGOUZFIC8qIFdlYkFzc2VtYmx5Q29kZUJsb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFzc2VtYmx5Q29kZUJsb2NrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUQ5MTEyMURDQTk3RkQwMDE0RjlGRSAvKiBFdmFs
Q29kZUJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2YWxD
b2RlQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEFEOTExMzFEQ0E5
N0ZEMDAxNEY5RkUgLyogTW9kdWxlUHJvZ3JhbUNvZGVCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRBRDkxMTQxRENBOTdGRDAwMTRGOUZFIC8qIFByb2dy
YW1Db2RlQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJv
Z3JhbUNvZGVCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE0QUQ5MTE1
MURDQTk3RkQwMDE0RjlGRSAvKiBXZWJBc3NlbWJseUNvZGVCbG9jay5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBc3NlbWJseUNvZGVCbG9jay5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUQ5MTE2MURDQTk3RkQwMDE0RjlGRSAvKiBGdW5j
dGlvbkNvZGVCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBG
dW5jdGlvbkNvZGVCbG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QUQ5
MTFDMURDQTlGQTQwMDE0RjlGRSAvKiBVbmxpbmtlZEdsb2JhbENvZGVCbG9jay5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmxpbmtlZEdsb2JhbENvZGVCbG9jay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEFEOTExRDFEQ0E5RkE0MDAxNEY5RkUgLyogVW5s
aW5rZWRGdW5jdGlvbkNvZGVCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02NjYwLDggKzY2NTIsNiBAQAogCQkJCTcwOUZCODY0MUFFMzM1QzYwMDM5RDA2OSAvKiBX
ZWFrU2V0Q29uc3RydWN0b3IuaCAqLywKIAkJCQk3MDlGQjg2NTFBRTMzNUM2MDAzOUQwNjkgLyog
V2Vha1NldFByb3RvdHlwZS5jcHAgKi8sCiAJCQkJNzA5RkI4NjYxQUUzMzVDNjAwMzlEMDY5IC8q
IFdlYWtTZXRQcm90b3R5cGUuaCAqLywKLQkJCQkxNDczNDFFMTFEQzJDRTk2MDBBQTI5QkEgLyog
V2ViQXNzZW1ibHlFeGVjdXRhYmxlLmNwcCAqLywKLQkJCQkxNDczNDFEOTFEQzAzMDAxMDBBQTI5
QkEgLyogV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmggKi8sCiAJCQkJQTdEQ0I3NzkxMkUzRDkwNTAw
OTExOTQwIC8qIFdyaXRlQmFycmllci5oICovLAogCQkJCUMyQjZENzUyMThBMzM3OTMwMDRBOTMw
MSAvKiBXcml0ZUJhcnJpZXJJbmxpbmVzLmggKi8sCiAJCQkJOEI0N0YyMzQzNjZDNEI3MkFDODUy
QTdFIC8qIFRlbXBsYXRlUmVnaXN0cnlLZXlUYWJsZS5jcHAgKi8sCkBAIC03MzA5LDggKzcyOTks
NiBAQAogCQkJCTBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCAq
LywKIAkJCQkwRjkxOUQyMjE1ODUzQ0RFMDA0QTRFN0QgLyogV2F0Y2hwb2ludC5jcHAgKi8sCiAJ
CQkJMEY5MTlEMjMxNTg1M0NERTAwNEE0RTdEIC8qIFdhdGNocG9pbnQuaCAqLywKLQkJCQkxNEFE
OTExNTFEQ0E5N0ZEMDAxNEY5RkUgLyogV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwICovLAotCQkJ
CTE0QUQ5MTBCMURDQTkyOTQwMDE0RjlGRSAvKiBXZWJBc3NlbWJseUNvZGVCbG9jay5oICovLAog
CQkJCTE0MTQyRTUwMUI3OTZFQ0UwMEY0QkY0QiAvKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBieXRlY29kZTsKQEAgLTc4MTgsNyArNzgwNiw2IEBA
CiAJCQkJMjY5RDYzNkUxQkZCRTVEMTAwMTAxQjFEIC8qIEZUTE91dHB1dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFQzg1M0UxQkRBQ0RBQzAwODBGRjc0IC8qIEIzVXBzaWxvblZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVDODU0MDFCREFDREFDMDA4MEZGNzQgLyogQjNVc2VDb3VudHMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTE0QUQ5MTExMURDQTkyOTQwMDE0RjlGRSAvKiBXZWJBc3Nl
bWJseUNvZGVCbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1NDIxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzVmFsaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTQ0MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODU0NTFCREFDREFD
MDA4MEZGNzQgLyogQjNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtODE4Miw3ICs4
MTY5LDYgQEAKIAkJCQk1M0ZGN0Y5OTFEQkZDRDkwMDBBMjZDQ0MgLyogV2FzbVZhbGlkYXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM5N0Y0MjE4MjAyMTE5MDAyQzlCMjYgLyogREZHV2F0Y2hw
b2ludENvbGxlY3Rpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEQjJDRTgxNzQ4MzBB
MjAwN0IzQzFCIC8qIERGR1dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDczNDFEQTFE
QzAzMDAxMDBBQTI5QkEgLyogV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjA3MEE0OTFENTQzQTkzMDA2RTcyMzIgLyogSGVhcENlbGxJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkUwNTAxODFBQTkwOTExMDBEMzNCMzMgLyogRGlyZWN0QXJndW1lbnRz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkUwNTAxNjFBQTkwOTExMDBEMzNCMzMgLyogRGlyZWN0
QXJndW1lbnRzT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTk1NTUsNyArOTU0MSw2IEBACiAJ
CQkJMEZFQzg1ODcxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclNwZWNpYWwuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1ODkxQkRBQ0RDNzAwODBGRjc0IC8qIEFpclNwaWxsRXZlcnl0aGluZy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODU4QjFCREFDREM3MDA4MEZGNzQgLyogQWlyU3Rh
Y2tTbG90LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTE0QUQ5MTFBMURDQTk3RkQwMDE0RjlGRSAv
KiBXZWJBc3NlbWJseUNvZGVCbG9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODU4RDFC
REFDREM3MDA4MEZGNzQgLyogQWlyVG1wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTkw
MUJEQUNEQzcwMDgwRkY3NCAvKiBBaXJWYWxpZGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDdGMzlCRDEwN0VDMzc2MDA0MjdBNDggLyogQXJnTGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTk4MTIsNyArOTc5Nyw2IEBACiAJCQkJMEYyQjlDRUExOUQwQkE3RDAwQjFEMUI1IC8qIERGR1Bo
aUNoaWxkcmVuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3OEE5NzdBMTc5NzM4QjgwMDlERjc0
NCAvKiBERkdQbGFuLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQkUwRjc0MTZDMURCMDkwMDgy
QzVFOCAvKiBERkdQcmVkaWN0aW9uSW5qZWN0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMTQ3MzQxRTgxREMyQ0U5NjAwQUEyOUJBIC8qIFdlYkFzc2VtYmx5RXhlY3V0YWJsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkZGQzk1RDE0RUY5MEIzMDBDNzI1MzIgLyogREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzRTAxQUExOUQz
NTNBNTAwRjYxQjdGIC8qIERGR1ByZVBvc3ROdW1iZXJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYyQjlDRUMxOUQwQkE3RDAwQjFEMUI1IC8qIERGR1Byb21vdGVkSGVhcExvY2F0aW9uLmNw
cCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NCw4ICs3NCw2IEBA
CiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiVW5saW5rZWRJbnN0cnVjdGlv
blN0cmVhbS5oIgogI2luY2x1ZGUgIlZNSW5saW5lcy5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5
Q29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmgiCiAjaW5jbHVk
ZSA8d3RmL0JhZ1RvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KICNp
bmNsdWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KQEAgLTIzNjQsNDMgKzIzNjIsNiBAQCB2b2lkIENv
ZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTCiAgICAgaGVhcCgpLT5yZXBvcnRFeHRy
YU1lbW9yeUFsbG9jYXRlZChtX2luc3RydWN0aW9ucy5zaXplKCkgKiBzaXplb2YoSW5zdHJ1Y3Rp
b24pKTsKIH0KIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLUNvZGVCbG9jazo6Q29kZUJsb2Nr
KFZNKiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSogb3du
ZXJFeGVjdXRhYmxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogSlNDZWxs
KCp2bSwgc3RydWN0dXJlKQotICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT52bSgp
LCB0aGlzLCBnbG9iYWxPYmplY3QpCi0gICAgLCBtX251bUNhbGxlZUxvY2FscygwKQotICAgICwg
bV9udW1WYXJzKDApCi0gICAgLCBtX3Nob3VsZEFsd2F5c0JlSW5saW5lZChmYWxzZSkKLSNpZiBF
TkFCTEUoSklUKQotICAgICwgbV9jYXBhYmlsaXR5TGV2ZWxTdGF0ZShERkc6OkNhbm5vdENvbXBp
bGUpCi0jZW5kaWYKLSAgICAsIG1fZGlkRmFpbEpJVENvbXBpbGF0aW9uKGZhbHNlKQotICAgICwg
bV9kaWRGYWlsRlRMQ29tcGlsYXRpb24oZmFsc2UpCi0gICAgLCBtX2hhc0JlZW5Db21waWxlZFdp
dGhGVEwoZmFsc2UpCi0gICAgLCBtX2lzQ29uc3RydWN0b3IoZmFsc2UpCi0gICAgLCBtX2lzU3Ry
aWN0TW9kZShmYWxzZSkKLSAgICAsIG1fY29kZVR5cGUoRnVuY3Rpb25Db2RlKQotICAgICwgbV9o
YXNEZWJ1Z2dlclN0YXRlbWVudChmYWxzZSkKLSAgICAsIG1fc3RlcHBpbmdNb2RlKFN0ZXBwaW5n
TW9kZURpc2FibGVkKQotICAgICwgbV9udW1CcmVha3BvaW50cygwKQotICAgICwgbV9vd25lckV4
ZWN1dGFibGUobV9nbG9iYWxPYmplY3QtPnZtKCksIHRoaXMsIG93bmVyRXhlY3V0YWJsZSkKLSAg
ICAsIG1fdm0odm0pCi0gICAgLCBtX29zckV4aXRDb3VudGVyKDApCi0gICAgLCBtX29wdGltaXph
dGlvbkRlbGF5Q291bnRlcigwKQotICAgICwgbV9yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcigw
KQotICAgICwgbV9jcmVhdGlvblRpbWUoc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkp
Ci17Ci0gICAgQVNTRVJUKGhlYXAoKS0+aXNEZWZlcnJlZCgpKTsKLX0KLQotdm9pZCBDb2RlQmxv
Y2s6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiwgSlNHbG9i
YWxPYmplY3QqKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLQotICAgIGhlYXAo
KS0+bV9jb2RlQmxvY2tzLT5hZGQodGhpcyk7Ci19Ci0jZW5kaWYKLQogQ29kZUJsb2NrOjp+Q29k
ZUJsb2NrKCkKIHsKICAgICBpZiAobV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVyKQpAQCAtMjgx
NywxMSArMjc3OCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpjbGVhckxMSW50R2V0QnlJZENhY2hlKEkK
IAogdm9pZCBDb2RlQmxvY2s6OmZpbmFsaXplTExJbnRJbmxpbmVDYWNoZXMoKQogewotI2lmIEVO
QUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAobV9vd25lckV4ZWN1dGFibGUtPmlzV2ViQXNzZW1i
bHlFeGVjdXRhYmxlKCkpCi0gICAgICAgIHJldHVybjsKLSNlbmRpZgotCiAgICAgSW50ZXJwcmV0
ZXIqIGludGVycHJldGVyID0gbV92bS0+aW50ZXJwcmV0ZXI7CiAgICAgY29uc3QgVmVjdG9yPHVu
c2lnbmVkPiYgcHJvcGVydHlBY2Nlc3NJbnN0cnVjdGlvbnMgPSBtX3VubGlua2VkQ29kZS0+cHJv
cGVydHlBY2Nlc3NJbnN0cnVjdGlvbnMoKTsKICAgICBmb3IgKHNpemVfdCBzaXplID0gcHJvcGVy
dHlBY2Nlc3NJbnN0cnVjdGlvbnMuc2l6ZSgpLCBpID0gMDsgaSA8IHNpemU7ICsraSkgewpAQCAt
MzM3NiwxMSArMzMzMiw2IEBAIENvZGVCbG9jayogQ29kZUJsb2NrOjpyZXBsYWNlbWVudCgpCiAg
ICAgaWYgKGNsYXNzSW5mbyA9PSBNb2R1bGVQcm9ncmFtQ29kZUJsb2NrOjppbmZvKCkpCiAgICAg
ICAgIHJldHVybiBqc0Nhc3Q8TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqPihvd25lckV4ZWN1dGFi
bGUoKSktPmNvZGVCbG9jaygpOwogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGlmIChj
bGFzc0luZm8gPT0gV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmluZm8oKSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0jZW5kaWYKLQogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC0zNDA0LDExICszMzU1LDYgQEAgREZHOjpDYXBhYmls
aXR5TGV2ZWwgQ29kZUJsb2NrOjpjb21wdXRlQwogICAgIGlmIChjbGFzc0luZm8gPT0gTW9kdWxl
UHJvZ3JhbUNvZGVCbG9jazo6aW5mbygpKQogICAgICAgICByZXR1cm4gREZHOjpwcm9ncmFtQ2Fw
YWJpbGl0eUxldmVsKHRoaXMpOwogCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGlmIChj
bGFzc0luZm8gPT0gV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmluZm8oKSkKLSAgICAgICAgcmV0dXJu
IERGRzo6Q2Fubm90Q29tcGlsZTsKLSNlbmRpZgotCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICByZXR1cm4gREZHOjpDYW5ub3RDb21waWxlOwogfQpAQCAtNDA4MCwxMCAr
NDAyNiw2IEBAIHZvaWQgQ29kZUJsb2NrOjp1cGRhdGVBbGxBcnJheVByZWRpY3Rpb24KIAogdm9p
ZCBDb2RlQmxvY2s6OnVwZGF0ZUFsbFByZWRpY3Rpb25zKCkKIHsKLSNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCi0gICAgaWYgKG1fb3duZXJFeGVjdXRhYmxlLT5pc1dlYkFzc2VtYmx5RXhlY3V0YWJs
ZSgpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICB1cGRhdGVBbGxWYWx1ZVByb2ZpbGVQ
cmVkaWN0aW9ucygpOwogICAgIHVwZGF0ZUFsbEFycmF5UHJlZGljdGlvbnMoKTsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDIw
OTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMTE5LDE1ICsxMTksOSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
Q29kZUJsb2NrKFZNKiwgU3RydWN0dXJlKiwgQ29weVBhcnNlZEJsb2NrVGFnLCBDb2RlQmxvY2sm
IG90aGVyKTsKICAgICBDb2RlQmxvY2soVk0qLCBTdHJ1Y3R1cmUqLCBTY3JpcHRFeGVjdXRhYmxl
KiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJsb2NrKiwgSlNTY29wZSosIFBhc3NSZWZQ
dHI8U291cmNlUHJvdmlkZXI+LCB1bnNpZ25lZCBzb3VyY2VPZmZzZXQsIHVuc2lnbmVkIGZpcnN0
TGluZUNvbHVtbk9mZnNldCk7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIENvZGVCbG9j
ayhWTSosIFN0cnVjdHVyZSosIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxl
LCBKU0dsb2JhbE9iamVjdCopOwotI2VuZGlmCiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgQ29weVBhcnNlZEJsb2NrVGFnLCBDb2RlQmxvY2smIG90aGVyKTsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgU2NyaXB0RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmtl
ZENvZGVCbG9jayosIEpTU2NvcGUqKTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSogb3duZXJFeGVjdXRh
YmxlLCBKU0dsb2JhbE9iamVjdCopOwotI2VuZGlmCiAKICAgICBXcml0ZUJhcnJpZXI8SlNHbG9i
YWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvV2ViQXNzZW1ibHlDb2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XZWJBc3NlbWJseUNvZGVCbG9jay5jcHAJKHJldmlzaW9u
IDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XZWJBc3NlbWJseUNv
ZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOC0yMDEwLCAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndhcmljaCA8Y3d6d2FyaWNoQHV3
YXRlcmxvby5jYT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
Ci0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUNvZGVCbG9jay5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLWNvbnN0IENsYXNz
SW5mbyBXZWJBc3NlbWJseUNvZGVCbG9jazo6c19pbmZvID0gewotICAgICJXZWJBc3NlbWJseUNv
ZGVCbG9jayIsICZCYXNlOjpzX2luZm8sIDAsCi0gICAgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJB
c3NlbWJseUNvZGVCbG9jaykKLX07Ci0KLXZvaWQgV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmRlc3Ry
b3koSlNDZWxsKiBjZWxsKQotewotICAgIGpzQ2FzdDxXZWJBc3NlbWJseUNvZGVCbG9jayo+KGNl
bGwpLT5+V2ViQXNzZW1ibHlDb2RlQmxvY2soKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XZWJBc3NlbWJseUNv
ZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9X
ZWJBc3NlbWJseUNvZGVCbG9jay5oCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvV2ViQXNzZW1ibHlDb2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtMSw3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IENhbWVyb24gWndh
cmljaCA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ29kZUJsb2NrLmgi
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotY2xhc3MgV2Vi
QXNzZW1ibHlDb2RlQmxvY2sgOiBwdWJsaWMgQ29kZUJsb2NrIHsKLXB1YmxpYzoKLSAgICB0eXBl
ZGVmIENvZGVCbG9jayBCYXNlOwotICAgIERFQ0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBXZWJB
c3NlbWJseUNvZGVCbG9jayogY3JlYXRlKFZNKiB2bSwgQ29weVBhcnNlZEJsb2NrVGFnLCBXZWJB
c3NlbWJseUNvZGVCbG9jayYgb3RoZXIpCi0gICAgewotICAgICAgICBXZWJBc3NlbWJseUNvZGVC
bG9jayogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxXZWJBc3NlbWJseUNv
ZGVCbG9jaz4odm0tPmhlYXApKQotICAgICAgICAgICAgV2ViQXNzZW1ibHlDb2RlQmxvY2sodm0s
IHZtLT53ZWJBc3NlbWJseUNvZGVCbG9ja1N0cnVjdHVyZS5nZXQoKSwgQ29weVBhcnNlZEJsb2Nr
LCBvdGhlcik7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbigqdm0sIENvcHlQYXJz
ZWRCbG9jaywgb3RoZXIpOwotICAgICAgICByZXR1cm4gaW5zdGFuY2U7Ci0gICAgfQotCi0gICAg
c3RhdGljIFdlYkFzc2VtYmx5Q29kZUJsb2NrKiBjcmVhdGUoVk0qIHZtLCBXZWJBc3NlbWJseUV4
ZWN1dGFibGUqIG93bmVyRXhlY3V0YWJsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
LSAgICB7Ci0gICAgICAgIFdlYkFzc2VtYmx5Q29kZUJsb2NrKiBpbnN0YW5jZSA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPFdlYkFzc2VtYmx5Q29kZUJsb2NrPih2bS0+aGVhcCkpCi0gICAg
ICAgICAgICBXZWJBc3NlbWJseUNvZGVCbG9jayh2bSwgdm0tPndlYkFzc2VtYmx5Q29kZUJsb2Nr
U3RydWN0dXJlLmdldCgpLCBvd25lckV4ZWN1dGFibGUsIGdsb2JhbE9iamVjdCk7Ci0gICAgICAg
IGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbigqdm0sIG93bmVyRXhlY3V0YWJsZSwgZ2xvYmFsT2Jq
ZWN0KTsKLSAgICAgICAgcmV0dXJuIGluc3RhbmNlOwotICAgIH0KLQotICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oQ2VsbFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViQXNzZW1i
bHlDb2RlQmxvY2soVk0qIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQ29weVBhcnNlZEJsb2Nr
VGFnLCBXZWJBc3NlbWJseUNvZGVCbG9jayYgb3RoZXIpCi0gICAgICAgIDogQ29kZUJsb2NrKHZt
LCBzdHJ1Y3R1cmUsIENvcHlQYXJzZWRCbG9jaywgb3RoZXIpCi0gICAgewotICAgIH0KLQotICAg
IFdlYkFzc2VtYmx5Q29kZUJsb2NrKFZNKiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdlYkFz
c2VtYmx5RXhlY3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQotICAgICAgICA6IENvZGVCbG9jayh2bSwgc3RydWN0dXJlLCBvd25lckV4ZWN1dGFi
bGUsIGdsb2JhbE9iamVjdCkKLSAgICB7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0NlbGwqKTsKLX07Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAy
MDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCw2IEBAIGJvb2wgaXNTdXBwb3J0ZWQoKQogCiBi
b29sIGlzU3VwcG9ydGVkRm9ySW5saW5pbmcoQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0jaWYg
RU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIGlmIChjb2RlQmxvY2stPm93bmVyRXhlY3V0YWJsZSgp
LT5pc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKICAgICByZXR1cm4gY29kZUJsb2NrLT5vd25lclNjcmlwdEV4ZWN1dGFibGUoKS0+aXNJbmxp
bmluZ0NhbmRpZGF0ZSgpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ0NywxNiArNDQ3LDYgQEAgYm9vbCBJbnRlcnByZXRlcjo6aXNPcGNvZGUoT3Bjb2Rl
IG9wY29kZQogI2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1dlYkFzc2VtYmx5RXhl
Y3V0YWJsZShFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSkKLXsKLSNpZiAhRU5BQkxFKFdFQkFT
U0VNQkxZKQotICAgIFVOVVNFRF9QQVJBTShleGVjdXRhYmxlKTsKLSAgICByZXR1cm4gZmFsc2U7
Ci0jZWxzZQotICAgIHJldHVybiBleGVjdXRhYmxlLT5pc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSgp
OwotI2VuZGlmCi19Ci0KIGNsYXNzIEdldFN0YWNrVHJhY2VGdW5jdG9yIHsKIHB1YmxpYzoKICAg
ICBHZXRTdGFja1RyYWNlRnVuY3RvcihWTSYgdm0sIFZlY3RvcjxTdGFja0ZyYW1lPiYgcmVzdWx0
cywgc2l6ZV90IGZyYW1lc1RvU2tpcCwgc2l6ZV90IGNhcGFjaXR5KQpAQCAtNDc3LDcgKzQ2Nyw2
IEBAIHB1YmxpYzoKIAogICAgICAgICBpZiAobV9yZW1haW5pbmdDYXBhY2l0eUZvckZyYW1lQ2Fw
dHVyZSkgewogICAgICAgICAgICAgaWYgKHZpc2l0b3ItPmlzSlNGcmFtZSgpCi0gICAgICAgICAg
ICAgICAgJiYgIWlzV2ViQXNzZW1ibHlFeGVjdXRhYmxlKHZpc2l0b3ItPmNvZGVCbG9jaygpLT5v
d25lckV4ZWN1dGFibGUoKSkKICAgICAgICAgICAgICAgICAmJiAhdmlzaXRvci0+Y29kZUJsb2Nr
KCktPnVubGlua2VkQ29kZUJsb2NrKCktPmlzQnVpbHRpbkZ1bmN0aW9uKCkpIHsKICAgICAgICAg
ICAgICAgICBTdGFja0ZyYW1lIHMgPSB7CiAgICAgICAgICAgICAgICAgICAgIFN0cm9uZzxKU09i
amVjdD4obV92bSwgdmlzaXRvci0+Y2FsbGVlKCkpLApAQCAtNjE5LDcgKzYwOCw3IEBAIHB1Ymxp
YzoKIAogICAgICAgICBtX2hhbmRsZXIgPSBudWxscHRyOwogICAgICAgICBpZiAoIW1faXNUZXJt
aW5hdGlvbikgewotICAgICAgICAgICAgaWYgKG1fY29kZUJsb2NrICYmICFpc1dlYkFzc2VtYmx5
RXhlY3V0YWJsZShtX2NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCkpKQorICAgICAgICAgICAg
aWYgKG1fY29kZUJsb2NrKQogICAgICAgICAgICAgICAgIG1faGFuZGxlciA9IGZpbmRFeGNlcHRp
b25IYW5kbGVyKHZpc2l0b3IsIG1fY29kZUJsb2NrLCBSZXF1aXJlZEhhbmRsZXI6OkFueUhhbmRs
ZXIpOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmNwcAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNiBAQAog
I2luY2x1ZGUgIlRlc3RSdW5uZXJVdGlscy5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5o
IgogI2luY2x1ZGUgIlZNSW5saW5lcy5oIgotI2luY2x1ZGUgIldlYkFzc2VtYmx5Q29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSA8d3RmL0lubGluZUFTTS5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTg5
NSwxOCArODk0LDYgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aQog
ICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gMDsKICAgICBpZiAoZXhlY3V0YWJsZS0+aXNIb3N0
RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0gZXhlY3V0YWJsZS0+ZW50cnlwb2ludEZv
cihraW5kLCBNdXN0Q2hlY2tBcml0eSk7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIH0g
ZWxzZSBpZiAoZXhlY3V0YWJsZS0+aXNXZWJBc3NlbWJseUV4ZWN1dGFibGUoKSkgewotICAgICAg
ICBXZWJBc3NlbWJseUV4ZWN1dGFibGUqIHdlYkFzc2VtYmx5RXhlY3V0YWJsZSA9IHN0YXRpY19j
YXN0PFdlYkFzc2VtYmx5RXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwotICAgICAgICBjb2RlQmxv
Y2sgPSB3ZWJBc3NlbWJseUV4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvckNhbGwoKTsKLSAgICAgICAg
QVNTRVJUKGNvZGVCbG9jayk7Ci0gICAgICAgIEFyaXR5Q2hlY2tNb2RlIGFyaXR5OwotICAgICAg
ICBpZiAoZXhlY0NhbGxlZS0+YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSA8IHN0YXRpY19j
YXN0PHNpemVfdD4oY29kZUJsb2NrLT5udW1QYXJhbWV0ZXJzKCkpKQotICAgICAgICAgICAgYXJp
dHkgPSBNdXN0Q2hlY2tBcml0eTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgYXJpdHkgPSBB
cml0eUNoZWNrTm90UmVxdWlyZWQ7Ci0gICAgICAgIGNvZGVQdHIgPSB3ZWJBc3NlbWJseUV4ZWN1
dGFibGUtPmVudHJ5cG9pbnRGb3Ioa2luZCwgYXJpdHkpOwotI2VuZGlmCiAgICAgfSBlbHNlIHsK
ICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNf
Y2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKIApAQCAtMTAxNSwzNyArMTAw
MiwyMiBAQCBpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIHZpcnR1YWxGb3JXaXRoCiAgICAgSlNT
Y29wZSogc2NvcGUgPSBmdW5jdGlvbi0+c2NvcGVVbmNoZWNrZWQoKTsKICAgICBFeGVjdXRhYmxl
QmFzZSogZXhlY3V0YWJsZSA9IGZ1bmN0aW9uLT5leGVjdXRhYmxlKCk7CiAgICAgaWYgKFVOTElL
RUxZKCFleGVjdXRhYmxlLT5oYXNKSVRDb2RlRm9yKGtpbmQpKSkgewotICAgICAgICBib29sIGlz
V2ViQXNzZW1ibHlFeGVjdXRhYmxlID0gZmFsc2U7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQot
ICAgICAgICBpc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSA9IGV4ZWN1dGFibGUtPmlzV2ViQXNzZW1i
bHlFeGVjdXRhYmxlKCk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKCFpc1dlYkFzc2VtYmx5RXhlY3V0
YWJsZSkgewotICAgICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFi
bGUgPSBzdGF0aWNfY2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKKyAgICAg
ICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBmdW5jdGlvbkV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxG
dW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKTsKIAotICAgICAgICAgICAgaWYgKCFpc0Nh
bGwoa2luZCkgJiYgZnVuY3Rpb25FeGVjdXRhYmxlLT5jb25zdHJ1Y3RBYmlsaXR5KCkgPT0gQ29u
c3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0KSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dF
eGNlcHRpb24oZXhlYywgdGhyb3dTY29wZSwgY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJyb3IoZXhl
YywgZnVuY3Rpb24pKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KAotICAg
ICAgICAgICAgICAgICAgICB2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlvbkZyb21DYWxsU2xv
d1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAotICAgICAgICAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihLZWVwVGhlRnJhbWUpKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgaWYgKCFpc0NhbGwoa2luZCkgJiYgZnVuY3Rpb25FeGVjdXRhYmxlLT5j
b25zdHJ1Y3RBYmlsaXR5KCkgPT0gQ29uc3RydWN0QWJpbGl0eTo6Q2Fubm90Q29uc3RydWN0KSB7
CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RB
Q29uc3RydWN0b3JFcnJvcihleGVjLCBmdW5jdGlvbikpOworICAgICAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdCgKKyAgICAgICAgICAgICAgICB2bS0+Z2V0Q1RJU3R1Yih0aHJvd0V4Y2VwdGlv
bkZyb21DYWxsU2xvd1BhdGhHZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpLAor
ICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwor
ICAgICAgICB9CiAKLSAgICAgICAgICAgIENvZGVCbG9jayoqIGNvZGVCbG9ja1Nsb3QgPSBleGVj
Q2FsbGVlLT5hZGRyZXNzT2ZDb2RlQmxvY2soKTsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBlcnJv
ciA9IGZ1bmN0aW9uRXhlY3V0YWJsZS0+cHJlcGFyZUZvckV4ZWN1dGlvbjxGdW5jdGlvbkV4ZWN1
dGFibGU+KCp2bSwgZnVuY3Rpb24sIHNjb3BlLCBraW5kLCAqY29kZUJsb2NrU2xvdCk7Ci0gICAg
ICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVj
LCB0aHJvd1Njb3BlLCBlcnJvcik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZVJlc3Vs
dCgKLSAgICAgICAgICAgICAgICAgICAgdm0tPmdldENUSVN0dWIodGhyb3dFeGNlcHRpb25Gcm9t
Q2FsbFNsb3dQYXRoR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSwKLSAgICAg
ICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1lKSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQot
ICAgICAgICAgICAgaWYgKCFpc0NhbGwoa2luZCkpIHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4
Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RBQ29uc3RydWN0b3JFcnJvcihleGVj
LCBmdW5jdGlvbikpOwotICAgICAgICAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoCi0gICAg
ICAgICAgICAgICAgICAgIHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93
UGF0aEdlbmVyYXRvcikuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksCi0gICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KEtlZXBUaGVGcmFtZSkpOwotICAgICAgICAg
ICAgfQotI2VuZGlmCisgICAgICAgIENvZGVCbG9jayoqIGNvZGVCbG9ja1Nsb3QgPSBleGVjQ2Fs
bGVlLT5hZGRyZXNzT2ZDb2RlQmxvY2soKTsKKyAgICAgICAgSlNPYmplY3QqIGVycm9yID0gZnVu
Y3Rpb25FeGVjdXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uPEZ1bmN0aW9uRXhlY3V0YWJsZT4o
KnZtLCBmdW5jdGlvbiwgc2NvcGUsIGtpbmQsICpjb2RlQmxvY2tTbG90KTsKKyAgICAgICAgaWYg
KGVycm9yKSB7CisgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbihleGVjLCB0aHJvd1Njb3BlLCBl
cnJvcik7CisgICAgICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KAorICAgICAgICAgICAgICAg
IHZtLT5nZXRDVElTdHViKHRocm93RXhjZXB0aW9uRnJvbUNhbGxTbG93UGF0aEdlbmVyYXRvciku
Y29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCksCisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDx2b2lkKj4oS2VlcFRoZUZyYW1lKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJu
IGVuY29kZVJlc3VsdChleGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw2
IEBACiAjaW5jbHVkZSAiU3RydWN0dXJlU3R1YkNsZWFyaW5nV2F0Y2hwb2ludC5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZVN0dWJJbmZvLmgiCiAjaW5jbHVkZSAiVGh1bmtHZW5lcmF0b3JzLmgiCi0j
aW5jbHVkZSAiV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmlu
dGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1By
aW50U3RyZWFtLmg+CkBAIC03MTQsMTIgKzcxMyw3IEBAIHZvaWQgbGlua1BvbHltb3JwaGljQ2Fs
bCgKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG51bGxwdHI7CiAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgRXhlY3V0YWJsZUJhc2UqIGV4ZWN1dGFibGUgPSB2YXJpYW50LmV4ZWN1dGFibGUo
KTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgICAgICAgICBpZiAoZXhlY3V0YWJsZS0+
aXNXZWJBc3NlbWJseUV4ZWN1dGFibGUoKSkKLSAgICAgICAgICAgICAgICBjb2RlQmxvY2sgPSBq
c0Nhc3Q8V2ViQXNzZW1ibHlFeGVjdXRhYmxlKj4oZXhlY3V0YWJsZSktPmNvZGVCbG9ja0ZvckNh
bGwoKTsKLSAgICAgICAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgICAgIGNvZGVCbG9j
ayA9IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlKS0+Y29kZUJsb2NrRm9y
Q2FsbCgpOworICAgICAgICAgICAgY29kZUJsb2NrID0ganNDYXN0PEZ1bmN0aW9uRXhlY3V0YWJs
ZSo+KGV4ZWN1dGFibGUpLT5jb2RlQmxvY2tGb3JDYWxsKCk7CiAgICAgICAgICAgICAvLyBJZiB3
ZSBjYW5ub3QgaGFuZGxlIGEgY2FsbGVlLCBlaXRoZXIgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGEg
Q29kZUJsb2NrIG9yIGJlY2F1c2UgYXJpdHkgbWlzbWF0Y2gsCiAgICAgICAgICAgICAvLyBhc3N1
bWUgdGhhdCBpdCdzIGJldHRlciBmb3IgdGhpcyB3aG9sZSB0aGluZyB0byBiZSBhIHZpcnR1YWwg
Y2FsbC4KICAgICAgICAgICAgIGlmICghY29kZUJsb2NrIHx8IGV4ZWMtPmFyZ3VtZW50Q291bnRJ
bmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVtUGFyYW1l
dGVycygpKSB8fCBjYWxsTGlua0luZm8uaXNWYXJhcmdzKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMjA5NDA3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNiBAQAogI2luY2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIK
ICNpbmNsdWRlICJTdHJ1Y3R1cmVSYXJlRGF0YUlubGluZXMuaCIKICNpbmNsdWRlICJWTUlubGlu
ZXMuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUNvZGVCbG9jay5oIgogI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCkBA
IC0xMjkyLDE0ICsxMjkxLDkgQEAgaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBzZXRVcENhbGwo
RXhlYwogCiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvZGVQdHI7CiAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2sgPSAwOwotICAgIGJvb2wgaXNXZWJBc3NlbWJseUV4ZWN1dGFibGUgPSBmYWxz
ZTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaXNXZWJBc3NlbWJseUV4ZWN1dGFibGUg
PSBleGVjdXRhYmxlLT5pc1dlYkFzc2VtYmx5RXhlY3V0YWJsZSgpOwotI2VuZGlmCi0KICAgICBp
ZiAoZXhlY3V0YWJsZS0+aXNIb3N0RnVuY3Rpb24oKSkgewogICAgICAgICBjb2RlUHRyID0gZXhl
Y3V0YWJsZS0+ZW50cnlwb2ludEZvcihraW5kLCBNdXN0Q2hlY2tBcml0eSk7Ci0gICAgfSBlbHNl
IGlmICghaXNXZWJBc3NlbWJseUV4ZWN1dGFibGUpIHsKKyAgICB9IGVsc2UgewogICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRXhlY3V0YWJsZSA9IHN0YXRpY19jYXN0PEZ1bmN0
aW9uRXhlY3V0YWJsZSo+KGV4ZWN1dGFibGUpOwogCiAgICAgICAgIGlmICghaXNDYWxsKGtpbmQp
ICYmIGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y29uc3RydWN0QWJpbGl0eSgpID09IENvbnN0cnVjdEFi
aWxpdHk6OkNhbm5vdENvbnN0cnVjdCkKQEAgLTEzMTgsMjAgKzEzMTIsOCBAQCBpbmxpbmUgU2xv
d1BhdGhSZXR1cm5UeXBlIHNldFVwQ2FsbChFeGVjCiAgICAgICAgIGVsc2UKICAgICAgICAgICAg
IGFyaXR5ID0gQXJpdHlDaGVja05vdFJlcXVpcmVkOwogICAgICAgICBjb2RlUHRyID0gZnVuY3Rp
b25FeGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKGtpbmQsIGFyaXR5KTsKLSAgICB9IGVsc2Ugewot
I2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICAgICAgV2ViQXNzZW1ibHlFeGVjdXRhYmxlKiB3
ZWJBc3NlbWJseUV4ZWN1dGFibGUgPSBzdGF0aWNfY2FzdDxXZWJBc3NlbWJseUV4ZWN1dGFibGUq
PihleGVjdXRhYmxlKTsKLSAgICAgICAgY29kZUJsb2NrID0gd2ViQXNzZW1ibHlFeGVjdXRhYmxl
LT5jb2RlQmxvY2tGb3JDYWxsKCk7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAgICAg
ICBBcml0eUNoZWNrTW9kZSBhcml0eTsKLSAgICAgICAgaWYgKGV4ZWNDYWxsZWUtPmFyZ3VtZW50
Q291bnRJbmNsdWRpbmdUaGlzKCkgPCBzdGF0aWNfY2FzdDxzaXplX3Q+KGNvZGVCbG9jay0+bnVt
UGFyYW1ldGVycygpKSkKLSAgICAgICAgICAgIGFyaXR5ID0gTXVzdENoZWNrQXJpdHk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGFyaXR5ID0gQXJpdHlDaGVja05vdFJlcXVpcmVkOwotICAg
ICAgICBjb2RlUHRyID0gd2ViQXNzZW1ibHlFeGVjdXRhYmxlLT5lbnRyeXBvaW50Rm9yKGtpbmQs
IGFyaXR5KTsKLSNlbmRpZgogICAgIH0KLSAgICAKKwogICAgIEFTU0VSVCghIWNvZGVQdHIpOwog
ICAgIAogICAgIGlmICghTExJTlRfQUxXQVlTX0FDQ0VTU19TTE9XICYmIGNhbGxMaW5rSW5mbykg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGVC
YXNlLmNwcAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZUJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSwxNCArODksNiBAQCB2
b2lkIEV4ZWN1dGFibGVCYXNlOjpjbGVhckNvZGUoKQogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBpZiAoY2xhc3NJbmZvKCkgPT0gV2Vi
QXNzZW1ibHlFeGVjdXRhYmxlOjppbmZvKCkpIHsKLSAgICAgICAgV2ViQXNzZW1ibHlFeGVjdXRh
YmxlKiBleGVjdXRhYmxlID0ganNDYXN0PFdlYkFzc2VtYmx5RXhlY3V0YWJsZSo+KHRoaXMpOwot
ICAgICAgICBleGVjdXRhYmxlLT5tX2NvZGVCbG9ja0ZvckNhbGwuY2xlYXIoKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgQVNTRVJUKGNsYXNzSW5mbygpID09IE5hdGl2
ZUV4ZWN1dGFibGU6OmluZm8oKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZUJhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNiBAQCBjbGFzcyBKU1dlYkFzc2VtYmx5TW9kdWxlOwogY2xhc3MgTExJbnRP
ZmZzZXRzRXh0cmFjdG9yOwogY2xhc3MgTW9kdWxlUHJvZ3JhbUNvZGVCbG9jazsKIGNsYXNzIFBy
b2dyYW1Db2RlQmxvY2s7Ci1jbGFzcyBXZWJBc3NlbWJseUNvZGVCbG9jazsKIAogZW51bSBDb21w
aWxhdGlvbktpbmQgeyBGaXJzdENvbXBpbGF0aW9uLCBPcHRpbWl6aW5nQ29tcGlsYXRpb24gfTsK
IApAQCAtMTE1LDEzICsxMTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX251bVBhcmFt
ZXRlcnNGb3JDYWxsID09IE5VTV9QQVJBTUVURVJTX0lTX0hPU1Q7CiAgICAgfQogCi0jaWYgRU5B
QkxFKFdFQkFTU0VNQkxZKQotICAgIGJvb2wgaXNXZWJBc3NlbWJseUV4ZWN1dGFibGUoKSBjb25z
dAotICAgIHsKLSAgICAgICAgcmV0dXJuIHR5cGUoKSA9PSBXZWJBc3NlbWJseUV4ZWN1dGFibGVU
eXBlOwotICAgIH0KLSNlbmRpZgotCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90bykg
eyByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG8sIFR5cGVJ
bmZvKENlbGxUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IH0KICAgICAgICAgCiAgICAg
dm9pZCBjbGVhckNvZGUoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RnVuY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRnVuY3Rpb24uY3BwCShyZXZpc2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMTYgKzc0LDYg
QEAgSlNGdW5jdGlvbiogSlNGdW5jdGlvbjo6Y3JlYXRlKFZNJiB2bSwgRgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1KU0Z1bmN0aW9uKiBKU0Z1bmN0
aW9uOjpjcmVhdGUoVk0mIHZtLCBXZWJBc3NlbWJseUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEpT
U2NvcGUqIHNjb3BlKQotewotICAgIEpTRnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChOb3ROdWxs
LCBhbGxvY2F0ZUNlbGw8SlNGdW5jdGlvbj4odm0uaGVhcCkpIEpTRnVuY3Rpb24odm0sIGV4ZWN1
dGFibGUsIHNjb3BlKTsKLSAgICBBU1NFUlQoZnVuY3Rpb24tPnN0cnVjdHVyZSh2bSktPmdsb2Jh
bE9iamVjdCgpKTsKLSAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJldHVy
biBmdW5jdGlvbjsKLX0KLSNlbmRpZgotCiBKU0Z1bmN0aW9uKiBKU0Z1bmN0aW9uOjpjcmVhdGUo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQgbGVuZ3RoLCBjb25zdCBT
dHJpbmcmIG5hbWUsIE5hdGl2ZUZ1bmN0aW9uIG5hdGl2ZUZ1bmN0aW9uLCBJbnRyaW5zaWMgaW50
cmluc2ljLCBOYXRpdmVGdW5jdGlvbiBuYXRpdmVDb25zdHJ1Y3RvciwgY29uc3QgRE9NSklUOjpT
aWduYXR1cmUqIHNpZ25hdHVyZSkKIHsKICAgICBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxl
ID0gdm0uZ2V0SG9zdEZ1bmN0aW9uKG5hdGl2ZUZ1bmN0aW9uLCBpbnRyaW5zaWMsIG5hdGl2ZUNv
bnN0cnVjdG9yLCBzaWduYXR1cmUsIG5hbWUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkocmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw2IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKIGNsYXNzIFNvdXJjZUNvZGU7Ci1jbGFzcyBXZWJB
c3NlbWJseUV4ZWN1dGFibGU7CiBjbGFzcyBJbnRlcm5hbEZ1bmN0aW9uOwogbmFtZXNwYWNlIERG
RyB7CiBjbGFzcyBTcGVjdWxhdGl2ZUpJVDsKQEAgLTc4LDkgKzc3LDYgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIEpTRnVuY3Rpb24qIGNyZWF0ZShWTSYsIEZ1bmN0aW9uRXhlY3V0YWJsZSosIEpT
U2NvcGUqKTsKICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKFZNJiwgRnVuY3Rpb25FeGVj
dXRhYmxlKiwgSlNTY29wZSosIFN0cnVjdHVyZSopOwotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkK
LSAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlKFZNJiwgV2ViQXNzZW1ibHlFeGVjdXRhYmxl
KiwgSlNTY29wZSopOwotI2VuZGlmCiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgSlNG
dW5jdGlvbiogY3JlYXRlQnVpbHRpbkZ1bmN0aW9uKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwg
SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0aWMgSlNGdW5jdGlvbiogY3JlYXRlQnVpbHRpbkZ1
bmN0aW9uKFZNJiwgRnVuY3Rpb25FeGVjdXRhYmxlKiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwpAQCAtMTYwLDEwICsxNTYsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgSlNGdW5jdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7
CiAgICAgSlNGdW5jdGlvbihWTSYsIEZ1bmN0aW9uRXhlY3V0YWJsZSosIEpTU2NvcGUqLCBTdHJ1
Y3R1cmUqKTsKIAotI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLSAgICBKU0Z1bmN0aW9uKFZNJiwg
V2ViQXNzZW1ibHlFeGVjdXRhYmxlKiwgSlNTY29wZSopOwotI2VuZGlmCi0KICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKFZNJiwgTmF0aXZlRXhlY3V0YWJsZSosIGludCBsZW5ndGgsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CiAgICAgdXNpbmcgQmFzZTo6ZmluaXNoQ3JlYXRpb247CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb25JbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbklubGluZXMuaAko
cmV2aXNpb24gMjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUg
IkZ1bmN0aW9uRXhlY3V0YWJsZS5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKICNpbmNsdWRl
ICJOYXRpdmVFeGVjdXRhYmxlLmgiCi0jaW5jbHVkZSAiV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC00NiwxNSArNDUsNiBAQCBpbmxpbmUgSlNGdW5jdGlv
bjo6SlNGdW5jdGlvbihWTSYgdm0sIEZ1CiB7CiB9CiAKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkp
Ci1pbmxpbmUgSlNGdW5jdGlvbjo6SlNGdW5jdGlvbihWTSYgdm0sIFdlYkFzc2VtYmx5RXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgSlNTY29wZSogc2NvcGUpCi0gICAgOiBCYXNlKHZtLCBzY29wZSwg
c2NvcGUtPmdsb2JhbE9iamVjdCh2bSktPmZ1bmN0aW9uU3RydWN0dXJlKCkpCi0gICAgLCBtX2V4
ZWN1dGFibGUodm0sIHRoaXMsIGV4ZWN1dGFibGUpCi0gICAgLCBtX3JhcmVEYXRhKCkKLXsKLX0K
LSNlbmRpZgotCiBpbmxpbmUgRnVuY3Rpb25FeGVjdXRhYmxlKiBKU0Z1bmN0aW9uOjpqc0V4ZWN1
dGFibGUoKSBjb25zdAogewogICAgIEFTU0VSVCghaXNIb3N0RnVuY3Rpb25Ob25JbmxpbmUoKSk7
CkBAIC03NCwxMCArNjQsNiBAQCBpbmxpbmUgSW50cmluc2ljIEpTRnVuY3Rpb246OmludHJpbnNp
YygpCiAKIGlubGluZSBib29sIEpTRnVuY3Rpb246OmlzQnVpbHRpbkZ1bmN0aW9uKCkgY29uc3QK
IHsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgaWYgKG1fZXhlY3V0YWJsZS0+aXNXZWJB
c3NlbWJseUV4ZWN1dGFibGUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAg
cmV0dXJuICFpc0hvc3RGdW5jdGlvbigpICYmIGpzRXhlY3V0YWJsZSgpLT5pc0J1aWx0aW5GdW5j
dGlvbigpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZp
c2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNiBAQAogI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAj
aW5jbHVkZSAiV2Vha0dDTWFwSW5saW5lcy5oIgogI2luY2x1ZGUgIldlYWtNYXBEYXRhLmgiCi0j
aW5jbHVkZSAiV2ViQXNzZW1ibHlDb2RlQmxvY2suaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAjaW5jbHVkZSA8d3RmL1NpbXBsZVN0
YXRzLmg+CkBAIC0yMjksNyArMjI4LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBl
IGhlYXBUeXBlKQogICAgIHByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywgUHJv
Z3JhbUV4ZWN1dGFibGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAg
ICBmdW5jdGlvbkV4ZWN1dGFibGVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBGdW5jdGlvbkV4ZWN1dGFi
bGU6OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCi0gICAgd2ViQXNzZW1ibHlFeGVjdXRhYmxlU3RydWN0dXJlLnNldCgqdGhpcywg
V2ViQXNzZW1ibHlFeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgp
KSk7CiAgICAgd2ViQXNzZW1ibHlDYWxsZWVTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBKU1dlYkFzc2Vt
Ymx5Q2FsbGVlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAjZW5kaWYK
ICAgICBtb2R1bGVQcm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZS5zZXQoKnRoaXMsIE1vZHVsZVBy
b2dyYW1FeGVjdXRhYmxlOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CkBA
IC0yNTksOSArMjU3LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBl
KQogICAgIG1vZHVsZVByb2dyYW1Db2RlQmxvY2tTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBNb2R1bGVQ
cm9ncmFtQ29kZUJsb2NrOjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAg
ICAgZXZhbENvZGVCbG9ja1N0cnVjdHVyZS5zZXQoKnRoaXMsIEV2YWxDb2RlQmxvY2s6OmNyZWF0
ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKICAgICBmdW5jdGlvbkNvZGVCbG9ja1N0
cnVjdHVyZS5zZXQoKnRoaXMsIEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGVTdHJ1Y3R1cmUoKnRo
aXMsIDAsIGpzTnVsbCgpKSk7Ci0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIHdlYkFzc2Vt
Ymx5Q29kZUJsb2NrU3RydWN0dXJlLnNldCgqdGhpcywgV2ViQXNzZW1ibHlDb2RlQmxvY2s6OmNy
ZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwganNOdWxsKCkpKTsKLSNlbmRpZgogICAgIGhhc2hNYXBC
dWNrZXRTZXRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNrZXRE
YXRhS2V5Pjo6Y3JlYXRlU3RydWN0dXJlKCp0aGlzLCAwLCBqc051bGwoKSkpOwogICAgIGhhc2hN
YXBCdWNrZXRNYXBTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBIYXNoTWFwQnVja2V0PEhhc2hNYXBCdWNr
ZXREYXRhS2V5VmFsdWU+OjpjcmVhdGVTdHJ1Y3R1cmUoKnRoaXMsIDAsIGpzTnVsbCgpKSk7CiAg
ICAgaGFzaE1hcEltcGxTZXRTdHJ1Y3R1cmUuc2V0KCp0aGlzLCBIYXNoTWFwSW1wbDxIYXNoTWFw
QnVja2V0PEhhc2hNYXBCdWNrZXREYXRhS2V5Pj46OmNyZWF0ZVN0cnVjdHVyZSgqdGhpcywgMCwg
anNOdWxsKCkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24g
MjA5NDA3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBj
b3B5KQpAQCAtMzA5LDcgKzMwOSw2IEBAIHB1YmxpYzoKICAgICBTdHJvbmc8U3RydWN0dXJlPiBw
cm9ncmFtRXhlY3V0YWJsZVN0cnVjdHVyZTsKICAgICBTdHJvbmc8U3RydWN0dXJlPiBmdW5jdGlv
bkV4ZWN1dGFibGVTdHJ1Y3R1cmU7CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotICAgIFN0cm9u
ZzxTdHJ1Y3R1cmU+IHdlYkFzc2VtYmx5RXhlY3V0YWJsZVN0cnVjdHVyZTsKICAgICBTdHJvbmc8
U3RydWN0dXJlPiB3ZWJBc3NlbWJseUNhbGxlZVN0cnVjdHVyZTsKICNlbmRpZgogICAgIFN0cm9u
ZzxTdHJ1Y3R1cmU+IG1vZHVsZVByb2dyYW1FeGVjdXRhYmxlU3RydWN0dXJlOwpAQCAtMzQwLDcg
KzMzOSw2IEBAIHB1YmxpYzoKICAgICBTdHJvbmc8U3RydWN0dXJlPiBtb2R1bGVQcm9ncmFtQ29k
ZUJsb2NrU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1Y3R1cmU+IGV2YWxDb2RlQmxvY2tTdHJ1
Y3R1cmU7CiAgICAgU3Ryb25nPFN0cnVjdHVyZT4gZnVuY3Rpb25Db2RlQmxvY2tTdHJ1Y3R1cmU7
Ci0gICAgU3Ryb25nPFN0cnVjdHVyZT4gd2ViQXNzZW1ibHlDb2RlQmxvY2tTdHJ1Y3R1cmU7CiAg
ICAgU3Ryb25nPFN0cnVjdHVyZT4gaGFzaE1hcEJ1Y2tldFNldFN0cnVjdHVyZTsKICAgICBTdHJv
bmc8U3RydWN0dXJlPiBoYXNoTWFwQnVja2V0TWFwU3RydWN0dXJlOwogICAgIFN0cm9uZzxTdHJ1
Y3R1cmU+IGhhc2hNYXBJbXBsU2V0U3RydWN0dXJlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2ViQXNzZW1ibHlFeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWJBc3NlbWJseUV4ZWN1dGFibGUuY3BwCShyZXZp
c2lvbiAyMDk0MDcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWJBc3NlbWJs
eUV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTMsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJCYXRjaGVkVHJhbnNpdGlvbk9w
dGltaXplci5oIgotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkRlYnVnZ2VyLmgi
Ci0jaW5jbHVkZSAiSklULmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIkpT
V2ViQXNzZW1ibHlNb2R1bGUuaCIKLSNpbmNsdWRlICJMTEludEVudHJ5cG9pbnQuaCIKLSNpbmNs
dWRlICJQYXJzZXIuaCIKLSNpbmNsdWRlICJUeXBlUHJvZmlsZXIuaCIKLSNpbmNsdWRlICJWTUlu
bGluZXMuaCIKLSNpbmNsdWRlICJXZWJBc3NlbWJseUNvZGVCbG9jay5oIgotI2luY2x1ZGUgPHd0
Zi9Db21tYVByaW50ZXIuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSNpZiBFTkFCTEUoV0VCQVNT
RU1CTFkpCi1jb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlFeGVjdXRhYmxlOjpzX2luZm8gPSB7
ICJXZWJBc3NlbWJseUV4ZWN1dGFibGUiLCAmRXhlY3V0YWJsZUJhc2U6OnNfaW5mbywgMCwgQ1JF
QVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUV4ZWN1dGFibGUpIH07Ci0KLVdlYkFzc2VtYmx5
RXhlY3V0YWJsZTo6V2ViQXNzZW1ibHlFeGVjdXRhYmxlKFZNJiB2bSwgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlLCBKU1dlYkFzc2VtYmx5TW9kdWxlKiBtb2R1bGUsIHVuc2lnbmVkIGZ1bmN0aW9u
SW5kZXgpCi0gICAgOiBFeGVjdXRhYmxlQmFzZSh2bSwgdm0ud2ViQXNzZW1ibHlFeGVjdXRhYmxl
U3RydWN0dXJlLmdldCgpLCBOVU1fUEFSQU1FVEVSU19OT1RfQ09NUElMRUQsIE5vSW50cmluc2lj
KQotICAgICwgbV9zb3VyY2Uoc291cmNlKQotICAgICwgbV9tb2R1bGUodm0sIHRoaXMsIG1vZHVs
ZSkKLSAgICAsIG1fZnVuY3Rpb25JbmRleChmdW5jdGlvbkluZGV4KQotewotICAgIEFTU0VSVChz
b3VyY2UucHJvdmlkZXIoKS0+c291cmNlVHlwZSgpID09IFNvdXJjZVByb3ZpZGVyU291cmNlVHlw
ZTo6V2ViQXNzZW1ibHkpOwotfQotCi12b2lkIFdlYkFzc2VtYmx5RXhlY3V0YWJsZTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCi17Ci0gICAgc3RhdGljX2Nhc3Q8V2ViQXNzZW1ibHlFeGVjdXRhYmxl
Kj4oY2VsbCktPldlYkFzc2VtYmx5RXhlY3V0YWJsZTo6fldlYkFzc2VtYmx5RXhlY3V0YWJsZSgp
OwotfQotCi12b2lkIFdlYkFzc2VtYmx5RXhlY3V0YWJsZTo6dmlzaXRDaGlsZHJlbihKU0NlbGwq
IGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQotewotICAgIFdlYkFzc2VtYmx5RXhlY3V0YWJs
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxXZWJBc3NlbWJseUV4ZWN1dGFibGUqPihjZWxsKTsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgRXhl
Y3V0YWJsZUJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7Ci0gICAgaWYg
KHRoaXNPYmplY3QtPm1fY29kZUJsb2NrRm9yQ2FsbCkKLSAgICAgICAgdGhpc09iamVjdC0+bV9j
b2RlQmxvY2tGb3JDYWxsLT52aXNpdFdlYWtseSh2aXNpdG9yKTsKLSAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9tb2R1bGUpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2ViQXNzZW1ibHlFeGVjdXRh
YmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2ViQXNz
ZW1ibHlFeGVjdXRhYmxlLmgJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1dlYkFzc2VtYmx5RXhlY3V0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAsIDIwMTMtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkV4ZWN1dGFibGVC
YXNlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi0jaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotY2xh
c3MgV2ViQXNzZW1ibHlFeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEV4ZWN1dGFibGVCYXNlIHsK
LXB1YmxpYzoKLSAgICB0eXBlZGVmIEV4ZWN1dGFibGVCYXNlIEJhc2U7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBTdHJ1
Y3R1cmVJc0ltbW9ydGFsOwotCi0gICAgc3RhdGljIFdlYkFzc2VtYmx5RXhlY3V0YWJsZSogY3Jl
YXRlKFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1dlYkFzc2VtYmx5TW9kdWxl
KiBtb2R1bGUsIHVuc2lnbmVkIGZ1bmN0aW9uSW5kZXgpCi0gICAgewotICAgICAgICBXZWJBc3Nl
bWJseUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxX
ZWJBc3NlbWJseUV4ZWN1dGFibGU+KHZtLmhlYXApKSBXZWJBc3NlbWJseUV4ZWN1dGFibGUodm0s
IHNvdXJjZSwgbW9kdWxlLCBmdW5jdGlvbkluZGV4KTsKLSAgICAgICAgZXhlY3V0YWJsZS0+Zmlu
aXNoQ3JlYXRpb24odm0pOwotICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKLSAgICB9Ci0KLSAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN0
cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBUeXBlSW5mbyhXZWJBc3Nl
bWJseUV4ZWN1dGFibGVUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0g
ICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKLQotICAgIERFQ0xBUkVfSU5GTzsKLQot
ICAgIHZvaWQgcHJlcGFyZUZvckV4ZWN1dGlvbihWTSYpOwotCi0gICAgV2ViQXNzZW1ibHlDb2Rl
QmxvY2sqIGNvZGVCbG9ja0ZvckNhbGwoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29kZUJs
b2NrRm9yQ2FsbC5nZXQoKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEV4
ZWN1dGFibGVCYXNlOwotICAgIFdlYkFzc2VtYmx5RXhlY3V0YWJsZShWTSYsIGNvbnN0IFNvdXJj
ZUNvZGUmLCBKU1dlYkFzc2VtYmx5TW9kdWxlKiwgdW5zaWduZWQgZnVuY3Rpb25JbmRleCk7Ci0K
LSAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7Ci0K
LSAgICBTb3VyY2VDb2RlIG1fc291cmNlOwotICAgIFdyaXRlQmFycmllcjxKU1dlYkFzc2VtYmx5
TW9kdWxlPiBtX21vZHVsZTsKLSAgICB1bnNpZ25lZCBtX2Z1bmN0aW9uSW5kZXg7Ci0KLSAgICBX
cml0ZUJhcnJpZXI8V2ViQXNzZW1ibHlDb2RlQmxvY2s+IG1fY29kZUJsb2NrRm9yQ2FsbDsKLX07
Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MDk0MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMyBAQAorMjAxNi0xMi0wNiAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgb2xkIFdhc20gb2JqZWN0IG1vZGVsCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0ODEKKworICAgICAgICBSZXZpZXdl
ZCBieSBLZWl0aCBNaWxsZXIgYW5kIE1hcmsgTGFtLgorCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYXJzZXJNZXRhRGF0YSk6
CisKIDIwMTYtMTItMDYgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIENsZWFudXA6IFJlbmFtZSBzb21lIEhUVFAgMC45LXNwZWNpZmljIGZ1bmN0aW9ucyB0byBj
b25mb3JtIHRvIFdlYktpdCBDb2RlIFN0eWxlIEd1aWRlbGluZXMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDIwOTQwNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1MiwxMCArMTU1Miw2
IEBAIFN0cmluZyBJbnRlcm5hbHM6OnBhcnNlck1ldGFEYXRhKEpTQzo6SlMKICAgICAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoIm1vZHVsZSIpOwogICAgIGVsc2UgaWYgKGV4ZWN1dGFibGUtPmlz
UHJvZ3JhbUV4ZWN1dGFibGUoKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoInByb2dy
YW0iKTsKLSNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi0gICAgZWxzZSBpZiAoZXhlY3V0YWJsZS0+
aXNXZWJBc3NlbWJseUV4ZWN1dGFibGUoKSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwo
IldlYkFzc2VtYmx5Iik7Ci0jZW5kaWYKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>