<?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>188091</bug_id>
          
          <creation_ts>2018-07-26 21:23:30 -0700</creation_ts>
          <short_desc>Use SPI to compute the jetsam limit on iOS instead of hardcoding 840MB</short_desc>
          <delta_ts>2018-07-27 14:08:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445648</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 21:23:30 -0700</bug_when>
    <thetext>This requires adopting an entitlement on iOS for the WebContent (and other) processes. We&apos;ll fall back to 840 (the current behavior) when the SPI fails due to the lack of an entitlement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445649</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 21:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/42647697&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445665</commentid>
    <comment_count>2</comment_count>
      <attachid>345903</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 23:51:27 -0700</bug_when>
    <thetext>Created attachment 345903
patch

This patch doesn&apos;t add the entitlement for the minimal simulator build. We may want to add it if it works in such a build, so we don&apos;t end up with 840MB hardcoded on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445666</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-26 23:53:11 -0700</bug_when>
    <thetext>Attachment 345903 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:55:  memlimit_active is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:56:  memlimit_active_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:57:  memlimit_inactive is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:58:  memlimit_inactive_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:67:  memorystatus_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:106:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:107:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:108:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:108:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:109:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:111:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:128:  Missing spaces around /  [whitespace/operators] [3]
Total errors found: 12 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445667</commentid>
    <comment_count>4</comment_count>
      <attachid>345904</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 23:53:28 -0700</bug_when>
    <thetext>Created attachment 345904
patch

without the syslog this time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445668</commentid>
    <comment_count>5</comment_count>
      <attachid>345905</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 23:55:13 -0700</bug_when>
    <thetext>Created attachment 345905
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445669</commentid>
    <comment_count>6</comment_count>
      <attachid>345906</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-26 23:56:05 -0700</bug_when>
    <thetext>Created attachment 345906
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445670</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-26 23:58:26 -0700</bug_when>
    <thetext>Attachment 345906 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:55:  memlimit_active is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:56:  memlimit_active_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:57:  memlimit_inactive is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:58:  memlimit_inactive_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/AvailableMemory.cpp:67:  memorystatus_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445746</commentid>
    <comment_count>8</comment_count>
      <attachid>345906</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-07-27 10:41:54 -0700</bug_when>
    <thetext>Comment on attachment 345906
patch

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

&gt; Source/bmalloc/bmalloc/AvailableMemory.cpp:70
&gt; +#if BPLATFORM(IOS)
&gt; +#if __has_include(&lt;System/sys/kern_memorystatus.h&gt;)
&gt; +extern &quot;C&quot; {
&gt; +#include &lt;System/sys/kern_memorystatus.h&gt;
&gt; +}
&gt; +#else
&gt; +extern &quot;C&quot; {
&gt; +
&gt; +typedef struct memorystatus_memlimit_properties {
&gt; +    int32_t memlimit_active;                /* jetsam memory limit (in MB) when process is active */
&gt; +    uint32_t memlimit_active_attr;
&gt; +    int32_t memlimit_inactive;              /* jetsam memory limit (in MB) when process is inactive */
&gt; +    uint32_t memlimit_inactive_attr;
&gt; +} memorystatus_memlimit_properties_t;
&gt; +
&gt; +#define MEMORYSTATUS_CMD_GET_MEMLIMIT_PROPERTIES 8
&gt; +
&gt; +}
&gt; +#endif // __has_include(&lt;System/sys/kern_memorystatus.h&gt;)
&gt; +
&gt; +extern &quot;C&quot; {
&gt; +int memorystatus_control(uint32_t command, int32_t pid, uint32_t flags, void *buffer, size_t buffersize);
&gt; +}
&gt; +
&gt; +#endif // BPLATFORM(IOS)

Should we introduce the concept of SPI headers in bmalloc?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445762</commentid>
    <comment_count>9</comment_count>
      <attachid>345906</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-27 11:18:46 -0700</bug_when>
    <thetext>Comment on attachment 345906
patch

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

&gt;&gt; Source/bmalloc/bmalloc/AvailableMemory.cpp:70
&gt;&gt; +#endif // BPLATFORM(IOS)
&gt; 
&gt; Should we introduce the concept of SPI headers in bmalloc?

Yeah that&apos;d probably be cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445791</commentid>
    <comment_count>10</comment_count>
      <attachid>345932</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-27 12:08:52 -0700</bug_when>
    <thetext>Created attachment 345932
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445792</commentid>
    <comment_count>11</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-27 12:10:49 -0700</bug_when>
    <thetext>Attachment 345932 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:39:  memlimit_active is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:40:  memlimit_active_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:41:  memlimit_inactive is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:42:  memlimit_inactive_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:51:  memorystatus_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 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>1445823</commentid>
    <comment_count>12</comment_count>
      <attachid>345940</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-27 12:49:40 -0700</bug_when>
    <thetext>Created attachment 345940
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445825</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-27 12:52:16 -0700</bug_when>
    <thetext>Attachment 345940 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:39:  memlimit_active is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:40:  memlimit_active_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:41:  memlimit_inactive is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:42:  memlimit_inactive_attr is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/bmalloc/bmalloc/darwin/MemoryStatusSPI.h:51:  memorystatus_control is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 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>1445846</commentid>
    <comment_count>14</comment_count>
      <attachid>345940</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 13:35:12 -0700</bug_when>
    <thetext>Comment on attachment 345940
patch for landing

Clearing flags on attachment: 345940

Committed r234326: &lt;https://trac.webkit.org/changeset/234326&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445847</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-27 13:35:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445858</commentid>
    <comment_count>16</comment_count>
      <attachid>345940</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-07-27 14:01:32 -0700</bug_when>
    <thetext>Comment on attachment 345940
patch for landing

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

&gt; Source/bmalloc/bmalloc/AvailableMemory.cpp:85
&gt; +    return static_cast&lt;size_t&gt;(properties.memlimit_active) * bmalloc::MB;

What if memlimit_active is -1, which may happen during development. Might it be better to just convert -1 to max&lt;size_t&gt; or some max value of our choice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445862</commentid>
    <comment_count>17</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-27 14:08:32 -0700</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #16)
&gt; Comment on attachment 345940 [details]
&gt; patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=345940&amp;action=review
&gt; 
&gt; &gt; Source/bmalloc/bmalloc/AvailableMemory.cpp:85
&gt; &gt; +    return static_cast&lt;size_t&gt;(properties.memlimit_active) * bmalloc::MB;
&gt; 
&gt; What if memlimit_active is -1, which may happen during development. Might it
&gt; be better to just convert -1 to max&lt;size_t&gt; or some max value of our choice?

I&apos;ll make a patch to explicitly handle it (though in practice this means we currently size_t max)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345903</attachid>
            <date>2018-07-26 23:51:27 -0700</date>
            <delta_ts>2018-07-26 23:53:28 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>6013</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHM6
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRsZW1lbnRzOgor
CiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5Pgog
CiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1l
bnRzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2Vz
LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMJKHdvcmtpbmcgY29weSkKQEAg
LTYsNSArNiw3IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZTwvc3RyaW5nPgogCTwvYXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0
dXM8L2tleT4KKwk8dHJ1ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMJKHJl
dmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29yay1p
T1MuZW50aXRsZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw1ICsxNiw3IEBACiAJPGFycmF5
PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzwvc3RyaW5nPgogCTwvYXJy
YXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1ZS8+
CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9X
ZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMw
OCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRs
ZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw1ICsyOSw3IEBACiAJCTxzdHJpbmc+a1RDQ1Nl
cnZpY2VNaWNyb3Bob25lPC9zdHJpbmc+CiAJCTxzdHJpbmc+a1RDQ1NlcnZpY2VDYW1lcmE8L3N0
cmluZz4KIAk8L2FycmF5PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUubWVtb3J5c3RhdHVzPC9r
ZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUgamV0c2FtIGxpbWl0IG9uIGlPUyBp
bnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NDc2
OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2FudCBibWFsbG9jIHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2Yg
dGhlIHByb2Nlc3MKKyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBi
YXNlZCBvZmYgYm1hbGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBu
b3cgcmVmbGVjdCB0aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNh
bgorICAgICAgICByZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2Ft
IGxpbWl0IHJlcXVpcmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAg
ICAgICAgdGhlIFdlYkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBi
YWNrIHRvIDg0ME1CICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhl
IFNQSSBjYWxsIGZhaWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdp
dGhvdXQgdGhlIHByb3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jL0F2YWls
YWJsZU1lbW9yeS5jcHA6CisgICAgICAgIChibWFsbG9jOjpqZXRzYW1MaW1pdCk6CisgICAgICAg
IChibWFsbG9jOjpjb21wdXRlQXZhaWxhYmxlTWVtb3J5KToKKwogMjAxOC0wNy0yNCAgU2FhbSBC
YXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgYmFjayB0byB1c2lu
ZyBwaHlzX2Zvb3RwcmludCB0byBjYWxjdWxhdGUgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMzQgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNl
bmRpZgogCisjaWYgQlBMQVRGT1JNKElPUykKKyNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lz
L2tlcm5fbWVtb3J5c3RhdHVzLmg+KQorZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPgorfQorI2Vsc2UKK2V4dGVybiAiQyIgeworCit0eXBlZGVm
IHN0cnVjdCBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllcyB7CisgICAgaW50MzJfdCBt
ZW1saW1pdF9hY3RpdmU7ICAgICAgICAgICAgICAgIC8qIGpldHNhbSBtZW1vcnkgbGltaXQgKGlu
IE1CKSB3aGVuIHByb2Nlc3MgaXMgYWN0aXZlICovCisgICAgdWludDMyX3QgbWVtbGltaXRfYWN0
aXZlX2F0dHI7CisgICAgaW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZTsgICAgICAgICAgICAgIC8q
IGpldHNhbSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nlc3MgaXMgaW5hY3RpdmUgKi8K
KyAgICB1aW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZV9hdHRyOworfSBtZW1vcnlzdGF0dXNfbWVt
bGltaXRfcHJvcGVydGllc190OworCisjZGVmaW5lIE1FTU9SWVNUQVRVU19DTURfR0VUX01FTUxJ
TUlUX1BST1BFUlRJRVMgOAorCit9CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPikKKworZXh0ZXJuICJDIiB7CitpbnQgbWVtb3J5c3RhdHVz
X2NvbnRyb2wodWludDMyX3QgY29tbWFuZCwgaW50MzJfdCBwaWQsIHVpbnQzMl90IGZsYWdzLCB2
b2lkICpidWZmZXIsIHNpemVfdCBidWZmZXJzaXplKTsKK30KKworI2VuZGlmIC8vIEJQTEFURk9S
TShJT1MpCisKKyNpbmNsdWRlIDxzeXMvc3lzbG9nLmg+CisKIG5hbWVzcGFjZSBibWFsbG9jIHsK
IAogc3RhdGljIGNvbnN0IHNpemVfdCBhdmFpbGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxs
b2M6Ok1COwpAQCAtNzIsMTggKzEwMCwzMyBAQCBzdGF0aWMgc2l6ZV90IG1lbW9yeVNpemVBY2Nv
cmRpbmdUb0tlcm5lCiB9CiAjZW5kaWYKIAorI2lmIEJQTEFURk9STShJT1MpCitzdGF0aWMgc2l6
ZV90IGpldHNhbUxpbWl0KCkKK3sKKwltZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllc190
IG1wcm9wczsKKwlwaWRfdCBwaWQgPSBnZXRwaWQoKTsKKwlpZiAobWVtb3J5c3RhdHVzX2NvbnRy
b2woTUVNT1JZU1RBVFVTX0NNRF9HRVRfTUVNTElNSVRfUFJPUEVSVElFUywgcGlkLCAwLCAmbXBy
b3BzLCBzaXplb2YobXByb3BzKSkpCisgICAgICAgIHJldHVybiA4NDAgKiBibWFsbG9jOjpNQjsK
KyAgICBhdXRvIHJlc3VsdCA9IHN0YXRpY19jYXN0PHNpemVfdD4obXByb3BzLm1lbWxpbWl0X2Fj
dGl2ZSkgKiBibWFsbG9jOjpNQjsKKyAgICBzeXNsb2coTE9HX1dBUk5JTkcsICJzYWFtOiAlbGZN
QiBqZXRzYW0gbGltaXQiLCBzdGF0aWNfY2FzdDxkb3VibGU+KHJlc3VsdCkvMTAyNC8xMDI0KTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCisKIHN0YXRpYyBzaXplX3QgY29tcHV0ZUF2
YWlsYWJsZU1lbW9yeSgpCiB7CiAjaWYgQk9TKERBUldJTikKICAgICBzaXplX3Qgc2l6ZUFjY29y
ZGluZ1RvS2VybmVsID0gbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmVsKCk7CiAjaWYgQlBMQVRG
T1JNKElPUykKLSAgICBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBzdGQ6Om1pbihzaXplQWNjb3Jk
aW5nVG9LZXJuZWwsIDg0MCAqIGJtYWxsb2M6Ok1CKTsKKyAgICBzaXplQWNjb3JkaW5nVG9LZXJu
ZWwgPSBzdGQ6Om1pbihzaXplQWNjb3JkaW5nVG9LZXJuZWwsIGpldHNhbUxpbWl0KCkpOwogI2Vu
ZGlmCiAgICAgc2l6ZV90IG11bHRpcGxlID0gMTI4ICogYm1hbGxvYzo6TUI7CiAKICAgICAvLyBS
b3VuZCB1cCB0aGUgbWVtb3J5IHNpemUgdG8gYSBtdWx0aXBsZSBvZiAxMjhNQiBiZWNhdXNlIG1h
eF9tZW0gbWF5IG5vdCBiZSBleGFjdGx5IDUxMk1CCiAgICAgLy8gKGZvciBleGFtcGxlKSBhbmQg
d2UgaGF2ZSBjb2RlIHRoYXQgZGVwZW5kcyBvbiB0aG9zZSBib3VuZGFyaWVzLgotICAgIHJldHVy
biAoKHNpemVBY2NvcmRpbmdUb0tlcm5lbCArIG11bHRpcGxlIC0gMSkgLyBtdWx0aXBsZSkgKiBt
dWx0aXBsZTsKKyAgICBhdXRvIHJlc3VsdCA9ICgoc2l6ZUFjY29yZGluZ1RvS2VybmVsICsgbXVs
dGlwbGUgLSAxKSAvIG11bHRpcGxlKSAqIG11bHRpcGxlOworICAgIHN5c2xvZyhMT0dfV0FSTklO
RywgInNhYW06ICVsZk1CIGF2YWlsYWJsZU1lbW9yeSIsIHN0YXRpY19jYXN0PGRvdWJsZT4ocmVz
dWx0KS8xMDI0LzEwMjQpOworICAgIHJldHVybiByZXN1bHQ7CiAjZWxpZiBCT1MoVU5JWCkKICAg
ICBsb25nIHBhZ2VzID0gc3lzY29uZihfU0NfUEhZU19QQUdFUyk7CiAgICAgbG9uZyBwYWdlU2l6
ZSA9IHN5c2NvbmYoX1NDX1BBR0VfU0laRSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345904</attachid>
            <date>2018-07-26 23:53:28 -0700</date>
            <delta_ts>2018-07-26 23:55:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>5315</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHM6
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRsZW1lbnRzOgor
CiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5Pgog
CiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1l
bnRzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2Vz
LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMJKHdvcmtpbmcgY29weSkKQEAg
LTYsNSArNiw3IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZTwvc3RyaW5nPgogCTwvYXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0
dXM8L2tleT4KKwk8dHJ1ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMJKHJl
dmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29yay1p
T1MuZW50aXRsZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw1ICsxNiw3IEBACiAJPGFycmF5
PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzwvc3RyaW5nPgogCTwvYXJy
YXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1ZS8+
CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9X
ZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMw
OCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRs
ZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw1ICsyOSw3IEBACiAJCTxzdHJpbmc+a1RDQ1Nl
cnZpY2VNaWNyb3Bob25lPC9zdHJpbmc+CiAJCTxzdHJpbmc+a1RDQ1NlcnZpY2VDYW1lcmE8L3N0
cmluZz4KIAk8L2FycmF5PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUubWVtb3J5c3RhdHVzPC9r
ZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUgamV0c2FtIGxpbWl0IG9uIGlPUyBp
bnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NDc2
OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2FudCBibWFsbG9jIHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2Yg
dGhlIHByb2Nlc3MKKyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBi
YXNlZCBvZmYgYm1hbGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBu
b3cgcmVmbGVjdCB0aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNh
bgorICAgICAgICByZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2Ft
IGxpbWl0IHJlcXVpcmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAg
ICAgICAgdGhlIFdlYkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBi
YWNrIHRvIDg0ME1CICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhl
IFNQSSBjYWxsIGZhaWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdp
dGhvdXQgdGhlIHByb3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jL0F2YWls
YWJsZU1lbW9yeS5jcHA6CisgICAgICAgIChibWFsbG9jOjpqZXRzYW1MaW1pdCk6CisgICAgICAg
IChibWFsbG9jOjpjb21wdXRlQXZhaWxhYmxlTWVtb3J5KToKKwogMjAxOC0wNy0yNCAgU2FhbSBC
YXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgYmFjayB0byB1c2lu
ZyBwaHlzX2Zvb3RwcmludCB0byBjYWxjdWxhdGUgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMzIgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNl
bmRpZgogCisjaWYgQlBMQVRGT1JNKElPUykKKyNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lz
L2tlcm5fbWVtb3J5c3RhdHVzLmg+KQorZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPgorfQorI2Vsc2UKK2V4dGVybiAiQyIgeworCit0eXBlZGVm
IHN0cnVjdCBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllcyB7CisgICAgaW50MzJfdCBt
ZW1saW1pdF9hY3RpdmU7ICAgICAgICAgICAgICAgIC8qIGpldHNhbSBtZW1vcnkgbGltaXQgKGlu
IE1CKSB3aGVuIHByb2Nlc3MgaXMgYWN0aXZlICovCisgICAgdWludDMyX3QgbWVtbGltaXRfYWN0
aXZlX2F0dHI7CisgICAgaW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZTsgICAgICAgICAgICAgIC8q
IGpldHNhbSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nlc3MgaXMgaW5hY3RpdmUgKi8K
KyAgICB1aW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZV9hdHRyOworfSBtZW1vcnlzdGF0dXNfbWVt
bGltaXRfcHJvcGVydGllc190OworCisjZGVmaW5lIE1FTU9SWVNUQVRVU19DTURfR0VUX01FTUxJ
TUlUX1BST1BFUlRJRVMgOAorCit9CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPikKKworZXh0ZXJuICJDIiB7CitpbnQgbWVtb3J5c3RhdHVz
X2NvbnRyb2wodWludDMyX3QgY29tbWFuZCwgaW50MzJfdCBwaWQsIHVpbnQzMl90IGZsYWdzLCB2
b2lkICpidWZmZXIsIHNpemVfdCBidWZmZXJzaXplKTsKK30KKworI2VuZGlmIC8vIEJQTEFURk9S
TShJT1MpCisKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBhdmFp
bGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxsb2M6Ok1COwpAQCAtNzIsMTIgKzk4LDIzIEBA
IHN0YXRpYyBzaXplX3QgbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmUKIH0KICNlbmRpZgogCisj
aWYgQlBMQVRGT1JNKElPUykKK3N0YXRpYyBzaXplX3QgamV0c2FtTGltaXQoKQoreworCW1lbW9y
eXN0YXR1c19tZW1saW1pdF9wcm9wZXJ0aWVzX3QgbXByb3BzOworCXBpZF90IHBpZCA9IGdldHBp
ZCgpOworCWlmIChtZW1vcnlzdGF0dXNfY29udHJvbChNRU1PUllTVEFUVVNfQ01EX0dFVF9NRU1M
SU1JVF9QUk9QRVJUSUVTLCBwaWQsIDAsICZtcHJvcHMsIHNpemVvZihtcHJvcHMpKSkKKyAgICAg
ICAgcmV0dXJuIDg0MCAqIGJtYWxsb2M6Ok1COworICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXpl
X3Q+KG1wcm9wcy5tZW1saW1pdF9hY3RpdmUpICogYm1hbGxvYzo6TUI7Cit9CisjZW5kaWYKKwog
c3RhdGljIHNpemVfdCBjb21wdXRlQXZhaWxhYmxlTWVtb3J5KCkKIHsKICNpZiBCT1MoREFSV0lO
KQogICAgIHNpemVfdCBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBtZW1vcnlTaXplQWNjb3JkaW5n
VG9LZXJuZWwoKTsKICNpZiBCUExBVEZPUk0oSU9TKQotICAgIHNpemVBY2NvcmRpbmdUb0tlcm5l
bCA9IHN0ZDo6bWluKHNpemVBY2NvcmRpbmdUb0tlcm5lbCwgODQwICogYm1hbGxvYzo6TUIpOwor
ICAgIHNpemVBY2NvcmRpbmdUb0tlcm5lbCA9IHN0ZDo6bWluKHNpemVBY2NvcmRpbmdUb0tlcm5l
bCwgamV0c2FtTGltaXQoKSk7CiAjZW5kaWYKICAgICBzaXplX3QgbXVsdGlwbGUgPSAxMjggKiBi
bWFsbG9jOjpNQjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345905</attachid>
            <date>2018-07-26 23:55:13 -0700</date>
            <delta_ts>2018-07-26 23:56:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>5324</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHM6
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRsZW1lbnRzOgor
CiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5Pgog
CiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1l
bnRzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2Vz
LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMJKHdvcmtpbmcgY29weSkKQEAg
LTYsNSArNiw3IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZTwvc3RyaW5nPgogCTwvYXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0
dXM8L2tleT4KKwk8dHJ1ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMJKHJl
dmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29yay1p
T1MuZW50aXRsZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw1ICsxNiw3IEBACiAJPGFycmF5
PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzwvc3RyaW5nPgogCTwvYXJy
YXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1ZS8+
CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9X
ZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMw
OCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRs
ZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw1ICsyOSw3IEBACiAJCTxzdHJpbmc+a1RDQ1Nl
cnZpY2VNaWNyb3Bob25lPC9zdHJpbmc+CiAJCTxzdHJpbmc+a1RDQ1NlcnZpY2VDYW1lcmE8L3N0
cmluZz4KIAk8L2FycmF5PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUubWVtb3J5c3RhdHVzPC9r
ZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUgamV0c2FtIGxpbWl0IG9uIGlPUyBp
bnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NDc2
OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2FudCBibWFsbG9jIHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2Yg
dGhlIHByb2Nlc3MKKyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBi
YXNlZCBvZmYgYm1hbGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBu
b3cgcmVmbGVjdCB0aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNh
bgorICAgICAgICByZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2Ft
IGxpbWl0IHJlcXVpcmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAg
ICAgICAgdGhlIFdlYkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBi
YWNrIHRvIDg0ME1CICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhl
IFNQSSBjYWxsIGZhaWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdp
dGhvdXQgdGhlIHByb3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jL0F2YWls
YWJsZU1lbW9yeS5jcHA6CisgICAgICAgIChibWFsbG9jOjpqZXRzYW1MaW1pdCk6CisgICAgICAg
IChibWFsbG9jOjpjb21wdXRlQXZhaWxhYmxlTWVtb3J5KToKKwogMjAxOC0wNy0yNCAgU2FhbSBC
YXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgYmFjayB0byB1c2lu
ZyBwaHlzX2Zvb3RwcmludCB0byBjYWxjdWxhdGUgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMzIgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNl
bmRpZgogCisjaWYgQlBMQVRGT1JNKElPUykKKyNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lz
L2tlcm5fbWVtb3J5c3RhdHVzLmg+KQorZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPgorfQorI2Vsc2UKK2V4dGVybiAiQyIgeworCit0eXBlZGVm
IHN0cnVjdCBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllcyB7CisgICAgaW50MzJfdCBt
ZW1saW1pdF9hY3RpdmU7ICAgICAgICAgICAgICAgIC8qIGpldHNhbSBtZW1vcnkgbGltaXQgKGlu
IE1CKSB3aGVuIHByb2Nlc3MgaXMgYWN0aXZlICovCisgICAgdWludDMyX3QgbWVtbGltaXRfYWN0
aXZlX2F0dHI7CisgICAgaW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZTsgICAgICAgICAgICAgIC8q
IGpldHNhbSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nlc3MgaXMgaW5hY3RpdmUgKi8K
KyAgICB1aW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZV9hdHRyOworfSBtZW1vcnlzdGF0dXNfbWVt
bGltaXRfcHJvcGVydGllc190OworCisjZGVmaW5lIE1FTU9SWVNUQVRVU19DTURfR0VUX01FTUxJ
TUlUX1BST1BFUlRJRVMgOAorCit9CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPikKKworZXh0ZXJuICJDIiB7CitpbnQgbWVtb3J5c3RhdHVz
X2NvbnRyb2wodWludDMyX3QgY29tbWFuZCwgaW50MzJfdCBwaWQsIHVpbnQzMl90IGZsYWdzLCB2
b2lkICpidWZmZXIsIHNpemVfdCBidWZmZXJzaXplKTsKK30KKworI2VuZGlmIC8vIEJQTEFURk9S
TShJT1MpCisKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBhdmFp
bGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxsb2M6Ok1COwpAQCAtNzIsMTIgKzk4LDIzIEBA
IHN0YXRpYyBzaXplX3QgbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmUKIH0KICNlbmRpZgogCisj
aWYgQlBMQVRGT1JNKElPUykKK3N0YXRpYyBzaXplX3QgamV0c2FtTGltaXQoKQoreworICAgIG1l
bW9yeXN0YXR1c19tZW1saW1pdF9wcm9wZXJ0aWVzX3QgbXByb3BzOworICAgIHBpZF90IHBpZCA9
IGdldHBpZCgpOworICAgIGlmIChtZW1vcnlzdGF0dXNfY29udHJvbChNRU1PUllTVEFUVVNfQ01E
X0dFVF9NRU1MSU1JVF9QUk9QRVJUSUVTLCBwaWQsIDAsICZtcHJvcHMsIHNpemVvZihtcHJvcHMp
KSkKKyAgICAgICAgcmV0dXJuIDg0MCAqIGJtYWxsb2M6Ok1COworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxzaXplX3Q+KG1wcm9wcy5tZW1saW1pdF9hY3RpdmUpICogYm1hbGxvYzo6TUI7Cit9Cisj
ZW5kaWYKKwogc3RhdGljIHNpemVfdCBjb21wdXRlQXZhaWxhYmxlTWVtb3J5KCkKIHsKICNpZiBC
T1MoREFSV0lOKQogICAgIHNpemVfdCBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBtZW1vcnlTaXpl
QWNjb3JkaW5nVG9LZXJuZWwoKTsKICNpZiBCUExBVEZPUk0oSU9TKQotICAgIHNpemVBY2NvcmRp
bmdUb0tlcm5lbCA9IHN0ZDo6bWluKHNpemVBY2NvcmRpbmdUb0tlcm5lbCwgODQwICogYm1hbGxv
Yzo6TUIpOworICAgIHNpemVBY2NvcmRpbmdUb0tlcm5lbCA9IHN0ZDo6bWluKHNpemVBY2NvcmRp
bmdUb0tlcm5lbCwgamV0c2FtTGltaXQoKSk7CiAjZW5kaWYKICAgICBzaXplX3QgbXVsdGlwbGUg
PSAxMjggKiBibWFsbG9jOjpNQjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345906</attachid>
            <date>2018-07-26 23:56:05 -0700</date>
            <delta_ts>2018-07-27 12:08:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>5340</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0bGVt
ZW50czoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHM6
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRsZW1lbnRzOgor
CiAyMDE4LTA3LTI2ICBBbmR5IFZhbldhZ29uZXIgIDxhbmR5QHZhbndhZ29uZXIuZmFtaWx5Pgog
CiAgICAgICAgIFtJTlRMXSBSZW1vdmUgSU5UTCBzdWItZmVhdHVyZSBjb21waWxlIGZsYWdzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1l
bnRzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2Vz
LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMJKHdvcmtpbmcgY29weSkKQEAg
LTYsNSArNiw3IEBACiAJPGFycmF5PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZTwvc3RyaW5nPgogCTwvYXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0
dXM8L2tleT4KKwk8dHJ1ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxlbWVudHMJKHJl
dmlzaW9uIDIzNDMwOCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvTmV0d29yay1p
T1MuZW50aXRsZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw1ICsxNiw3IEBACiAJPGFycmF5
PgogCQk8c3RyaW5nPmNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZzwvc3RyaW5nPgogCTwvYXJy
YXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1ZS8+
CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9X
ZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHJldmlzaW9uIDIzNDMw
OCkKKysrIFNvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViQ29udGVudC1pT1MuZW50aXRs
ZW1lbnRzCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw1ICsyOSw3IEBACiAJCTxzdHJpbmc+a1RDQ1Nl
cnZpY2VNaWNyb3Bob25lPC9zdHJpbmc+CiAJCTxzdHJpbmc+a1RDQ1NlcnZpY2VDYW1lcmE8L3N0
cmluZz4KIAk8L2FycmF5PgorCTxrZXk+Y29tLmFwcGxlLnByaXZhdGUubWVtb3J5c3RhdHVzPC9r
ZXk+CisJPHRydWUvPgogPC9kaWN0PgogPC9wbGlzdD4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDE4LTA3LTI2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUgamV0c2FtIGxpbWl0IG9uIGlPUyBp
bnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDI2NDc2
OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
d2FudCBibWFsbG9jIHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2Yg
dGhlIHByb2Nlc3MKKyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBi
YXNlZCBvZmYgYm1hbGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBu
b3cgcmVmbGVjdCB0aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNh
bgorICAgICAgICByZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2Ft
IGxpbWl0IHJlcXVpcmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAg
ICAgICAgdGhlIFdlYkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBi
YWNrIHRvIDg0ME1CICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhl
IFNQSSBjYWxsIGZhaWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdp
dGhvdXQgdGhlIHByb3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jL0F2YWls
YWJsZU1lbW9yeS5jcHA6CisgICAgICAgIChibWFsbG9jOjpqZXRzYW1MaW1pdCk6CisgICAgICAg
IChibWFsbG9jOjpjb21wdXRlQXZhaWxhYmxlTWVtb3J5KToKKwogMjAxOC0wNy0yNCAgU2FhbSBC
YXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgYmFjayB0byB1c2lu
ZyBwaHlzX2Zvb3RwcmludCB0byBjYWxjdWxhdGUgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHJldmlzaW9u
IDIzNDMwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMzIgQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNl
bmRpZgogCisjaWYgQlBMQVRGT1JNKElPUykKKyNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lz
L2tlcm5fbWVtb3J5c3RhdHVzLmg+KQorZXh0ZXJuICJDIiB7CisjaW5jbHVkZSA8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPgorfQorI2Vsc2UKK2V4dGVybiAiQyIgeworCit0eXBlZGVm
IHN0cnVjdCBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllcyB7CisgICAgaW50MzJfdCBt
ZW1saW1pdF9hY3RpdmU7ICAgICAgICAgICAgICAgIC8qIGpldHNhbSBtZW1vcnkgbGltaXQgKGlu
IE1CKSB3aGVuIHByb2Nlc3MgaXMgYWN0aXZlICovCisgICAgdWludDMyX3QgbWVtbGltaXRfYWN0
aXZlX2F0dHI7CisgICAgaW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZTsgICAgICAgICAgICAgIC8q
IGpldHNhbSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nlc3MgaXMgaW5hY3RpdmUgKi8K
KyAgICB1aW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZV9hdHRyOworfSBtZW1vcnlzdGF0dXNfbWVt
bGltaXRfcHJvcGVydGllc190OworCisjZGVmaW5lIE1FTU9SWVNUQVRVU19DTURfR0VUX01FTUxJ
TUlUX1BST1BFUlRJRVMgOAorCit9CisjZW5kaWYgLy8gX19oYXNfaW5jbHVkZSg8U3lzdGVtL3N5
cy9rZXJuX21lbW9yeXN0YXR1cy5oPikKKworZXh0ZXJuICJDIiB7CitpbnQgbWVtb3J5c3RhdHVz
X2NvbnRyb2wodWludDMyX3QgY29tbWFuZCwgaW50MzJfdCBwaWQsIHVpbnQzMl90IGZsYWdzLCB2
b2lkICpidWZmZXIsIHNpemVfdCBidWZmZXJzaXplKTsKK30KKworI2VuZGlmIC8vIEJQTEFURk9S
TShJT1MpCisKIG5hbWVzcGFjZSBibWFsbG9jIHsKIAogc3RhdGljIGNvbnN0IHNpemVfdCBhdmFp
bGFibGVNZW1vcnlHdWVzcyA9IDUxMiAqIGJtYWxsb2M6Ok1COwpAQCAtNzIsMTIgKzk4LDIzIEBA
IHN0YXRpYyBzaXplX3QgbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmUKIH0KICNlbmRpZgogCisj
aWYgQlBMQVRGT1JNKElPUykKK3N0YXRpYyBzaXplX3QgamV0c2FtTGltaXQoKQoreworICAgIG1l
bW9yeXN0YXR1c19tZW1saW1pdF9wcm9wZXJ0aWVzX3QgcHJvcGVydGllczsKKyAgICBwaWRfdCBw
aWQgPSBnZXRwaWQoKTsKKyAgICBpZiAobWVtb3J5c3RhdHVzX2NvbnRyb2woTUVNT1JZU1RBVFVT
X0NNRF9HRVRfTUVNTElNSVRfUFJPUEVSVElFUywgcGlkLCAwLCAmcHJvcGVydGllcywgc2l6ZW9m
KHByb3BlcnRpZXMpKSkKKyAgICAgICAgcmV0dXJuIDg0MCAqIGJtYWxsb2M6Ok1COworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BlcnRpZXMubWVtbGltaXRfYWN0aXZlKSAqIGJt
YWxsb2M6Ok1COworfQorI2VuZGlmCisKIHN0YXRpYyBzaXplX3QgY29tcHV0ZUF2YWlsYWJsZU1l
bW9yeSgpCiB7CiAjaWYgQk9TKERBUldJTikKICAgICBzaXplX3Qgc2l6ZUFjY29yZGluZ1RvS2Vy
bmVsID0gbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmVsKCk7CiAjaWYgQlBMQVRGT1JNKElPUykK
LSAgICBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBzdGQ6Om1pbihzaXplQWNjb3JkaW5nVG9LZXJu
ZWwsIDg0MCAqIGJtYWxsb2M6Ok1CKTsKKyAgICBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBzdGQ6
Om1pbihzaXplQWNjb3JkaW5nVG9LZXJuZWwsIGpldHNhbUxpbWl0KCkpOwogI2VuZGlmCiAgICAg
c2l6ZV90IG11bHRpcGxlID0gMTI4ICogYm1hbGxvYzo6TUI7CiAK
</data>
<flag name="review"
          id="363818"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345932</attachid>
            <date>2018-07-27 12:08:52 -0700</date>
            <delta_ts>2018-07-27 12:49:40 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>10884</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA3LTI3ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIEdpdmUgdGhlIE5ldHdvcmsvU3RvcmFnZS9XZWJDb250ZW50IHByb2Nl
c3MgdGhlIGNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1cworICAgICAgICBlbnRpdGxlbWVu
dC4gVGhpcyBhbGxvd3MgdGhlbSB0byByZWFkIHRoZSBwcm9jZXNzIGpldHNhbSBsaW1pdC4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzOgorICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50czoKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHM6CisKIDIwMTgtMDct
MjYgIEFuZHkgVmFuV2Fnb25lciAgPGFuZHlAdmFud2Fnb25lci5mYW1pbHk+CiAKICAgICAgICAg
W0lOVExdIFJlbW92ZSBJTlRMIHN1Yi1mZWF0dXJlIGNvbXBpbGUgZmxhZ3MKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0
bGVtZW50cwkocmV2aXNpb24gMjM0MzA4KQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9EYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cwkod29ya2luZyBjb3B5KQpAQCAtNiw1ICs2LDcg
QEAKIAk8YXJyYXk+CiAJCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlPC9zdHJpbmc+
CiAJPC9hcnJheT4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5Pgor
CTx0cnVlLz4KIDwvZGljdD4KIDwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50cwkocmV2aXNpb24gMjM0
MzA4KQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxl
bWVudHMJKHdvcmtpbmcgY29weSkKQEAgLTE2LDUgKzE2LDcgQEAKIAk8YXJyYXk+CiAJCTxzdHJp
bmc+Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nPC9zdHJpbmc+CiAJPC9hcnJheT4KKwk8a2V5
PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5PgorCTx0cnVlLz4KIDwvZGljdD4K
IDwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkNvbnRlbnQt
aU9TLmVudGl0bGVtZW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYkNvbnRlbnQtaU9TLmVudGl0bGVtZW50cwkocmV2aXNpb24gMjM0MzA4KQorKysgU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDUgKzI5LDcgQEAKIAkJPHN0cmluZz5rVENDU2VydmljZU1pY3Jv
cGhvbmU8L3N0cmluZz4KIAkJPHN0cmluZz5rVENDU2VydmljZUNhbWVyYTwvc3RyaW5nPgogCTwv
YXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1
ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkocmV2aXNpb24gMjM0MzI0KQor
KysgU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTgtMDctMjcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIFNQSSB0byBjb21wdXRlIHRoZSBqZXRzYW0gbGltaXQgb24gaU9TIGluc3RlYWQgb2Yg
aGFyZGNvZGluZyA4NDBNQgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg4MDkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MjY0NzY5Nz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2Ugd2FudCBibWFsbG9j
IHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2YgdGhlIHByb2Nlc3MK
KyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBiYXNlZCBvZmYgYm1h
bGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBub3cgcmVmbGVjdCB0
aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNhbgorICAgICAgICBy
ZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2FtIGxpbWl0IHJlcXVp
cmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAgICAgICAgdGhlIFdl
YkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBiYWNrIHRvIDg0ME1C
ICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhlIFNQSSBjYWxsIGZh
aWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdpdGhvdXQgdGhlIHBy
b3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwOgorICAgICAg
ICAoYm1hbGxvYzo6amV0c2FtTGltaXQpOgorICAgICAgICAoYm1hbGxvYzo6Y29tcHV0ZUF2YWls
YWJsZU1lbW9yeSk6CisgICAgICAgICogYm1hbGxvYy9kYXJ3aW4vTWVtb3J5U3RhdHVzU1BJLmg6
IEFkZGVkLgorCiAyMDE4LTA3LTI0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCBiYWNrIHRvIHVzaW5nIHBoeXNfZm9vdHByaW50IHRvIGNhbGN1bGF0
ZSBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjM0MzA4KQorKysgU291
cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzEsNiArMTMxLDcgQEAKIAkJNDQyNkUyODAxQzgzOEVFMDAwOEVCMDQyIC8qIExv
Z2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovOyB9OwogCQk0NDI2RTI4
MTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NDI2
RTI4MzFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi87IH07CisJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1v
cnlTdGF0dXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRjQ3MjQ4MjEwQkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLzsgfTsK
IAkJNjU0M0REQjQyMEVFQUVGMzAwM0IyM0Q4IC8qIFBlclRocmVhZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQzRERCMzIwRUVBRUYzMDAzQjIz
RDggLyogUGVyVGhyZWFkLmNwcCAqLzsgfTsKIAkJNjU5OUM1Q0MxRUMzRjE1OTAwQTJGN0JCIC8q
IEF2YWlsYWJsZU1lbW9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NTk5QzVDQTFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNw
cCAqLzsgfTsKIAkJNjU5OUM1Q0QxRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5OUM1Q0Ix
RUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yOTMsNiArMjk0LDcgQEAKIAkJNDQyNkUy
N0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTG9nZ2luZy5jcHA7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyog
TG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBh
dGggPSBibWFsbG9jL0xvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
NkUyODIxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCU29mdExpbmtpbmcuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL0JT
b2Z0TGlua2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkY0NzI0ODIxMEJB
MkY1MDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1lbW9yeVN0YXR1c1NQSS5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vTWVtb3J5
U3RhdHVzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDNEREIzMjBFRUFF
RjMwMDNCMjNEOCAvKiBQZXJUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyVGhyZWFk
LmNwcDsgcGF0aCA9IGJtYWxsb2MvUGVyVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjU5OUM1Q0ExRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdmFpbGFibGVNZW1vcnkuY3Bw
OyBwYXRoID0gYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2NTk5QzVDQjFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF2YWlsYWJsZU1lbW9yeS5oOyBwYXRo
ID0gYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU1MSw2ICs1NTMsNyBAQAogCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVDNjQgLyogZGFyd2lu
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MkY0NzI0
ODIxMEJBMkY1MDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggKi8sCiAJCQkJNDQyNkUyODIx
QzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBk
YXJ3aW47CkBAIC01ODAsNiArNTgzLDcgQEAKIAkJCQkwRjVCRjE3MzFGMjNDNTcxMDAyOUQ5MUQg
LyogQkV4cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QzkxOEY0OEQ3NTAwOTUwNzAy
IC8qIEJJbmxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODRDMUY5NTQxQzcwMEYxQUJD
QiAvKiBCaXRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MkY0NzI0OTIxMEJBMzAyMDBCNzMwQkIg
LyogTWVtb3J5U3RhdHVzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ4QzMwMTE4RjM3NTRD
MDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NEQxRjk1NDFD
NzAwRjFBQkNCIC8qIEJNYWxsb2NlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDOTE5QzkxOEZD
QzU5RjAwMjhEQjQzIC8qIEJQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCShyZXZpc2lvbiAyMzQzMDgpCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJBdmFpbGFibGVNZW1vcnkuaCIKIAogI2lu
Y2x1ZGUgIkVudmlyb25tZW50LmgiCisjaW5jbHVkZSAiTWVtb3J5U3RhdHVzU1BJLmgiCiAjaW5j
bHVkZSAiUGVyUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlNjYXZlbmdlci5oIgogI2luY2x1ZGUgIlNp
emVzLmgiCkBAIC03MiwxMiArNzMsMjMgQEAgc3RhdGljIHNpemVfdCBtZW1vcnlTaXplQWNjb3Jk
aW5nVG9LZXJuZQogfQogI2VuZGlmCiAKKyNpZiBCUExBVEZPUk0oSU9TKQorc3RhdGljIHNpemVf
dCBqZXRzYW1MaW1pdCgpCit7CisgICAgbWVtb3J5c3RhdHVzX21lbWxpbWl0X3Byb3BlcnRpZXNf
dCBwcm9wZXJ0aWVzOworICAgIHBpZF90IHBpZCA9IGdldHBpZCgpOworICAgIGlmIChtZW1vcnlz
dGF0dXNfY29udHJvbChNRU1PUllTVEFUVVNfQ01EX0dFVF9NRU1MSU1JVF9QUk9QRVJUSUVTLCBw
aWQsIDAsICZwcm9wZXJ0aWVzLCBzaXplb2YocHJvcGVydGllcykpKQorICAgICAgICByZXR1cm4g
ODQwICogYm1hbGxvYzo6TUI7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcGVy
dGllcy5tZW1saW1pdF9hY3RpdmUpICogYm1hbGxvYzo6TUI7Cit9CisjZW5kaWYKKwogc3RhdGlj
IHNpemVfdCBjb21wdXRlQXZhaWxhYmxlTWVtb3J5KCkKIHsKICNpZiBCT1MoREFSV0lOKQogICAg
IHNpemVfdCBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBtZW1vcnlTaXplQWNjb3JkaW5nVG9LZXJu
ZWwoKTsKICNpZiBCUExBVEZPUk0oSU9TKQotICAgIHNpemVBY2NvcmRpbmdUb0tlcm5lbCA9IHN0
ZDo6bWluKHNpemVBY2NvcmRpbmdUb0tlcm5lbCwgODQwICogYm1hbGxvYzo6TUIpOworICAgIHNp
emVBY2NvcmRpbmdUb0tlcm5lbCA9IHN0ZDo6bWluKHNpemVBY2NvcmRpbmdUb0tlcm5lbCwgamV0
c2FtTGltaXQoKSk7CiAjZW5kaWYKICAgICBzaXplX3QgbXVsdGlwbGUgPSAxMjggKiBibWFsbG9j
OjpNQjsKIApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9kYXJ3aW4vTWVtb3J5U3RhdHVz
U1BJLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy9kYXJ3aW4vTWVtb3J5
U3RhdHVzU1BJLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy9kYXJ3
aW4vTWVtb3J5U3RhdHVzU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgorCisjaWYg
QlBMQVRGT1JNKElPUykKKworI2lmIF9faGFzX2luY2x1ZGUoPFN5c3RlbS9zeXMva2Vybl9tZW1v
cnlzdGF0dXMuaD4pCitleHRlcm4gIkMiIHsKKyNpbmNsdWRlIDxTeXN0ZW0vc3lzL2tlcm5fbWVt
b3J5c3RhdHVzLmg+Cit9CisjZWxzZQorZXh0ZXJuICJDIiB7CisKK3R5cGVkZWYgc3RydWN0IG1l
bW9yeXN0YXR1c19tZW1saW1pdF9wcm9wZXJ0aWVzIHsKKyAgICBpbnQzMl90IG1lbWxpbWl0X2Fj
dGl2ZTsgICAgICAgICAgICAgICAgLyogamV0c2FtIG1lbW9yeSBsaW1pdCAoaW4gTUIpIHdoZW4g
cHJvY2VzcyBpcyBhY3RpdmUgKi8KKyAgICB1aW50MzJfdCBtZW1saW1pdF9hY3RpdmVfYXR0cjsK
KyAgICBpbnQzMl90IG1lbWxpbWl0X2luYWN0aXZlOyAgICAgICAgICAgICAgLyogamV0c2FtIG1l
bW9yeSBsaW1pdCAoaW4gTUIpIHdoZW4gcHJvY2VzcyBpcyBpbmFjdGl2ZSAqLworICAgIHVpbnQz
Ml90IG1lbWxpbWl0X2luYWN0aXZlX2F0dHI7Cit9IG1lbW9yeXN0YXR1c19tZW1saW1pdF9wcm9w
ZXJ0aWVzX3Q7CisKKyNkZWZpbmUgTUVNT1JZU1RBVFVTX0NNRF9HRVRfTUVNTElNSVRfUFJPUEVS
VElFUyA4CisKK30KKyNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vc3lzL2tlcm5fbWVt
b3J5c3RhdHVzLmg+KQorCitleHRlcm4gIkMiIHsKK2ludCBtZW1vcnlzdGF0dXNfY29udHJvbCh1
aW50MzJfdCBjb21tYW5kLCBpbnQzMl90IHBpZCwgdWludDMyX3QgZmxhZ3MsIHZvaWQgKmJ1ZmZl
ciwgc2l6ZV90IGJ1ZmZlcnNpemUpOworfQorCisjZW5kaWYgLy8gQlBMQVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345940</attachid>
            <date>2018-07-27 12:49:40 -0700</date>
            <delta_ts>2018-07-27 13:35:12 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>10912</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzQzMDgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE4LTA3LTI3ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTUEkgdG8gY29tcHV0ZSB0aGUg
amV0c2FtIGxpbWl0IG9uIGlPUyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgODQwTUIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNDI2NDc2OTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIEdpdmUgdGhlIE5ldHdvcmsvU3RvcmFnZS9XZWJDb250ZW50IHByb2Nl
c3MgdGhlIGNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1cworICAgICAgICBlbnRpdGxlbWVu
dC4gVGhpcyBhbGxvd3MgdGhlbSB0byByZWFkIHRoZSBwcm9jZXNzIGpldHNhbSBsaW1pdC4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0RhdGFiYXNlcy1pT1MuZW50aXRsZW1lbnRzOgorICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50czoKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHM6CisKIDIwMTgtMDct
MjYgIEFuZHkgVmFuV2Fnb25lciAgPGFuZHlAdmFud2Fnb25lci5mYW1pbHk+CiAKICAgICAgICAg
W0lOVExdIFJlbW92ZSBJTlRMIHN1Yi1mZWF0dXJlIGNvbXBpbGUgZmxhZ3MKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGF0YWJhc2VzLWlPUy5lbnRpdGxlbWVudHMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EYXRhYmFzZXMtaU9TLmVudGl0
bGVtZW50cwkocmV2aXNpb24gMjM0MzA4KQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9EYXRhYmFzZXMtaU9TLmVudGl0bGVtZW50cwkod29ya2luZyBjb3B5KQpAQCAtNiw1ICs2LDcg
QEAKIAk8YXJyYXk+CiAJCTxzdHJpbmc+Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlPC9zdHJpbmc+
CiAJPC9hcnJheT4KKwk8a2V5PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5Pgor
CTx0cnVlLz4KIDwvZGljdD4KIDwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50cwkocmV2aXNpb24gMjM0
MzA4KQorKysgU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9OZXR3b3JrLWlPUy5lbnRpdGxl
bWVudHMJKHdvcmtpbmcgY29weSkKQEAgLTE2LDUgKzE2LDcgQEAKIAk8YXJyYXk+CiAJCTxzdHJp
bmc+Y29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nPC9zdHJpbmc+CiAJPC9hcnJheT4KKwk8a2V5
PmNvbS5hcHBsZS5wcml2YXRlLm1lbW9yeXN0YXR1czwva2V5PgorCTx0cnVlLz4KIDwvZGljdD4K
IDwvcGxpc3Q+CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYkNvbnRlbnQt
aU9TLmVudGl0bGVtZW50cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYkNvbnRlbnQtaU9TLmVudGl0bGVtZW50cwkocmV2aXNpb24gMjM0MzA4KQorKysgU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJDb250ZW50LWlPUy5lbnRpdGxlbWVudHMJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDUgKzI5LDcgQEAKIAkJPHN0cmluZz5rVENDU2VydmljZU1pY3Jv
cGhvbmU8L3N0cmluZz4KIAkJPHN0cmluZz5rVENDU2VydmljZUNhbWVyYTwvc3RyaW5nPgogCTwv
YXJyYXk+CisJPGtleT5jb20uYXBwbGUucHJpdmF0ZS5tZW1vcnlzdGF0dXM8L2tleT4KKwk8dHJ1
ZS8+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwkocmV2aXNpb24gMjM0MzI0KQor
KysgU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTgtMDctMjcgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIFNQSSB0byBjb21wdXRlIHRoZSBqZXRzYW0gbGltaXQgb24gaU9TIGluc3RlYWQgb2Yg
aGFyZGNvZGluZyA4NDBNQgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTg4MDkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MjY0NzY5Nz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2Ugd2FudCBibWFsbG9j
IHRvIGR5bmFtaWNhbGx5IGFkYXB0IHRvIHRoZSBqZXRzYW0gbGltaXQgb2YgdGhlIHByb2Nlc3MK
KyAgICAgICAgaXQncyBydW5uaW5nIGluLiBXVEY6OnJhbVNpemUoKSBpcyBiYXNlZCBvZmYgYm1h
bGxvYydzIGF2YWlsYWJsZU1lbW9yeSwKKyAgICAgICAgc28gaXQgd2lsbCBub3cgcmVmbGVjdCB0
aGUgcmVzdWx0IG9mIHRoZSByZWFsIGpldHNhbSBsaW1pdCB3aGVuIHdlIGNhbgorICAgICAgICBy
ZWFkIGl0LgorICAgICAgICAKKyAgICAgICAgUmVhZGluZyB0aGUgamV0c2FtIGxpbWl0IHJlcXVp
cmVzIGFuIGVudGl0bGVtZW50LCBzbyB0aGlzIHBhdGNoIG9wdHMgaW4KKyAgICAgICAgdGhlIFdl
YkNvbnRlbnQvU3RvcmFnZS9OZXR3b3JrIHByb2Nlc3Nlcy4gV2UgZmFsbCBiYWNrIHRvIDg0ME1C
ICh0aGUKKyAgICAgICAgb2xkIGhhcmQgY29kZWQgdmFsdWUpIHdoZW4gdGhlIFNQSSBjYWxsIGZh
aWxzIChlLmcsIHdoZW4gd2UncmUgaW4gYQorICAgICAgICBwcm9jZXNzIHdpdGhvdXQgdGhlIHBy
b3BlciBlbnRpdGxlbWVudCkuCisKKyAgICAgICAgKiBibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwOgorICAgICAg
ICAoYm1hbGxvYzo6amV0c2FtTGltaXQpOgorICAgICAgICAoYm1hbGxvYzo6Y29tcHV0ZUF2YWls
YWJsZU1lbW9yeSk6CisgICAgICAgICogYm1hbGxvYy9kYXJ3aW4vTWVtb3J5U3RhdHVzU1BJLmg6
IEFkZGVkLgorCiAyMDE4LTA3LTI0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmVydCBiYWNrIHRvIHVzaW5nIHBoeXNfZm9vdHByaW50IHRvIGNhbGN1bGF0
ZSBpc1VuZGVyTWVtb3J5UHJlc3N1cmUoKQpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjM0MzA4KQorKysgU291
cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzEsNiArMTMxLDcgQEAKIAkJNDQyNkUyODAxQzgzOEVFMDAwOEVCMDQyIC8qIExv
Z2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovOyB9OwogCQk0NDI2RTI4
MTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NDI2
RTI4MzFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi87IH07CisJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1v
cnlTdGF0dXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyRjQ3MjQ4MjEwQkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLzsgfTsK
IAkJNjU0M0REQjQyMEVFQUVGMzAwM0IyM0Q4IC8qIFBlclRocmVhZC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQzRERCMzIwRUVBRUYzMDAzQjIz
RDggLyogUGVyVGhyZWFkLmNwcCAqLzsgfTsKIAkJNjU5OUM1Q0MxRUMzRjE1OTAwQTJGN0JCIC8q
IEF2YWlsYWJsZU1lbW9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NTk5QzVDQTFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNw
cCAqLzsgfTsKIAkJNjU5OUM1Q0QxRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5OUM1Q0Ix
RUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yOTMsNiArMjk0LDcgQEAKIAkJNDQyNkUy
N0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTG9nZ2luZy5jcHA7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyog
TG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBh
dGggPSBibWFsbG9jL0xvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
NkUyODIxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCU29mdExpbmtpbmcuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL0JT
b2Z0TGlua2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkY0NzI0ODIxMEJB
MkY1MDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1lbW9yeVN0YXR1c1NQSS5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vTWVtb3J5
U3RhdHVzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDNEREIzMjBFRUFF
RjMwMDNCMjNEOCAvKiBQZXJUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyVGhyZWFk
LmNwcDsgcGF0aCA9IGJtYWxsb2MvUGVyVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjU5OUM1Q0ExRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdmFpbGFibGVNZW1vcnkuY3Bw
OyBwYXRoID0gYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2NTk5QzVDQjFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEF2YWlsYWJsZU1lbW9yeS5oOyBwYXRo
ID0gYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU1MSw2ICs1NTMsNyBAQAogCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVDNjQgLyogZGFyd2lu
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MkY0NzI0
ODIxMEJBMkY1MDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggKi8sCiAJCQkJNDQyNkUyODIx
QzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBk
YXJ3aW47CkBAIC01ODAsNiArNTgzLDcgQEAKIAkJCQkwRjVCRjE3MzFGMjNDNTcxMDAyOUQ5MUQg
LyogQkV4cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QzkxOEY0OEQ3NTAwOTUwNzAy
IC8qIEJJbmxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODRDMUY5NTQxQzcwMEYxQUJD
QiAvKiBCaXRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MkY0NzI0OTIxMEJBMzAyMDBCNzMwQkIg
LyogTWVtb3J5U3RhdHVzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDQ4QzMwMTE4RjM3NTRD
MDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NEQxRjk1NDFD
NzAwRjFBQkNCIC8qIEJNYWxsb2NlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRDOTE5QzkxOEZD
QzU5RjAwMjhEQjQzIC8qIEJQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9BdmFpbGFibGVNZW1vcnkuY3BwCShyZXZpc2lvbiAyMzQzMDgpCisr
KyBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDkgQEAKICNpbmNsdWRlICJBdmFpbGFibGVNZW1vcnkuaCIKIAogI2lu
Y2x1ZGUgIkVudmlyb25tZW50LmgiCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRlICJNZW1v
cnlTdGF0dXNTUEkuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlBlclByb2Nlc3MuaCIKICNpbmNsdWRl
ICJTY2F2ZW5nZXIuaCIKICNpbmNsdWRlICJTaXplcy5oIgpAQCAtNzIsMTIgKzc1LDIzIEBAIHN0
YXRpYyBzaXplX3QgbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmUKIH0KICNlbmRpZgogCisjaWYg
QlBMQVRGT1JNKElPUykKK3N0YXRpYyBzaXplX3QgamV0c2FtTGltaXQoKQoreworICAgIG1lbW9y
eXN0YXR1c19tZW1saW1pdF9wcm9wZXJ0aWVzX3QgcHJvcGVydGllczsKKyAgICBwaWRfdCBwaWQg
PSBnZXRwaWQoKTsKKyAgICBpZiAobWVtb3J5c3RhdHVzX2NvbnRyb2woTUVNT1JZU1RBVFVTX0NN
RF9HRVRfTUVNTElNSVRfUFJPUEVSVElFUywgcGlkLCAwLCAmcHJvcGVydGllcywgc2l6ZW9mKHBy
b3BlcnRpZXMpKSkKKyAgICAgICAgcmV0dXJuIDg0MCAqIGJtYWxsb2M6Ok1COworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxzaXplX3Q+KHByb3BlcnRpZXMubWVtbGltaXRfYWN0aXZlKSAqIGJtYWxs
b2M6Ok1COworfQorI2VuZGlmCisKIHN0YXRpYyBzaXplX3QgY29tcHV0ZUF2YWlsYWJsZU1lbW9y
eSgpCiB7CiAjaWYgQk9TKERBUldJTikKICAgICBzaXplX3Qgc2l6ZUFjY29yZGluZ1RvS2VybmVs
ID0gbWVtb3J5U2l6ZUFjY29yZGluZ1RvS2VybmVsKCk7CiAjaWYgQlBMQVRGT1JNKElPUykKLSAg
ICBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBzdGQ6Om1pbihzaXplQWNjb3JkaW5nVG9LZXJuZWws
IDg0MCAqIGJtYWxsb2M6Ok1CKTsKKyAgICBzaXplQWNjb3JkaW5nVG9LZXJuZWwgPSBzdGQ6Om1p
bihzaXplQWNjb3JkaW5nVG9LZXJuZWwsIGpldHNhbUxpbWl0KCkpOwogI2VuZGlmCiAgICAgc2l6
ZV90IG11bHRpcGxlID0gMTI4ICogYm1hbGxvYzo6TUI7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MvZGFyd2luL01lbW9yeVN0YXR1c1NQSS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvZGFyd2luL01lbW9yeVN0YXR1c1NQSS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvZGFyd2luL01lbW9yeVN0YXR1c1NQSS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJCUGxhdGZvcm0uaCIKKworI2lmIEJQTEFURk9STShJT1MpCisKKyNpZiBfX2hhc19p
bmNsdWRlKDxTeXN0ZW0vc3lzL2tlcm5fbWVtb3J5c3RhdHVzLmg+KQorZXh0ZXJuICJDIiB7Cisj
aW5jbHVkZSA8U3lzdGVtL3N5cy9rZXJuX21lbW9yeXN0YXR1cy5oPgorfQorI2Vsc2UKK2V4dGVy
biAiQyIgeworCit0eXBlZGVmIHN0cnVjdCBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGll
cyB7CisgICAgaW50MzJfdCBtZW1saW1pdF9hY3RpdmU7ICAgICAgICAgICAgICAgIC8qIGpldHNh
bSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nlc3MgaXMgYWN0aXZlICovCisgICAgdWlu
dDMyX3QgbWVtbGltaXRfYWN0aXZlX2F0dHI7CisgICAgaW50MzJfdCBtZW1saW1pdF9pbmFjdGl2
ZTsgICAgICAgICAgICAgIC8qIGpldHNhbSBtZW1vcnkgbGltaXQgKGluIE1CKSB3aGVuIHByb2Nl
c3MgaXMgaW5hY3RpdmUgKi8KKyAgICB1aW50MzJfdCBtZW1saW1pdF9pbmFjdGl2ZV9hdHRyOwor
fSBtZW1vcnlzdGF0dXNfbWVtbGltaXRfcHJvcGVydGllc190OworCisjZGVmaW5lIE1FTU9SWVNU
QVRVU19DTURfR0VUX01FTUxJTUlUX1BST1BFUlRJRVMgOAorCit9CisjZW5kaWYgLy8gX19oYXNf
aW5jbHVkZSg8U3lzdGVtL3N5cy9rZXJuX21lbW9yeXN0YXR1cy5oPikKKworZXh0ZXJuICJDIiB7
CitpbnQgbWVtb3J5c3RhdHVzX2NvbnRyb2wodWludDMyX3QgY29tbWFuZCwgaW50MzJfdCBwaWQs
IHVpbnQzMl90IGZsYWdzLCB2b2lkICpidWZmZXIsIHNpemVfdCBidWZmZXJzaXplKTsKK30KKwor
I2VuZGlmIC8vIEJQTEFURk9STShJT1MpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>