<?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>192647</bug_id>
          
          <creation_ts>2018-12-12 16:33:19 -0800</creation_ts>
          <short_desc>The JSC shell should listen for memory pressure events and respond to them</short_desc>
          <delta_ts>2018-12-14 13:04:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=192649</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jlewis3</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1487405</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 16:33:19 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487416</commentid>
    <comment_count>1</comment_count>
      <attachid>357197</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 16:59:10 -0800</bug_when>
    <thetext>Created attachment 357197
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487417</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-12-12 17:01:04 -0800</bug_when>
    <thetext>Attachment 357197 did not pass style-queue:


ERROR: Source/WTF/wtf/MemoryPressureHandler.h:98:  Extra space before )  [whitespace/parens] [2]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487419</commentid>
    <comment_count>3</comment_count>
      <attachid>357197</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 17:02:06 -0800</bug_when>
    <thetext>Comment on attachment 357197
patch

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

&gt; Source/WTF/wtf/MemoryPressureHandler.h:98
&gt; +    WTF_EXPORT_PRIVATE void setDispatchQueue(dispatch_queue_t );

will fix style here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487422</commentid>
    <comment_count>4</comment_count>
      <attachid>357197</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2018-12-12 17:11:24 -0800</bug_when>
    <thetext>Comment on attachment 357197
patch

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

r=me. Can we do this for API users too?

&gt; Source/WTF/wtf/MemoryPressureHandler.cpp:310
&gt; +    dispatch_retain(queue);
&gt; +    if (m_dispatchQueue)
&gt; +        dispatch_release(m_dispatchQueue);
&gt; +    m_dispatchQueue = queue;

If there&apos;s an easy way to assert this isn&apos;t called after installation I think we should do so. Otherwise maybe put a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487427</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 17:16:37 -0800</bug_when>
    <thetext>(In reply to Keith Miller from comment #4)
&gt; Comment on attachment 357197 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=357197&amp;action=review
&gt; 
&gt; r=me. Can we do this for API users too?
Yeah we should. I&apos;ll open a followup to do so.

&gt; 
&gt; &gt; Source/WTF/wtf/MemoryPressureHandler.cpp:310
&gt; &gt; +    dispatch_retain(queue);
&gt; &gt; +    if (m_dispatchQueue)
&gt; &gt; +        dispatch_release(m_dispatchQueue);
&gt; &gt; +    m_dispatchQueue = queue;
&gt; 
&gt; If there&apos;s an easy way to assert this isn&apos;t called after installation I
&gt; think we should do so. Otherwise maybe put a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487800</commentid>
    <comment_count>6</comment_count>
      <attachid>357281</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-13 18:31:28 -0800</bug_when>
    <thetext>Created attachment 357281
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487826</commentid>
    <comment_count>7</comment_count>
      <attachid>357281</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-13 20:05:49 -0800</bug_when>
    <thetext>Comment on attachment 357281
patch for landing

Clearing flags on attachment: 357281

Committed r239195: &lt;https://trac.webkit.org/changeset/239195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487827</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-13 20:05:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487828</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-13 20:06:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/46719817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487927</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-12-14 09:01:23 -0800</bug_when>
    <thetext>The revision from https://trac.webkit.org/changeset/239195/webkit

May have caused Sierra WK1 Debug testing to become very flakey. This queue appears to have begun flaking 10-40 tests a run with some tests being constant timeouts which started around this patch

https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK1%20(Tests)/builds/10714

Most of the effected tests seem to be timeouts.

A test that is constantly timing out: https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=fast%2Ftext%2Femoji-num-glyphs.html

Run History:
https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK1%20(Tests)?numbuilds=50</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487932</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-14 09:26:09 -0800</bug_when>
    <thetext>(In reply to Truitt Savell from comment #10)
&gt; The revision from https://trac.webkit.org/changeset/239195/webkit
&gt; 
&gt; May have caused Sierra WK1 Debug testing to become very flakey. This queue
&gt; appears to have begun flaking 10-40 tests a run with some tests being
&gt; constant timeouts which started around this patch
&gt; 
&gt; https://build.webkit.org/builders/Apple%20Sierra%20Debug%20WK1%20(Tests)/
&gt; builds/10714
&gt; 
&gt; Most of the effected tests seem to be timeouts.
&gt; 
&gt; A test that is constantly timing out:
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=fast%2Ftext%2Femoji-num-glyphs.html
&gt; 
&gt; Run History:
&gt; https://build.webkit.org/builders/
&gt; Apple%20Sierra%20Debug%20WK1%20(Tests)?numbuilds=50

Not really sure how that could be. This should only have an effect on the JSC shell. Are there other changes in the range?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488014</commentid>
    <comment_count>12</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-12-14 13:04:30 -0800</bug_when>
    <thetext>It looks like it was a bot related issue effecting both the bots on that queue. Sorry for the noise.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357197</attachid>
            <date>2018-12-12 16:59:10 -0800</date>
            <delta_ts>2018-12-13 18:31:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>13021</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM5MTMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE4LTEyLTEyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKU0Mgc2hlbGwgc2hvdWxkIGxpc3RlbiBmb3IgbWVtb3J5IHByZXNzdXJlIGV2ZW50cyBh
bmQgcmVzcG9uZCB0byB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI2NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSB3YW50IHRoZSBKU0Mgc2hlbGwgdG8gYmVoYXZlIG1vcmUgbGlrZSB0aGUg
V2ViQ29udGVudCBwcm9jZXNzIHdoZW4KKyAgICAgICAgaXQgY29tZXMgdG8gcnVubmluZyBwZXJm
b3JtYW5jZSB0ZXN0cy4gT25lIHdheSB0byBtYWtlIHRoZSBzaGVsbAorICAgICAgICBtb3JlIGxp
a2UgdGhpcyBpcyB0byBoYXZlIGl0IHJlc3BvbmQgdG8gbWVtb3J5IHByZXNzdXJlIGV2ZW50cyBp
bgorICAgICAgICBhIHNpbWlsYXIgd2F5IGFzIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuIFRoaXMg
bWFrZXMgaXQgZWFzaWVyIHRvIHJ1bgorICAgICAgICBiZW5jaG1hcmtzIGxpa2UgSmV0U3RyZWFt
MiBvbiB0aGUgQ0xJIG9uIGlPUy4KKworICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChqc2Nt
YWluKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmRyYWlu
TWljcm90YXNrcyk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6
c2V0T25FYWNoTWljcm90YXNrVGljayk6CisKIDIwMTgtMTItMTEgIFl1c3VrZSBTdXp1a2kgIDx5
dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KIAogICAgICAgICBbQmlnSW50XSBTaW1wbGlmeSBi
b29sZWFuIGNvbnRleHQgZXZhbHVhdGlvbiBieSBsZXZlcmFnaW5nIEpTU3RyaW5nOjpvZmZzZXRP
Zkxlbmd0aCgpID09IEpTQmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcAkocmV2aXNpb24gMjM5MTMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDcgQEAKICNpbmNsdWRlIDx0eXBlX3RyYWl0
cz4KICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KQEAgLTI4NzEsMTIgKzI4NzIsNTYgQEAg
aW50IGpzY21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2VuZGlmCiAgICAgR2lnYWNhZ2U6
OmRpc2FibGVEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZUlmU2hvdWxkQmVFbmFibGVkKCk7CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvJiBtZW1vcnlQcmVzc3VyZUhhbmRsZXIgPSBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOworICAgIHsKKyAgICAgICAgZGlzcGF0
Y2hfcXVldWVfdCBxdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgianNjIHNoZWxsIG1lbW9y
eSBwcmVzc3VyZSBoYW5kbGVyIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMKTsKKyAgICAgICAgbWVt
b3J5UHJlc3N1cmVIYW5kbGVyLnNldERpc3BhdGNoUXVldWUocXVldWUpOworICAgICAgICBkaXNw
YXRjaF9yZWxlYXNlKHF1ZXVlKTsKKyAgICB9CisgICAgQ3JpdGljYWwgbWVtb3J5UHJlc3N1cmVD
cml0aWNhbFN0YXRlIHsgQ3JpdGljYWw6Ok5vIH07CisgICAgU3luY2hyb25vdXMgbWVtb3J5UHJl
c3N1cmVTeW5jaHJvbm91c1N0YXRlIHsgU3luY2hyb25vdXM6Ok5vIH07CisgICAgbWVtb3J5UHJl
c3N1cmVIYW5kbGVyLnNldExvd01lbW9yeUhhbmRsZXIoWyZdIChDcml0aWNhbCBjcml0aWNhbCwg
U3luY2hyb25vdXMgc3luY2hyb25vdXMpIHsKKyAgICAgICAgLy8gV2Ugc2V0IHRoZXNlIHJhY2ls
eSB3aXRoIHJlc3BlY3QgdG8gcmVhZGluZyB0aGVtIGZyb20gdGhlIEpTIGV4ZWN1dGlvbiB0aHJl
YWQuCisgICAgICAgIG1lbW9yeVByZXNzdXJlQ3JpdGljYWxTdGF0ZSA9IGNyaXRpY2FsOworICAg
ICAgICBtZW1vcnlQcmVzc3VyZVN5bmNocm9ub3VzU3RhdGUgPSBzeW5jaHJvbm91czsKKyAgICB9
KTsKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0U2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJl
c3N1cmVFdmVudHMoZmFsc2UpOworICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5pbnN0YWxsKCk7
CisKKyAgICBhdXRvIG9uRWFjaE1pY3JvdGFza1RpY2sgPSBbJl0gKFZNJiB2bSkgeworICAgICAg
ICBpZiAobWVtb3J5UHJlc3N1cmVDcml0aWNhbFN0YXRlID09IENyaXRpY2FsOjpObykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBtZW1vcnlQcmVzc3VyZUNyaXRpY2FsU3RhdGUgPSBD
cml0aWNhbDo6Tm87CisgICAgICAgIGJvb2wgaXNTeW5jaHJvbm91cyA9IG1lbW9yeVByZXNzdXJl
U3luY2hyb25vdXNTdGF0ZSA9PSBTeW5jaHJvbm91czo6WWVzOworCisgICAgICAgIFdURjo6cmVs
ZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7CisgICAgICAgIHZtLmRlbGV0ZUFsbENvZGUoRGVs
ZXRlQWxsQ29kZUlmTm90Q29sbGVjdGluZyk7CisKKyAgICAgICAgaWYgKCF2bS5oZWFwLmlzQ3Vy
cmVudFRocmVhZEJ1c3koKSkgeworICAgICAgICAgICAgaWYgKGlzU3luY2hyb25vdXMpIHsKKyAg
ICAgICAgICAgICAgICB2bS5oZWFwLmNvbGxlY3ROb3coU3luYywgQ29sbGVjdGlvblNjb3BlOjpG
dWxsKTsKKyAgICAgICAgICAgICAgICBXVEY6OnJlbGVhc2VGYXN0TWFsbG9jRnJlZU1lbW9yeSgp
OworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgdm0uaGVhcC5jb2xsZWN0Tm93
RnVsbElmTm90RG9uZVJlY2VudGx5KEFzeW5jKTsKKyAgICAgICAgfQorICAgIH07CisjZW5kaWYK
KwogICAgIGludCByZXN1bHQgPSBydW5KU0MoCiAgICAgICAgIG9wdGlvbnMsIGZhbHNlLAotICAg
ICAgICBbJl0gKFZNJiwgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGJvb2wmIHN1Y2Nlc3Mp
IHsKKyAgICAgICAgWyZdIChWTSYgdm0sIEdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBib29s
JiBzdWNjZXNzKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgICAgICAgICB2bS5zZXRPbkVh
Y2hNaWNyb3Rhc2tUaWNrKFdURk1vdmUob25FYWNoTWljcm90YXNrVGljaykpOworI2VuZGlmCiAg
ICAgICAgICAgICBydW5XaXRoT3B0aW9ucyhnbG9iYWxPYmplY3QsIG9wdGlvbnMsIHN1Y2Nlc3Mp
OwogICAgICAgICB9KTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgICAgICBtZW1vcnlQcmVz
c3VyZUhhbmRsZXIuc2V0TG93TWVtb3J5SGFuZGxlcihudWxscHRyKTsKKyNlbmRpZgorCiAgICAg
cHJpbnRTdXBlclNhbXBsZXJTdGF0ZSgpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHJldmlzaW9uIDIzOTEzMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyNyw4
ICsxMTI3LDExIEBAIHZvaWQgVk06OnF1ZXVlTWljcm90YXNrKEpTR2xvYmFsT2JqZWN0JiAKIAog
dm9pZCBWTTo6ZHJhaW5NaWNyb3Rhc2tzKCkKIHsKLSAgICB3aGlsZSAoIW1fbWljcm90YXNrUXVl
dWUuaXNFbXB0eSgpKQorICAgIHdoaWxlICghbV9taWNyb3Rhc2tRdWV1ZS5pc0VtcHR5KCkpIHsK
ICAgICAgICAgbV9taWNyb3Rhc2tRdWV1ZS50YWtlRmlyc3QoKS0+cnVuKCk7CisgICAgICAgIGlm
IChtX29uRWFjaE1pY3JvdGFza1RpY2spCisgICAgICAgICAgICBtX29uRWFjaE1pY3JvdGFza1Rp
Y2soKnRoaXMpOworICAgIH0KIH0KIAogdm9pZCBRdWV1ZWRUYXNrOjpydW4oKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAyMzkxMzIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NTYsNiArODU2LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBxdWV1ZU1pY3JvdGFzayhKU0dsb2JhbE9iamVjdCYsIFJl
ZjxNaWNyb3Rhc2s+JiYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgZHJhaW5NaWNyb3Rh
c2tzKCk7CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldE9uRWFjaE1pY3JvdGFza1RpY2soV1RG
OjpGdW5jdGlvbjx2b2lkKFZNJik+JiYgZnVuYykgeyBtX29uRWFjaE1pY3JvdGFza1RpY2sgPSBX
VEZNb3ZlKGZ1bmMpOyB9CiAgICAgdm9pZCBzZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91
bGRUaHJvdyhib29sIGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblRocm93KSB7IG1fZ2xvYmFsQ29u
c3RSZWRlY2xhcmF0aW9uU2hvdWxkVGhyb3cgPSBnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25UaHJv
dzsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9vbCBnbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91
bGRUaHJvdygpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxk
VGhyb3c7IH0KIApAQCAtMTAxNSw2ICsxMDE2LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U2hhZG93Q2hpY2tlbj4gbV9zaGFkb3dDaGlja2VuOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxCeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5PiBtX2J5dGVjb2RlSW50cmluc2ljUmVnaXN0cnk7
CiAKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoVk0mKT4gbV9vbkVhY2hNaWNyb3Rhc2tUaWNrOwor
CiAjaWYgRU5BQkxFKEpJVCkKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgSlNfRVhQT1JUX1BS
SVZBVEUgc3RhdGljIGJvb2wgc19jYW5Vc2VKSVRJc1NldDsKSW5kZXg6IFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzkx
MzIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2
IEBACisyMDE4LTEyLTEyICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFRoZSBKU0Mgc2hlbGwgc2hvdWxkIGxpc3RlbiBmb3IgbWVtb3J5IHByZXNzdXJlIGV2ZW50
cyBhbmQgcmVzcG9uZCB0byB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTI2NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAo
V1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcik6CisgICAg
ICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oOgorICAgICAgICAoV1RGOjpNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OnNldERpc3BhdGNoUXVldWUpOgorICAgICAgICBNYWtlIGl0IHNvIHRo
YXQgd2UgY2FuIGN1c3RvbWl6ZSB3aGljaCBkaXNwYXRjaCBxdWV1ZSBtZW1vcnkgcHJlc3N1cmUK
KyAgICAgICAgZXZlbnRzIGdldCBoYW5kbGVkIG9uLgorCisgICAgICAgIChXVEY6Ok1lbW9yeVBy
ZXNzdXJlSGFuZGxlcjo6c2V0U2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMpOgor
ICAgICAgICBNYWtlIGl0IHNvIHRoYXQgd2UgY2FuIGRpc2FibGUgbG9nZ2luZyB0aGF0IGhhcHBl
bnMgb24gZWFjaCBtZW1vcnkKKyAgICAgICAgcHJlc3N1cmUgZXZlbnQuCisKKyAgICAgICAgKiB3
dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXVEY6Ok1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6dW5pbnN0YWxsKToKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpob2xkT2ZmKToKKwogMjAxOC0xMi0xMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXVtDbGFuZ10gRml4IGNvbXBpbGF0aW9uIHdh
cm5pbmdzIG9mIFdURgpJbmRleDogU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
Y3BwCShyZXZpc2lvbiAyMzkxMzIpCisrKyBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhh
bmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw5IEBAIE1lbW9yeVByZXNzdXJl
SGFuZGxlcjo6TWVtb3J5UHJlc3N1cmVIYW4KICAgICA6IG1fd2luZG93c01lYXN1cmVtZW50VGlt
ZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp3aW5kb3dz
TWVhc3VyZW1lbnRUaW1lckZpcmVkKQogI2VuZGlmCiB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgc2V0RGlzcGF0Y2hRdWV1ZShkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKKyNlbmRpZgog
fQogCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2V0U2hvdWxkVXNlUGVyaW9kaWNNZW1v
cnlNb25pdG9yKGJvb2wgdXNlKQpAQCAtMjk4LDQgKzMwMSwxNCBAQCB2b2lkIE1lbW9yeVByZXNz
dXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyCiB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6cGxh
dGZvcm1Jbml0aWFsaXplKCkgeyB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQordm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldERpc3BhdGNoUXVldWUoZGlzcGF0Y2hfcXVldWVf
dCBxdWV1ZSkKK3sKKyAgICBkaXNwYXRjaF9yZXRhaW4ocXVldWUpOworICAgIGlmIChtX2Rpc3Bh
dGNoUXVldWUpCisgICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaFF1ZXVlKTsKKyAg
ICBtX2Rpc3BhdGNoUXVldWUgPSBxdWV1ZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkocmV2aXNp
b24gMjM5MTMyKQorKysgU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDYgKzk0LDEwIEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgTWVtb3J5VXNhZ2VQb2xpY3kgY3VycmVudE1lbW9yeVVzYWdlUG9saWN5
KCk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBz
ZXREaXNwYXRjaFF1ZXVlKGRpc3BhdGNoX3F1ZXVlX3QgKTsKKyNlbmRpZgorCiAgICAgY2xhc3Mg
UmVsaWVmTG9nZ2VyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIGV4cGxpY2l0IFJlbGllZkxvZ2dl
cihjb25zdCBjaGFyICpsb2cpCkBAIC0xNTAsNiArMTU0LDggQEAgcHVibGljOgogCiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIHNldFBhZ2VDb3VudCh1bnNpZ25lZCk7CiAKKyAg
ICB2b2lkIHNldFNob3VsZExvZ01lbW9yeU1lbW9yeVByZXNzdXJlRXZlbnRzKGJvb2wgc2hvdWxk
TG9nKSB7IG1fc2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMgPSBzaG91bGRMb2c7
IH0KKwogcHJpdmF0ZToKICAgICBzaXplX3QgdGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpOwogICAg
IHZvaWQgbWVtb3J5UHJlc3N1cmVTdGF0dXNDaGFuZ2VkKCk7CkBAIC0xODAsNiArMTg2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fdW5kZXJNZW1vcnlQcmVzc3VyZTsK
ICAgICBib29sIG1faXNTaW11bGF0aW5nTWVtb3J5UHJlc3N1cmUgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zaG91bGRMb2dNZW1vcnlNZW1vcnlQcmVzc3VyZUV2ZW50cyB7IHRydWUgfTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSdW5Mb29wOjpUaW1lcjxNZW1vcnlQcmVzc3VyZUhhbmRsZXI+PiBt
X21lYXN1cmVtZW50VGltZXI7CiAgICAgTWVtb3J5VXNhZ2VQb2xpY3kgbV9tZW1vcnlVc2FnZVBv
bGljeSB7IE1lbW9yeVVzYWdlUG9saWN5OjpVbnJlc3RyaWN0ZWQgfTsKQEAgLTE5OCw2ICsyMDUs
MTAgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxNZW1vcnlQcmVzc3VyZUhhbmRsZXI+
IG1faG9sZE9mZlRpbWVyOwogICAgIHZvaWQgaG9sZE9mZlRpbWVyRmlyZWQoKTsKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVl
dWUgeyBudWxscHRyIH07CisjZW5kaWYKIH07CiAKIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ01l
bW9yeVByZXNzdXJlOwpJbmRleDogU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyQ29jb2EubW0JKHJldmlzaW9uIDIzOTEzMikKKysrIFNvdXJjZS9XVEYv
d3RmL2NvY29hL01lbW9yeVByZXNzdXJlSGFuZGxlckNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02NywxMyArNjcsMTMgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQog
ICAgIGlmIChtX2luc3RhbGxlZCB8fCB0aW1lckV2ZW50U291cmNlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAg
IGRpc3BhdGNoX2FzeW5jKG1fZGlzcGF0Y2hRdWV1ZSwgXnsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgICAgICBhdXRvIG1lbW9yeVN0YXR1c0ZsYWdzID0gRElTUEFUQ0hfTUVNT1JZUFJF
U1NVUkVfTk9STUFMIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfV0FSTiB8IERJU1BBVENIX01F
TU9SWVBSRVNTVVJFX0NSSVRJQ0FMIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfUFJPQ19MSU1J
VF9XQVJOIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfUFJPQ19MSU1JVF9DUklUSUNBTDsKICNl
bHNlIC8vIFBMQVRGT1JNKE1BQykKICAgICAgICAgYXV0byBtZW1vcnlTdGF0dXNGbGFncyA9IERJ
U1BBVENIX01FTU9SWVBSRVNTVVJFX0NSSVRJQ0FMOwogI2VuZGlmCi0gICAgICAgIG1lbW9yeVBy
ZXNzdXJlRXZlbnRTb3VyY2UgPSBkaXNwYXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENIX1NPVVJD
RV9UWVBFX01FTU9SWVBSRVNTVVJFLCAwLCBtZW1vcnlTdGF0dXNGbGFncywgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSk7CisgICAgICAgIG1lbW9yeVByZXNzdXJlRXZlbnRTb3VyY2UgPSBkaXNw
YXRjaF9zb3VyY2VfY3JlYXRlKERJU1BBVENIX1NPVVJDRV9UWVBFX01FTU9SWVBSRVNTVVJFLCAw
LCBtZW1vcnlTdGF0dXNGbGFncywgbV9kaXNwYXRjaFF1ZXVlKTsKIAogICAgICAgICBkaXNwYXRj
aF9zb3VyY2Vfc2V0X2V2ZW50X2hhbmRsZXIobWVtb3J5UHJlc3N1cmVFdmVudFNvdXJjZSwgXnsK
ICAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gZGlzcGF0Y2hfc291cmNlX2dldF9kYXRhKG1lbW9y
eVByZXNzdXJlRXZlbnRTb3VyY2UpOwpAQCAtMTAyLDEzICsxMDIsMTQgQEAgdm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogI2Vsc2UgLy8gUExBVEZPUk0oTUFDKQogICAgICAg
ICAgICAgcmVzcG9uZFRvTWVtb3J5UHJlc3N1cmUoQ3JpdGljYWw6Olllcyk7CiAjZW5kaWYKLSAg
ICAgICAgICAgIFdURkxvZ0Fsd2F5cygiUmVjZWl2ZWQgbWVtb3J5IHByZXNzdXJlIGV2ZW50ICVs
dSB2bSBwcmVzc3VyZSAlZCIsIHN0YXR1cywgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkpOworICAg
ICAgICAgICAgaWYgKG1fc2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMpCisgICAg
ICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJSZWNlaXZlZCBtZW1vcnkgcHJlc3N1cmUgZXZlbnQg
JWx1IHZtIHByZXNzdXJlICVkIiwgc3RhdHVzLCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSk7CiAg
ICAgICAgIH0pOwogICAgICAgICBkaXNwYXRjaF9yZXN1bWUobWVtb3J5UHJlc3N1cmVFdmVudFNv
dXJjZSk7CiAgICAgfSk7CiAKICAgICAvLyBBbGxvdyBzaW11bGF0aW9uIG9mIG1lbW9yeSBwcmVz
c3VyZSB3aXRoICJub3RpZnl1dGlsIC1wIG9yZy5XZWJLaXQubG93TWVtb3J5IgotICAgIG5vdGlm
eV9yZWdpc3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkiLCAmbm90aWZ5VG9rZW5z
WzBdLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgeworICAgIG5vdGlmeV9yZWdp
c3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkiLCAmbm90aWZ5VG9rZW5zWzBdLCBt
X2Rpc3BhdGNoUXVldWUsIF4oaW50KSB7CiAjaWYgRU5BQkxFKEZNV19GT09UUFJJTlRfQ09NUEFS
SVNPTikKICAgICAgICAgYXV0byBmb290cHJpbnRCZWZvcmUgPSBwYWdlc1BlclZNVGFnKCk7CiAj
ZW5kaWYKQEAgLTEyMiwxNSArMTIzLDE1IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpp
bnN0YWxsKCkKICAgICAgICAgbG9nRm9vdHByaW50Q29tcGFyaXNvbihmb290cHJpbnRCZWZvcmUs
IGZvb3RwcmludEFmdGVyKTsKICNlbmRpZgogCi0gICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKG1fZGlzcGF0
Y2hRdWV1ZSwgXnsKICAgICAgICAgICAgIGVuZFNpbXVsYXRlZE1lbW9yeVByZXNzdXJlKCk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgbm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKCJvcmcu
V2ViS2l0Lmxvd01lbW9yeS5iZWdpbiIsICZub3RpZnlUb2tlbnNbMV0sIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIF4oaW50KSB7CisgICAgbm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKCJvcmcu
V2ViS2l0Lmxvd01lbW9yeS5iZWdpbiIsICZub3RpZnlUb2tlbnNbMV0sIG1fZGlzcGF0Y2hRdWV1
ZSwgXihpbnQpIHsKICAgICAgICAgYmVnaW5TaW11bGF0ZWRNZW1vcnlQcmVzc3VyZSgpOwogICAg
IH0pOwotICAgIG5vdGlmeV9yZWdpc3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnku
ZW5kIiwgJm5vdGlmeVRva2Vuc1syXSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQp
IHsKKyAgICBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5LmVu
ZCIsICZub3RpZnlUb2tlbnNbMl0sIG1fZGlzcGF0Y2hRdWV1ZSwgXihpbnQpIHsKICAgICAgICAg
ZW5kU2ltdWxhdGVkTWVtb3J5UHJlc3N1cmUoKTsKICAgICB9KTsKIApAQCAtMTQyLDcgKzE0Myw3
IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwoKQogICAgIGlmICghbV9p
bnN0YWxsZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgZGlzcGF0Y2hfYXN5bmMobV9kaXNwYXRjaFF1ZXVl
LCBeewogICAgICAgICBpZiAobWVtb3J5UHJlc3N1cmVFdmVudFNvdXJjZSkgewogICAgICAgICAg
ICAgZGlzcGF0Y2hfc291cmNlX2NhbmNlbChtZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlKTsKICAg
ICAgICAgICAgIG1lbW9yeVByZXNzdXJlRXZlbnRTb3VyY2UgPSBudWxscHRyOwpAQCAtMTYyLDgg
KzE2Myw4IEBAIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp1bmluc3RhbGwoKQogCiB2b2lk
IE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aG9sZE9mZihTZWNvbmRzIHNlY29uZHMpCiB7Ci0gICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgdGlt
ZXJFdmVudFNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZ
UEVfVElNRVIsIDAsIDAsIGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkpOworICAgIGRpc3BhdGNo
X2FzeW5jKG1fZGlzcGF0Y2hRdWV1ZSwgXnsKKyAgICAgICAgdGltZXJFdmVudFNvdXJjZSA9IGRp
c3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfVElNRVIsIDAsIDAsIG1f
ZGlzcGF0Y2hRdWV1ZSk7CiAgICAgICAgIGlmICh0aW1lckV2ZW50U291cmNlKSB7CiAgICAgICAg
ICAgICBkaXNwYXRjaF9zZXRfY29udGV4dCh0aW1lckV2ZW50U291cmNlLCB0aGlzKTsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGUgZmluYWwgYXJndW1lbnQgYHNfbWluaW11bUhvbGRPZmZUaW1l
LnNlY29uZHMoKWAgc2VlbXMgd3JvbmcuCg==
</data>
<flag name="review"
          id="374096"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357281</attachid>
            <date>2018-12-13 18:31:28 -0800</date>
            <delta_ts>2018-12-13 20:05:49 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>13002</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjM5MTkwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE4LTEyLTEzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFRoZSBKU0Mgc2hlbGwgc2hvdWxkIGxpc3RlbiBmb3IgbWVtb3J5IHByZXNzdXJlIGV2ZW50cyBh
bmQgcmVzcG9uZCB0byB0aGVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI2NDcKKworICAgICAgICBSZXZpZXdlZCBieSBLZWl0aCBNaWxsZXIuCisK
KyAgICAgICAgV2Ugd2FudCB0aGUgSlNDIHNoZWxsIHRvIGJlaGF2ZSBtb3JlIGxpa2UgdGhlIFdl
YkNvbnRlbnQgcHJvY2VzcyB3aGVuCisgICAgICAgIGl0IGNvbWVzIHRvIHJ1bm5pbmcgcGVyZm9y
bWFuY2UgdGVzdHMuIE9uZSB3YXkgdG8gbWFrZSB0aGUgc2hlbGwKKyAgICAgICAgbW9yZSBsaWtl
IHRoaXMgaXMgdG8gaGF2ZSBpdCByZXNwb25kIHRvIG1lbW9yeSBwcmVzc3VyZSBldmVudHMgaW4K
KyAgICAgICAgYSBzaW1pbGFyIHdheSBhcyB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBUaGlzIG1h
a2VzIGl0IGVhc2llciB0byBydW4KKyAgICAgICAgYmVuY2htYXJrcyBsaWtlIEpldFN0cmVhbTIg
b24gdGhlIENMSSBvbiBpT1MuCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAoanNjbWFp
bik6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpkcmFpbk1p
Y3JvdGFza3MpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAgICAgKEpTQzo6Vk06OnNl
dE9uRWFjaE1pY3JvdGFza1RpY2spOgorCiAyMDE4LTEyLTEzICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgdGhlIEpTQ190cmFjZUJhc2VsaW5lSklURXhlY3V0
aW9uIG9wdGlvbiBmb3IgdHJhY2luZyBiYXNlbGluZSBKSVQgZXhlY3V0aW9uLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDIzOTE5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw4ICs4MCwxMCBAQAogI2luY2x1ZGUgPHN5
cy90eXBlcy5oPgogI2luY2x1ZGUgPHRocmVhZD4KICNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNp
bmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeVByZXNzdXJlSGFuZGxl
ci5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CkBAIC0yODcx
LDkgKzI4NzMsNDkgQEAgaW50IGpzY21haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogI2VuZGlm
CiAgICAgR2lnYWNhZ2U6OmRpc2FibGVEaXNhYmxpbmdQcmltaXRpdmVHaWdhY2FnZUlmU2hvdWxk
QmVFbmFibGVkKCk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBhdXRvJiBtZW1vcnlQcmVz
c3VyZUhhbmRsZXIgPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNpbmdsZXRvbigpOworICAgIHsK
KyAgICAgICAgZGlzcGF0Y2hfcXVldWVfdCBxdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgi
anNjIHNoZWxsIG1lbW9yeSBwcmVzc3VyZSBoYW5kbGVyIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFM
KTsKKyAgICAgICAgbWVtb3J5UHJlc3N1cmVIYW5kbGVyLnNldERpc3BhdGNoUXVldWUocXVldWUp
OworICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKHF1ZXVlKTsKKyAgICB9CisgICAgQm94PENyaXRp
Y2FsPiBtZW1vcnlQcmVzc3VyZUNyaXRpY2FsU3RhdGUgPSBCb3g8Q3JpdGljYWw+OjpjcmVhdGUo
Q3JpdGljYWw6Ok5vKTsKKyAgICBCb3g8U3luY2hyb25vdXM+IG1lbW9yeVByZXNzdXJlU3luY2hy
b25vdXNTdGF0ZSA9IEJveDxTeW5jaHJvbm91cz46OmNyZWF0ZShTeW5jaHJvbm91czo6Tm8pOwor
ICAgIG1lbW9yeVByZXNzdXJlSGFuZGxlci5zZXRMb3dNZW1vcnlIYW5kbGVyKFs9XSAoQ3JpdGlj
YWwgY3JpdGljYWwsIFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKSB7CisgICAgICAgIC8vIFdlIHNl
dCB0aGVzZSByYWNpbHkgd2l0aCByZXNwZWN0IHRvIHJlYWRpbmcgdGhlbSBmcm9tIHRoZSBKUyBl
eGVjdXRpb24gdGhyZWFkLgorICAgICAgICAqbWVtb3J5UHJlc3N1cmVDcml0aWNhbFN0YXRlID0g
Y3JpdGljYWw7CisgICAgICAgICptZW1vcnlQcmVzc3VyZVN5bmNocm9ub3VzU3RhdGUgPSBzeW5j
aHJvbm91czsKKyAgICB9KTsKKyAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIuc2V0U2hvdWxkTG9n
TWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMoZmFsc2UpOworICAgIG1lbW9yeVByZXNzdXJlSGFu
ZGxlci5pbnN0YWxsKCk7CisKKyAgICBhdXRvIG9uRWFjaE1pY3JvdGFza1RpY2sgPSBbJl0gKFZN
JiB2bSkgeworICAgICAgICBpZiAoKm1lbW9yeVByZXNzdXJlQ3JpdGljYWxTdGF0ZSA9PSBDcml0
aWNhbDo6Tm8pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgKm1lbW9yeVByZXNzdXJl
Q3JpdGljYWxTdGF0ZSA9IENyaXRpY2FsOjpObzsKKyAgICAgICAgYm9vbCBpc1N5bmNocm9ub3Vz
ID0gKm1lbW9yeVByZXNzdXJlU3luY2hyb25vdXNTdGF0ZSA9PSBTeW5jaHJvbm91czo6WWVzOwor
CisgICAgICAgIFdURjo6cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5KCk7CisgICAgICAgIHZt
LmRlbGV0ZUFsbENvZGUoRGVsZXRlQWxsQ29kZUlmTm90Q29sbGVjdGluZyk7CisKKyAgICAgICAg
aWYgKCF2bS5oZWFwLmlzQ3VycmVudFRocmVhZEJ1c3koKSkgeworICAgICAgICAgICAgaWYgKGlz
U3luY2hyb25vdXMpIHsKKyAgICAgICAgICAgICAgICB2bS5oZWFwLmNvbGxlY3ROb3coU3luYywg
Q29sbGVjdGlvblNjb3BlOjpGdWxsKTsKKyAgICAgICAgICAgICAgICBXVEY6OnJlbGVhc2VGYXN0
TWFsbG9jRnJlZU1lbW9yeSgpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dm0uaGVhcC5jb2xsZWN0Tm93RnVsbElmTm90RG9uZVJlY2VudGx5KEFzeW5jKTsKKyAgICAgICAg
fQorICAgIH07CisjZW5kaWYKKwogICAgIGludCByZXN1bHQgPSBydW5KU0MoCiAgICAgICAgIG9w
dGlvbnMsIGZhbHNlLAotICAgICAgICBbJl0gKFZNJiwgR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGJvb2wmIHN1Y2Nlc3MpIHsKKyAgICAgICAgWyZdIChWTSYgdm0sIEdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBib29sJiBzdWNjZXNzKSB7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
ICAgICAgICB2bS5zZXRPbkVhY2hNaWNyb3Rhc2tUaWNrKFdURk1vdmUob25FYWNoTWljcm90YXNr
VGljaykpOworI2VuZGlmCiAgICAgICAgICAgICBydW5XaXRoT3B0aW9ucyhnbG9iYWxPYmplY3Qs
IG9wdGlvbnMsIHN1Y2Nlc3MpOwogICAgICAgICB9KTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24gMjM5MTkwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTI4LDggKzExMjgsMTEgQEAg
dm9pZCBWTTo6cXVldWVNaWNyb3Rhc2soSlNHbG9iYWxPYmplY3QmIAogCiB2b2lkIFZNOjpkcmFp
bk1pY3JvdGFza3MoKQogewotICAgIHdoaWxlICghbV9taWNyb3Rhc2tRdWV1ZS5pc0VtcHR5KCkp
CisgICAgd2hpbGUgKCFtX21pY3JvdGFza1F1ZXVlLmlzRW1wdHkoKSkgewogICAgICAgICBtX21p
Y3JvdGFza1F1ZXVlLnRha2VGaXJzdCgpLT5ydW4oKTsKKyAgICAgICAgaWYgKG1fb25FYWNoTWlj
cm90YXNrVGljaykKKyAgICAgICAgICAgIG1fb25FYWNoTWljcm90YXNrVGljaygqdGhpcyk7Cisg
ICAgfQogfQogCiB2b2lkIFF1ZXVlZFRhc2s6OnJ1bigpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgJKHJldmlzaW9uIDIzOTE5MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1Nyw2ICs4NTcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHF1ZXVlTWljcm90YXNrKEpTR2xvYmFsT2JqZWN0JiwgUmVmPE1pY3JvdGFzaz4m
Jik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBkcmFpbk1pY3JvdGFza3MoKTsKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0T25FYWNoTWljcm90YXNrVGljayhXVEY6OkZ1bmN0aW9uPHZv
aWQoVk0mKT4mJiBmdW5jKSB7IG1fb25FYWNoTWljcm90YXNrVGljayA9IFdURk1vdmUoZnVuYyk7
IH0KICAgICB2b2lkIHNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KGJvb2wg
Z2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uVGhyb3cpIHsgbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRp
b25TaG91bGRUaHJvdyA9IGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblRocm93OyB9CiAgICAgQUxX
QVlTX0lOTElORSBib29sIGdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93KCkgY29u
c3QgeyByZXR1cm4gbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdzsgfQogCkBA
IC0xMDE2LDYgKzEwMTcsOCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTaGFkb3dD
aGlja2VuPiBtX3NoYWRvd0NoaWNrZW47CiAgICAgc3RkOjp1bmlxdWVfcHRyPEJ5dGVjb2RlSW50
cmluc2ljUmVnaXN0cnk+IG1fYnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeTsKIAorICAgIFdURjo6
RnVuY3Rpb248dm9pZChWTSYpPiBtX29uRWFjaE1pY3JvdGFza1RpY2s7CisKICNpZiBFTkFCTEUo
SklUKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMg
Ym9vbCBzX2NhblVzZUpJVElzU2V0OwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzOTE5MCkKKysrIFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMTIt
MTMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlIEpTQyBz
aGVsbCBzaG91bGQgbGlzdGVuIGZvciBtZW1vcnkgcHJlc3N1cmUgZXZlbnRzIGFuZCByZXNwb25k
IHRvIHRoZW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MjY0NworCisgICAgICAgIFJldmlld2VkIGJ5IEtlaXRoIE1pbGxlci4KKworICAgICAgICAq
IHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcik6CisgICAgICAgIChXVEY6Ok1lbW9y
eVByZXNzdXJlSGFuZGxlcjo6c2V0RGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIE1ha2UgaXQgc28g
dGhhdCB3ZSBjYW4gY3VzdG9taXplIHdoaWNoIGRpc3BhdGNoIHF1ZXVlIG1lbW9yeSBwcmVzc3Vy
ZQorICAgICAgICBldmVudHMgZ2V0IGhhbmRsZWQgb24uCisKKyAgICAgICAgKiB3dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmg6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6
c2V0U2hvdWxkTG9nTWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMpOgorICAgICAgICBNYWtlIGl0
IHNvIHRoYXQgd2UgY2FuIGRpc2FibGUgbG9nZ2luZyB0aGF0IGhhcHBlbnMgb24gZWFjaCBtZW1v
cnkKKyAgICAgICAgcHJlc3N1cmUgZXZlbnQuCisKKyAgICAgICAgKiB3dGYvY29jb2EvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyQ29jb2EubW06CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFu
ZGxlcjo6aW5zdGFsbCk6CisgICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6dW5p
bnN0YWxsKToKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpob2xkT2ZmKToK
KwogMjAxOC0xMi0xMyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIGNsYW5nLXRpZHk6IEZpeCB1bm5lY2Vzc2FyeSBwYXJhbWV0ZXIgY29waWVzIGluIFBhcmFs
bGVsSGVscGVyUG9vbC5jcHAKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFu
ZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5k
bGVyLmNwcAkocmV2aXNpb24gMjM5MTkwKQorKysgU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOSBAQCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6Ok1lbW9yeVByZXNzdXJlSGFuCiAgICAgOiBtX3dpbmRvd3NNZWFzdXJlbWVu
dFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJk1lbW9yeVByZXNzdXJlSGFuZGxlcjo6d2lu
ZG93c01lYXN1cmVtZW50VGltZXJGaXJlZCkKICNlbmRpZgogeworI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIHNldERpc3BhdGNoUXVldWUoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisjZW5k
aWYKIH0KIAogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldFNob3VsZFVzZVBlcmlvZGlj
TWVtb3J5TW9uaXRvcihib29sIHVzZSkKQEAgLTI5OCw0ICszMDEsMTUgQEAgdm9pZCBNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI6OlJlbGllZkxvZ2dlcgogdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpIHsgfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkK
K3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzZXREaXNwYXRjaFF1ZXVlKGRpc3BhdGNoX3F1
ZXVlX3QgcXVldWUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoIW1faW5zdGFsbGVkKTsKKyAgICBk
aXNwYXRjaF9yZXRhaW4ocXVldWUpOworICAgIGlmIChtX2Rpc3BhdGNoUXVldWUpCisgICAgICAg
IGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaFF1ZXVlKTsKKyAgICBtX2Rpc3BhdGNoUXVldWUg
PSBxdWV1ZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuaAkocmV2aXNpb24gMjM5MTkwKQorKysgU291
cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk0
LDYgKzk0LDEwIEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgTWVt
b3J5VXNhZ2VQb2xpY3kgY3VycmVudE1lbW9yeVVzYWdlUG9saWN5KCk7CiAKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXREaXNwYXRjaFF1ZXVlKGRp
c3BhdGNoX3F1ZXVlX3QpOworI2VuZGlmCisKICAgICBjbGFzcyBSZWxpZWZMb2dnZXIgewogICAg
IHB1YmxpYzoKICAgICAgICAgZXhwbGljaXQgUmVsaWVmTG9nZ2VyKGNvbnN0IGNoYXIgKmxvZykK
QEAgLTE1MCw2ICsxNTQsOCBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3Rh
dGljIHZvaWQgc2V0UGFnZUNvdW50KHVuc2lnbmVkKTsKIAorICAgIHZvaWQgc2V0U2hvdWxkTG9n
TWVtb3J5TWVtb3J5UHJlc3N1cmVFdmVudHMoYm9vbCBzaG91bGRMb2cpIHsgbV9zaG91bGRMb2dN
ZW1vcnlNZW1vcnlQcmVzc3VyZUV2ZW50cyA9IHNob3VsZExvZzsgfQorCiBwcml2YXRlOgogICAg
IHNpemVfdCB0aHJlc2hvbGRGb3JNZW1vcnlLaWxsKCk7CiAgICAgdm9pZCBtZW1vcnlQcmVzc3Vy
ZVN0YXR1c0NoYW5nZWQoKTsKQEAgLTE4MCw2ICsxODYsNyBAQCBwcml2YXRlOgogCiAgICAgc3Rk
OjphdG9taWM8Ym9vbD4gbV91bmRlck1lbW9yeVByZXNzdXJlOwogICAgIGJvb2wgbV9pc1NpbXVs
YXRpbmdNZW1vcnlQcmVzc3VyZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZExvZ01lbW9y
eU1lbW9yeVByZXNzdXJlRXZlbnRzIHsgdHJ1ZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJ1
bkxvb3A6OlRpbWVyPE1lbW9yeVByZXNzdXJlSGFuZGxlcj4+IG1fbWVhc3VyZW1lbnRUaW1lcjsK
ICAgICBNZW1vcnlVc2FnZVBvbGljeSBtX21lbW9yeVVzYWdlUG9saWN5IHsgTWVtb3J5VXNhZ2VQ
b2xpY3k6OlVucmVzdHJpY3RlZCB9OwpAQCAtMTk4LDYgKzIwNSwxMCBAQCBwcml2YXRlOgogICAg
IFJ1bkxvb3A6OlRpbWVyPE1lbW9yeVByZXNzdXJlSGFuZGxlcj4gbV9ob2xkT2ZmVGltZXI7CiAg
ICAgdm9pZCBob2xkT2ZmVGltZXJGaXJlZCgpOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBkaXNwYXRjaF9xdWV1ZV90IG1fZGlzcGF0Y2hRdWV1ZSB7IG51bGxwdHIgfTsKKyNl
bmRpZgogfTsKIAogZXh0ZXJuIFdURkxvZ0NoYW5uZWwgTG9nTWVtb3J5UHJlc3N1cmU7CkluZGV4
OiBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9jb2NvYS9NZW1vcnlQcmVzc3VyZUhhbmRsZXJDb2Nv
YS5tbQkocmV2aXNpb24gMjM5MTkwKQorKysgU291cmNlL1dURi93dGYvY29jb2EvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY3LDEzICs2NywxMyBAQCB2
b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5zdGFsbCgpCiAgICAgaWYgKG1faW5zdGFsbGVk
IHx8IHRpbWVyRXZlbnRTb3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgZGlzcGF0Y2hfYXN5bmMobV9k
aXNwYXRjaFF1ZXVlLCBeewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIGF1dG8g
bWVtb3J5U3RhdHVzRmxhZ3MgPSBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9OT1JNQUwgfCBESVNQ
QVRDSF9NRU1PUllQUkVTU1VSRV9XQVJOIHwgRElTUEFUQ0hfTUVNT1JZUFJFU1NVUkVfQ1JJVElD
QUwgfCBESVNQQVRDSF9NRU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX1dBUk4gfCBESVNQQVRDSF9N
RU1PUllQUkVTU1VSRV9QUk9DX0xJTUlUX0NSSVRJQ0FMOwogI2Vsc2UgLy8gUExBVEZPUk0oTUFD
KQogICAgICAgICBhdXRvIG1lbW9yeVN0YXR1c0ZsYWdzID0gRElTUEFUQ0hfTUVNT1JZUFJFU1NV
UkVfQ1JJVElDQUw7CiAjZW5kaWYKLSAgICAgICAgbWVtb3J5UHJlc3N1cmVFdmVudFNvdXJjZSA9
IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUoRElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZUFJFU1NV
UkUsIDAsIG1lbW9yeVN0YXR1c0ZsYWdzLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpKTsKKyAg
ICAgICAgbWVtb3J5UHJlc3N1cmVFdmVudFNvdXJjZSA9IGRpc3BhdGNoX3NvdXJjZV9jcmVhdGUo
RElTUEFUQ0hfU09VUkNFX1RZUEVfTUVNT1JZUFJFU1NVUkUsIDAsIG1lbW9yeVN0YXR1c0ZsYWdz
LCBtX2Rpc3BhdGNoUXVldWUpOwogCiAgICAgICAgIGRpc3BhdGNoX3NvdXJjZV9zZXRfZXZlbnRf
aGFuZGxlcihtZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlLCBeewogICAgICAgICAgICAgYXV0byBz
dGF0dXMgPSBkaXNwYXRjaF9zb3VyY2VfZ2V0X2RhdGEobWVtb3J5UHJlc3N1cmVFdmVudFNvdXJj
ZSk7CkBAIC0xMDIsMTMgKzEwMiwxNCBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6aW5z
dGFsbCgpCiAjZWxzZSAvLyBQTEFURk9STShNQUMpCiAgICAgICAgICAgICByZXNwb25kVG9NZW1v
cnlQcmVzc3VyZShDcml0aWNhbDo6WWVzKTsKICNlbmRpZgotICAgICAgICAgICAgV1RGTG9nQWx3
YXlzKCJSZWNlaXZlZCBtZW1vcnkgcHJlc3N1cmUgZXZlbnQgJWx1IHZtIHByZXNzdXJlICVkIiwg
c3RhdHVzLCBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKSk7CisgICAgICAgICAgICBpZiAobV9zaG91
bGRMb2dNZW1vcnlNZW1vcnlQcmVzc3VyZUV2ZW50cykKKyAgICAgICAgICAgICAgICBXVEZMb2dB
bHdheXMoIlJlY2VpdmVkIG1lbW9yeSBwcmVzc3VyZSBldmVudCAlbHUgdm0gcHJlc3N1cmUgJWQi
LCBzdGF0dXMsIGlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKTsKICAgICAgICAgfSk7CiAgICAgICAg
IGRpc3BhdGNoX3Jlc3VtZShtZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlKTsKICAgICB9KTsKIAog
ICAgIC8vIEFsbG93IHNpbXVsYXRpb24gb2YgbWVtb3J5IHByZXNzdXJlIHdpdGggIm5vdGlmeXV0
aWwgLXAgb3JnLldlYktpdC5sb3dNZW1vcnkiCi0gICAgbm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNo
KCJvcmcuV2ViS2l0Lmxvd01lbW9yeSIsICZub3RpZnlUb2tlbnNbMF0sIGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIF4oaW50KSB7CisgICAgbm90aWZ5X3JlZ2lzdGVyX2Rpc3BhdGNoKCJvcmcu
V2ViS2l0Lmxvd01lbW9yeSIsICZub3RpZnlUb2tlbnNbMF0sIG1fZGlzcGF0Y2hRdWV1ZSwgXihp
bnQpIHsKICNpZiBFTkFCTEUoRk1XX0ZPT1RQUklOVF9DT01QQVJJU09OKQogICAgICAgICBhdXRv
IGZvb3RwcmludEJlZm9yZSA9IHBhZ2VzUGVyVk1UYWcoKTsKICNlbmRpZgpAQCAtMTIyLDE1ICsx
MjMsMTUgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Omluc3RhbGwoKQogICAgICAgICBs
b2dGb290cHJpbnRDb21wYXJpc29uKGZvb3RwcmludEJlZm9yZSwgZm9vdHByaW50QWZ0ZXIpOwog
I2VuZGlmCiAKLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgXnsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMobV9kaXNwYXRjaFF1ZXVlLCBeewogICAgICAg
ICAgICAgZW5kU2ltdWxhdGVkTWVtb3J5UHJlc3N1cmUoKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAKLSAgICBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5LmJl
Z2luIiwgJm5vdGlmeVRva2Vuc1sxXSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXihpbnQp
IHsKKyAgICBub3RpZnlfcmVnaXN0ZXJfZGlzcGF0Y2goIm9yZy5XZWJLaXQubG93TWVtb3J5LmJl
Z2luIiwgJm5vdGlmeVRva2Vuc1sxXSwgbV9kaXNwYXRjaFF1ZXVlLCBeKGludCkgewogICAgICAg
ICBiZWdpblNpbXVsYXRlZE1lbW9yeVByZXNzdXJlKCk7CiAgICAgfSk7Ci0gICAgbm90aWZ5X3Jl
Z2lzdGVyX2Rpc3BhdGNoKCJvcmcuV2ViS2l0Lmxvd01lbW9yeS5lbmQiLCAmbm90aWZ5VG9rZW5z
WzJdLCBkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeKGludCkgeworICAgIG5vdGlmeV9yZWdp
c3Rlcl9kaXNwYXRjaCgib3JnLldlYktpdC5sb3dNZW1vcnkuZW5kIiwgJm5vdGlmeVRva2Vuc1sy
XSwgbV9kaXNwYXRjaFF1ZXVlLCBeKGludCkgewogICAgICAgICBlbmRTaW11bGF0ZWRNZW1vcnlQ
cmVzc3VyZSgpOwogICAgIH0pOwogCkBAIC0xNDIsNyArMTQzLDcgQEAgdm9pZCBNZW1vcnlQcmVz
c3VyZUhhbmRsZXI6OnVuaW5zdGFsbCgpCiAgICAgaWYgKCFtX2luc3RhbGxlZCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
XnsKKyAgICBkaXNwYXRjaF9hc3luYyhtX2Rpc3BhdGNoUXVldWUsIF57CiAgICAgICAgIGlmICht
ZW1vcnlQcmVzc3VyZUV2ZW50U291cmNlKSB7CiAgICAgICAgICAgICBkaXNwYXRjaF9zb3VyY2Vf
Y2FuY2VsKG1lbW9yeVByZXNzdXJlRXZlbnRTb3VyY2UpOwogICAgICAgICAgICAgbWVtb3J5UHJl
c3N1cmVFdmVudFNvdXJjZSA9IG51bGxwdHI7CkBAIC0xNjIsOCArMTYzLDggQEAgdm9pZCBNZW1v
cnlQcmVzc3VyZUhhbmRsZXI6OnVuaW5zdGFsbCgpCiAKIHZvaWQgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyOjpob2xkT2ZmKFNlY29uZHMgc2Vjb25kcykKIHsKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICB0aW1lckV2ZW50U291cmNlID0gZGlz
cGF0Y2hfc291cmNlX2NyZWF0ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgZGlzcGF0Y2hfYXN5bmMobV9kaXNwYXRjaFF1
ZXVlLCBeeworICAgICAgICB0aW1lckV2ZW50U291cmNlID0gZGlzcGF0Y2hfc291cmNlX2NyZWF0
ZShESVNQQVRDSF9TT1VSQ0VfVFlQRV9USU1FUiwgMCwgMCwgbV9kaXNwYXRjaFF1ZXVlKTsKICAg
ICAgICAgaWYgKHRpbWVyRXZlbnRTb3VyY2UpIHsKICAgICAgICAgICAgIGRpc3BhdGNoX3NldF9j
b250ZXh0KHRpbWVyRXZlbnRTb3VyY2UsIHRoaXMpOwogICAgICAgICAgICAgLy8gRklYTUU6IFRo
ZSBmaW5hbCBhcmd1bWVudCBgc19taW5pbXVtSG9sZE9mZlRpbWUuc2Vjb25kcygpYCBzZWVtcyB3
cm9uZy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>