<?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>106292</bug_id>
          
          <creation_ts>2013-01-07 20:04:27 -0800</creation_ts>
          <short_desc>webdatabase: Remove the need for the ProposedDatabase mechanism.</short_desc>
          <delta_ts>2013-01-08 10:49:42 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sam</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>801953</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-07 20:04:27 -0800</bug_when>
    <thetext>In DatabaseTracker.cpp, there&apos;s a FIXME that says that &quot;We should really just pass the details into this call, rather than using m_proposedDatabases.&quot;  This change achieves that.

Here&apos;s how things used to work:
1. DatabaseTracker::canEstablishDatabase() adds a DatabaseDetail to its m_proposedDatabase list.
2. It then calls DatabaseContext::databaseExceededQuota() to give the chrome client a chance to increase the quota.
3. Next, it removes the DatabaseDetails from m_proposedDatabase to revert step 1&apos;s action.

DatabaseContext::databaseExceededQuota() eventually calls the ChromeClient.  The ChromeClient in turn calls DatabaseTracker::detailsForNameAndOrigin() to get the detail for the database we&apos;re trying to open.  Because the database may not have been added to the tracker database, detailsForNameAndOrigin() would also check the m_proposedDatabase list for the details of the database that we&apos;re trying to add, and retrieve the needed details from there.

Here&apos;s how things work with this change:
1. The ProposedDatabase mechanism has been removed completely.  Instead, DatabaseTracker::canEstablishDatabase() will call DatabaseContext::databaseExceededQuota() with the needed DatabaseDetails as an additional argument.
2. This details argument will be passed all the way to the ChromeClient where it can be accessed if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801959</commentid>
    <comment_count>1</comment_count>
      <attachid>181629</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-07 20:13:56 -0800</bug_when>
    <thetext>Created attachment 181629
Fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801966</commentid>
    <comment_count>2</comment_count>
      <attachid>181629</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-07 20:30:10 -0800</bug_when>
    <thetext>Comment on attachment 181629
Fix.

Attachment 181629 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15756014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801973</commentid>
    <comment_count>3</comment_count>
      <attachid>181629</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-07 20:41:28 -0800</bug_when>
    <thetext>Comment on attachment 181629
Fix.

Attachment 181629 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15738981</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801978</commentid>
    <comment_count>4</comment_count>
      <attachid>181630</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-07 20:48:14 -0800</bug_when>
    <thetext>Created attachment 181630
Fix.  Resolves chromium and windows build breakage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802006</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-07 21:53:39 -0800</bug_when>
    <thetext>The bots are happy.  Time to get a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802007</commentid>
    <comment_count>6</comment_count>
      <attachid>181630</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-07 21:54:21 -0800</bug_when>
    <thetext>Comment on attachment 181630
Fix.  Resolves chromium and windows build breakage.

I meant r? not r+.  Need a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802367</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-01-08 10:49:42 -0800</bug_when>
    <thetext>Landed in r139078: &lt;http://trac.webkit.org/changeset/139078&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181629</attachid>
            <date>2013-01-07 20:13:56 -0800</date>
            <delta_ts>2013-01-07 20:44:17 -0800</delta_ts>
            <desc>Fix.</desc>
            <filename>bug-106292.patch</filename>
            <type>text/plain</type>
            <size>31924</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0
aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OmRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgIChBYnN0cmFj
dERhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVk
ZWRRdW90YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQu
aDoKKyAgICAgICAgKERhdGFiYXNlQ29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFj
a2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRy
YWNrZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2VOb0xvY2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKERhdGFiYXNlVHJhY2tl
cik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkNsaWVudDo6ZGlkRXhjZWVkUXVv
dGEpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVtcHR5Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCiAyMDEzLTAxLTA3
ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
c2hvdWxkIGNvbXBpbGUgb24gTWFjIHdpdGggLS1zaGFkb3ctZG9tCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3REYXRhYmFzZS5j
cHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMiw2ICs0MDIsMTEg
QEAgU3RyaW5nIEFic3RyYWN0RGF0YWJhc2U6OmZpbGVOYW1lKCkgY29ucwogICAgIHJldHVybiBt
X2ZpbGVuYW1lLmlzb2xhdGVkQ29weSgpOwogfQogCitEYXRhYmFzZURldGFpbHMgQWJzdHJhY3RE
YXRhYmFzZTo6ZGV0YWlscygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhz
dHJpbmdJZGVudGlmaWVyKCksIGRpc3BsYXlOYW1lKCksIGVzdGltYXRlZFNpemUoKSwgMCk7Cit9
CisKIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShTdHJpbmcm
IHZlcnNpb24sIGJvb2wgc2hvdWxkQ2FjaGVWZXJzaW9uKQogewogICAgIFN0cmluZyBxdWVyeShT
dHJpbmcoIlNFTEVDVCB2YWx1ZSBGUk9NICIpICsgaW5mb1RhYmxlTmFtZSArICAiIFdIRVJFIGtl
eSA9ICciICsgdmVyc2lvbktleSArICInOyIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmgJKHJldmlzaW9uIDEz
OTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3REYXRh
YmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKIAogI2luY2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBlcy5oIgorI2luY2x1ZGUgIkRh
dGFiYXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAg
LTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1lKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgRGF0YWJh
c2VEZXRhaWxzIGRldGFpbHMoKSBjb25zdDsKICAgICBTUUxpdGVEYXRhYmFzZSYgc3FsaXRlRGF0
YWJhc2UoKSB7IHJldHVybiBtX3NxbGl0ZURhdGFiYXNlOyB9CiAKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbWF4aW11bVNpemUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEz
OTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDEyICsxMjIsMTIgQEAgYm9vbCBEYXRhYmFz
ZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IERhdGFiYXNlQ29udGV4dDo6ZGF0YWJhc2VFeGNlZWRlZFF1b3RhKGNvbnN0IFN0cmluZyYgbmFt
ZSkKK3ZvaWQgRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEoY29uc3QgU3Ry
aW5nJiBuYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKICAgICBpZiAobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwog
ICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC0+
ZnJhbWUoKSwgbmFtZSk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aXNXb3JrZXJDb250ZXh0KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCShyZXZpc2lvbiAxMzkwMjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQogCisjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFi
bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsNyArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgc3RvcERhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0
YWJhc2VUYXNrU3luY2hyb25pemVyKik7CiAKICAgICBib29sIGFsbG93RGF0YWJhc2VBY2Nlc3Mo
KSBjb25zdDsKLSAgICB2b2lkIGRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5h
bWUpOworICAgIHZvaWQgZGF0YWJhc2VFeGNlZWRlZFF1b3RhKGNvbnN0IFN0cmluZyYgbmFtZSwg
RGF0YWJhc2VEZXRhaWxzKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEYXRhYmFzZUNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAkocmV2aXNpb24g
MTM5MDI3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsOCArMTM3LDYgQEAgdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhcwogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmNhbkVz
dGFibGlzaERhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3Rp
bWF0ZWRTaXplKQogewogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1
cml0eU9yaWdpbigpOwotICAgIFByb3Bvc2VkRGF0YWJhc2UgZGV0YWlsczsKLQogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyByZXF1aXJlbWVudDsKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwpAQCAtMTY1LDIwICsxNjMsMTQgQEAgYm9vbCBE
YXRhYmFzZVRyYWNrZXI6OmNhbkVzdGFibGlzaERhdGFiYQogICAgICAgICB9CiAgICAgICAgIGlm
IChyZXF1aXJlbWVudCA8PSBxdW90YUZvck9yaWdpbk5vTG9jayhvcmlnaW4pKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgLy8gR2l2ZSB0aGUgY2hyb21lIGNsaWVudCBhIGNo
YW5jZSB0byBpbmNyZWFzZSB0aGUgcXVvdGEuCi0gICAgICAgIC8vIFRlbXBvcmFyaWx5IG1ha2Ug
dGhlIGRldGFpbHMgb2YgdGhlIHByb3Bvc2VkIGRhdGFiYXNlIGF2YWlsYWJsZSwgc28gdGhlIGNs
aWVudCBjYW4gZ2V0IGF0IHRoZW0uCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5
IGp1c3QgcGFzcyB0aGUgZGV0YWlscyBpbnRvIHRoaXMgY2FsbCwgcmF0aGVyIHRoYW4gdXNpbmcg
bV9wcm9wb3NlZERhdGFiYXNlcy4KLSAgICAgICAgZGV0YWlscyA9IFByb3Bvc2VkRGF0YWJhc2Uo
b3JpZ2luLT5pc29sYXRlZENvcHkoKSwgRGF0YWJhc2VEZXRhaWxzKG5hbWUuaXNvbGF0ZWRDb3B5
KCksIGRpc3BsYXlOYW1lLmlzb2xhdGVkQ29weSgpLCBlc3RpbWF0ZWRTaXplLCAwKSk7Ci0gICAg
ICAgIG1fcHJvcG9zZWREYXRhYmFzZXMuYWRkKCZkZXRhaWxzKTsKICAgICB9CisKKyAgICAvLyBH
aXZlIHRoZSBjaHJvbWUgY2xpZW50IGEgY2hhbmNlIHRvIGluY3JlYXNlIHRoZSBxdW90YS4KICAg
ICAvLyBEcm9wIGFsbCBsb2NrcyBiZWZvcmUgY2FsbGluZyBvdXQ7IHdlIGRvbid0IGtub3cgd2hh
dCB0aGV5J2xsIGRvLgotICAgIERhdGFiYXNlQ29udGV4dDo6ZnJvbShjb250ZXh0KS0+ZGF0YWJh
c2VFeGNlZWRlZFF1b3RhKG5hbWUpOworICAgIERhdGFiYXNlQ29udGV4dDo6ZnJvbShjb250ZXh0
KS0+ZGF0YWJhc2VFeGNlZWRlZFF1b3RhKG5hbWUsIERhdGFiYXNlRGV0YWlscyhuYW1lLmlzb2xh
dGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSwgZXN0aW1hdGVkU2l6ZSwgMCkp
OwogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKLSAg
ICBtX3Byb3Bvc2VkRGF0YWJhc2VzLnJlbW92ZSgmZGV0YWlscyk7Ci0KICAgICAvLyBJZiB0aGUg
ZGF0YWJhc2Ugd2lsbCBmaXQgbm93LCBhbGxvdyBpdHMgY3JlYXRpb24uCiAgICAgaWYgKHJlcXVp
cmVtZW50IDw9IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikpCiAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMjc0LDEwICsyNjYsNiBAQCBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0
aEZvckRhdGFiCiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3VhcmQudHJ5TG9jaygpKTsKICAgICBB
U1NFUlQoIW9yaWdpblF1b3RhTWFuYWdlcigpLnRyeUxvY2soKSk7CiAKLSAgICBmb3IgKEhhc2hT
ZXQ8UHJvcG9zZWREYXRhYmFzZSo+OjppdGVyYXRvciBpdGVyID0gbV9wcm9wb3NlZERhdGFiYXNl
cy5iZWdpbigpOyBpdGVyICE9IG1fcHJvcG9zZWREYXRhYmFzZXMuZW5kKCk7ICsraXRlcikKLSAg
ICAgICAgaWYgKCgqaXRlciktPnNlY29uZC5uYW1lKCkgPT0gbmFtZSAmJiAoKml0ZXIpLT5maXJz
dC0+ZXF1YWwob3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQogICAgIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyID0gb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKICAg
ICBTdHJpbmcgb3JpZ2luUGF0aCA9IHRoaXMtPm9yaWdpblBhdGgob3JpZ2luKTsKIApAQCAtNDE2
LDEyICs0MDQsNiBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAg
ICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsK
IAotICAgICAgICBmb3IgKEhhc2hTZXQ8UHJvcG9zZWREYXRhYmFzZSo+OjppdGVyYXRvciBpdGVy
ID0gbV9wcm9wb3NlZERhdGFiYXNlcy5iZWdpbigpOyBpdGVyICE9IG1fcHJvcG9zZWREYXRhYmFz
ZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgICAgIGlmICgoKml0ZXIpLT5zZWNvbmQubmFtZSgp
ID09IG5hbWUgJiYgKCppdGVyKS0+Zmlyc3QtPmVxdWFsKG9yaWdpbikpIHsKLSAgICAgICAgICAg
ICAgICBBU1NFUlQoKCppdGVyKS0+c2Vjb25kLnRocmVhZCgpID09IGN1cnJlbnRUaHJlYWQoKSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICgqaXRlciktPnNlY29uZDsKLSAgICAgICAgICAgIH0K
LQogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKGZhbHNlKTsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmlzT3BlbigpKQogICAgICAgICAgICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscygpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyAr
MTM4LDcgQEAgcHJpdmF0ZToKICAgICBNdXRleCBtX29wZW5EYXRhYmFzZU1hcEd1YXJkOwogICAg
IG11dGFibGUgT3duUHRyPERhdGFiYXNlT3JpZ2luTWFwPiBtX29wZW5EYXRhYmFzZU1hcDsKIAot
ICAgIC8vIFRoaXMgbG9jayBwcm90ZWN0cyBtX2RhdGFiYXNlLCBtX3F1b3RhTWFwLCBtX3Byb3Bv
c2VkRGF0YWJhc2VzLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxl
dGVkLCBtX2JlaW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgorICAgIC8vIFRoaXMgbG9j
ayBwcm90ZWN0cyBtX2RhdGFiYXNlLCBtX3F1b3RhTWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2JlaW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxl
dGVkLgogICAgIE11dGV4IG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2Rh
dGFiYXNlOwogCkBAIC0xNDksOSArMTQ5LDYgQEAgcHJpdmF0ZToKIAogICAgIERhdGFiYXNlTWFu
YWdlckNsaWVudCogbV9jbGllbnQ7CiAKLSAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBEYXRhYmFzZURldGFpbHM+IFByb3Bvc2VkRGF0YWJhc2U7Ci0gICAgSGFz
aFNldDxQcm9wb3NlZERhdGFiYXNlKj4gbV9wcm9wb3NlZERhdGFiYXNlczsKLQogICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIGxvbmc+IE5hbWVDb3VudE1hcDsKICAgICB0eXBlZGVmIEhhc2hN
YXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgTmFtZUNvdW50TWFwKiwgU2VjdXJpdHlPcmlnaW5I
YXNoPiBDcmVhdGVTZXQ7CiAgICAgQ3JlYXRlU2V0IG1fYmVpbmdDcmVhdGVkOwpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNsaWVudC5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgU1FMVHJhbnNhY3Rpb25DbGllbnQ6OmRpZEV4Y2VlZFF1
b3QKIHsKICAgICBBU1NFUlQoZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXND
b250ZXh0VGhyZWFkKCkpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEgPSBE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5xdW90YUZvck9yaWdpbihkYXRhYmFzZS0+c2VjdXJp
dHlPcmlnaW4oKSk7Ci0gICAgZGF0YWJhc2UtPmRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZUV4
Y2VlZGVkUXVvdGEoZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSk7CisgICAgZGF0YWJhc2Ut
PmRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZUV4Y2VlZGVkUXVvdGEoZGF0YWJhc2UtPnN0cmlu
Z0lkZW50aWZpZXIoKSwgZGF0YWJhc2UtPmRldGFpbHMoKSk7CiAgICAgdW5zaWduZWQgbG9uZyBs
b25nIG5ld1F1b3RhID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkucXVvdGFGb3JPcmlnaW4o
ZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luKCkpOwogICAgIHJldHVybiAobmV3UXVvdGEgPiBjdXJy
ZW50UXVvdGEpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2
aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwcmludChGcmFtZSopIHsgfQogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0
dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYsIERhdGFiYXNlRGV0YWlscykgeyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCisjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCisjZW5kaWYKKwog
I2lmbmRlZiBfX09CSkNfXwogY2xhc3MgTlNNZW51OwogY2xhc3MgTlNSZXNwb25kZXI7CkBAIC0x
ODQsNyArMTg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7CiAKICNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUq
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKSA9IDA7CiAjZW5kaWYKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hl
biB0aGUgYXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdApJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMDcgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQgZm9yIHRoZSBQ
cm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERh
dGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorCiAyMDEzLTAxLTA3ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFBM
QVRGT1JNKFdJTikgI2lmZGVmcwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNp
b24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsMTMgKzU0NCwxMiBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lCiB9CiAKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKICAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIERhdGFiYXNl
TWFuYWdlciYgZGJNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCk7Ci0gICAgRGF0
YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBkYk1hbmFnZXIuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4o
ZGF0YWJhc2VOYW1lLCBvcmlnaW4pOwogICAgIHVpbnQ2NF90IGN1cnJlbnRRdW90YSA9IGRiTWFu
YWdlci5xdW90YUZvck9yaWdpbihvcmlnaW4pOwogICAgIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSA9IGRiTWFuYWdlci51c2FnZUZvck9yaWdpbihvcmlnaW4pOwogICAgIHVpbnQ2NF90IG5l
d1F1b3RhID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTM5MDI3KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDcgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7CiAgICAgCiAjaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBPVkVS
UklERTsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUo
aW50NjRfdCBzcGFjZU5lZWRlZCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBm
b3IgdGhlIFByb3Bvc2VkRGF0YWJhc2UgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJsYWNrQmVycnkpOgor
CiAyMDEzLTAxLTA3ICBHZW5ldmlldmUgTWFrICA8Z21ha0ByaW0uY29tPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBUb3VjaCBFdmVudHMgYXJlIGZhbGxpbmcgdGhyb3VnaCBmdWxsc2NyZWVuIHZp
ZGVvCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAx
MzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MCw3ICs0ODAsNyBAQCB2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnByaW50KEZyYW1lCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIENocm9tZUNsaWVu
dEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMpCiB7CiAjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAg
LTUwMiw3ICs1MDIsNiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0
CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG9yaWdpblVzYWdlID0gdHJhY2tlci51c2FnZUZvck9y
aWdpbihvcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEgPSB0cmFj
a2VyLnF1b3RhRm9yT3JpZ2luKG9yaWdpbik7CiAKLSAgICBEYXRhYmFzZURldGFpbHMgZGV0YWls
cyA9IG1hbmFnZXIuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4obmFtZSwgb3JpZ2luKTsKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSA9IGRldGFpbHMuZXhwZWN0ZWRVc2FnZSgp
OwogICAgIGNvbnN0IFN0cmluZyYgbmFtZVN0ciA9IGRldGFpbHMuZGlzcGxheU5hbWUoKTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEJsYWNrQmVycnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCShyZXZpc2lvbiAxMzkwMjcpCisr
KyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSos
IGNvbnN0IFN0cmluZyYsIERhdGFiYXNlRGV0YWlscyk7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEz
LTAxLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVk
IHRoZSBuZWVkIGZvciB0aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YSk6CisKIDIwMTMtMDEtMDcgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGEgZmxhZyB0byBjb250cm9sIGNhbnZhcyBhbnRp
YWxpYXNpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MSw3ICs2NjEs
NyBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OnByaW50KEZyYW1lKiBmcmFtCiAgICAgICAgIG1f
d2ViVmlldy0+Y2xpZW50KCktPnByaW50UGFnZShXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFt
ZSkpOwogfQogCi12b2lkIENocm9tZUNsaWVudEltcGw6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQordm9pZCBDaHJvbWVDbGll
bnRJbXBsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQogewogICAgIC8vIENocm9taXVtIHVzZXJz
IGNhbm5vdCBjdXJyZW50bHkgY2hhbmdlIHRoZSBkZWZhdWx0IHF1b3RhCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBmb3IgdGhl
IFByb3Bvc2VkRGF0YWJhc2UgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAg
ICAgKENocm9tZUNsaWVudEVmbCk6CisKIDIwMTMtMDEtMDcgIE1pa2UgV2VzdCAgPG1rd3N0QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBNYWtlIHRoZSBJRlJBTUVfU0VBTUxFU1MgZmxhZyBydW50
aW1lLWVuYWJsZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyMCwxMiArNDIwLDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpuZWVkVG91Y2hF
dmVudHMoYm8KICNlbmRpZgogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLXZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VE
ZXRhaWxzIGRldGFpbHMpCiB7CiAgICAgdWludDY0X3QgcXVvdGE7CiAgICAgU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOwogCi0gICAg
RGF0YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5kZXRh
aWxzRm9yTmFtZUFuZE9yaWdpbihkYXRhYmFzZU5hbWUsIG9yaWdpbik7CiAgICAgcXVvdGEgPSBl
d2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShtX3ZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraXQoZnJhbWUpLCBkYXRhYmFzZU5hbWUudXRm
OCgpLmRhdGEoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRldGFpbHMuY3VycmVudFVzYWdlKCksIGRldGFpbHMuZXhwZWN0ZWRVc2FnZSgpKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzExMyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKTsKIAogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSos
IGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpJbmRl
eDogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMDcgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQg
Zm9yIHRoZSBQcm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAg
ICAgICAgKENocm9tZUNsaWVudCk6CisKIDIwMTMtMDEtMDcgIE1pa2UgV2VzdCAgPG1rd3N0QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBNYWtlIHRoZSBJRlJBTUVfU0VBTUxFU1MgZmxhZyBydW50
aW1lLWVuYWJsZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgwOSw3ICs4MDksNyBAQCB2b2lkIENocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZy
YW1lKQogfQogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLXZvaWQgQ2hyb21lQ2xpZW50Ojpl
eGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSkKK3ZvaWQgQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQogewogICAg
IGd1aW50NjQgZGVmYXVsdFF1b3RhID0gd2Via2l0X2dldF9kZWZhdWx0X3dlYl9kYXRhYmFzZV9x
dW90YSgpOwogICAgIERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLnNldFF1b3RhKGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBkZWZhdWx0UXVvdGEpOwpJbmRleDogU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJl
dmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsNyArMTE2LDcgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKik7CiAjaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKLSAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YShGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYsIERhdGFiYXNl
RGV0YWlscyk7CiAjZW5kaWYKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3Rh
bFNwYWNlTmVlZGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyNykKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDEzLTAxLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSk6CisKIDIwMTMtMDEtMDcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbbWFjXSBXZWJLaXQxIGNsaWVudHMgY2Fu4oCZdCB0ZWxsIHdoZW4gYSBmcmFt
ZSBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIGhpZXJhcmNoeQpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9u
IDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7CiAjaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWls
cykgT1ZFUlJJREU7CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hl
U2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbios
IGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCShyZXZpc2lv
biAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTYyNCw3ICs2MjQsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lCiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIERhdGFiYXNlRGV0YWlscykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTA3
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHRoZSBu
ZWVkIGZvciB0aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoK
KyAgICAgICAgKENocm9tZUNsaWVudFF0KToKKwogMjAxMy0wMS0wNyAgTWlrZSBXZXN0ICA8bWt3
c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtxdF0gRml4IEVOQUJMRV9JRlJBTUVfU0VBTUxF
U1M9MCBidWlsZHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUzNSw3ICs1MzUsNyBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpwcmludChGcmFtZSogZnJhbWUp
CiB9CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotdm9pZCBDaHJvbWVDbGllbnRRdDo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUpCit2b2lkIENocm9tZUNsaWVudFF0OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQogewogICAg
IHF1aW50NjQgcXVvdGEgPSBRV2ViU2V0dGluZ3M6Om9mZmxpbmVTdG9yYWdlRGVmYXVsdFF1b3Rh
KCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmgJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSosIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpOwogI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwpJbmRleDogU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMDcgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQgZm9yIHRoZSBQ
cm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQpOgorCiAyMDEzLTAxLTA0ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBwcml2YXRlIGJyb3dzaW5nIHdvcmsgb24gV2luZG93cy4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgxLDcgKzU4
MSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUKIH0KIAogI2lm
IEVOQUJMRShTUUxfREFUQUJBU0UpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWlscykKIHsK
ICAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2ViU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpKSk7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwpJbmRleDogU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJ
KHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOwogCiAjaWYgRU5BQkxF
KFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBE
YXRhYmFzZURldGFpbHMpOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTA3ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0aGUgUHJvcG9z
ZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpleGNlZWRlZERhdGFiYXNlUXVvdGEp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAg
IChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIwMTItMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyODA4Mzc3PiBOZXR3
b3JrIHByb2Nlc3Mgc2hvdWxkIHJlc3BlY3QgY29va2llIGFjY2VwdCBwb2xpY3kKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50V2luQ0UuY3BwCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5
LDcgKzI5OSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnByaW50KEZyYW1lKikKIH0KIAog
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi12b2lkIENocm9tZUNsaWVudFdpbkNFOjpleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKQordm9pZCBDaHJvbWVDbGllbnRX
aW5DRTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJh
c2VEZXRhaWxzKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5o
CShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAKICNpZiBF
TkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKTsKICNlbmRpZgog
CiAgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSBmYWls
cyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gMTM5
MDI3KQorKysgU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBmb3IgdGhlIFByb3Bvc2VkRGF0YWJhc2UgbWVjaGFu
aXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRXeDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0Nocm9tZUNsaWVudFd4Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRXeCk6CisKIDIwMTIt
MTItMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW5hbWUgRnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2FkIHRvIGNvbnZlcnRNYWluUmVzb3VyY2VM
b2FkVG9Eb3dubG9hZApJbmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MjAsNyArNDIwLDcgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cHJpbnQoRnJhbWUqIGZyYW1lKQog
fQogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OmV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYpCit2b2lkIENocm9tZUNsaWVu
dFd4OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFz
ZURldGFpbHMpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHF1b3RhID0gNSAqIDEwMjQgKiAx
MDI0OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guaAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKik7CiAKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJh
bWUqLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKTsKICNlbmRpZgogCiAg
ICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCk7Cg==
</data>
<flag name="commit-queue"
          id="199325"
          type_id="3"
          status="-"
          setter="peter+ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181630</attachid>
            <date>2013-01-07 20:48:14 -0800</date>
            <delta_ts>2013-01-08 10:24:55 -0800</delta_ts>
            <desc>Fix.  Resolves chromium and windows build breakage.</desc>
            <filename>bug-106292.patch</filename>
            <type>text/plain</type>
            <size>32835</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAxLTA3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0
aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OmRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgIChBYnN0cmFj
dERhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVk
ZWRRdW90YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQu
aDoKKyAgICAgICAgKERhdGFiYXNlQ29udGV4dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFj
a2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRy
YWNrZXI6OmZ1bGxQYXRoRm9yRGF0YWJhc2VOb0xvY2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VUcmFja2VyOjpkZXRhaWxzRm9yTmFtZUFuZE9yaWdpbik6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuaDoKKyAgICAgICAgKERhdGFiYXNlVHJhY2tl
cik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkNsaWVudDo6ZGlkRXhjZWVkUXVv
dGEpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVtcHR5Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCiAyMDEzLTAxLTA3
ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWJLaXQg
c2hvdWxkIGNvbXBpbGUgb24gTWFjIHdpdGggLS1zaGFkb3ctZG9tCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3REYXRhYmFzZS5j
cHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMiw2ICs0MDIsMTEg
QEAgU3RyaW5nIEFic3RyYWN0RGF0YWJhc2U6OmZpbGVOYW1lKCkgY29ucwogICAgIHJldHVybiBt
X2ZpbGVuYW1lLmlzb2xhdGVkQ29weSgpOwogfQogCitEYXRhYmFzZURldGFpbHMgQWJzdHJhY3RE
YXRhYmFzZTo6ZGV0YWlscygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscyhz
dHJpbmdJZGVudGlmaWVyKCksIGRpc3BsYXlOYW1lKCksIGVzdGltYXRlZFNpemUoKSwgMCk7Cit9
CisKIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShTdHJpbmcm
IHZlcnNpb24sIGJvb2wgc2hvdWxkQ2FjaGVWZXJzaW9uKQogewogICAgIFN0cmluZyBxdWVyeShT
dHJpbmcoIlNFTEVDVCB2YWx1ZSBGUk9NICIpICsgaW5mb1RhYmxlTmFtZSArICAiIFdIRVJFIGtl
eSA9ICciICsgdmVyc2lvbktleSArICInOyIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlLmgJKHJldmlzaW9uIDEz
OTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3REYXRh
YmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKIAogI2luY2x1ZGUgIkRhdGFiYXNlQmFzaWNUeXBlcy5oIgorI2luY2x1ZGUgIkRh
dGFiYXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAg
LTY0LDYgKzY1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGRpc3BsYXlOYW1lKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlTmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgRGF0YWJh
c2VEZXRhaWxzIGRldGFpbHMoKSBjb25zdDsKICAgICBTUUxpdGVEYXRhYmFzZSYgc3FsaXRlRGF0
YWJhc2UoKSB7IHJldHVybiBtX3NxbGl0ZURhdGFiYXNlOyB9CiAKICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgbWF4aW11bVNpemUoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEz
OTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDEyICsxMjIsMTIgQEAgYm9vbCBEYXRhYmFz
ZUNvbnRleHQ6OmFsbG93RGF0YWJhc2VBY2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IERhdGFiYXNlQ29udGV4dDo6ZGF0YWJhc2VFeGNlZWRlZFF1b3RhKGNvbnN0IFN0cmluZyYgbmFt
ZSkKK3ZvaWQgRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEoY29uc3QgU3Ry
aW5nJiBuYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKICAgICBpZiAobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpIHsKICAgICAgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwog
ICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCkpCi0gICAgICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC0+
ZnJhbWUoKSwgbmFtZSk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC0+ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aXNXb3JrZXJDb250ZXh0KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCShyZXZpc2lvbiAxMzkwMjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQogCisjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFi
bGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsNyArNTUsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgc3RvcERhdGFiYXNlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRGF0
YWJhc2VUYXNrU3luY2hyb25pemVyKik7CiAKICAgICBib29sIGFsbG93RGF0YWJhc2VBY2Nlc3Mo
KSBjb25zdDsKLSAgICB2b2lkIGRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5h
bWUpOworICAgIHZvaWQgZGF0YWJhc2VFeGNlZWRlZFF1b3RhKGNvbnN0IFN0cmluZyYgbmFtZSwg
RGF0YWJhc2VEZXRhaWxzKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBEYXRhYmFzZUNvbnRl
eHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAkocmV2aXNpb24g
MTM5MDI3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsOCArMTM3LDYgQEAgdm9pZCBEYXRhYmFz
ZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhcwogYm9vbCBEYXRhYmFzZVRyYWNrZXI6OmNhbkVz
dGFibGlzaERhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3Rp
bWF0ZWRTaXplKQogewogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBjb250ZXh0LT5zZWN1
cml0eU9yaWdpbigpOwotICAgIFByb3Bvc2VkRGF0YWJhc2UgZGV0YWlsczsKLQogICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyByZXF1aXJlbWVudDsKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxv
Y2tEYXRhYmFzZShtX2RhdGFiYXNlR3VhcmQpOwpAQCAtMTY1LDIwICsxNjMsMTQgQEAgYm9vbCBE
YXRhYmFzZVRyYWNrZXI6OmNhbkVzdGFibGlzaERhdGFiYQogICAgICAgICB9CiAgICAgICAgIGlm
IChyZXF1aXJlbWVudCA8PSBxdW90YUZvck9yaWdpbk5vTG9jayhvcmlnaW4pKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgLy8gR2l2ZSB0aGUgY2hyb21lIGNsaWVudCBhIGNo
YW5jZSB0byBpbmNyZWFzZSB0aGUgcXVvdGEuCi0gICAgICAgIC8vIFRlbXBvcmFyaWx5IG1ha2Ug
dGhlIGRldGFpbHMgb2YgdGhlIHByb3Bvc2VkIGRhdGFiYXNlIGF2YWlsYWJsZSwgc28gdGhlIGNs
aWVudCBjYW4gZ2V0IGF0IHRoZW0uCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5
IGp1c3QgcGFzcyB0aGUgZGV0YWlscyBpbnRvIHRoaXMgY2FsbCwgcmF0aGVyIHRoYW4gdXNpbmcg
bV9wcm9wb3NlZERhdGFiYXNlcy4KLSAgICAgICAgZGV0YWlscyA9IFByb3Bvc2VkRGF0YWJhc2Uo
b3JpZ2luLT5pc29sYXRlZENvcHkoKSwgRGF0YWJhc2VEZXRhaWxzKG5hbWUuaXNvbGF0ZWRDb3B5
KCksIGRpc3BsYXlOYW1lLmlzb2xhdGVkQ29weSgpLCBlc3RpbWF0ZWRTaXplLCAwKSk7Ci0gICAg
ICAgIG1fcHJvcG9zZWREYXRhYmFzZXMuYWRkKCZkZXRhaWxzKTsKICAgICB9CisKKyAgICAvLyBH
aXZlIHRoZSBjaHJvbWUgY2xpZW50IGEgY2hhbmNlIHRvIGluY3JlYXNlIHRoZSBxdW90YS4KICAg
ICAvLyBEcm9wIGFsbCBsb2NrcyBiZWZvcmUgY2FsbGluZyBvdXQ7IHdlIGRvbid0IGtub3cgd2hh
dCB0aGV5J2xsIGRvLgotICAgIERhdGFiYXNlQ29udGV4dDo6ZnJvbShjb250ZXh0KS0+ZGF0YWJh
c2VFeGNlZWRlZFF1b3RhKG5hbWUpOworICAgIERhdGFiYXNlQ29udGV4dDo6ZnJvbShjb250ZXh0
KS0+ZGF0YWJhc2VFeGNlZWRlZFF1b3RhKG5hbWUsIERhdGFiYXNlRGV0YWlscyhuYW1lLmlzb2xh
dGVkQ29weSgpLCBkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSwgZXN0aW1hdGVkU2l6ZSwgMCkp
OwogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja0RhdGFiYXNlKG1fZGF0YWJhc2VHdWFyZCk7CiAKLSAg
ICBtX3Byb3Bvc2VkRGF0YWJhc2VzLnJlbW92ZSgmZGV0YWlscyk7Ci0KICAgICAvLyBJZiB0aGUg
ZGF0YWJhc2Ugd2lsbCBmaXQgbm93LCBhbGxvdyBpdHMgY3JlYXRpb24uCiAgICAgaWYgKHJlcXVp
cmVtZW50IDw9IHF1b3RhRm9yT3JpZ2luTm9Mb2NrKG9yaWdpbikpCiAgICAgICAgIHJldHVybiB0
cnVlOwpAQCAtMjc0LDEwICsyNjYsNiBAQCBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjpmdWxsUGF0
aEZvckRhdGFiCiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlR3VhcmQudHJ5TG9jaygpKTsKICAgICBB
U1NFUlQoIW9yaWdpblF1b3RhTWFuYWdlcigpLnRyeUxvY2soKSk7CiAKLSAgICBmb3IgKEhhc2hT
ZXQ8UHJvcG9zZWREYXRhYmFzZSo+OjppdGVyYXRvciBpdGVyID0gbV9wcm9wb3NlZERhdGFiYXNl
cy5iZWdpbigpOyBpdGVyICE9IG1fcHJvcG9zZWREYXRhYmFzZXMuZW5kKCk7ICsraXRlcikKLSAg
ICAgICAgaWYgKCgqaXRlciktPnNlY29uZC5uYW1lKCkgPT0gbmFtZSAmJiAoKml0ZXIpLT5maXJz
dC0+ZXF1YWwob3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLQogICAgIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyID0gb3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsKICAg
ICBTdHJpbmcgb3JpZ2luUGF0aCA9IHRoaXMtPm9yaWdpblBhdGgob3JpZ2luKTsKIApAQCAtNDE2
LDEyICs0MDQsNiBAQCBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VUcmFja2VyOjpkZXRhaWxzCiAg
ICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsK
IAotICAgICAgICBmb3IgKEhhc2hTZXQ8UHJvcG9zZWREYXRhYmFzZSo+OjppdGVyYXRvciBpdGVy
ID0gbV9wcm9wb3NlZERhdGFiYXNlcy5iZWdpbigpOyBpdGVyICE9IG1fcHJvcG9zZWREYXRhYmFz
ZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgICAgIGlmICgoKml0ZXIpLT5zZWNvbmQubmFtZSgp
ID09IG5hbWUgJiYgKCppdGVyKS0+Zmlyc3QtPmVxdWFsKG9yaWdpbikpIHsKLSAgICAgICAgICAg
ICAgICBBU1NFUlQoKCppdGVyKS0+c2Vjb25kLnRocmVhZCgpID09IGN1cnJlbnRUaHJlYWQoKSk7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuICgqaXRlciktPnNlY29uZDsKLSAgICAgICAgICAgIH0K
LQogICAgICAgICBvcGVuVHJhY2tlckRhdGFiYXNlKGZhbHNlKTsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmlzT3BlbigpKQogICAgICAgICAgICAgcmV0dXJuIERhdGFiYXNlRGV0YWlscygpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVHJhY2tlci5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyAr
MTM4LDcgQEAgcHJpdmF0ZToKICAgICBNdXRleCBtX29wZW5EYXRhYmFzZU1hcEd1YXJkOwogICAg
IG11dGFibGUgT3duUHRyPERhdGFiYXNlT3JpZ2luTWFwPiBtX29wZW5EYXRhYmFzZU1hcDsKIAot
ICAgIC8vIFRoaXMgbG9jayBwcm90ZWN0cyBtX2RhdGFiYXNlLCBtX3F1b3RhTWFwLCBtX3Byb3Bv
c2VkRGF0YWJhc2VzLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgbV9vcmlnaW5zQmVpbmdEZWxl
dGVkLCBtX2JlaW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxldGVkLgorICAgIC8vIFRoaXMgbG9j
ayBwcm90ZWN0cyBtX2RhdGFiYXNlLCBtX3F1b3RhTWFwLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgbV9vcmlnaW5zQmVpbmdEZWxldGVkLCBtX2JlaW5nQ3JlYXRlZCwgYW5kIG1fYmVpbmdEZWxl
dGVkLgogICAgIE11dGV4IG1fZGF0YWJhc2VHdWFyZDsKICAgICBTUUxpdGVEYXRhYmFzZSBtX2Rh
dGFiYXNlOwogCkBAIC0xNDksOSArMTQ5LDYgQEAgcHJpdmF0ZToKIAogICAgIERhdGFiYXNlTWFu
YWdlckNsaWVudCogbV9jbGllbnQ7CiAKLSAgICB0eXBlZGVmIHN0ZDo6cGFpcjxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBEYXRhYmFzZURldGFpbHM+IFByb3Bvc2VkRGF0YWJhc2U7Ci0gICAgSGFz
aFNldDxQcm9wb3NlZERhdGFiYXNlKj4gbV9wcm9wb3NlZERhdGFiYXNlczsKLQogICAgIHR5cGVk
ZWYgSGFzaE1hcDxTdHJpbmcsIGxvbmc+IE5hbWVDb3VudE1hcDsKICAgICB0eXBlZGVmIEhhc2hN
YXA8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgTmFtZUNvdW50TWFwKiwgU2VjdXJpdHlPcmlnaW5I
YXNoPiBDcmVhdGVTZXQ7CiAgICAgQ3JlYXRlU2V0IG1fYmVpbmdDcmVhdGVkOwpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkNsaWVudC5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgU1FMVHJhbnNhY3Rpb25DbGllbnQ6OmRpZEV4Y2VlZFF1
b3QKIHsKICAgICBBU1NFUlQoZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXND
b250ZXh0VGhyZWFkKCkpOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEgPSBE
YXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5xdW90YUZvck9yaWdpbihkYXRhYmFzZS0+c2VjdXJp
dHlPcmlnaW4oKSk7Ci0gICAgZGF0YWJhc2UtPmRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZUV4
Y2VlZGVkUXVvdGEoZGF0YWJhc2UtPnN0cmluZ0lkZW50aWZpZXIoKSk7CisgICAgZGF0YWJhc2Ut
PmRhdGFiYXNlQ29udGV4dCgpLT5kYXRhYmFzZUV4Y2VlZGVkUXVvdGEoZGF0YWJhc2UtPnN0cmlu
Z0lkZW50aWZpZXIoKSwgZGF0YWJhc2UtPmRldGFpbHMoKSk7CiAgICAgdW5zaWduZWQgbG9uZyBs
b25nIG5ld1F1b3RhID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkucXVvdGFGb3JPcmlnaW4o
ZGF0YWJhc2UtPnNlY3VyaXR5T3JpZ2luKCkpOwogICAgIHJldHVybiAobmV3UXVvdGEgPiBjdXJy
ZW50UXVvdGEpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2
aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBwcmludChGcmFtZSopIHsgfQogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0
dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYsIERhdGFiYXNlRGV0YWlscykgeyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUg
PHd0Zi9VbnVzZWRQYXJhbS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIEVOQUJM
RShTUUxfREFUQUJBU0UpCisjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCisjZW5kaWYKKwog
I2lmbmRlZiBfX09CSkNfXwogY2xhc3MgTlNNZW51OwogY2xhc3MgTlNSZXNwb25kZXI7CkBAIC0x
ODQsNyArMTg4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSdWJiZXJCYW5k
SW5EaXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKSBjb25zdCA9IDA7CiAKICNpZiBFTkFCTEUoU1FM
X0RBVEFCQVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUq
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKSA9IDA7CiAjZW5kaWYKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hl
biB0aGUgYXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdApJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gMTM5MDI4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMDcgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQgZm9yIHRoZSBQ
cm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERh
dGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorCiAyMDEzLTAxLTA3ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFBM
QVRGT1JNKFdJTikgI2lmZGVmcwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNp
b24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDQsMTMgKzU0NCwxMiBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lCiB9CiAKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKICAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKIAogICAgIERhdGFiYXNl
TWFuYWdlciYgZGJNYW5hZ2VyID0gRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCk7Ci0gICAgRGF0
YWJhc2VEZXRhaWxzIGRldGFpbHMgPSBkYk1hbmFnZXIuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4o
ZGF0YWJhc2VOYW1lLCBvcmlnaW4pOwogICAgIHVpbnQ2NF90IGN1cnJlbnRRdW90YSA9IGRiTWFu
YWdlci5xdW90YUZvck9yaWdpbihvcmlnaW4pOwogICAgIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSA9IGRiTWFuYWdlci51c2FnZUZvck9yaWdpbihvcmlnaW4pOwogICAgIHVpbnQ2NF90IG5l
d1F1b3RhID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTM5MDI3KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTMzLDcgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgT1ZFUlJJREU7CiAgICAgCiAjaWYgRU5B
QkxFKFNRTF9EQVRBQkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBPVkVS
UklERTsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUo
aW50NjRfdCBzcGFjZU5lZWRlZCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyOCkKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBm
b3IgdGhlIFByb3Bvc2VkRGF0YWJhc2UgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEJsYWNrQmVycnkuaDoKKyAgICAgICAgKENocm9tZUNsaWVudEJsYWNrQmVycnkpOgor
CiAyMDEzLTAxLTA3ICBHZW5ldmlldmUgTWFrICA8Z21ha0ByaW0uY29tPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBUb3VjaCBFdmVudHMgYXJlIGZhbGxpbmcgdGhyb3VnaCBmdWxsc2NyZWVuIHZp
ZGVvCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAx
MzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50QmxhY2tCZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MCw3ICs0ODAsNyBAQCB2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnByaW50KEZyYW1lCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG5hbWUpCit2b2lkIENocm9tZUNsaWVu
dEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMpCiB7CiAjaWYgRU5BQkxFKFNRTF9E
QVRBQkFTRSkKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKQEAg
LTUwMiw3ICs1MDIsNiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0
CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIG9yaWdpblVzYWdlID0gdHJhY2tlci51c2FnZUZvck9y
aWdpbihvcmlnaW4pOwogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50UXVvdGEgPSB0cmFj
a2VyLnF1b3RhRm9yT3JpZ2luKG9yaWdpbik7CiAKLSAgICBEYXRhYmFzZURldGFpbHMgZGV0YWls
cyA9IG1hbmFnZXIuZGV0YWlsc0Zvck5hbWVBbmRPcmlnaW4obmFtZSwgb3JpZ2luKTsKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgZXN0aW1hdGVkU2l6ZSA9IGRldGFpbHMuZXhwZWN0ZWRVc2FnZSgp
OwogICAgIGNvbnN0IFN0cmluZyYgbmFtZVN0ciA9IGRldGFpbHMuZGlzcGxheU5hbWUoKTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEJsYWNrQmVycnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCShyZXZpc2lvbiAxMzkwMjcpCisr
KyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MSw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUq
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSos
IGNvbnN0IFN0cmluZyYsIERhdGFiYXNlRGV0YWlscyk7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+KTsKICAgICB2aXJ0dWFsIHZv
aWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVy
Kik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzkwMjgpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEz
LTAxLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVk
IHRoZSBuZWVkIGZvciB0aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudEltcGwpOgorCiAyMDEzLTAxLTA3ICBYaWFuemh1IFdhbmcgIDx3YW5neGlh
bnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFeHBvc2UgY29tcG9zaXRl
ZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJsZWQgc2V0dGluZyBpbiBXZWJLaXQgQVBJCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAkocmV2
aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2MSw3ICs2NjEsNyBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OnByaW50KEZyYW1lKiBmcmFtCiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCkt
PnByaW50UGFnZShXZWJGcmFtZUltcGw6OmZyb21GcmFtZShmcmFtZSkpOwogfQogCi12b2lkIENo
cm9tZUNsaWVudEltcGw6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lKQordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGNlZWRlZERh
dGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKQogewogICAgIC8vIENocm9taXVtIHVzZXJzIGNhbm5vdCBjdXJyZW50bHkg
Y2hhbmdlIHRoZSBkZWZhdWx0IHF1b3RhCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEzNiw3ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAgICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSgKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKKyAgICAgICAgV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURl
dGFpbHMpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qg
c3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKTsKICNpZiBFTkFCTEUoRFJBR0dBQkxFX1JFR0lPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEzOTAyOCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTA3ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0aGUgUHJvcG9zZWRE
YXRhYmFzZSBtZWNoYW5pc20uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDYyOTIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorICAgICAgICAoQ2hyb21l
Q2xpZW50RWZsKToKKwogMjAxMy0wMS0wNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1ha2UgdGhlIElGUkFNRV9TRUFNTEVTUyBmbGFnIHJ1bnRpbWUtZW5hYmxl
ZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIw
LDEyICs0MjAsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6Om5lZWRUb3VjaEV2ZW50cyhibwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotdm9pZCBDaHJvbWVDbGllbnRFZmw6
OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VOYW1lKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0
YWlscykKIHsKICAgICB1aW50NjRfdCBxdW90YTsKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
ID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAKLSAgICBEYXRhYmFzZURl
dGFpbHMgZGV0YWlscyA9IERhdGFiYXNlTWFuYWdlcjo6bWFuYWdlcigpLmRldGFpbHNGb3JOYW1l
QW5kT3JpZ2luKGRhdGFiYXNlTmFtZSwgb3JpZ2luKTsKICAgICBxdW90YSA9IGV3a192aWV3X2V4
Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKG1fdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtpdChmcmFtZSksIGRhdGFiYXNlTmFtZS51dGY4KCkuZGF0YSgp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscy5j
dXJyZW50VXNhZ2UoKSwgZGV0YWlscy5leHBlY3RlZFVzYWdlKCkpOwpJbmRleDogU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgJKHJldmlz
aW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogCiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkK
LSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3Ry
aW5nJik7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNv
bnN0IFN0cmluZyYsIERhdGFiYXNlRGV0YWlscyk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzkwMjgpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBmb3IgdGhlIFBy
b3Bvc2VkRGF0YWJhc2UgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA2MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorICAgICAgICAoQ2hy
b21lQ2xpZW50KToKKwogMjAxMy0wMS0wNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1ha2UgdGhlIElGUkFNRV9TRUFNTEVTUyBmbGFnIHJ1bnRpbWUtZW5hYmxl
ZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0
ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5
LDcgKzgwOSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiB9CiAK
ICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotdm9pZCBDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQordm9p
ZCBDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCiB7CiAgICAgZ3VpbnQ2NCBk
ZWZhdWx0UXVvdGEgPSB3ZWJraXRfZ2V0X2RlZmF1bHRfd2ViX2RhdGFiYXNlX3F1b3RhKCk7CiAg
ICAgRGF0YWJhc2VNYW5hZ2VyOjptYW5hZ2VyKCkuc2V0UXVvdGEoZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIGRlZmF1bHRRdW90YSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkocmV2aXNpb24gMTM5
MDI3KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNiw3ICsxMTYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKTsKICNpZiBFTkFCTEUoU1FMX0RB
VEFCQVNFKQotICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
KiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0
YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKTsK
ICNlbmRpZgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90IHNwYWNlTmVlZGVkKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTM5MDI4KQorKysgU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMt
MDEtMDcgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQg
dGhlIG5lZWQgZm9yIHRoZSBQcm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToK
KwogMjAxMy0wMS0wNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWNdIFdlYktpdDEgY2xpZW50cyBjYW7igJl0IHRlbGwgd2hlbiBhIGZyYW1lIGhhcyBiZWVu
IHJlbW92ZWQgZnJvbSB0aGUgaGllcmFyY2h5CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTM5MDI3KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RG
OjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBPVkVSUklE
RTsKICNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0
X3Qgc3BhY2VOZWVkZWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0JKHJldmlzaW9uIDEzOTAyNykK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjI0LDcgKzYyNCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpw
cmludChGcmFtZSogZnJhbWUKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJh
c2VEZXRhaWxzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIApJbmRleDog
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzOTAyOCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDEtMDcgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQgZm9yIHRo
ZSBQcm9wb3NlZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAo
Q2hyb21lQ2xpZW50UXQpOgorCiAyMDEzLTAxLTA3ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW3F0XSBGaXggRU5BQkxFX0lGUkFNRV9TRUFNTEVTUz0wIGJ1aWxk
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuY3BwCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM1LDcgKzUz
NSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnByaW50KEZyYW1lKiBmcmFtZSkKIH0KIAogI2lm
IEVOQUJMRShTUUxfREFUQUJBU0UpCi12b2lkIENocm9tZUNsaWVudFF0OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkKK3ZvaWQg
Q2hyb21lQ2xpZW50UXQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCiB7CiAgICAgcXVpbnQ2NCBx
dW90YSA9IFFXZWJTZXR0aW5nczo6b2ZmbGluZVN0b3JhZ2VEZWZhdWx0UXVvdGEoKTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aAkocmV2aXNpb24gMTM5MDI3KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKik7CiAjaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29u
c3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSosIGNvbnN0IFN0cmluZyYsIERhdGFiYXNlRGV0YWlscyk7CiAjZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9y
aWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMzkwMjgpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMS0wNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB0aGUgbmVlZCBmb3IgdGhlIFByb3Bvc2VkRGF0
YWJhc2UgbWVjaGFuaXNtLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA2MjkyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6
CisKIDIwMTMtMDEtMDQgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNYWtlIHByaXZhdGUgYnJvd3Npbmcgd29yayBvbiBXaW5kb3dzLgpJbmRleDogU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODEsNyArNTgxLDcgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZQogfQogCiAjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwgRGF0YWJhc2VEZXRhaWxzKQogewogICAgIENPTVB0
cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlSW5zdGFuY2UoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKTsKICAg
ICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24g
MTM5MDI3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OkRh
dGFiYXNlRGV0YWlscyk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwpJbmRleDogU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEzOTAyOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEtMDcgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdGhlIG5lZWQgZm9yIHRoZSBQcm9wb3Nl
ZERhdGFiYXNlIG1lY2hhbmlzbS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwNjI5Mi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKyAgICAgICAg
KENocm9tZUNsaWVudFdpbkNFKToKKwogMjAxMi0xMi0yMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI4MDgzNzc+IE5ldHdv
cmsgcHJvY2VzcyBzaG91bGQgcmVzcGVjdCBjb29raWUgYWNjZXB0IHBvbGljeQpJbmRleDogU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRXaW5DRS5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTks
NyArMjk5LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cHJpbnQoRnJhbWUqKQogfQogCiAj
aWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmV4Y2VlZGVk
RGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYpCit2b2lkIENocm9tZUNsaWVudFdp
bkNFOjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFz
ZURldGFpbHMpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgJ
KHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50V2luQ0UuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKIAogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOworICAg
IHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpOwogI2VuZGlmCiAK
ICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxz
IHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzkw
MjgpCisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDEzLTAxLTA3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmVkIHRoZSBuZWVkIGZvciB0aGUgUHJvcG9zZWREYXRhYmFzZSBtZWNoYW5p
c20uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYy
OTIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAqIFdlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guaDoKKyAgICAgICAgKENocm9tZUNsaWVudFd4KToKKwogMjAxMi0x
Mi0xNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bmFtZSBGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQgdG8gY29udmVydE1haW5SZXNvdXJjZUxv
YWRUb0Rvd25sb2FkCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHAJKHJldmlzaW9uIDEzOTAyNykKKysrIFNvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
MCw3ICs0MjAsNyBAQCB2b2lkIENocm9tZUNsaWVudFd4OjpwcmludChGcmFtZSogZnJhbWUpCiB9
CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotdm9pZCBDaHJvbWVDbGllbnRXeDo6ZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgQ2hyb21lQ2xpZW50
V3g6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYsIERhdGFiYXNl
RGV0YWlscykKIHsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEgPSA1ICogMTAyNCAqIDEw
MjQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oCShyZXZpc2lvbiAxMzkwMjcpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKTsKIAogI2lmIEVOQUJMRShT
UUxfREFUQUJBU0UpCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSosIGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpOwogI2VuZGlmCiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVk
KTsK
</data>
<flag name="review"
          id="199338"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>