<?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>176644</bug_id>
          
          <creation_ts>2017-09-08 21:20:43 -0700</creation_ts>
          <short_desc>WebAssembly: Wasm::IndexOrName has a raw pointer to Name</short_desc>
          <delta_ts>2017-11-15 13:06:41 -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>WebAssembly</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176645</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>177472</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1347047</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-08 21:20:43 -0700</bug_when>
    <thetext>Since StackFrame can be kept around for a while (see Exception.h), we need that reference to be protected somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347053</commentid>
    <comment_count>1</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-09-08 22:00:55 -0700</bug_when>
    <thetext>It can stick around longer than the WebAssembly module?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1347055</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-09-08 22:19:08 -0700</bug_when>
    <thetext>(In reply to JF Bastien from comment #1)
&gt; It can stick around longer than the WebAssembly module?

Exception is an object. It can stick around for as long as the user likes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366761</commentid>
    <comment_count>3</comment_count>
      <attachid>325542</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-31 21:48:21 -0700</bug_when>
    <thetext>Created attachment 325542
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366762</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-31 21:50:50 -0700</bug_when>
    <thetext>Attachment 325542 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmNameSection.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 18 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>1366765</commentid>
    <comment_count>5</comment_count>
      <attachid>325543</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-31 22:00:46 -0700</bug_when>
    <thetext>Created attachment 325543
patch

Odd, looks like my compiler does return value optimization to move, but the bots do it to copy, and Ref hates that. Using RefPtr instead, since that&apos;s what I store to right after anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366766</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-31 22:01:50 -0700</bug_when>
    <thetext>Attachment 325543 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmNameSection.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 18 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>1366768</commentid>
    <comment_count>7</comment_count>
      <attachid>325543</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2017-10-31 22:15:38 -0700</bug_when>
    <thetext>Comment on attachment 325543
patch

r=me after build fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366769</commentid>
    <comment_count>8</comment_count>
      <attachid>325545</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-10-31 22:44:49 -0700</bug_when>
    <thetext>Created attachment 325545
patch

Can&apos;t use include guards on Name / NameSection / IndexOrName because they&apos;re included in JSC Stack things, and the RefPtr needs to call their dtor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366770</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-10-31 22:46:20 -0700</bug_when>
    <thetext>Attachment 325545 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmNameSection.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 18 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>1366775</commentid>
    <comment_count>10</comment_count>
      <attachid>325545</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-31 23:16:03 -0700</bug_when>
    <thetext>Comment on attachment 325545
patch

Clearing flags on attachment: 325545

Committed r224272: &lt;https://trac.webkit.org/changeset/224272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1366776</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-31 23:16:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372364</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 13:06:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568809&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325542</attachid>
            <date>2017-10-31 21:48:21 -0700</date>
            <delta_ts>2017-10-31 22:00:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-Wasm-IndexOrName-has-a-raw-pointer-to-Na.patch</filename>
            <type>text/plain</type>
            <size>26488</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAxODUwZGZhMzJhZTdlNDgwZjdkZDVkMDZkZWRiY2QxNTI4MjNjMjY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDMxIE9jdCAyMDE3IDIxOjQ2OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IFdhc206OkluZGV4T3JOYW1lIGhhcyBhIHJhdyBwb2ludGVyIHRvIE5hbWUKCi0tLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCA1MSAr
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgICAgICB8ICA0ICsrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmggICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcCAgICAgICB8ICA3ICsrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tGcmFtZS5oICAgICAgICAgfCAyMCArKy0tLS0tLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oICAgIHwgIDMgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICAgICAgIHwgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCAgICAgICAgICAgIHwgIDYgKy0tCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAgICAgICB8IDEwICst
LS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgICB8
IDIyICsrKysrLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFt
ZS5oICAgICAgIHwgMjEgKysrKystLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uY3BwICB8ICA3ICsrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1vZHVsZUluZm9ybWF0aW9uLmggfCAxNyArKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uLmggICAgICAgfCAxNiArKystLS0tCiAuLi4vSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwICB8IDExICsrLS0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCB8ICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAgICAgICAgICB8ICAzICst
CiAxOCBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjMjMzMi4uMWEyMTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTctMTAtMzEgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5OiBXYXNtOjpJbmRleE9y
TmFtZSBoYXMgYSByYXcgcG9pbnRlciB0byBOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleE9yTmFtZSBub3cga2VlcHMgYSBSZWZQdHIgdG8g
aXRzIG9yaWdpbmFsIE5hbWVTZWN0aW9uLCB3aGljaAorICAgICAgICBob2xkcyB0aGUgTmFtZSAo
b3IgcmVmZXJlbmNlcyBudWxscHRyIGlmIEluZGV4KS4gSG9sZGluZyBvbnRvIHRoZQorICAgICAg
ICBlbnRpcmUgc2VjdGlvbiBzZWVtcyBsaWtlIHRoZSBiZXR0ZXIgdGhpbmcgdG8gZG8sIHNpbmNl
IGJhY2t0cmFjZXMKKyAgICAgICAgcHJvYmFibHkgY29udGFpbiBtdWx0aXBsZSBuYW1lcyBmcm9t
IHRoZSBzYW1lIE1vZHVsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgor
ICAgICAgICAoSlNDOjpHZXRTdGFja1RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSBjb25zdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg6IEZyYW1lIGlzIG5vIGxvbmdlciBQ
T0QgYmVjYXVzZSBvZiB0aGUKKyAgICAgICAgUmVmUHRyLgorICAgICAgICAqIHJ1bnRpbWUvU3Rh
Y2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFtZS5oOiBEcm9wIHRoZSB1bmlvbiwgc2l6ZSBpcyBub3cg
NDAgYnl0ZXMuCisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOiBEZWxldGVk
LiBJbml0aWFsaXplZCBpbiBjbGFzcyBpbnN0ZWFkLgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1l
Ojp3YXNtKTogRGVsZXRlZC4gTWFrZSBpdCBhIGN0b3IgaW5zdGVhZC4KKyAgICAgICAgKiB3YXNt
L1dhc21CQlFQbGFuSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjppbml0
aWFsaXplQ2FsbGVlcyk6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6Q2FsbGVlOjpDYWxsZWUpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWU6OmNyZWF0ZSk6CisgICAgICAgICogd2FzbS9X
YXNtRm9ybWF0Lmg6IE1vdmUgTmFtZVNlY3Rpb24gdG8gaXRzIG93biBoZWFkZXIuCisgICAgICAg
IChKU0M6Oldhc206OmlzVmFsaWROYW1lVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206Ok5hbWVT
ZWN0aW9uOjpnZXQpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5h
bWUuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAo
SlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNJbmRleCBjb25zdCk6CisgICAgICAgICogd2FzbS9X
YXNtTW9kdWxlSW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNb2R1bGVJbmZv
cm1hdGlvbjo6TW9kdWxlSW5mb3JtYXRpb24pOgorICAgICAgICAqIHdhc20vV2FzbU1vZHVsZUlu
Zm9ybWF0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206Ok1vZHVsZUluZm9ybWF0aW9uOjpNb2R1
bGVJbmZvcm1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb246OmdldCk6CisgICAgICAgIChKU0M6
Oldhc206Ok5hbWVTZWN0aW9uOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2Fz
bU5hbWVTZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb25Q
YXJzZXI6OnBhcnNlKToKKyAgICAgICAgKiB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oOgor
ICAgICAgICAqIHdhc20vV2FzbU9NR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpPTUdQ
bGFuOjp3b3JrKToKKwogMjAxNy0xMC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IG5vIFZNIC8gSlMgdmVyc2lvbiBvZiBvdXIgaW1w
bGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTkxZjE2NS4uZTU5
OWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzYsNiArMTQ3Niw3IEBA
CiAJCUFENUMzNkVDMUY3NUFEN0MwMDBCQ0FBRiAvKiBXYXNtVG9KUy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREMDlBRUUxRjVGNjIzRjAwMTMxM0My
IC8qIFdhc21Ub0pTLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQUQ1QzM2RUYxRjdBMjYzQTAwMEJDQUFGIC8qIFdhc21NZW1vcnlNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVDMzZFRTFGN0Ey
NjI5MDAwQkNBQUYgLyogV2FzbU1lbW9yeU1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDc0MzhDMDFFMDQ1N0E0MDBGRDBDMkEgLyogV2Fz
bVNpZ25hdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDdCNEIyRTFGQTNFMjk4
MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVT
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQUQ4NkE5M0UxQUE0RDg4RDAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODZBOTNEMUFBNEQ4N0Mw
MDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ4RkYzOTgxRUI1QkRCMjAwODdGRjgyIC8qIFdhc21J
bmRleE9yTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFEOUU4NTJGMUU4QTBD
N0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUgLyog
SlNXZWJBc3NlbWJseUNvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00MjEyLDYgKzQyMTMsNyBAQAogCQlBRDVDMzZGMDFGN0EyNkJG
MDAwQkNBQUYgLyogV2FzbU1lbW9yeU1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1l
bW9yeU1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDc0MzhCRTFFMDQ1
NzkyMDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXYXNtU2lnbmF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lU2VjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0Yg
LyogV2Vha0dDTWFwSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWFrR0NNYXBJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEOERENkNG
MUY2NzA4OUYwMDA0RUI1MiAvKiBKU1RvV2FzbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1RvV2FzbS5o
OyBwYXRoID0ganMvSlNUb1dhc20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4
REQ2RDAxRjY3MDhBMzAwMDRFQjUyIC8qIEpTVG9XYXNtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEpTVG9XYXNtLmNwcDsgcGF0aCA9IGpzL0pTVG9XYXNtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxMTMsNiArNjExNSw3IEBACiAJCQkJNTNGNDBFOTYxRDVBN0JFQzAwOTlB
MUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3BwICovLAogCQkJCTUzRjQwRTk0MUQ1QTdBRUYwMDk5
QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmggKi8sCiAJCQkJQUQ1QjQxNkUxRUJBRkI2NTAwOEVG
QTQzIC8qIFdhc21OYW1lLmggKi8sCisJCQkJQUQ3QjRCMkQxRkEzRTI4NjAwQzlERjc5IC8qIFdh
c21OYW1lU2VjdGlvbi5oICovLAogCQkJCUFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNt
TmFtZVNlY3Rpb25QYXJzZXIuY3BwICovLAogCQkJCUFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAv
KiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk1MzExQkQ0ODFFQTU4MUU1MDA1MjUy
ODEgLyogV2FzbU9NR1BsYW4uY3BwICovLApAQCAtODIyMiw2ICs4MjI1LDcgQEAKIAkJCQkwRjk2
MzAzQzFENDE5MkNEMDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzdBNDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ3QjRCMkUxRkEzRTI5ODAwQzlERjc5IC8q
IFdhc21OYW1lU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDQxN0EwQkFBODAw
NkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjYyMDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEM0U0MDIxQjYxOEFBRjAwQzgwRTFFIC8qIERGR0FkYXB0aXZlSW5m
ZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0NDVj
ODcxLi5hMDA1YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKQEAgLTUwNyw3ICs1MDcsNyBAQCBwdWJsaWM6CiAKICAgICAgICAg
aWYgKG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKICAgICAgICAgICAgIGlm
ICh2aXNpdG9yLT5pc1dhc21GcmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFw
cGVuZChTdGFja0ZyYW1lOjp3YXNtKHZpc2l0b3ItPndhc21GdW5jdGlvbkluZGV4T3JOYW1lKCkp
KTsKKyAgICAgICAgICAgICAgICBtX3Jlc3VsdHMuYXBwZW5kKFN0YWNrRnJhbWUodmlzaXRvci0+
d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmICghIXZp
c2l0b3ItPmNvZGVCbG9jaygpICYmICF2aXNpdG9yLT5jb2RlQmxvY2soKS0+dW5saW5rZWRDb2Rl
QmxvY2soKS0+aXNCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAgIG1fcmVzdWx0
cy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIFN0YWNrRnJhbWUobV92bSwgbV9vd25lciwg
dmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCksIHZpc2l0b3ItPmNvZGVCbG9jaygpLCB2aXNpdG9y
LT5ieXRlY29kZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmgKaW5kZXggZTJhMTM2OC4uNDc1NWE5MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtMTIxLDkg
KzEyMSw5IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVf
dCBtX2FyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogICAgICAgICB1bnNpZ25lZCBtX2J5dGVj
b2RlT2Zmc2V0OwotICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dhc21GdW5jdGlvbkluZGV4
T3JOYW1lOwogICAgICAgICBib29sIG1fY2FsbGVySXNFbnRyeUZyYW1lIDogMTsKICAgICAgICAg
Ym9vbCBtX2lzV2FzbUZyYW1lIDogMTsKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93YXNt
RnVuY3Rpb25JbmRleE9yTmFtZTsKIAogICAgICAgICBmcmllbmQgY2xhc3MgU3RhY2tWaXNpdG9y
OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFj
a0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3Bw
CmluZGV4IDhlYzg3NWQuLmVkYjMyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBT
dGFja0ZyYW1lOjpTdGFja0ZyYW1lKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBjYWxs
ZWUpCiAgICAgOiBtX2NhbGxlZSh2bSwgb3duZXIsIGNhbGxlZSkKLSAgICAsIG1fYnl0ZWNvZGVP
ZmZzZXQoVUlOVF9NQVgpCiB7CiB9CiAKQEAgLTQ2LDYgKzQ1LDEyIEBAIFN0YWNrRnJhbWU6OlN0
YWNrRnJhbWUoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIGNhbGxlZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvCiB7CiB9CiAKK1N0YWNrRnJhbWU6OlN0YWNrRnJhbWUoV2FzbTo6SW5kZXhPck5h
bWUgaW5kZXhPck5hbWUpCisgICAgOiBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lKGluZGV4T3JO
YW1lKQorICAgICwgbV9pc1dhc21GcmFtZSh0cnVlKQoreworfQorCiBpbnRwdHJfdCBTdGFja0Zy
YW1lOjpzb3VyY2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvZGVCbG9jaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAppbmRleCAxYjViZWE2Li4yODc3NzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCkBAIC0zNywy
MSArMzcsOSBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIAogY2xhc3MgU3RhY2tGcmFtZSB7CiBwdWJs
aWM6Ci0gICAgU3RhY2tGcmFtZSgpCi0gICAgICAgIDogbV9ieXRlY29kZU9mZnNldChVSU5UX01B
WCkKLSAgICB7IH0KLQogICAgIFN0YWNrRnJhbWUoVk0mLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwq
IGNhbGxlZSk7Ci0KICAgICBTdGFja0ZyYW1lKFZNJiwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBj
YWxsZWUsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHN0YXRp
YyBTdGFja0ZyYW1lIHdhc20oV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhPck5hbWUpCi0gICAgewot
ICAgICAgICBTdGFja0ZyYW1lIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1faXNXYXNtRnJhbWUg
PSB0cnVlOwotICAgICAgICByZXN1bHQubV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZSA9IGluZGV4
T3JOYW1lOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KKyAgICBTdGFja0ZyYW1lKFdh
c206OkluZGV4T3JOYW1lKTsKIAogICAgIGJvb2wgaGFzTGluZUFuZENvbHVtbkluZm8oKSBjb25z
dCB7IHJldHVybiAhIW1fY29kZUJsb2NrOyB9CiAgICAgCkBAIC03MywxMCArNjEsOCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fY2FsbGVlIHsgfTsKICAg
ICBXcml0ZUJhcnJpZXI8Q29kZUJsb2NrPiBtX2NvZGVCbG9jayB7IH07Ci0gICAgdW5pb24gewot
ICAgICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwotICAgICAgICBXYXNtOjpJbmRleE9y
TmFtZSBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lOwotICAgIH07CisgICAgV2FzbTo6SW5kZXhP
ck5hbWUgbV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZTsKKyAgICB1bnNpZ25lZCBtX2J5dGVjb2Rl
T2Zmc2V0IHsgVUlOVF9NQVggfTsKICAgICBib29sIG1faXNXYXNtRnJhbWUgeyBmYWxzZSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5J
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMu
aAppbmRleCA0NDQ3OTBiLi5mYzU4NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbklubGluZXMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNh
bGxlZUJpdHMuaCIKICNpbmNsdWRlICJXYXNtQkJRUGxhbi5oIgogI2luY2x1ZGUgIldhc21DYWxs
ZWUuaCIKKyNpbmNsdWRlICJXYXNtTmFtZVNlY3Rpb24uaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIEJCUVBsYW46OmluaXRpYWxp
emVDYWxsZWVzKGNvbnN0IEZ1bmN0b3ImIGNhbGxiYWNrKQogCiAgICAgICAgIEludGVybmFsRnVu
Y3Rpb24qIGZ1bmN0aW9uID0gbV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbaW50ZXJuYWxGdW5jdGlv
bkluZGV4XS5nZXQoKTsKICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGludGVy
bmFsRnVuY3Rpb25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291
bnQoKTsKLSAgICAgICAgUmVmPFdhc206OkNhbGxlZT4gd2FzbUVudHJ5cG9pbnRDYWxsZWUgPSBX
YXNtOjpDYWxsZWU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uLT5lbnRyeXBvaW50KSwgZnVuY3Rp
b25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rp
b25JbmRleFNwYWNlKSk7CisgICAgICAgIFJlZjxXYXNtOjpDYWxsZWU+IHdhc21FbnRyeXBvaW50
Q2FsbGVlID0gV2FzbTo6Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbi0+ZW50cnlwb2lu
dCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24t
PmdldChmdW5jdGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0
Y2hQb2ludGVyKGZ1bmN0aW9uLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdh
c20od2FzbUVudHJ5cG9pbnRDYWxsZWUucHRyKCkpKTsKIAogICAgICAgICBjYWxsYmFjayhpbnRl
cm5hbEZ1bmN0aW9uSW5kZXgsIFdURk1vdmUoZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlKSwgV1RG
TW92ZSh3YXNtRW50cnlwb2ludENhbGxlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGVlLmNwcAppbmRleCA5ZTgzZWRmLi40N2I1MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApAQCAtMzgsOSArMzgsOSBAQCBDYWxsZWU6OkNhbGxl
ZShFbnRyeXBvaW50JiYgZW50cnlwb2ludCkKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50
LmNvbXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2Vu
dHJ5cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgp
KTsKIH0KIAotQ2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVudHJ5cG9pbnQsIHNpemVfdCBp
bmRleCwgY29uc3QgTmFtZSogbmFtZSkKK0NhbGxlZTo6Q2FsbGVlKEVudHJ5cG9pbnQmJiBlbnRy
eXBvaW50LCBzaXplX3QgaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVT
ZWN0aW9uPj4mJiBuYW1lKQogICAgIDogbV9lbnRyeXBvaW50KFdURk1vdmUoZW50cnlwb2ludCkp
Ci0gICAgLCBtX2luZGV4T3JOYW1lKGluZGV4LCBuYW1lKQorICAgICwgbV9pbmRleE9yTmFtZShp
bmRleCwgV1RGTW92ZShuYW1lKSkKIHsKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50LmNv
bXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2VudHJ5
cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCAyM2MxYWU1Li5j
NDZhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCkBAIC00NCw5
ICs0NCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUoV2FzbTo6RW50cnlwb2ludCYmIGVu
dHJ5cG9pbnQsIHNpemVfdCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKKyAgICBzdGF0aWMgUmVm
PENhbGxlZT4gY3JlYXRlKFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBzaXplX3QgaW5k
ZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1lKQog
ICAgIHsKLSAgICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlw
b2ludCksIGluZGV4LCBuYW1lKTsKKyAgICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVl
KFdURk1vdmUoZW50cnlwb2ludCksIGluZGV4LCBXVEZNb3ZlKG5hbWUpKTsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAgIH0KIApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9p
bnQmJik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJiwg
c2l6ZV90LCBjb25zdCBOYW1lKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206
OkVudHJ5cG9pbnQmJiwgc2l6ZV90LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1l
U2VjdGlvbj4+JiYpOwogCiAgICAgV2FzbTo6RW50cnlwb2ludCBtX2VudHJ5cG9pbnQ7CiAgICAg
SW5kZXhPck5hbWUgbV9pbmRleE9yTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAppbmRleCBjMmY3OThlLi44Y2NhNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9m
ZnNldExpc3QuaCIKICNpbmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIKICNpbmNsdWRl
ICJXYXNtTmFtZS5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogI2luY2x1ZGUgIldh
c21PcHMuaCIKICNpbmNsdWRlICJXYXNtUGFnZUNvdW50LmgiCiAjaW5jbHVkZSAiV2FzbVNpZ25h
dHVyZS5oIgpAQCAtMjUzLDE1ICsyNTQsNiBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkTmFtZVR5cGUo
SW50IHZhbCkKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotc3RydWN0IE5hbWVT
ZWN0aW9uIHsKLSAgICBOYW1lIG1vZHVsZU5hbWU7Ci0gICAgVmVjdG9yPE5hbWU+IGZ1bmN0aW9u
TmFtZXM7Ci0gICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbkluZGV4U3BhY2UpCi0g
ICAgewotICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVuY3Rpb25OYW1lcy5z
aXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDogbnVsbHB0cjsKLSAg
ICB9Ci19OwogCiBzdHJ1Y3QgVW5saW5rZWRXYXNtVG9XYXNtQ2FsbCB7CiAgICAgQ29kZUxvY2F0
aW9uTmVhckNhbGwgY2FsbExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggYWI5Njk2MS4uZjNiZWY2NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCkBAIC0yOCwxNyArMjgs
MTkgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAotSW5kZXhPck5hbWU6
OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQorSW5kZXhPck5hbWU6
OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxO
YW1lU2VjdGlvbj4+JiYgbmFtZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4
KSA9PSBzaXplb2YobV9uYW1lKSwgImJpdC10YWdnaW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcg
ZXF1YWwiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXplb2YoKnRo
aXMpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBvYmplY3QgYmVpbmcgdGhlIHNpemUgb2YgdGhl
IHVuaW9uJ3MgdHlwZXMiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5p
bmRleCkgPT0gc2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBv
biBzaXplcyBiZWluZyBlcXVhbCIpOwogCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChi
aXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUpICYgYWxsVGFncykpCisgICAgaWYgKChpbmRleCAmIGFs
bFRhZ3MpIHx8IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCiAg
ICAgICAgICp0aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIGlmIChuYW1lKQotICAgICAg
ICBtX25hbWUgPSBuYW1lOwotICAgIGVsc2UKLSAgICAgICAgbV9pbmRleCA9IGluZGV4VGFnIHwg
aW5kZXg7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChuYW1lLmZpcnN0KQorICAgICAgICAgICAg
bV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyAgICAgICAgbV9uYW1lU2Vj
dGlvbiA9IFdURk1vdmUobmFtZS5zZWNvbmQpOworICAgIH0KIH0KIAogU3RyaW5nIG1ha2VTdHJp
bmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKQEAgLTQ2LDggKzQ4LDggQEAgU3RyaW5nIG1ha2VT
dHJpbmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKICAgICBpZiAoaW9uLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIGlmIChpb24uaXNJbmRleCgpKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nOjpudW1iZXIoaW9uLm1faW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFn
KTsKLSAgICByZXR1cm4gU3RyaW5nKGlvbi5tX25hbWUtPmRhdGEoKSwgaW9uLm1fbmFtZS0+c2l6
ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRl
eCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpOworICAgIHJldHVybiBTdHJpbmcoaW9uLm1faW5k
ZXhOYW1lLm5hbWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSk7CiB9Owog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaAppbmRleCBkNzU0NWZhLi43MGM3ZWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtMjYsMjkgKzI2LDMyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldhc21OYW1lLmgiCisjaW5jbHVkZSAiV2FzbU5h
bWVTZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAorc3RydWN0IE5hbWVTZWN0aW9uOworCiBzdHJ1Y3Qg
SW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5h
bWUoKQotICAgICAgICA6IG1faW5kZXgoZW1wdHlUYWcpCi0gICAgeyB9Ci0gICAgSW5kZXhPck5h
bWUoSW5kZXgsIGNvbnN0IE5hbWUqKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBiaXR3aXNlX2Nhc3Q8SW5kZXg+KCp0aGlzKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0lu
ZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PigqdGhpcykgJiBpbmRleFRh
ZzsgfQorICAgIEluZGV4T3JOYW1lKCkgeyBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOyB9
CisgICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5h
bWVTZWN0aW9uPj4mJik7CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lz
ZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsgfQorICAgIGJvb2wgaXNJbmRl
eCgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5k
ZXhUYWc7IH0KICAgICBib29sIGlzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICEoaXNFbXB0eSgpIHx8
IGlzTmFtZSgpKTsgfQogCiAgICAgZnJpZW5kIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4
T3JOYW1lJik7CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewotICAgICAgICBJbmRleCBtX2luZGV4
OwotICAgICAgICBjb25zdCBOYW1lKiBtX25hbWU7Ci0gICAgfTsKKyAgICAgICAgSW5kZXggaW5k
ZXg7CisgICAgICAgIGNvbnN0IE5hbWUqIG5hbWU7CisgICAgfSBtX2luZGV4TmFtZTsKKyAgICBS
ZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKICAgICAvLyBVc2UgdGhlIHRvcCBi
aXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFj
ZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9
IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5jcHAKaW5kZXggODk2
YWJkZC4uOWRhNWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTW9kdWxlSW5mb3JtYXRpb24uY3BwCkBAIC0yOCw4ICsyOCwxNSBAQAogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uLmgiCisKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKK01vZHVsZUluZm9ybWF0aW9uOjpNb2R1bGVJbmZv
cm1hdGlvbihWZWN0b3I8dWludDhfdD4mJiBzb3VyY2VCeXRlcykKKyAgICA6IHNvdXJjZShXVEZN
b3ZlKHNvdXJjZUJ5dGVzKSkKKyAgICAsIG5hbWVTZWN0aW9uKG5ldyBOYW1lU2VjdGlvbigpKQor
eworfQogTW9kdWxlSW5mb3JtYXRpb246On5Nb2R1bGVJbmZvcm1hdGlvbigpIHsgfQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAppbmRleCAwN2IzODk5Li4xODIzOWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaApA
QCAtMzIsNiArMzIsMTQgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIHN0
cnVjdCBNb2R1bGVJbmZvcm1hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNb2R1
bGVJbmZvcm1hdGlvbj4geworICAgIE1vZHVsZUluZm9ybWF0aW9uKCkgPSBkZWxldGU7CisgICAg
TW9kdWxlSW5mb3JtYXRpb24oY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mKSA9IGRlbGV0ZTsKKyAg
ICBNb2R1bGVJbmZvcm1hdGlvbihNb2R1bGVJbmZvcm1hdGlvbiYmKSA9IGRlbGV0ZTsKKworICAg
IE1vZHVsZUluZm9ybWF0aW9uKFZlY3Rvcjx1aW50OF90PiYmIHNvdXJjZUJ5dGVzKTsKKworICAg
IEpTX0VYUE9SVF9QUklWQVRFIH5Nb2R1bGVJbmZvcm1hdGlvbigpOworICAgIAogICAgIHNpemVf
dCBmdW5jdGlvbkluZGV4U3BhY2VTaXplKCkgY29uc3QgeyByZXR1cm4gaW1wb3J0RnVuY3Rpb25T
aWduYXR1cmVJbmRpY2VzLnNpemUoKSArIGludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2Vz
LnNpemUoKTsgfQogICAgIGJvb2wgaXNJbXBvcnRlZEZ1bmN0aW9uRnJvbUZ1bmN0aW9uSW5kZXhT
cGFjZShzaXplX3QgZnVuY3Rpb25JbmRleCkgY29uc3QKICAgICB7CkBAIC00OCwxMyArNTYsNiBA
QCBzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TW9kdWxlSW5mb3JtYXRpb24+IHsKICAgICB1aW50MzJfdCBpbXBvcnRGdW5jdGlvbkNvdW50KCkg
Y29uc3QgeyByZXR1cm4gaW1wb3J0RnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQog
ICAgIHVpbnQzMl90IGludGVybmFsRnVuY3Rpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIGludGVy
bmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQogCi0gICAgTW9kdWxlSW5mb3Jt
YXRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgc291cmNlQnl0ZXMpCi0gICAgICAgIDogc291cmNlKFdU
Rk1vdmUoc291cmNlQnl0ZXMpKQotICAgIHsKLSAgICB9Ci0KLSAgICBKU19FWFBPUlRfUFJJVkFU
RSB+TW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiBzb3Vy
Y2U7CiAKICAgICBWZWN0b3I8SW1wb3J0PiBpbXBvcnRzOwpAQCAtNzQsNyArNzUsNyBAQCBzdHJ1
Y3QgTW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TW9kdWxl
SW5mb3JtYXRpb24+IHsKICAgICBWZWN0b3I8R2xvYmFsPiBnbG9iYWxzOwogICAgIHVuc2lnbmVk
IGZpcnN0SW50ZXJuYWxHbG9iYWwgeyAwIH07CiAgICAgVmVjdG9yPEN1c3RvbVNlY3Rpb24+IGN1
c3RvbVNlY3Rpb25zOwotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0aW9uOworICAgIFJlZlB0cjxO
YW1lU2VjdGlvbj4gbmFtZVNlY3Rpb247CiB9OwogCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCmluZGV4IDEzN2Y2NTIuLmQxMDJhYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCkBAIC0yNSwyNCAr
MjUsMjQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNp
bmNsdWRlICJXYXNtTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlsaXR5PgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCi1zdHJ1Y3QgTmFtZVNlY3Rpb24gOiBUaHJlYWRT
YWZlUmVmQ291bnRlZDxOYW1lU2VjdGlvbj4gewotICAgIHN0YXRpYyBSZWY8TmFtZVNlY3Rpb24+
IGNyZWF0ZSgpCitzdHJ1Y3QgTmFtZVNlY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8TmFtZVNlY3Rpb24+IHsKKyAgICBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1l
U2VjdGlvbj4+IGdldChzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmFtZVNlY3Rpb24oKSk7CisgICAgICAgIHJldHVybiBmdW5j
dGlvbkluZGV4U3BhY2UgPCBmdW5jdGlvbk5hbWVzLnNpemUoKSA/IHN0ZDo6bWFrZV9wYWlyKCZm
dW5jdGlvbk5hbWVzW2Z1bmN0aW9uSW5kZXhTcGFjZV0sIFJlZlB0cjxOYW1lU2VjdGlvbj4odGhp
cykpIDogc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PihudWxscHRy
LCBudWxscHRyKTsKICAgICB9Ci0KICAgICBOYW1lIG1vZHVsZU5hbWU7CiAgICAgVmVjdG9yPE5h
bWU+IGZ1bmN0aW9uTmFtZXM7Ci0gICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbklu
ZGV4U3BhY2UpCi0gICAgewotICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVu
Y3Rpb25OYW1lcy5zaXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDog
bnVsbHB0cjsKLSAgICB9CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAKaW5kZXggYTU4Mjg5Zi4uMTVmYTIwMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25Q
YXJzZXIuY3BwCkBAIC0yOSwxNCArMjksMTUgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAK
ICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlv
bi5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBhdXRvIE5hbWVTZWN0
aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogewotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0
aW9uOwotICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFtZXMu
dHJ5UmVzZXJ2ZUNhcGFjaXR5KG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCkpLCAiY2Fu
J3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgZnVuY3Rpb24gbmFtZXMiKTsKLSAgICBuYW1l
U2VjdGlvbi5mdW5jdGlvbk5hbWVzLnJlc2l6ZShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6
ZSgpKTsKKyAgICBSZWY8TmFtZVNlY3Rpb24+IG5hbWVTZWN0aW9uKGFkb3B0UmVmKCpuZXcgTmFt
ZVNlY3Rpb24oKSkpOworICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLT5mdW5j
dGlvbk5hbWVzLnRyeVJlc2VydmVDYXBhY2l0eShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6
ZSgpKSwgImNhbid0IGFsbG9jYXRlIGVub3VnaCBtZW1vcnkgZm9yIGZ1bmN0aW9uIG5hbWVzIik7
CisgICAgbmFtZVNlY3Rpb24tPmZ1bmN0aW9uTmFtZXMucmVzaXplKG1faW5mby5mdW5jdGlvbklu
ZGV4U3BhY2VTaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgcGF5bG9hZE51bWJlciA9IDA7IG1f
b2Zmc2V0IDwgbGVuZ3RoKCk7ICsrcGF5bG9hZE51bWJlcikgewogICAgICAgICB1aW50OF90IG5h
bWVUeXBlOwpAQCAtNTgsNyArNTksNyBAQCBhdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgp
IC0+IFJlc3VsdAogICAgICAgICAgICAgTmFtZSBuYW1lU3RyaW5nOwogICAgICAgICAgICAgV0FT
TV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIobmFtZUxlbiksICJjYW4ndCBnZXQgbW9k
dWxlJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAg
ICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFjb25zdW1lVVRGOFN0cmluZyhuYW1lU3RyaW5nLCBu
YW1lTGVuKSwgImNhbid0IGdldCBtb2R1bGUncyBuYW1lIG9mIGxlbmd0aCAiLCBuYW1lTGVuLCAi
IGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOwotICAgICAgICAgICAgbmFtZVNlY3Rpb24u
bW9kdWxlTmFtZSA9IFdURk1vdmUobmFtZVN0cmluZyk7CisgICAgICAgICAgICBuYW1lU2VjdGlv
bi0+bW9kdWxlTmFtZSA9IFdURk1vdmUobmFtZVN0cmluZyk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIE5hbWVUeXBlOjpGdW5jdGlvbjogewpAQCAtNzIsNyAr
NzMsNyBAQCBhdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogICAgICAg
ICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYobV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFjZVNp
emUoKSA8PSBpbmRleCwgImZ1bmN0aW9uICIsIGZ1bmN0aW9uLCAiIGluZGV4ICIsIGluZGV4LCAi
IGlzIGxhcmdlciB0aGFuIGZ1bmN0aW9uIGluZGV4IHNwYWNlICIsIG1faW5mby5mdW5jdGlvbklu
ZGV4U3BhY2VTaXplKCksICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAg
ICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIobmFtZUxlbiksICJj
YW4ndCBnZXQgZnVuY3Rpb25zICIsIGZ1bmN0aW9uLCAiJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxv
YWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9J
RighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmluZywgbmFtZUxlbiksICJjYW4ndCBnZXQgZnVu
Y3Rpb24gIiwgZnVuY3Rpb24sICIncyBuYW1lIG9mIGxlbmd0aCAiLCBuYW1lTGVuLCAiIGZvciBw
YXlsb2FkICIsIHBheWxvYWROdW1iZXIpOwotICAgICAgICAgICAgICAgIG5hbWVTZWN0aW9uLmZ1
bmN0aW9uTmFtZXNbaW5kZXhdID0gV1RGTW92ZShuYW1lU3RyaW5nKTsKKyAgICAgICAgICAgICAg
ICBuYW1lU2VjdGlvbi0+ZnVuY3Rpb25OYW1lc1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJpbmcp
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKaW5kZXgg
YjI5NzBkZC4uZjA3Nzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKQEAgLTI5LDEwICsyOSwxMSBAQAogCiAjaW5jbHVkZSAi
V2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgIldhc21QYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVm
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKLWNsYXNzIE5hbWVTZWN0
aW9uUGFyc2VyIDogcHVibGljIFBhcnNlcjxOYW1lU2VjdGlvbj4geworY2xhc3MgTmFtZVNlY3Rp
b25QYXJzZXIgOiBwdWJsaWMgUGFyc2VyPFJlZjxOYW1lU2VjdGlvbj4+IHsKIHB1YmxpYzoKICAg
ICBOYW1lU2VjdGlvblBhcnNlcihjb25zdCB1aW50OF90KiBzb3VyY2VCdWZmZXIsIHNpemVfdCBz
b3VyY2VMZW5ndGgsIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvKQogICAgICAgICA6IFBh
cnNlcihzb3VyY2VCdWZmZXIsIHNvdXJjZUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21PTUdQbGFuLmNwcAppbmRleCBmNTVhZGE3Li5mZmM3ZDJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiV2FzbUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiV2FzbU1hY2hpbmVUaHJlYWRzLmgiCiAj
aW5jbHVkZSAiV2FzbU1lbW9yeS5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogI2lu
Y2x1ZGUgIldhc21WYWxpZGF0ZS5oIgogI2luY2x1ZGUgIldhc21Xb3JrbGlzdC5oIgogI2luY2x1
ZGUgPHd0Zi9EYXRhTG9nLmg+CkBAIC0xMDUsNyArMTA2LDcgQEAgdm9pZCBPTUdQbGFuOjp3b3Jr
KENvbXBpbGF0aW9uRWZmb3J0KQogICAgIHZvaWQqIGVudHJ5cG9pbnQ7CiAgICAgewogICAgICAg
ICBBU1NFUlQobV9jb2RlQmxvY2sucHRyKCkgPT0gbV9tb2R1bGUtPmNvZGVCbG9ja0Zvcihtb2Rl
KCkpKTsKLSAgICAgICAgUmVmPENhbGxlZT4gY2FsbGVlID0gQ2FsbGVlOjpjcmVhdGUoV1RGTW92
ZShvbWdFbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9u
LT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CisgICAgICAgIFJlZjxDYWxs
ZWU+IGNhbGxlZSA9IENhbGxlZTo6Y3JlYXRlKFdURk1vdmUob21nRW50cnlwb2ludCksIGZ1bmN0
aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5j
dGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVy
KHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgpLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxl
ZUJpdHM6OmJveFdhc20oY2FsbGVlLnB0cigpKSk7CiAgICAgICAgIEFTU0VSVCghbV9jb2RlQmxv
Y2stPm1fb3B0aW1pemVkQ2FsbGVlc1ttX2Z1bmN0aW9uSW5kZXhdKTsKICAgICAgICAgZW50cnlw
b2ludCA9IGNhbGxlZS0+ZW50cnlwb2ludCgpOwotLSAKMi45LjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325543</attachid>
            <date>2017-10-31 22:00:46 -0700</date>
            <delta_ts>2017-10-31 22:44:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-Wasm-IndexOrName-has-a-raw-pointer-to-Na.patch</filename>
            <type>text/plain</type>
            <size>26497</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4ZjBmYWZlODAwMDRhMGM5YmRiNDFjYjdkOTJmNjZmNGUxOWM0ZTBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDMxIE9jdCAyMDE3IDIxOjQ2OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IFdhc206OkluZGV4T3JOYW1lIGhhcyBhIHJhdyBwb2ludGVyIHRvIE5hbWUKCi0tLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCA1MSAr
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgICAgICB8ICA0ICsrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmggICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcCAgICAgICB8ICA3ICsrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tGcmFtZS5oICAgICAgICAgfCAyMCArKy0tLS0tLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oICAgIHwgIDMgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICAgICAgIHwgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCAgICAgICAgICAgIHwgIDYgKy0tCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAgICAgICB8IDEwICst
LS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgICB8
IDIyICsrKysrLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFt
ZS5oICAgICAgIHwgMjEgKysrKystLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uY3BwICB8ICA3ICsrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1vZHVsZUluZm9ybWF0aW9uLmggfCAxNyArKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uLmggICAgICAgfCAxNiArKystLS0tCiAuLi4vSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwICB8IDExICsrLS0tCiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCB8ICAzICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAgICAgICAgICB8ICAzICst
CiAxOCBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjRjMjMzMi4uMWEyMTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTctMTAtMzEgIEpGIEJhc3RpZW4gIDxq
ZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkFzc2VtYmx5OiBXYXNtOjpJbmRleE9y
TmFtZSBoYXMgYSByYXcgcG9pbnRlciB0byBOYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleE9yTmFtZSBub3cga2VlcHMgYSBSZWZQdHIgdG8g
aXRzIG9yaWdpbmFsIE5hbWVTZWN0aW9uLCB3aGljaAorICAgICAgICBob2xkcyB0aGUgTmFtZSAo
b3IgcmVmZXJlbmNlcyBudWxscHRyIGlmIEluZGV4KS4gSG9sZGluZyBvbnRvIHRoZQorICAgICAg
ICBlbnRpcmUgc2VjdGlvbiBzZWVtcyBsaWtlIHRoZSBiZXR0ZXIgdGhpbmcgdG8gZG8sIHNpbmNl
IGJhY2t0cmFjZXMKKyAgICAgICAgcHJvYmFibHkgY29udGFpbiBtdWx0aXBsZSBuYW1lcyBmcm9t
IHRoZSBzYW1lIE1vZHVsZS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgor
ICAgICAgICAoSlNDOjpHZXRTdGFja1RyYWNlRnVuY3Rvcjo6b3BlcmF0b3IoKSBjb25zdCk6Cisg
ICAgICAgICogaW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmg6IEZyYW1lIGlzIG5vIGxvbmdlciBQ
T0QgYmVjYXVzZSBvZiB0aGUKKyAgICAgICAgUmVmUHRyLgorICAgICAgICAqIHJ1bnRpbWUvU3Rh
Y2tGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RhY2tGcmFtZS5oOiBEcm9wIHRoZSB1bmlvbiwgc2l6ZSBpcyBub3cg
NDAgYnl0ZXMuCisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OlN0YWNrRnJhbWUpOiBEZWxldGVk
LiBJbml0aWFsaXplZCBpbiBjbGFzcyBpbnN0ZWFkLgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1l
Ojp3YXNtKTogRGVsZXRlZC4gTWFrZSBpdCBhIGN0b3IgaW5zdGVhZC4KKyAgICAgICAgKiB3YXNt
L1dhc21CQlFQbGFuSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpXYXNtOjpCQlFQbGFuOjppbml0
aWFsaXplQ2FsbGVlcyk6CisgICAgICAgICogd2FzbS9XYXNtQ2FsbGVlLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6Q2FsbGVlOjpDYWxsZWUpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZS5o
OgorICAgICAgICAoSlNDOjpXYXNtOjpDYWxsZWU6OmNyZWF0ZSk6CisgICAgICAgICogd2FzbS9X
YXNtRm9ybWF0Lmg6IE1vdmUgTmFtZVNlY3Rpb24gdG8gaXRzIG93biBoZWFkZXIuCisgICAgICAg
IChKU0M6Oldhc206OmlzVmFsaWROYW1lVHlwZSk6CisgICAgICAgIChKU0M6Oldhc206Ok5hbWVT
ZWN0aW9uOjpnZXQpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1lLmNw
cDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAgICAg
ICAgKEpTQzo6V2FzbTo6bWFrZVN0cmluZyk6CisgICAgICAgICogd2FzbS9XYXNtSW5kZXhPck5h
bWUuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OkluZGV4T3JOYW1lKToKKyAg
ICAgICAgKEpTQzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAo
SlNDOjpXYXNtOjpJbmRleE9yTmFtZTo6aXNJbmRleCBjb25zdCk6CisgICAgICAgICogd2FzbS9X
YXNtTW9kdWxlSW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpNb2R1bGVJbmZv
cm1hdGlvbjo6TW9kdWxlSW5mb3JtYXRpb24pOgorICAgICAgICAqIHdhc20vV2FzbU1vZHVsZUlu
Zm9ybWF0aW9uLmg6CisgICAgICAgIChKU0M6Oldhc206Ok1vZHVsZUluZm9ybWF0aW9uOjpNb2R1
bGVJbmZvcm1hdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb24u
aDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb246OmdldCk6CisgICAgICAgIChKU0M6
Oldhc206Ok5hbWVTZWN0aW9uOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2Fz
bU5hbWVTZWN0aW9uUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TmFtZVNlY3Rpb25Q
YXJzZXI6OnBhcnNlKToKKyAgICAgICAgKiB3YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oOgor
ICAgICAgICAqIHdhc20vV2FzbU9NR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpPTUdQ
bGFuOjp3b3JrKToKKwogMjAxNy0xMC0yNiAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IG5vIFZNIC8gSlMgdmVyc2lvbiBvZiBvdXIgaW1w
bGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTkxZjE2NS4uZTU5
OWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzYsNiArMTQ3Niw3IEBA
CiAJCUFENUMzNkVDMUY3NUFEN0MwMDBCQ0FBRiAvKiBXYXNtVG9KUy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREMDlBRUUxRjVGNjIzRjAwMTMxM0My
IC8qIFdhc21Ub0pTLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQUQ1QzM2RUYxRjdBMjYzQTAwMEJDQUFGIC8qIFdhc21NZW1vcnlNb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVDMzZFRTFGN0Ey
NjI5MDAwQkNBQUYgLyogV2FzbU1lbW9yeU1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBRDc0MzhDMDFFMDQ1N0E0MDBGRDBDMkEgLyogV2Fz
bVNpZ25hdHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDdCNEIyRTFGQTNFMjk4
MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVT
ZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQUQ4NkE5M0UxQUE0RDg4RDAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODZBOTNEMUFBNEQ4N0Mw
MDJGRTc3RiAvKiBXZWFrR0NNYXBJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ4RkYzOTgxRUI1QkRCMjAwODdGRjgyIC8qIFdhc21J
bmRleE9yTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQ4RkYzOTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFEOUU4NTJGMUU4QTBD
N0MwMDhERTM5RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUgLyog
SlNXZWJBc3NlbWJseUNvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00MjEyLDYgKzQyMTMsNyBAQAogCQlBRDVDMzZGMDFGN0EyNkJG
MDAwQkNBQUYgLyogV2FzbU1lbW9yeU1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1l
bW9yeU1vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDc0MzhCRTFFMDQ1
NzkyMDBGRDBDMkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXYXNtU2lnbmF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQUQ3NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lU2VjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0Yg
LyogV2Vha0dDTWFwSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWFrR0NNYXBJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEOERENkNG
MUY2NzA4OUYwMDA0RUI1MiAvKiBKU1RvV2FzbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1RvV2FzbS5o
OyBwYXRoID0ganMvSlNUb1dhc20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4
REQ2RDAxRjY3MDhBMzAwMDRFQjUyIC8qIEpTVG9XYXNtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEpTVG9XYXNtLmNwcDsgcGF0aCA9IGpzL0pTVG9XYXNtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxMTMsNiArNjExNSw3IEBACiAJCQkJNTNGNDBFOTYxRDVBN0JFQzAwOTlB
MUI2IC8qIFdhc21Nb2R1bGVQYXJzZXIuY3BwICovLAogCQkJCTUzRjQwRTk0MUQ1QTdBRUYwMDk5
QTFCNiAvKiBXYXNtTW9kdWxlUGFyc2VyLmggKi8sCiAJCQkJQUQ1QjQxNkUxRUJBRkI2NTAwOEVG
QTQzIC8qIFdhc21OYW1lLmggKi8sCisJCQkJQUQ3QjRCMkQxRkEzRTI4NjAwQzlERjc5IC8qIFdh
c21OYW1lU2VjdGlvbi5oICovLAogCQkJCUFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNt
TmFtZVNlY3Rpb25QYXJzZXIuY3BwICovLAogCQkJCUFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAv
KiBXYXNtTmFtZVNlY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk1MzExQkQ0ODFFQTU4MUU1MDA1MjUy
ODEgLyogV2FzbU9NR1BsYW4uY3BwICovLApAQCAtODIyMiw2ICs4MjI1LDcgQEAKIAkJCQkwRjk2
MzAzQzFENDE5MkNEMDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzdBNDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRl
cnByZXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUQ3QjRCMkUxRkEzRTI5ODAwQzlERjc5IC8q
IFdhc21OYW1lU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDQxN0EwQkFBODAw
NkJBNTU0IC8qIERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjYyMDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEM0U0MDIxQjYxOEFBRjAwQzgwRTFFIC8qIERGR0FkYXB0aXZlSW5m
ZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0NDVj
ODcxLi5hMDA1YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHAKQEAgLTUwNyw3ICs1MDcsNyBAQCBwdWJsaWM6CiAKICAgICAgICAg
aWYgKG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKICAgICAgICAgICAgIGlm
ICh2aXNpdG9yLT5pc1dhc21GcmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFw
cGVuZChTdGFja0ZyYW1lOjp3YXNtKHZpc2l0b3ItPndhc21GdW5jdGlvbkluZGV4T3JOYW1lKCkp
KTsKKyAgICAgICAgICAgICAgICBtX3Jlc3VsdHMuYXBwZW5kKFN0YWNrRnJhbWUodmlzaXRvci0+
d2FzbUZ1bmN0aW9uSW5kZXhPck5hbWUoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmICghIXZp
c2l0b3ItPmNvZGVCbG9jaygpICYmICF2aXNpdG9yLT5jb2RlQmxvY2soKS0+dW5saW5rZWRDb2Rl
QmxvY2soKS0+aXNCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAgIG1fcmVzdWx0
cy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIFN0YWNrRnJhbWUobV92bSwgbV9vd25lciwg
dmlzaXRvci0+Y2FsbGVlKCkuYXNDZWxsKCksIHZpc2l0b3ItPmNvZGVCbG9jaygpLCB2aXNpdG9y
LT5ieXRlY29kZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvU3RhY2tWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmgKaW5kZXggZTJhMTM2OC4uNDc1NWE5MyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtMTIxLDkg
KzEyMSw5IEBAIHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVf
dCBtX2FyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzOwogICAgICAgICB1bnNpZ25lZCBtX2J5dGVj
b2RlT2Zmc2V0OwotICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dhc21GdW5jdGlvbkluZGV4
T3JOYW1lOwogICAgICAgICBib29sIG1fY2FsbGVySXNFbnRyeUZyYW1lIDogMTsKICAgICAgICAg
Ym9vbCBtX2lzV2FzbUZyYW1lIDogMTsKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93YXNt
RnVuY3Rpb25JbmRleE9yTmFtZTsKIAogICAgICAgICBmcmllbmQgY2xhc3MgU3RhY2tWaXNpdG9y
OwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFj
a0ZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3Bw
CmluZGV4IDhlYzg3NWQuLmVkYjMyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0YWNrRnJhbWUuY3BwCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBT
dGFja0ZyYW1lOjpTdGFja0ZyYW1lKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBjYWxs
ZWUpCiAgICAgOiBtX2NhbGxlZSh2bSwgb3duZXIsIGNhbGxlZSkKLSAgICAsIG1fYnl0ZWNvZGVP
ZmZzZXQoVUlOVF9NQVgpCiB7CiB9CiAKQEAgLTQ2LDYgKzQ1LDEyIEBAIFN0YWNrRnJhbWU6OlN0
YWNrRnJhbWUoVk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIGNhbGxlZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvCiB7CiB9CiAKK1N0YWNrRnJhbWU6OlN0YWNrRnJhbWUoV2FzbTo6SW5kZXhPck5h
bWUgaW5kZXhPck5hbWUpCisgICAgOiBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lKGluZGV4T3JO
YW1lKQorICAgICwgbV9pc1dhc21GcmFtZSh0cnVlKQoreworfQorCiBpbnRwdHJfdCBTdGFja0Zy
YW1lOjpzb3VyY2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvZGVCbG9jaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAppbmRleCAxYjViZWE2Li4yODc3NzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCkBAIC0zNywy
MSArMzcsOSBAQCBjbGFzcyBTbG90VmlzaXRvcjsKIAogY2xhc3MgU3RhY2tGcmFtZSB7CiBwdWJs
aWM6Ci0gICAgU3RhY2tGcmFtZSgpCi0gICAgICAgIDogbV9ieXRlY29kZU9mZnNldChVSU5UX01B
WCkKLSAgICB7IH0KLQogICAgIFN0YWNrRnJhbWUoVk0mLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwq
IGNhbGxlZSk7Ci0KICAgICBTdGFja0ZyYW1lKFZNJiwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBj
YWxsZWUsIENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHN0YXRp
YyBTdGFja0ZyYW1lIHdhc20oV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhPck5hbWUpCi0gICAgewot
ICAgICAgICBTdGFja0ZyYW1lIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1faXNXYXNtRnJhbWUg
PSB0cnVlOwotICAgICAgICByZXN1bHQubV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZSA9IGluZGV4
T3JOYW1lOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KKyAgICBTdGFja0ZyYW1lKFdh
c206OkluZGV4T3JOYW1lKTsKIAogICAgIGJvb2wgaGFzTGluZUFuZENvbHVtbkluZm8oKSBjb25z
dCB7IHJldHVybiAhIW1fY29kZUJsb2NrOyB9CiAgICAgCkBAIC03MywxMCArNjEsOCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fY2FsbGVlIHsgfTsKICAg
ICBXcml0ZUJhcnJpZXI8Q29kZUJsb2NrPiBtX2NvZGVCbG9jayB7IH07Ci0gICAgdW5pb24gewot
ICAgICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwotICAgICAgICBXYXNtOjpJbmRleE9y
TmFtZSBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lOwotICAgIH07CisgICAgV2FzbTo6SW5kZXhP
ck5hbWUgbV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZTsKKyAgICB1bnNpZ25lZCBtX2J5dGVjb2Rl
T2Zmc2V0IHsgVUlOVF9NQVggfTsKICAgICBib29sIG1faXNXYXNtRnJhbWUgeyBmYWxzZSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5J
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMu
aAppbmRleCA0NDQ3OTBiLi5mYzU4NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtQkJRUGxhbklubGluZXMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNh
bGxlZUJpdHMuaCIKICNpbmNsdWRlICJXYXNtQkJRUGxhbi5oIgogI2luY2x1ZGUgIldhc21DYWxs
ZWUuaCIKKyNpbmNsdWRlICJXYXNtTmFtZVNlY3Rpb24uaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIEJCUVBsYW46OmluaXRpYWxp
emVDYWxsZWVzKGNvbnN0IEZ1bmN0b3ImIGNhbGxiYWNrKQogCiAgICAgICAgIEludGVybmFsRnVu
Y3Rpb24qIGZ1bmN0aW9uID0gbV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbaW50ZXJuYWxGdW5jdGlv
bkluZGV4XS5nZXQoKTsKICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGludGVy
bmFsRnVuY3Rpb25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291
bnQoKTsKLSAgICAgICAgUmVmPFdhc206OkNhbGxlZT4gd2FzbUVudHJ5cG9pbnRDYWxsZWUgPSBX
YXNtOjpDYWxsZWU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uLT5lbnRyeXBvaW50KSwgZnVuY3Rp
b25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rp
b25JbmRleFNwYWNlKSk7CisgICAgICAgIFJlZjxXYXNtOjpDYWxsZWU+IHdhc21FbnRyeXBvaW50
Q2FsbGVlID0gV2FzbTo6Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbi0+ZW50cnlwb2lu
dCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24t
PmdldChmdW5jdGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0
Y2hQb2ludGVyKGZ1bmN0aW9uLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdh
c20od2FzbUVudHJ5cG9pbnRDYWxsZWUucHRyKCkpKTsKIAogICAgICAgICBjYWxsYmFjayhpbnRl
cm5hbEZ1bmN0aW9uSW5kZXgsIFdURk1vdmUoZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlKSwgV1RG
TW92ZSh3YXNtRW50cnlwb2ludENhbGxlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQ2FsbGVlLmNwcAppbmRleCA5ZTgzZWRmLi40N2I1MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcApAQCAtMzgsOSArMzgsOSBAQCBDYWxsZWU6OkNhbGxl
ZShFbnRyeXBvaW50JiYgZW50cnlwb2ludCkKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50
LmNvbXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2Vu
dHJ5cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgp
KTsKIH0KIAotQ2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVudHJ5cG9pbnQsIHNpemVfdCBp
bmRleCwgY29uc3QgTmFtZSogbmFtZSkKK0NhbGxlZTo6Q2FsbGVlKEVudHJ5cG9pbnQmJiBlbnRy
eXBvaW50LCBzaXplX3QgaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVT
ZWN0aW9uPj4mJiBuYW1lKQogICAgIDogbV9lbnRyeXBvaW50KFdURk1vdmUoZW50cnlwb2ludCkp
Ci0gICAgLCBtX2luZGV4T3JOYW1lKGluZGV4LCBuYW1lKQorICAgICwgbV9pbmRleE9yTmFtZShp
bmRleCwgV1RGTW92ZShuYW1lKSkKIHsKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50LmNv
bXBpbGF0aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2VudHJ5
cG9pbnQuY29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCAyM2MxYWU1Li5j
NDZhNmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCkBAIC00NCw5
ICs0NCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUoV2FzbTo6RW50cnlwb2ludCYmIGVu
dHJ5cG9pbnQsIHNpemVfdCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKKyAgICBzdGF0aWMgUmVm
PENhbGxlZT4gY3JlYXRlKFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBzaXplX3QgaW5k
ZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1lKQog
ICAgIHsKLSAgICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlw
b2ludCksIGluZGV4LCBuYW1lKTsKKyAgICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVl
KFdURk1vdmUoZW50cnlwb2ludCksIGluZGV4LCBXVEZNb3ZlKG5hbWUpKTsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAgIH0KIApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6
CiAKIHByaXZhdGU6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9p
bnQmJik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJiwg
c2l6ZV90LCBjb25zdCBOYW1lKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206
OkVudHJ5cG9pbnQmJiwgc2l6ZV90LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1l
U2VjdGlvbj4+JiYpOwogCiAgICAgV2FzbTo6RW50cnlwb2ludCBtX2VudHJ5cG9pbnQ7CiAgICAg
SW5kZXhPck5hbWUgbV9pbmRleE9yTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21G
b3JtYXQuaAppbmRleCBjMmY3OThlLi44Y2NhNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUZvcm1hdC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9m
ZnNldExpc3QuaCIKICNpbmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIKICNpbmNsdWRl
ICJXYXNtTmFtZS5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogI2luY2x1ZGUgIldh
c21PcHMuaCIKICNpbmNsdWRlICJXYXNtUGFnZUNvdW50LmgiCiAjaW5jbHVkZSAiV2FzbVNpZ25h
dHVyZS5oIgpAQCAtMjUzLDE1ICsyNTQsNiBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkTmFtZVR5cGUo
SW50IHZhbCkKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotc3RydWN0IE5hbWVT
ZWN0aW9uIHsKLSAgICBOYW1lIG1vZHVsZU5hbWU7Ci0gICAgVmVjdG9yPE5hbWU+IGZ1bmN0aW9u
TmFtZXM7Ci0gICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbkluZGV4U3BhY2UpCi0g
ICAgewotICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVuY3Rpb25OYW1lcy5z
aXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDogbnVsbHB0cjsKLSAg
ICB9Ci19OwogCiBzdHJ1Y3QgVW5saW5rZWRXYXNtVG9XYXNtQ2FsbCB7CiAgICAgQ29kZUxvY2F0
aW9uTmVhckNhbGwgY2FsbExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21JbmRleE9yTmFtZS5jcHAKaW5kZXggYWI5Njk2MS4uZjNiZWY2NSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCkBAIC0yOCwxNyArMjgs
MTkgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAotSW5kZXhPck5hbWU6
OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQorSW5kZXhPck5hbWU6
OkluZGV4T3JOYW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxO
YW1lU2VjdGlvbj4+JiYgbmFtZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4
KSA9PSBzaXplb2YobV9uYW1lKSwgImJpdC10YWdnaW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcg
ZXF1YWwiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXplb2YoKnRo
aXMpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBvYmplY3QgYmVpbmcgdGhlIHNpemUgb2YgdGhl
IHVuaW9uJ3MgdHlwZXMiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5p
bmRleCkgPT0gc2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBv
biBzaXplcyBiZWluZyBlcXVhbCIpOwogCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChi
aXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUpICYgYWxsVGFncykpCisgICAgaWYgKChpbmRleCAmIGFs
bFRhZ3MpIHx8IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCiAg
ICAgICAgICp0aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIGlmIChuYW1lKQotICAgICAg
ICBtX25hbWUgPSBuYW1lOwotICAgIGVsc2UKLSAgICAgICAgbV9pbmRleCA9IGluZGV4VGFnIHwg
aW5kZXg7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChuYW1lLmZpcnN0KQorICAgICAgICAgICAg
bV9pbmRleE5hbWUubmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG1faW5kZXhOYW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyAgICAgICAgbV9uYW1lU2Vj
dGlvbiA9IFdURk1vdmUobmFtZS5zZWNvbmQpOworICAgIH0KIH0KIAogU3RyaW5nIG1ha2VTdHJp
bmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKQEAgLTQ2LDggKzQ4LDggQEAgU3RyaW5nIG1ha2VT
dHJpbmcoY29uc3QgSW5kZXhPck5hbWUmIGlvbikKICAgICBpZiAoaW9uLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIGlmIChpb24uaXNJbmRleCgpKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nOjpudW1iZXIoaW9uLm1faW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFn
KTsKLSAgICByZXR1cm4gU3RyaW5nKGlvbi5tX25hbWUtPmRhdGEoKSwgaW9uLm1fbmFtZS0+c2l6
ZSgpKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRl
eCAmIH5JbmRleE9yTmFtZTo6aW5kZXhUYWcpOworICAgIHJldHVybiBTdHJpbmcoaW9uLm1faW5k
ZXhOYW1lLm5hbWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSk7CiB9Owog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtSW5kZXhPck5hbWUuaAppbmRleCBkNzU0NWZhLi43MGM3ZWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtMjYsMjkgKzI2LDMyIEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldhc21OYW1lLmgiCisjaW5jbHVkZSAiV2FzbU5h
bWVTZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAorc3RydWN0IE5hbWVTZWN0aW9uOworCiBzdHJ1Y3Qg
SW5kZXhPck5hbWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5h
bWUoKQotICAgICAgICA6IG1faW5kZXgoZW1wdHlUYWcpCi0gICAgeyB9Ci0gICAgSW5kZXhPck5h
bWUoSW5kZXgsIGNvbnN0IE5hbWUqKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVy
biBiaXR3aXNlX2Nhc3Q8SW5kZXg+KCp0aGlzKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0lu
ZGV4KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PigqdGhpcykgJiBpbmRleFRh
ZzsgfQorICAgIEluZGV4T3JOYW1lKCkgeyBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOyB9
CisgICAgSW5kZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5h
bWVTZWN0aW9uPj4mJik7CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lz
ZV9jYXN0PEluZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsgfQorICAgIGJvb2wgaXNJbmRl
eCgpIGNvbnN0IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5k
ZXhUYWc7IH0KICAgICBib29sIGlzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICEoaXNFbXB0eSgpIHx8
IGlzTmFtZSgpKTsgfQogCiAgICAgZnJpZW5kIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4
T3JOYW1lJik7CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewotICAgICAgICBJbmRleCBtX2luZGV4
OwotICAgICAgICBjb25zdCBOYW1lKiBtX25hbWU7Ci0gICAgfTsKKyAgICAgICAgSW5kZXggaW5k
ZXg7CisgICAgICAgIGNvbnN0IE5hbWUqIG5hbWU7CisgICAgfSBtX2luZGV4TmFtZTsKKyAgICBS
ZWZQdHI8TmFtZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKICAgICAvLyBVc2UgdGhlIHRvcCBi
aXRzIGFzIHRhZ3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFj
ZSBzaG91bGQgdXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9
IDF1bGwgPDwgKENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5jcHAKaW5kZXggODk2
YWJkZC4uOWRhNWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZUluZm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtTW9kdWxlSW5mb3JtYXRpb24uY3BwCkBAIC0yOCw4ICsyOCwxNSBAQAogCiAjaWYgRU5BQkxF
KFdFQkFTU0VNQkxZKQogCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uLmgiCisKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKK01vZHVsZUluZm9ybWF0aW9uOjpNb2R1bGVJbmZv
cm1hdGlvbihWZWN0b3I8dWludDhfdD4mJiBzb3VyY2VCeXRlcykKKyAgICA6IHNvdXJjZShXVEZN
b3ZlKHNvdXJjZUJ5dGVzKSkKKyAgICAsIG5hbWVTZWN0aW9uKG5ldyBOYW1lU2VjdGlvbigpKQor
eworfQogTW9kdWxlSW5mb3JtYXRpb246On5Nb2R1bGVJbmZvcm1hdGlvbigpIHsgfQogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAppbmRleCAwN2IzODk5Li4xODIzOWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaApA
QCAtMzIsNiArMzIsMTQgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIHN0
cnVjdCBNb2R1bGVJbmZvcm1hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNb2R1
bGVJbmZvcm1hdGlvbj4geworICAgIE1vZHVsZUluZm9ybWF0aW9uKCkgPSBkZWxldGU7CisgICAg
TW9kdWxlSW5mb3JtYXRpb24oY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mKSA9IGRlbGV0ZTsKKyAg
ICBNb2R1bGVJbmZvcm1hdGlvbihNb2R1bGVJbmZvcm1hdGlvbiYmKSA9IGRlbGV0ZTsKKworICAg
IE1vZHVsZUluZm9ybWF0aW9uKFZlY3Rvcjx1aW50OF90PiYmIHNvdXJjZUJ5dGVzKTsKKworICAg
IEpTX0VYUE9SVF9QUklWQVRFIH5Nb2R1bGVJbmZvcm1hdGlvbigpOworICAgIAogICAgIHNpemVf
dCBmdW5jdGlvbkluZGV4U3BhY2VTaXplKCkgY29uc3QgeyByZXR1cm4gaW1wb3J0RnVuY3Rpb25T
aWduYXR1cmVJbmRpY2VzLnNpemUoKSArIGludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2Vz
LnNpemUoKTsgfQogICAgIGJvb2wgaXNJbXBvcnRlZEZ1bmN0aW9uRnJvbUZ1bmN0aW9uSW5kZXhT
cGFjZShzaXplX3QgZnVuY3Rpb25JbmRleCkgY29uc3QKICAgICB7CkBAIC00OCwxMyArNTYsNiBA
QCBzdHJ1Y3QgTW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
TW9kdWxlSW5mb3JtYXRpb24+IHsKICAgICB1aW50MzJfdCBpbXBvcnRGdW5jdGlvbkNvdW50KCkg
Y29uc3QgeyByZXR1cm4gaW1wb3J0RnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQog
ICAgIHVpbnQzMl90IGludGVybmFsRnVuY3Rpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIGludGVy
bmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQogCi0gICAgTW9kdWxlSW5mb3Jt
YXRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgc291cmNlQnl0ZXMpCi0gICAgICAgIDogc291cmNlKFdU
Rk1vdmUoc291cmNlQnl0ZXMpKQotICAgIHsKLSAgICB9Ci0KLSAgICBKU19FWFBPUlRfUFJJVkFU
RSB+TW9kdWxlSW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiBzb3Vy
Y2U7CiAKICAgICBWZWN0b3I8SW1wb3J0PiBpbXBvcnRzOwpAQCAtNzQsNyArNzUsNyBAQCBzdHJ1
Y3QgTW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TW9kdWxl
SW5mb3JtYXRpb24+IHsKICAgICBWZWN0b3I8R2xvYmFsPiBnbG9iYWxzOwogICAgIHVuc2lnbmVk
IGZpcnN0SW50ZXJuYWxHbG9iYWwgeyAwIH07CiAgICAgVmVjdG9yPEN1c3RvbVNlY3Rpb24+IGN1
c3RvbVNlY3Rpb25zOwotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0aW9uOworICAgIFJlZlB0cjxO
YW1lU2VjdGlvbj4gbmFtZVNlY3Rpb247CiB9OwogCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCmluZGV4IDEzN2Y2NTIuLmQxMDJhYjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCkBAIC0yNSwyNCAr
MjUsMjQgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCisKICNp
bmNsdWRlICJXYXNtTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlsaXR5PgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCi1zdHJ1Y3QgTmFtZVNlY3Rpb24gOiBUaHJlYWRT
YWZlUmVmQ291bnRlZDxOYW1lU2VjdGlvbj4gewotICAgIHN0YXRpYyBSZWY8TmFtZVNlY3Rpb24+
IGNyZWF0ZSgpCitzdHJ1Y3QgTmFtZVNlY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8TmFtZVNlY3Rpb24+IHsKKyAgICBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1l
U2VjdGlvbj4+IGdldChzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmFtZVNlY3Rpb24oKSk7CisgICAgICAgIHJldHVybiBmdW5j
dGlvbkluZGV4U3BhY2UgPCBmdW5jdGlvbk5hbWVzLnNpemUoKSA/IHN0ZDo6bWFrZV9wYWlyKCZm
dW5jdGlvbk5hbWVzW2Z1bmN0aW9uSW5kZXhTcGFjZV0sIFJlZlB0cjxOYW1lU2VjdGlvbj4odGhp
cykpIDogc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PihudWxscHRy
LCBudWxscHRyKTsKICAgICB9Ci0KICAgICBOYW1lIG1vZHVsZU5hbWU7CiAgICAgVmVjdG9yPE5h
bWU+IGZ1bmN0aW9uTmFtZXM7Ci0gICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbklu
ZGV4U3BhY2UpCi0gICAgewotICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVu
Y3Rpb25OYW1lcy5zaXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDog
bnVsbHB0cjsKLSAgICB9CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5jcHAKaW5kZXggYTU4Mjg5Zi4uYmY1OWUwNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25Q
YXJzZXIuY3BwCkBAIC0yOSwxNCArMjksMTUgQEAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAK
ICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlv
bi5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCiBhdXRvIE5hbWVTZWN0
aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogewotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0
aW9uOwotICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFtZXMu
dHJ5UmVzZXJ2ZUNhcGFjaXR5KG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCkpLCAiY2Fu
J3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgZnVuY3Rpb24gbmFtZXMiKTsKLSAgICBuYW1l
U2VjdGlvbi5mdW5jdGlvbk5hbWVzLnJlc2l6ZShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6
ZSgpKTsKKyAgICBSZWZQdHI8TmFtZVNlY3Rpb24+IG5hbWVTZWN0aW9uKGFkb3B0UmVmKCpuZXcg
TmFtZVNlY3Rpb24oKSkpOworICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLT5m
dW5jdGlvbk5hbWVzLnRyeVJlc2VydmVDYXBhY2l0eShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNl
U2l6ZSgpKSwgImNhbid0IGFsbG9jYXRlIGVub3VnaCBtZW1vcnkgZm9yIGZ1bmN0aW9uIG5hbWVz
Iik7CisgICAgbmFtZVNlY3Rpb24tPmZ1bmN0aW9uTmFtZXMucmVzaXplKG1faW5mby5mdW5jdGlv
bkluZGV4U3BhY2VTaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgcGF5bG9hZE51bWJlciA9IDA7
IG1fb2Zmc2V0IDwgbGVuZ3RoKCk7ICsrcGF5bG9hZE51bWJlcikgewogICAgICAgICB1aW50OF90
IG5hbWVUeXBlOwpAQCAtNTgsNyArNTksNyBAQCBhdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJz
ZSgpIC0+IFJlc3VsdAogICAgICAgICAgICAgTmFtZSBuYW1lU3RyaW5nOwogICAgICAgICAgICAg
V0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIobmFtZUxlbiksICJjYW4ndCBnZXQg
bW9kdWxlJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAg
ICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFjb25zdW1lVVRGOFN0cmluZyhuYW1lU3RyaW5n
LCBuYW1lTGVuKSwgImNhbid0IGdldCBtb2R1bGUncyBuYW1lIG9mIGxlbmd0aCAiLCBuYW1lTGVu
LCAiIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOwotICAgICAgICAgICAgbmFtZVNlY3Rp
b24ubW9kdWxlTmFtZSA9IFdURk1vdmUobmFtZVN0cmluZyk7CisgICAgICAgICAgICBuYW1lU2Vj
dGlvbi0+bW9kdWxlTmFtZSA9IFdURk1vdmUobmFtZVN0cmluZyk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIE5hbWVUeXBlOjpGdW5jdGlvbjogewpAQCAtNzIs
NyArNzMsNyBAQCBhdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogICAg
ICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYobV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFj
ZVNpemUoKSA8PSBpbmRleCwgImZ1bmN0aW9uICIsIGZ1bmN0aW9uLCAiIGluZGV4ICIsIGluZGV4
LCAiIGlzIGxhcmdlciB0aGFuIGZ1bmN0aW9uIGluZGV4IHNwYWNlICIsIG1faW5mby5mdW5jdGlv
bkluZGV4U3BhY2VTaXplKCksICIgZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAg
ICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJVSW50MzIobmFtZUxlbiks
ICJjYW4ndCBnZXQgZnVuY3Rpb25zICIsIGZ1bmN0aW9uLCAiJ3MgbmFtZSBsZW5ndGggZm9yIHBh
eWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJ
TF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0cmluZywgbmFtZUxlbiksICJjYW4ndCBnZXQg
ZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIncyBuYW1lIG9mIGxlbmd0aCAiLCBuYW1lTGVuLCAiIGZv
ciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOwotICAgICAgICAgICAgICAgIG5hbWVTZWN0aW9u
LmZ1bmN0aW9uTmFtZXNbaW5kZXhdID0gV1RGTW92ZShuYW1lU3RyaW5nKTsKKyAgICAgICAgICAg
ICAgICBuYW1lU2VjdGlvbi0+ZnVuY3Rpb25OYW1lc1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJp
bmcpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKaW5k
ZXggYjI5NzBkZC4uYjdhZjBkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKQEAgLTI5LDEwICsyOSwxMSBAQAogCiAjaW5jbHVk
ZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgIldhc21QYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKLWNsYXNzIE5h
bWVTZWN0aW9uUGFyc2VyIDogcHVibGljIFBhcnNlcjxOYW1lU2VjdGlvbj4geworY2xhc3MgTmFt
ZVNlY3Rpb25QYXJzZXIgOiBwdWJsaWMgUGFyc2VyPFJlZlB0cjxOYW1lU2VjdGlvbj4+IHsKIHB1
YmxpYzoKICAgICBOYW1lU2VjdGlvblBhcnNlcihjb25zdCB1aW50OF90KiBzb3VyY2VCdWZmZXIs
IHNpemVfdCBzb3VyY2VMZW5ndGgsIGNvbnN0IE1vZHVsZUluZm9ybWF0aW9uJiBpbmZvKQogICAg
ICAgICA6IFBhcnNlcihzb3VyY2VCdWZmZXIsIHNvdXJjZUxlbmd0aCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcAppbmRleCBmNTVhZGE3Li5mZmM3ZDJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtT01HUGxhbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiV2FzbU1hY2hpbmVUaHJl
YWRzLmgiCiAjaW5jbHVkZSAiV2FzbU1lbW9yeS5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlv
bi5oIgogI2luY2x1ZGUgIldhc21WYWxpZGF0ZS5oIgogI2luY2x1ZGUgIldhc21Xb3JrbGlzdC5o
IgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBAIC0xMDUsNyArMTA2LDcgQEAgdm9pZCBPTUdQ
bGFuOjp3b3JrKENvbXBpbGF0aW9uRWZmb3J0KQogICAgIHZvaWQqIGVudHJ5cG9pbnQ7CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9jb2RlQmxvY2sucHRyKCkgPT0gbV9tb2R1bGUtPmNvZGVCbG9j
a0Zvcihtb2RlKCkpKTsKLSAgICAgICAgUmVmPENhbGxlZT4gY2FsbGVlID0gQ2FsbGVlOjpjcmVh
dGUoV1RGTW92ZShvbWdFbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUlu
Zm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rpb25JbmRleFNwYWNlKSk7CisgICAgICAg
IFJlZjxDYWxsZWU+IGNhbGxlZSA9IENhbGxlZTo6Y3JlYXRlKFdURk1vdmUob21nRW50cnlwb2lu
dCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24t
PmdldChmdW5jdGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0
Y2hQb2ludGVyKHBhcnNlQW5kQ29tcGlsZVJlc3VsdC52YWx1ZSgpLT5jYWxsZWVNb3ZlTG9jYXRp
b24sIENhbGxlZUJpdHM6OmJveFdhc20oY2FsbGVlLnB0cigpKSk7CiAgICAgICAgIEFTU0VSVCgh
bV9jb2RlQmxvY2stPm1fb3B0aW1pemVkQ2FsbGVlc1ttX2Z1bmN0aW9uSW5kZXhdKTsKICAgICAg
ICAgZW50cnlwb2ludCA9IGNhbGxlZS0+ZW50cnlwb2ludCgpOwotLSAKMi45LjMKCg==
</data>
<flag name="review"
          id="345000"
          type_id="1"
          status="+"
          setter="msaboff"
    />
    <flag name="commit-queue"
          id="345001"
          type_id="3"
          status="-"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325545</attachid>
            <date>2017-10-31 22:44:49 -0700</date>
            <delta_ts>2017-10-31 23:16:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-WebAssembly-Wasm-IndexOrName-has-a-raw-pointer-to-Na.patch</filename>
            <type>text/plain</type>
            <size>26410</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSAzZjQ1NGI4MzI4OGI5NGZiYzIyYzY5YWQwNjg0YWZjZTEyYzA4ODI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDMxIE9jdCAyMDE3IDIxOjQ2OjU0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV2ViQXNz
ZW1ibHk6IFdhc206OkluZGV4T3JOYW1lIGhhcyBhIHJhdyBwb2ludGVyIHRvIE5hbWUKCi0tLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCA1MSAr
KysrKysrKysrKysrKysrKysrKysrCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiAgICAgICB8ICA0ICsrCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJw
cmV0ZXIvU3RhY2tWaXNpdG9yLmggICB8ICAyICstCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdGFja0ZyYW1lLmNwcCAgICAgICB8ICA3ICsrLQogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RhY2tGcmFtZS5oICAgICAgICAgfCAyMCArKy0tLS0tLS0KIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL1dhc21CQlFQbGFuSW5saW5lcy5oICAgIHwgIDMgKy0KIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuY3BwICAgICAgICAgIHwgIDQgKy0KIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCAgICAgICAgICAgIHwgIDYgKy0tCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggICAgICAgICAgICB8IDEwICst
LS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwICAgICB8
IDIyICsrKysrLS0tLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRleE9yTmFt
ZS5oICAgICAgIHwgMjEgKysrKystLS0tCiAuLi4vSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uY3BwICB8ICA3ICsrKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU1vZHVsZUluZm9ybWF0aW9uLmggfCAxNyArKysrLS0tLQogU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uLmggICAgICAgfCAxMiArKy0tLQogLi4uL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcCAgfCAxMSArKy0tLQogU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmggfCAgMyArLQogU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9NR1BsYW4uY3BwICAgICAgICAgfCAgMyArLQog
MTggZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlvbnMoKyksIDc3IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDRjMmM2YzAuLjE4OTRiM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTEwLTMxICBKRiBCYXN0aWVuICA8amZi
YXN0aWVuQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBc3NlbWJseTogV2FzbTo6SW5kZXhPck5h
bWUgaGFzIGEgcmF3IHBvaW50ZXIgdG8gTmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFl
bCBTYWJvZmYuCisKKyAgICAgICAgSW5kZXhPck5hbWUgbm93IGtlZXBzIGEgUmVmUHRyIHRvIGl0
cyBvcmlnaW5hbCBOYW1lU2VjdGlvbiwgd2hpY2gKKyAgICAgICAgaG9sZHMgdGhlIE5hbWUgKG9y
IHJlZmVyZW5jZXMgbnVsbHB0ciBpZiBJbmRleCkuIEhvbGRpbmcgb250byB0aGUKKyAgICAgICAg
ZW50aXJlIHNlY3Rpb24gc2VlbXMgbGlrZSB0aGUgYmV0dGVyIHRoaW5nIHRvIGRvLCBzaW5jZSBi
YWNrdHJhY2VzCisgICAgICAgIHByb2JhYmx5IGNvbnRhaW4gbXVsdGlwbGUgbmFtZXMgZnJvbSB0
aGUgc2FtZSBNb2R1bGUuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6R2V0U3RhY2tUcmFjZUZ1bmN0b3I6Om9wZXJhdG9yKCkgY29uc3QpOgorICAg
ICAgICAqIGludGVycHJldGVyL1N0YWNrVmlzaXRvci5oOiBGcmFtZSBpcyBubyBsb25nZXIgUE9E
IGJlY2F1c2Ugb2YgdGhlCisgICAgICAgIFJlZlB0ci4KKyAgICAgICAgKiBydW50aW1lL1N0YWNr
RnJhbWUuY3BwOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpTdGFja0ZyYW1lKToKKyAgICAg
ICAgKiBydW50aW1lL1N0YWNrRnJhbWUuaDogRHJvcCB0aGUgdW5pb24sIHNpemUgaXMgbm93IDQw
IGJ5dGVzLgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpTdGFja0ZyYW1lKTogRGVsZXRlZC4g
SW5pdGlhbGl6ZWQgaW4gY2xhc3MgaW5zdGVhZC4KKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6
d2FzbSk6IERlbGV0ZWQuIE1ha2UgaXQgYSBjdG9yIGluc3RlYWQuCisgICAgICAgICogd2FzbS9X
YXNtQkJRUGxhbklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QkJRUGxhbjo6aW5pdGlh
bGl6ZUNhbGxlZXMpOgorICAgICAgICAqIHdhc20vV2FzbUNhbGxlZS5jcHA6CisgICAgICAgIChK
U0M6Oldhc206OkNhbGxlZTo6Q2FsbGVlKToKKyAgICAgICAgKiB3YXNtL1dhc21DYWxsZWUuaDoK
KyAgICAgICAgKEpTQzo6V2FzbTo6Q2FsbGVlOjpjcmVhdGUpOgorICAgICAgICAqIHdhc20vV2Fz
bUZvcm1hdC5oOiBNb3ZlIE5hbWVTZWN0aW9uIHRvIGl0cyBvd24gaGVhZGVyLgorICAgICAgICAo
SlNDOjpXYXNtOjppc1ZhbGlkTmFtZVR5cGUpOgorICAgICAgICAoSlNDOjpXYXNtOjpOYW1lU2Vj
dGlvbjo6Z2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL1dhc21JbmRleE9yTmFtZS5jcHA6
CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CisgICAgICAg
IChKU0M6Oldhc206Om1ha2VTdHJpbmcpOgorICAgICAgICAqIHdhc20vV2FzbUluZGV4T3JOYW1l
Lmg6CisgICAgICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjpJbmRleE9yTmFtZSk6CisgICAg
ICAgIChKU0M6Oldhc206OkluZGV4T3JOYW1lOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKEpT
Qzo6V2FzbTo6SW5kZXhPck5hbWU6OmlzSW5kZXggY29uc3QpOgorICAgICAgICAqIHdhc20vV2Fz
bU1vZHVsZUluZm9ybWF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6TW9kdWxlSW5mb3Jt
YXRpb246Ok1vZHVsZUluZm9ybWF0aW9uKToKKyAgICAgICAgKiB3YXNtL1dhc21Nb2R1bGVJbmZv
cm1hdGlvbi5oOgorICAgICAgICAoSlNDOjpXYXNtOjpNb2R1bGVJbmZvcm1hdGlvbjo6TW9kdWxl
SW5mb3JtYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vV2FzbU5hbWVTZWN0aW9uLmg6
CisgICAgICAgIChKU0M6Oldhc206Ok5hbWVTZWN0aW9uOjpnZXQpOgorICAgICAgICAoSlNDOjpX
YXNtOjpOYW1lU2VjdGlvbjo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL1dhc21O
YW1lU2VjdGlvblBhcnNlci5jcHA6CisgICAgICAgIChKU0M6Oldhc206Ok5hbWVTZWN0aW9uUGFy
c2VyOjpwYXJzZSk6CisgICAgICAgICogd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuaDoKKyAg
ICAgICAgKiB3YXNtL1dhc21PTUdQbGFuLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6T01HUGxh
bjo6d29yayk6CisKIDIwMTctMTAtMzEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgc29tZSBkcmFnIGFuZCBkcm9wIGZlYXR1cmUgZmxh
Z3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjUzNTAyMC4uMWYxZDEwNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0ODgsNiArMTQ4OCw3IEBACiAJCUFENUMz
NkVDMUY3NUFEN0MwMDBCQ0FBRiAvKiBXYXNtVG9KUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUREMDlBRUUxRjVGNjIzRjAwMTMxM0MyIC8qIFdhc21U
b0pTLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QUQ1QzM2RUYxRjdBMjYzQTAwMEJDQUFGIC8qIFdhc21NZW1vcnlNb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBRDVDMzZFRTFGN0EyNjI5MDAwQkNB
QUYgLyogV2FzbU1lbW9yeU1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBRDc0MzhDMDFFMDQ1N0E0MDBGRDBDMkEgLyogV2FzbVNpZ25hdHVy
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ3NDM4
QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBRDdCNEIyRTFGQTNFMjk4MDBDOURGNzkg
LyogV2FzbU5hbWVTZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQUQ4NkE5
M0UxQUE0RDg4RDAwMkZFNzdGIC8qIFdlYWtHQ01hcElubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEODZBOTNEMUFBNEQ4N0MwMDJGRTc3RiAv
KiBXZWFrR0NNYXBJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQUQ4RkYzOTgxRUI1QkRCMjAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFt
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUQ4RkYz
OTUxRUI1QkQ4NTAwODdGRjgyIC8qIFdhc21JbmRleE9yTmFtZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUFEOUU4NTJGMUU4QTBDN0MwMDhERTM5
RSAvKiBKU1dlYkFzc2VtYmx5Q29kZUJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBRDlFODUyRTFFOEEwQzZFMDA4REUzOUUgLyogSlNXZWJBc3Nl
bWJseUNvZGVCbG9jay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC00MjM4LDYgKzQyMzksNyBAQAogCQlBRDVDMzZGMDFGN0EyNkJGMDAwQkNBQUYg
LyogV2FzbU1lbW9yeU1vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2FzbU1lbW9yeU1vZGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBRDc0MzhCRTFFMDQ1NzkyMDBGRDBD
MkEgLyogV2FzbVNpZ25hdHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXYXNtU2lnbmF0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ3
NDM4QkYxRTA0NTc5MjAwRkQwQzJBIC8qIFdhc21TaWduYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2FzbVNpZ25hdHVyZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBRDdCNEIyRDFGQTNFMjg2MDBDOURGNzkgLyogV2FzbU5hbWVTZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdhc21OYW1lU2VjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBRDg2QTkzRDFBQTREODdDMDAyRkU3N0YgLyogV2Vha0dD
TWFwSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrR0NNYXBJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFEOERENkNGMUY2NzA4OUYw
MDA0RUI1MiAvKiBKU1RvV2FzbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1RvV2FzbS5oOyBwYXRoID0g
anMvSlNUb1dhc20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQ4REQ2RDAxRjY3
MDhBMzAwMDRFQjUyIC8qIEpTVG9XYXNtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTVG9XYXNt
LmNwcDsgcGF0aCA9IGpzL0pTVG9XYXNtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTYxNTMsNiArNjE1NSw3IEBACiAJCQkJNTNGNDBFOTYxRDVBN0JFQzAwOTlBMUI2IC8qIFdh
c21Nb2R1bGVQYXJzZXIuY3BwICovLAogCQkJCTUzRjQwRTk0MUQ1QTdBRUYwMDk5QTFCNiAvKiBX
YXNtTW9kdWxlUGFyc2VyLmggKi8sCiAJCQkJQUQ1QjQxNkUxRUJBRkI2NTAwOEVGQTQzIC8qIFdh
c21OYW1lLmggKi8sCisJCQkJQUQ3QjRCMkQxRkEzRTI4NjAwQzlERjc5IC8qIFdhc21OYW1lU2Vj
dGlvbi5oICovLAogCQkJCUFERDhGQTQ0MUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFtZVNlY3Rp
b25QYXJzZXIuY3BwICovLAogCQkJCUFERDhGQTQzMUVCMzA3NzEwMERGNTQyRiAvKiBXYXNtTmFt
ZVNlY3Rpb25QYXJzZXIuaCAqLywKIAkJCQk1MzExQkQ0ODFFQTU4MUU1MDA1MjUyODEgLyogV2Fz
bU9NR1BsYW4uY3BwICovLApAQCAtODI2Miw2ICs4MjY1LDcgQEAKIAkJCQkwRjk2MzAzQzFENDE5
MkNEMDA1NjA5RDkgLyogRGVzdHJ1Y3Rpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdB
NDIzRTE3QTBCQkZEMDBBOERCODEgLyogREZHQWJzdHJhY3RIZWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNzA0RDkwMzE3QTBCQUE4MDA2QkE1NTQgLyogREZHQWJzdHJhY3RJbnRlcnByZXRlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQUQ3QjRCMkUxRkEzRTI5ODAwQzlERjc5IC8qIFdhc21OYW1l
U2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwNEQ5MDQxN0EwQkFBODAwNkJBNTU0IC8q
IERGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYy
MDE3NzE0M0ZDRDNGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZEM0U0MDIxQjYxOEFBRjAwQzgwRTFFIC8qIERGR0FkYXB0aXZlSW5mZXJyZWRQcm9w
ZXJ0eVZhbHVlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA0NDVjODcxLi5hMDA1
YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKQEAgLTUwNyw3ICs1MDcsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgaWYgKG1fcmVt
YWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNhcHR1cmUpIHsKICAgICAgICAgICAgIGlmICh2aXNpdG9y
LT5pc1dhc21GcmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgbV9yZXN1bHRzLmFwcGVuZChTdGFj
a0ZyYW1lOjp3YXNtKHZpc2l0b3ItPndhc21GdW5jdGlvbkluZGV4T3JOYW1lKCkpKTsKKyAgICAg
ICAgICAgICAgICBtX3Jlc3VsdHMuYXBwZW5kKFN0YWNrRnJhbWUodmlzaXRvci0+d2FzbUZ1bmN0
aW9uSW5kZXhPck5hbWUoKSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmICghIXZpc2l0b3ItPmNv
ZGVCbG9jaygpICYmICF2aXNpdG9yLT5jb2RlQmxvY2soKS0+dW5saW5rZWRDb2RlQmxvY2soKS0+
aXNCdWlsdGluRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgICAgIG1fcmVzdWx0cy5hcHBlbmQo
CiAgICAgICAgICAgICAgICAgICAgIFN0YWNrRnJhbWUobV92bSwgbV9vd25lciwgdmlzaXRvci0+
Y2FsbGVlKCkuYXNDZWxsKCksIHZpc2l0b3ItPmNvZGVCbG9jaygpLCB2aXNpdG9yLT5ieXRlY29k
ZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvU3RhY2tWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU3Rh
Y2tWaXNpdG9yLmgKaW5kZXggZTJhMTM2OC4uNDc1NWE5MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3IuaApAQCAtMTIxLDkgKzEyMSw5IEBA
IHB1YmxpYzoKICAgICAgICAgc2l6ZV90IG1faW5kZXg7CiAgICAgICAgIHNpemVfdCBtX2FyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzOwogICAgICAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0
OwotICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lOwog
ICAgICAgICBib29sIG1fY2FsbGVySXNFbnRyeUZyYW1lIDogMTsKICAgICAgICAgYm9vbCBtX2lz
V2FzbUZyYW1lIDogMTsKKyAgICAgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93YXNtRnVuY3Rpb25J
bmRleE9yTmFtZTsKIAogICAgICAgICBmcmllbmQgY2xhc3MgU3RhY2tWaXNpdG9yOwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuY3BwCmluZGV4IDhl
Yzg3NWQuLmVkYjMyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0YWNrRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNr
RnJhbWUuY3BwCkBAIC0zNSw3ICszNSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTdGFja0ZyYW1l
OjpTdGFja0ZyYW1lKFZNJiB2bSwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBjYWxsZWUpCiAgICAg
OiBtX2NhbGxlZSh2bSwgb3duZXIsIGNhbGxlZSkKLSAgICAsIG1fYnl0ZWNvZGVPZmZzZXQoVUlO
VF9NQVgpCiB7CiB9CiAKQEAgLTQ2LDYgKzQ1LDEyIEBAIFN0YWNrRnJhbWU6OlN0YWNrRnJhbWUo
Vk0mIHZtLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIGNhbGxlZSwgQ29kZUJsb2NrKiBjb2RlQmxv
CiB7CiB9CiAKK1N0YWNrRnJhbWU6OlN0YWNrRnJhbWUoV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhP
ck5hbWUpCisgICAgOiBtX3dhc21GdW5jdGlvbkluZGV4T3JOYW1lKGluZGV4T3JOYW1lKQorICAg
ICwgbV9pc1dhc21GcmFtZSh0cnVlKQoreworfQorCiBpbnRwdHJfdCBTdGFja0ZyYW1lOjpzb3Vy
Y2VJRCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NvZGVCbG9jaykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0YWNrRnJhbWUuaAppbmRleCAxYjViZWE2Li4yODc3NzIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdGFja0ZyYW1lLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RhY2tGcmFtZS5oCkBAIC0zNywyMSArMzcsOSBA
QCBjbGFzcyBTbG90VmlzaXRvcjsKIAogY2xhc3MgU3RhY2tGcmFtZSB7CiBwdWJsaWM6Ci0gICAg
U3RhY2tGcmFtZSgpCi0gICAgICAgIDogbV9ieXRlY29kZU9mZnNldChVSU5UX01BWCkKLSAgICB7
IH0KLQogICAgIFN0YWNrRnJhbWUoVk0mLCBKU0NlbGwqIG93bmVyLCBKU0NlbGwqIGNhbGxlZSk7
Ci0KICAgICBTdGFja0ZyYW1lKFZNJiwgSlNDZWxsKiBvd25lciwgSlNDZWxsKiBjYWxsZWUsIENv
ZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsKLQotICAgIHN0YXRpYyBTdGFja0Zy
YW1lIHdhc20oV2FzbTo6SW5kZXhPck5hbWUgaW5kZXhPck5hbWUpCi0gICAgewotICAgICAgICBT
dGFja0ZyYW1lIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1faXNXYXNtRnJhbWUgPSB0cnVlOwot
ICAgICAgICByZXN1bHQubV93YXNtRnVuY3Rpb25JbmRleE9yTmFtZSA9IGluZGV4T3JOYW1lOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KKyAgICBTdGFja0ZyYW1lKFdhc206OkluZGV4
T3JOYW1lKTsKIAogICAgIGJvb2wgaGFzTGluZUFuZENvbHVtbkluZm8oKSBjb25zdCB7IHJldHVy
biAhIW1fY29kZUJsb2NrOyB9CiAgICAgCkBAIC03MywxMCArNjEsOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIFdyaXRlQmFycmllcjxKU0NlbGw+IG1fY2FsbGVlIHsgfTsKICAgICBXcml0ZUJh
cnJpZXI8Q29kZUJsb2NrPiBtX2NvZGVCbG9jayB7IH07Ci0gICAgdW5pb24gewotICAgICAgICB1
bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0OwotICAgICAgICBXYXNtOjpJbmRleE9yTmFtZSBtX3dh
c21GdW5jdGlvbkluZGV4T3JOYW1lOwotICAgIH07CisgICAgV2FzbTo6SW5kZXhPck5hbWUgbV93
YXNtRnVuY3Rpb25JbmRleE9yTmFtZTsKKyAgICB1bnNpZ25lZCBtX2J5dGVjb2RlT2Zmc2V0IHsg
VUlOVF9NQVggfTsKICAgICBib29sIG1faXNXYXNtRnJhbWUgeyBmYWxzZSB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUJCUVBsYW5JbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQkJRUGxhbklubGluZXMuaAppbmRleCA0
NDQ3OTBiLi5mYzU4NzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtQkJRUGxhbklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QkJRUGxhbklubGluZXMuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkNhbGxlZUJpdHMu
aCIKICNpbmNsdWRlICJXYXNtQkJRUGxhbi5oIgogI2luY2x1ZGUgIldhc21DYWxsZWUuaCIKKyNp
bmNsdWRlICJXYXNtTmFtZVNlY3Rpb24uaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBX
YXNtIHsKIApAQCAtNDcsNyArNDgsNyBAQCB2b2lkIEJCUVBsYW46OmluaXRpYWxpemVDYWxsZWVz
KGNvbnN0IEZ1bmN0b3ImIGNhbGxiYWNrKQogCiAgICAgICAgIEludGVybmFsRnVuY3Rpb24qIGZ1
bmN0aW9uID0gbV93YXNtSW50ZXJuYWxGdW5jdGlvbnNbaW50ZXJuYWxGdW5jdGlvbkluZGV4XS5n
ZXQoKTsKICAgICAgICAgc2l6ZV90IGZ1bmN0aW9uSW5kZXhTcGFjZSA9IGludGVybmFsRnVuY3Rp
b25JbmRleCArIG1fbW9kdWxlSW5mb3JtYXRpb24tPmltcG9ydEZ1bmN0aW9uQ291bnQoKTsKLSAg
ICAgICAgUmVmPFdhc206OkNhbGxlZT4gd2FzbUVudHJ5cG9pbnRDYWxsZWUgPSBXYXNtOjpDYWxs
ZWU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uLT5lbnRyeXBvaW50KSwgZnVuY3Rpb25JbmRleFNw
YWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVuY3Rpb25JbmRleFNw
YWNlKSk7CisgICAgICAgIFJlZjxXYXNtOjpDYWxsZWU+IHdhc21FbnRyeXBvaW50Q2FsbGVlID0g
V2FzbTo6Q2FsbGVlOjpjcmVhdGUoV1RGTW92ZShmdW5jdGlvbi0+ZW50cnlwb2ludCksIGZ1bmN0
aW9uSW5kZXhTcGFjZSwgbV9tb2R1bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5j
dGlvbkluZGV4U3BhY2UpKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVy
KGZ1bmN0aW9uLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdhc20od2FzbUVu
dHJ5cG9pbnRDYWxsZWUucHRyKCkpKTsKIAogICAgICAgICBjYWxsYmFjayhpbnRlcm5hbEZ1bmN0
aW9uSW5kZXgsIFdURk1vdmUoZW1iZWRkZXJFbnRyeXBvaW50Q2FsbGVlKSwgV1RGTW92ZSh3YXNt
RW50cnlwb2ludENhbGxlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUNhbGxlZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVl
LmNwcAppbmRleCA5ZTgzZWRmLi40N2I1MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtQ2FsbGVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtQ2FsbGVlLmNwcApAQCAtMzgsOSArMzgsOSBAQCBDYWxsZWU6OkNhbGxlZShFbnRyeXBv
aW50JiYgZW50cnlwb2ludCkKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50LmNvbXBpbGF0
aW9uLT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2VudHJ5cG9pbnQu
Y29tcGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsKIH0KIAot
Q2FsbGVlOjpDYWxsZWUoRW50cnlwb2ludCYmIGVudHJ5cG9pbnQsIHNpemVfdCBpbmRleCwgY29u
c3QgTmFtZSogbmFtZSkKK0NhbGxlZTo6Q2FsbGVlKEVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBz
aXplX3QgaW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4m
JiBuYW1lKQogICAgIDogbV9lbnRyeXBvaW50KFdURk1vdmUoZW50cnlwb2ludCkpCi0gICAgLCBt
X2luZGV4T3JOYW1lKGluZGV4LCBuYW1lKQorICAgICwgbV9pbmRleE9yTmFtZShpbmRleCwgV1RG
TW92ZShuYW1lKSkKIHsKICAgICByZWdpc3RlckNvZGUobV9lbnRyeXBvaW50LmNvbXBpbGF0aW9u
LT5jb2RlUmVmKCkuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCBtX2VudHJ5cG9pbnQuY29t
cGlsYXRpb24tPmNvZGVSZWYoKS5leGVjdXRhYmxlTWVtb3J5KCktPmVuZCgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21DYWxsZWUuaAppbmRleCAyM2MxYWU1Li5jNDZhNmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQ2FsbGVlLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUNhbGxlZS5oCkBAIC00NCw5ICs0NCw5IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpjYWxsZWUpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8Q2FsbGVlPiBjcmVhdGUoV2FzbTo6RW50cnlwb2ludCYmIGVudHJ5cG9pbnQs
IHNpemVfdCBpbmRleCwgY29uc3QgTmFtZSogbmFtZSkKKyAgICBzdGF0aWMgUmVmPENhbGxlZT4g
Y3JlYXRlKFdhc206OkVudHJ5cG9pbnQmJiBlbnRyeXBvaW50LCBzaXplX3QgaW5kZXgsIHN0ZDo6
cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9uPj4mJiBuYW1lKQogICAgIHsKLSAg
ICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUoZW50cnlwb2ludCksIGlu
ZGV4LCBuYW1lKTsKKyAgICAgICAgQ2FsbGVlKiBjYWxsZWUgPSBuZXcgQ2FsbGVlKFdURk1vdmUo
ZW50cnlwb2ludCksIGluZGV4LCBXVEZNb3ZlKG5hbWUpKTsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpjYWxsZWUpOwogICAgIH0KIApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJik7Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9pbnQmJiwgc2l6ZV90LCBj
b25zdCBOYW1lKik7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgQ2FsbGVlKFdhc206OkVudHJ5cG9p
bnQmJiwgc2l6ZV90LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlvbj4+
JiYpOwogCiAgICAgV2FzbTo6RW50cnlwb2ludCBtX2VudHJ5cG9pbnQ7CiAgICAgSW5kZXhPck5h
bWUgbV9pbmRleE9yTmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21Gb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApp
bmRleCBjMmY3OThlLi44Y2NhNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZv
cm1hdC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3Qu
aCIKICNpbmNsdWRlICJXYXNtTWVtb3J5SW5mb3JtYXRpb24uaCIKICNpbmNsdWRlICJXYXNtTmFt
ZS5oIgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogI2luY2x1ZGUgIldhc21PcHMuaCIK
ICNpbmNsdWRlICJXYXNtUGFnZUNvdW50LmgiCiAjaW5jbHVkZSAiV2FzbVNpZ25hdHVyZS5oIgpA
QCAtMjUzLDE1ICsyNTQsNiBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlkTmFtZVR5cGUoSW50IHZhbCkK
ICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQotICAgIAotc3RydWN0IE5hbWVTZWN0aW9uIHsK
LSAgICBOYW1lIG1vZHVsZU5hbWU7Ci0gICAgVmVjdG9yPE5hbWU+IGZ1bmN0aW9uTmFtZXM7Ci0g
ICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlvbkluZGV4U3BhY2UpCi0gICAgewotICAg
ICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwgZnVuY3Rpb25OYW1lcy5zaXplKCkgPyAm
ZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2VdIDogbnVsbHB0cjsKLSAgICB9Ci19Owog
CiBzdHJ1Y3QgVW5saW5rZWRXYXNtVG9XYXNtQ2FsbCB7CiAgICAgQ29kZUxvY2F0aW9uTmVhckNh
bGwgY2FsbExvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUluZGV4T3JOYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbmRl
eE9yTmFtZS5jcHAKaW5kZXggYWI5Njk2MS4uZjNiZWY2NSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUluZGV4T3JOYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuY3BwCkBAIC0yOCwxNyArMjgsMTkgQEAKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBXYXNtIHsKIAotSW5kZXhPck5hbWU6OkluZGV4T3JO
YW1lKEluZGV4IGluZGV4LCBjb25zdCBOYW1lKiBuYW1lKQorSW5kZXhPck5hbWU6OkluZGV4T3JO
YW1lKEluZGV4IGluZGV4LCBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxOYW1lU2VjdGlv
bj4+JiYgbmFtZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXpl
b2YobV9uYW1lKSwgImJpdC10YWdnaW5nIGRlcGVuZHMgb24gc2l6ZXMgYmVpbmcgZXF1YWwiKTsK
LSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4KSA9PSBzaXplb2YoKnRoaXMpLCAiYml0
LXRhZ2dpbmcgZGVwZW5kcyBvbiBvYmplY3QgYmVpbmcgdGhlIHNpemUgb2YgdGhlIHVuaW9uJ3Mg
dHlwZXMiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2luZGV4TmFtZS5pbmRleCkgPT0g
c2l6ZW9mKG1faW5kZXhOYW1lLm5hbWUpLCAiYml0LXRhZ2dpbmcgZGVwZW5kcyBvbiBzaXplcyBi
ZWluZyBlcXVhbCIpOwogCi0gICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8IChiaXR3aXNlX2Nh
c3Q8SW5kZXg+KG5hbWUpICYgYWxsVGFncykpCisgICAgaWYgKChpbmRleCAmIGFsbFRhZ3MpIHx8
IChiaXR3aXNlX2Nhc3Q8SW5kZXg+KG5hbWUuZmlyc3QpICYgYWxsVGFncykpCiAgICAgICAgICp0
aGlzID0gSW5kZXhPck5hbWUoKTsKLSAgICBlbHNlIGlmIChuYW1lKQotICAgICAgICBtX25hbWUg
PSBuYW1lOwotICAgIGVsc2UKLSAgICAgICAgbV9pbmRleCA9IGluZGV4VGFnIHwgaW5kZXg7Cisg
ICAgZWxzZSB7CisgICAgICAgIGlmIChuYW1lLmZpcnN0KQorICAgICAgICAgICAgbV9pbmRleE5h
bWUubmFtZSA9IG5hbWUuZmlyc3Q7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1faW5kZXhO
YW1lLmluZGV4ID0gaW5kZXhUYWcgfCBpbmRleDsKKyAgICAgICAgbV9uYW1lU2VjdGlvbiA9IFdU
Rk1vdmUobmFtZS5zZWNvbmQpOworICAgIH0KIH0KIAogU3RyaW5nIG1ha2VTdHJpbmcoY29uc3Qg
SW5kZXhPck5hbWUmIGlvbikKQEAgLTQ2LDggKzQ4LDggQEAgU3RyaW5nIG1ha2VTdHJpbmcoY29u
c3QgSW5kZXhPck5hbWUmIGlvbikKICAgICBpZiAoaW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogICAgIGlmIChpb24uaXNJbmRleCgpKQotICAgICAgICByZXR1cm4gU3Ry
aW5nOjpudW1iZXIoaW9uLm1faW5kZXggJiB+SW5kZXhPck5hbWU6OmluZGV4VGFnKTsKLSAgICBy
ZXR1cm4gU3RyaW5nKGlvbi5tX25hbWUtPmRhdGEoKSwgaW9uLm1fbmFtZS0+c2l6ZSgpKTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZzo6bnVtYmVyKGlvbi5tX2luZGV4TmFtZS5pbmRleCAmIH5JbmRl
eE9yTmFtZTo6aW5kZXhUYWcpOworICAgIHJldHVybiBTdHJpbmcoaW9uLm1faW5kZXhOYW1lLm5h
bWUtPmRhdGEoKSwgaW9uLm1faW5kZXhOYW1lLm5hbWUtPnNpemUoKSk7CiB9OwogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbUluZGV4T3JOYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5k
ZXhPck5hbWUuaAppbmRleCBkNzU0NWZhLi43MGM3ZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtSW5kZXhPck5hbWUuaApAQCAtMjYsMjkgKzI2LDMyIEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIldhc21OYW1lLmgiCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9u
LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBXYXNtIHsKIAorc3RydWN0IE5hbWVTZWN0aW9uOworCiBzdHJ1Y3QgSW5kZXhPck5h
bWUgewogICAgIHR5cGVkZWYgc2l6ZV90IEluZGV4OwogCi0gICAgSW5kZXhPck5hbWUoKQotICAg
ICAgICA6IG1faW5kZXgoZW1wdHlUYWcpCi0gICAgeyB9Ci0gICAgSW5kZXhPck5hbWUoSW5kZXgs
IGNvbnN0IE5hbWUqKTsKLSAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBiaXR3aXNl
X2Nhc3Q8SW5kZXg+KCp0aGlzKSAmIGVtcHR5VGFnOyB9Ci0gICAgYm9vbCBpc0luZGV4KCkgY29u
c3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PEluZGV4PigqdGhpcykgJiBpbmRleFRhZzsgfQorICAg
IEluZGV4T3JOYW1lKCkgeyBtX2luZGV4TmFtZS5pbmRleCA9IGVtcHR5VGFnOyB9CisgICAgSW5k
ZXhPck5hbWUoSW5kZXgsIHN0ZDo6cGFpcjxjb25zdCBOYW1lKiwgUmVmUHRyPE5hbWVTZWN0aW9u
Pj4mJik7CisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gYml0d2lzZV9jYXN0PElu
ZGV4PihtX2luZGV4TmFtZSkgJiBlbXB0eVRhZzsgfQorICAgIGJvb2wgaXNJbmRleCgpIGNvbnN0
IHsgcmV0dXJuIGJpdHdpc2VfY2FzdDxJbmRleD4obV9pbmRleE5hbWUpICYgaW5kZXhUYWc7IH0K
ICAgICBib29sIGlzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICEoaXNFbXB0eSgpIHx8IGlzTmFtZSgp
KTsgfQogCiAgICAgZnJpZW5kIFN0cmluZyBtYWtlU3RyaW5nKGNvbnN0IEluZGV4T3JOYW1lJik7
CiAKIHByaXZhdGU6CiAgICAgdW5pb24gewotICAgICAgICBJbmRleCBtX2luZGV4OwotICAgICAg
ICBjb25zdCBOYW1lKiBtX25hbWU7Ci0gICAgfTsKKyAgICAgICAgSW5kZXggaW5kZXg7CisgICAg
ICAgIGNvbnN0IE5hbWUqIG5hbWU7CisgICAgfSBtX2luZGV4TmFtZTsKKyAgICBSZWZQdHI8TmFt
ZVNlY3Rpb24+IG1fbmFtZVNlY3Rpb247CiAKICAgICAvLyBVc2UgdGhlIHRvcCBiaXRzIGFzIHRh
Z3MuIE5laXRoZXIgcG9pbnRlcnMgbm9yIHRoZSBmdW5jdGlvbiBpbmRleCBzcGFjZSBzaG91bGQg
dXNlIHRoZW0uCiAgICAgc3RhdGljIGNvbnN0ZXhwciBJbmRleCBpbmRleFRhZyA9IDF1bGwgPDwg
KENIQVJfQklUICogc2l6ZW9mKEluZGV4KSAtIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZUluZm9ybWF0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21Nb2R1bGVJbmZvcm1hdGlvbi5jcHAKaW5kZXggODk2YWJkZC4uOWRh
NWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU1vZHVsZUlu
Zm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxl
SW5mb3JtYXRpb24uY3BwCkBAIC0yOCw4ICsyOCwxNSBAQAogCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogCisjaW5jbHVkZSAiV2FzbU5hbWVTZWN0aW9uLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAKK01vZHVsZUluZm9ybWF0aW9uOjpNb2R1bGVJbmZvcm1hdGlvbihW
ZWN0b3I8dWludDhfdD4mJiBzb3VyY2VCeXRlcykKKyAgICA6IHNvdXJjZShXVEZNb3ZlKHNvdXJj
ZUJ5dGVzKSkKKyAgICAsIG5hbWVTZWN0aW9uKG5ldyBOYW1lU2VjdGlvbigpKQoreworfQogTW9k
dWxlSW5mb3JtYXRpb246On5Nb2R1bGVJbmZvcm1hdGlvbigpIHsgfQogCiB9IH0gLy8gbmFtZXNw
YWNlIEpTQzo6V2FzbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU1vZHVsZUluZm9ybWF0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9k
dWxlSW5mb3JtYXRpb24uaAppbmRleCAwN2IzODk5Li4xODIzOWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTW9kdWxlSW5mb3JtYXRpb24uaApAQCAtMzIsNiAr
MzIsMTQgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgV2FzbSB7CiAKIHN0cnVjdCBNb2R1
bGVJbmZvcm1hdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNb2R1bGVJbmZvcm1h
dGlvbj4geworICAgIE1vZHVsZUluZm9ybWF0aW9uKCkgPSBkZWxldGU7CisgICAgTW9kdWxlSW5m
b3JtYXRpb24oY29uc3QgTW9kdWxlSW5mb3JtYXRpb24mKSA9IGRlbGV0ZTsKKyAgICBNb2R1bGVJ
bmZvcm1hdGlvbihNb2R1bGVJbmZvcm1hdGlvbiYmKSA9IGRlbGV0ZTsKKworICAgIE1vZHVsZUlu
Zm9ybWF0aW9uKFZlY3Rvcjx1aW50OF90PiYmIHNvdXJjZUJ5dGVzKTsKKworICAgIEpTX0VYUE9S
VF9QUklWQVRFIH5Nb2R1bGVJbmZvcm1hdGlvbigpOworICAgIAogICAgIHNpemVfdCBmdW5jdGlv
bkluZGV4U3BhY2VTaXplKCkgY29uc3QgeyByZXR1cm4gaW1wb3J0RnVuY3Rpb25TaWduYXR1cmVJ
bmRpY2VzLnNpemUoKSArIGludGVybmFsRnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsg
fQogICAgIGJvb2wgaXNJbXBvcnRlZEZ1bmN0aW9uRnJvbUZ1bmN0aW9uSW5kZXhTcGFjZShzaXpl
X3QgZnVuY3Rpb25JbmRleCkgY29uc3QKICAgICB7CkBAIC00OCwxMyArNTYsNiBAQCBzdHJ1Y3Qg
TW9kdWxlSW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TW9kdWxlSW5m
b3JtYXRpb24+IHsKICAgICB1aW50MzJfdCBpbXBvcnRGdW5jdGlvbkNvdW50KCkgY29uc3QgeyBy
ZXR1cm4gaW1wb3J0RnVuY3Rpb25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQogICAgIHVpbnQz
Ml90IGludGVybmFsRnVuY3Rpb25Db3VudCgpIGNvbnN0IHsgcmV0dXJuIGludGVybmFsRnVuY3Rp
b25TaWduYXR1cmVJbmRpY2VzLnNpemUoKTsgfQogCi0gICAgTW9kdWxlSW5mb3JtYXRpb24oVmVj
dG9yPHVpbnQ4X3Q+JiYgc291cmNlQnl0ZXMpCi0gICAgICAgIDogc291cmNlKFdURk1vdmUoc291
cmNlQnl0ZXMpKQotICAgIHsKLSAgICB9Ci0KLSAgICBKU19FWFBPUlRfUFJJVkFURSB+TW9kdWxl
SW5mb3JtYXRpb24oKTsKLQogICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiBzb3VyY2U7CiAKICAg
ICBWZWN0b3I8SW1wb3J0PiBpbXBvcnRzOwpAQCAtNzQsNyArNzUsNyBAQCBzdHJ1Y3QgTW9kdWxl
SW5mb3JtYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TW9kdWxlSW5mb3JtYXRp
b24+IHsKICAgICBWZWN0b3I8R2xvYmFsPiBnbG9iYWxzOwogICAgIHVuc2lnbmVkIGZpcnN0SW50
ZXJuYWxHbG9iYWwgeyAwIH07CiAgICAgVmVjdG9yPEN1c3RvbVNlY3Rpb24+IGN1c3RvbVNlY3Rp
b25zOwotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0aW9uOworICAgIFJlZlB0cjxOYW1lU2VjdGlv
bj4gbmFtZVNlY3Rpb247CiB9OwogCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21OYW1lU2VjdGlvbi5oCmluZGV4IDEzN2Y2NTIuLjhiMWYwMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvbi5oCkBAIC0yOCwyMSArMjgsMTcgQEAK
ICNpbmNsdWRlICJXYXNtTmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlsaXR5PgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIFdhc20gewogCi1zdHJ1Y3QgTmFtZVNlY3Rpb24gOiBUaHJl
YWRTYWZlUmVmQ291bnRlZDxOYW1lU2VjdGlvbj4gewotICAgIHN0YXRpYyBSZWY8TmFtZVNlY3Rp
b24+IGNyZWF0ZSgpCitzdHJ1Y3QgTmFtZVNlY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8TmFtZVNlY3Rpb24+IHsKKyAgICBzdGQ6OnBhaXI8Y29uc3QgTmFtZSosIFJlZlB0cjxO
YW1lU2VjdGlvbj4+IGdldChzaXplX3QgZnVuY3Rpb25JbmRleFNwYWNlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmFtZVNlY3Rpb24oKSk7CisgICAgICAgIHJldHVybiBm
dW5jdGlvbkluZGV4U3BhY2UgPCBmdW5jdGlvbk5hbWVzLnNpemUoKSA/IHN0ZDo6bWFrZV9wYWly
KCZmdW5jdGlvbk5hbWVzW2Z1bmN0aW9uSW5kZXhTcGFjZV0sIFJlZlB0cjxOYW1lU2VjdGlvbj4o
dGhpcykpIDogc3RkOjpwYWlyPGNvbnN0IE5hbWUqLCBSZWZQdHI8TmFtZVNlY3Rpb24+PihudWxs
cHRyLCBudWxscHRyKTsKICAgICB9Ci0KICAgICBOYW1lIG1vZHVsZU5hbWU7CiAgICAgVmVjdG9y
PE5hbWU+IGZ1bmN0aW9uTmFtZXM7Ci0gICAgY29uc3QgTmFtZSogZ2V0KHNpemVfdCBmdW5jdGlv
bkluZGV4U3BhY2UpCi0gICAgewotICAgICAgICByZXR1cm4gZnVuY3Rpb25JbmRleFNwYWNlIDwg
ZnVuY3Rpb25OYW1lcy5zaXplKCkgPyAmZnVuY3Rpb25OYW1lc1tmdW5jdGlvbkluZGV4U3BhY2Vd
IDogbnVsbHB0cjsKLSAgICB9CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6V2FzbQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5j
cHAKaW5kZXggYTU4Mjg5Zi4uYmY1OWUwNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtTmFtZVNlY3Rpb25QYXJzZXIuY3BwCkBAIC0yOSwxNCArMjksMTUgQEAK
ICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5o
IgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIFdhc20gewogCiBhdXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAog
ewotICAgIE5hbWVTZWN0aW9uIG5hbWVTZWN0aW9uOwotICAgIFdBU01fUEFSU0VSX0ZBSUxfSUYo
IW5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFtZXMudHJ5UmVzZXJ2ZUNhcGFjaXR5KG1faW5mby5mdW5j
dGlvbkluZGV4U3BhY2VTaXplKCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3Ig
ZnVuY3Rpb24gbmFtZXMiKTsKLSAgICBuYW1lU2VjdGlvbi5mdW5jdGlvbk5hbWVzLnJlc2l6ZSht
X2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpKTsKKyAgICBSZWZQdHI8TmFtZVNlY3Rpb24+
IG5hbWVTZWN0aW9uKGFkb3B0UmVmKCpuZXcgTmFtZVNlY3Rpb24oKSkpOworICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIW5hbWVTZWN0aW9uLT5mdW5jdGlvbk5hbWVzLnRyeVJlc2VydmVDYXBhY2l0
eShtX2luZm8uZnVuY3Rpb25JbmRleFNwYWNlU2l6ZSgpKSwgImNhbid0IGFsbG9jYXRlIGVub3Vn
aCBtZW1vcnkgZm9yIGZ1bmN0aW9uIG5hbWVzIik7CisgICAgbmFtZVNlY3Rpb24tPmZ1bmN0aW9u
TmFtZXMucmVzaXplKG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCkpOwogCiAgICAgZm9y
IChzaXplX3QgcGF5bG9hZE51bWJlciA9IDA7IG1fb2Zmc2V0IDwgbGVuZ3RoKCk7ICsrcGF5bG9h
ZE51bWJlcikgewogICAgICAgICB1aW50OF90IG5hbWVUeXBlOwpAQCAtNTgsNyArNTksNyBAQCBh
dXRvIE5hbWVTZWN0aW9uUGFyc2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogICAgICAgICAgICAgTmFt
ZSBuYW1lU3RyaW5nOwogICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighcGFyc2VWYXJV
SW50MzIobmFtZUxlbiksICJjYW4ndCBnZXQgbW9kdWxlJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxv
YWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAgICAgICBXQVNNX1BBUlNFUl9GQUlMX0lGKCFj
b25zdW1lVVRGOFN0cmluZyhuYW1lU3RyaW5nLCBuYW1lTGVuKSwgImNhbid0IGdldCBtb2R1bGUn
cyBuYW1lIG9mIGxlbmd0aCAiLCBuYW1lTGVuLCAiIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1i
ZXIpOwotICAgICAgICAgICAgbmFtZVNlY3Rpb24ubW9kdWxlTmFtZSA9IFdURk1vdmUobmFtZVN0
cmluZyk7CisgICAgICAgICAgICBuYW1lU2VjdGlvbi0+bW9kdWxlTmFtZSA9IFdURk1vdmUobmFt
ZVN0cmluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIE5h
bWVUeXBlOjpGdW5jdGlvbjogewpAQCAtNzIsNyArNzMsNyBAQCBhdXRvIE5hbWVTZWN0aW9uUGFy
c2VyOjpwYXJzZSgpIC0+IFJlc3VsdAogICAgICAgICAgICAgICAgIFdBU01fUEFSU0VSX0ZBSUxf
SUYobV9pbmZvLmZ1bmN0aW9uSW5kZXhTcGFjZVNpemUoKSA8PSBpbmRleCwgImZ1bmN0aW9uICIs
IGZ1bmN0aW9uLCAiIGluZGV4ICIsIGluZGV4LCAiIGlzIGxhcmdlciB0aGFuIGZ1bmN0aW9uIGlu
ZGV4IHNwYWNlICIsIG1faW5mby5mdW5jdGlvbkluZGV4U3BhY2VTaXplKCksICIgZm9yIHBheWxv
YWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAgICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9J
RighcGFyc2VWYXJVSW50MzIobmFtZUxlbiksICJjYW4ndCBnZXQgZnVuY3Rpb25zICIsIGZ1bmN0
aW9uLCAiJ3MgbmFtZSBsZW5ndGggZm9yIHBheWxvYWQgIiwgcGF5bG9hZE51bWJlcik7CiAgICAg
ICAgICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRighY29uc3VtZVVURjhTdHJpbmcobmFtZVN0
cmluZywgbmFtZUxlbiksICJjYW4ndCBnZXQgZnVuY3Rpb24gIiwgZnVuY3Rpb24sICIncyBuYW1l
IG9mIGxlbmd0aCAiLCBuYW1lTGVuLCAiIGZvciBwYXlsb2FkICIsIHBheWxvYWROdW1iZXIpOwot
ICAgICAgICAgICAgICAgIG5hbWVTZWN0aW9uLmZ1bmN0aW9uTmFtZXNbaW5kZXhdID0gV1RGTW92
ZShuYW1lU3RyaW5nKTsKKyAgICAgICAgICAgICAgICBuYW1lU2VjdGlvbi0+ZnVuY3Rpb25OYW1l
c1tpbmRleF0gPSBXVEZNb3ZlKG5hbWVTdHJpbmcpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21OYW1lU2VjdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKaW5kZXggYjI5NzBkZC4uYjdhZjBkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU5hbWVTZWN0aW9uUGFyc2VyLmgKQEAg
LTI5LDEwICsyOSwxMSBAQAogCiAjaW5jbHVkZSAiV2FzbUZvcm1hdC5oIgogI2luY2x1ZGUgIldh
c21QYXJzZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgV2FzbSB7CiAKLWNsYXNzIE5hbWVTZWN0aW9uUGFyc2VyIDogcHVibGljIFBhcnNl
cjxOYW1lU2VjdGlvbj4geworY2xhc3MgTmFtZVNlY3Rpb25QYXJzZXIgOiBwdWJsaWMgUGFyc2Vy
PFJlZlB0cjxOYW1lU2VjdGlvbj4+IHsKIHB1YmxpYzoKICAgICBOYW1lU2VjdGlvblBhcnNlcihj
b25zdCB1aW50OF90KiBzb3VyY2VCdWZmZXIsIHNpemVfdCBzb3VyY2VMZW5ndGgsIGNvbnN0IE1v
ZHVsZUluZm9ybWF0aW9uJiBpbmZvKQogICAgICAgICA6IFBhcnNlcihzb3VyY2VCdWZmZXIsIHNv
dXJjZUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21P
TUdQbGFuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PTUdQbGFuLmNwcApp
bmRleCBmNTVhZGE3Li5mZmM3ZDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9XYXNtT01HUGxhbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2Fz
bU9NR1BsYW4uY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2FzbUluc3RhbmNlLmgi
CiAjaW5jbHVkZSAiV2FzbU1hY2hpbmVUaHJlYWRzLmgiCiAjaW5jbHVkZSAiV2FzbU1lbW9yeS5o
IgorI2luY2x1ZGUgIldhc21OYW1lU2VjdGlvbi5oIgogI2luY2x1ZGUgIldhc21WYWxpZGF0ZS5o
IgogI2luY2x1ZGUgIldhc21Xb3JrbGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CkBA
IC0xMDUsNyArMTA2LDcgQEAgdm9pZCBPTUdQbGFuOjp3b3JrKENvbXBpbGF0aW9uRWZmb3J0KQog
ICAgIHZvaWQqIGVudHJ5cG9pbnQ7CiAgICAgewogICAgICAgICBBU1NFUlQobV9jb2RlQmxvY2su
cHRyKCkgPT0gbV9tb2R1bGUtPmNvZGVCbG9ja0Zvcihtb2RlKCkpKTsKLSAgICAgICAgUmVmPENh
bGxlZT4gY2FsbGVlID0gQ2FsbGVlOjpjcmVhdGUoV1RGTW92ZShvbWdFbnRyeXBvaW50KSwgZnVu
Y3Rpb25JbmRleFNwYWNlLCBtX21vZHVsZUluZm9ybWF0aW9uLT5uYW1lU2VjdGlvbi5nZXQoZnVu
Y3Rpb25JbmRleFNwYWNlKSk7CisgICAgICAgIFJlZjxDYWxsZWU+IGNhbGxlZSA9IENhbGxlZTo6
Y3JlYXRlKFdURk1vdmUob21nRW50cnlwb2ludCksIGZ1bmN0aW9uSW5kZXhTcGFjZSwgbV9tb2R1
bGVJbmZvcm1hdGlvbi0+bmFtZVNlY3Rpb24tPmdldChmdW5jdGlvbkluZGV4U3BhY2UpKTsKICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hQb2ludGVyKHBhcnNlQW5kQ29tcGlsZVJlc3Vs
dC52YWx1ZSgpLT5jYWxsZWVNb3ZlTG9jYXRpb24sIENhbGxlZUJpdHM6OmJveFdhc20oY2FsbGVl
LnB0cigpKSk7CiAgICAgICAgIEFTU0VSVCghbV9jb2RlQmxvY2stPm1fb3B0aW1pemVkQ2FsbGVl
c1ttX2Z1bmN0aW9uSW5kZXhdKTsKICAgICAgICAgZW50cnlwb2ludCA9IGNhbGxlZS0+ZW50cnlw
b2ludCgpOwotLSAKMi45LjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>