<?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>155409</bug_id>
          
          <creation_ts>2016-03-13 13:08:30 -0700</creation_ts>
          <short_desc>bmalloc: add logging for mmap() failures</short_desc>
          <delta_ts>2020-11-04 10:29:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218571</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>
          
          <blocked>155992</blocked>
    
    <blocked>158660</blocked>
    
    <blocked>178740</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1174202</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-13 13:08:30 -0700</bug_when>
    <thetext>We need to add logging for mmap() failures so we know how frequent they are, and under what conditions they occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174203</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-13 13:08:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/24568515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174206</commentid>
    <comment_count>2</comment_count>
      <attachid>273897</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-13 13:14:57 -0700</bug_when>
    <thetext>Created attachment 273897
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174207</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-13 13:17:21 -0700</bug_when>
    <thetext>Attachment 273897 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:47:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:53:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:32:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1174208</commentid>
    <comment_count>4</comment_count>
      <attachid>273898</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-13 13:26:35 -0700</bug_when>
    <thetext>Created attachment 273898
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174209</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-13 13:27:56 -0700</bug_when>
    <thetext>Attachment 273898 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:47:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:53:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1174210</commentid>
    <comment_count>6</comment_count>
      <attachid>273899</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-13 13:36:25 -0700</bug_when>
    <thetext>Created attachment 273899
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174211</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-13 13:38:37 -0700</bug_when>
    <thetext>Attachment 273899 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:48:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/BSoftLinking.h:54:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1174754</commentid>
    <comment_count>8</comment_count>
      <attachid>273899</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 15:38:48 -0700</bug_when>
    <thetext>Comment on attachment 273899
Patch v3

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

&gt; Source/bmalloc/bmalloc/BSoftLinking.h:63
&gt; +#define BSOFT_LINK_FRAMEWORK(framework) \
&gt; +    static void* framework##Library() \
&gt; +    { \
&gt; +        static void* frameworkLibrary = ^{ \
&gt; +            void* result = dlopen(&quot;/System/Library/Frameworks/&quot; #framework &quot;.framework/&quot; #framework, RTLD_NOW); \
&gt; +            RELEASE_BASSERT_WITH_MESSAGE(result, &quot;%s&quot;, dlerror()); \
&gt; +            return result; \
&gt; +        }(); \
&gt; +        return frameworkLibrary; \
&gt; +    }
&gt; +
&gt; +#define BSOFT_LINK_FUNCTION(framework, functionName, resultType, parameterDeclarations, parameterNames) \
&gt; +    extern &quot;C&quot; { \
&gt; +    resultType functionName parameterDeclarations; \
&gt; +    } \
&gt; +    static resultType init##functionName parameterDeclarations; \
&gt; +    static resultType (*softLink##functionName) parameterDeclarations = init##functionName; \
&gt; +    \
&gt; +    static resultType init##functionName parameterDeclarations \
&gt; +    { \
&gt; +        static dispatch_once_t once; \
&gt; +        dispatch_once(&amp;once, ^{ \
&gt; +            softLink##functionName = (resultType (*) parameterDeclarations) dlsym(framework##Library(), #functionName); \
&gt; +            RELEASE_BASSERT_WITH_MESSAGE(softLink##functionName, &quot;%s&quot;, dlerror()); \
&gt; +        }); \
&gt; +        return softLink##functionName parameterNames; \
&gt; +    } \
&gt; +    \
&gt; +    inline resultType functionName parameterDeclarations \
&gt; +    { \
&gt; +        return softLink##functionName parameterNames; \
&gt; +    }

I see that these are similar to the SOFT_LINK_FRAMEWORK() and SOFT_LINK() macros in WebCore/platform/mac/SoftLinking.h.  But here it is not #ifdef&apos;ed as Mac/iOS specific.  Should it be?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174759</commentid>
    <comment_count>9</comment_count>
      <attachid>273899</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-14 15:45:02 -0700</bug_when>
    <thetext>Comment on attachment 273899
Patch v3

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

&gt; Source/bmalloc/bmalloc/BSoftLinking.h:55
&gt; +        static dispatch_once_t once; \
&gt; +        dispatch_once(&amp;once, ^{ \
&gt; +            softLink##functionName = (resultType (*) parameterDeclarations) dlsym(framework##Library(), #functionName); \
&gt; +            RELEASE_BASSERT_WITH_MESSAGE(softLink##functionName, &quot;%s&quot;, dlerror()); \

Can you use some mechanism other than dispatch? We&apos;d like to avoid relying on lower-level libraries inside malloc.

For example, you can probably use a static std::atomic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174897</commentid>
    <comment_count>10</comment_count>
      <attachid>273899</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-14 22:19:05 -0700</bug_when>
    <thetext>Comment on attachment 273899
Patch v3

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

&gt;&gt; Source/bmalloc/bmalloc/BSoftLinking.h:55
&gt;&gt; +            RELEASE_BASSERT_WITH_MESSAGE(softLink##functionName, &quot;%s&quot;, dlerror()); \
&gt; 
&gt; Can you use some mechanism other than dispatch? We&apos;d like to avoid relying on lower-level libraries inside malloc.
&gt; 
&gt; For example, you can probably use a static std::atomic.

Makes sense.  Will do so in a follow-up patch.

&gt;&gt; Source/bmalloc/bmalloc/BSoftLinking.h:63
&gt;&gt; +    }
&gt; 
&gt; I see that these are similar to the SOFT_LINK_FRAMEWORK() and SOFT_LINK() macros in WebCore/platform/mac/SoftLinking.h.  But here it is not #ifdef&apos;ed as Mac/iOS specific.  Should it be?

Well, it&apos;s only used inside a #if BPLATFORM(IOS) macro in Logging.cpp, so it doesn&apos;t need it currently.

I&apos;d be happy to:
- Start creating platform subdirectories (like &apos;darwin&apos;?) for these files.
- Add #if macros around them. 

As another example, Zone.{cpp,h} is also Darwin-only, but doesn&apos;t have the header.  (It&apos;s also missing in the CMake build for OS X and iOS because it can&apos;t be included for all platform due to the missing macro protection.)

Looking forward, it&apos;s probably something we don&apos;t want to have to protect explicitly in source files, so I&apos;ll add the macros.

Should I add the darwin/ directory as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175059</commentid>
    <comment_count>11</comment_count>
      <attachid>274113</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-15 12:49:27 -0700</bug_when>
    <thetext>Created attachment 274113
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175060</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-15 12:50:39 -0700</bug_when>
    <thetext>Attachment 274113 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1175062</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-15 12:52:20 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created attachment 274113 [details]
&gt; Patch v4

I didn&apos;t add the #if OS(DARWIN)/#endif macros to BSoftLinking.h because it&apos;s only used in that context already.  (Also discussed it with Geoff.)

I did put BSoftLinking.h into a new darwin/ subdirectory, and changed both soft-linking methods to use std::call_once to be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175064</commentid>
    <comment_count>14</comment_count>
      <attachid>274114</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-15 12:55:25 -0700</bug_when>
    <thetext>Created attachment 274114
Patch v5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175067</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-15 12:57:17 -0700</bug_when>
    <thetext>Attachment 274114 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:51:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:57:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1175151</commentid>
    <comment_count>16</comment_count>
      <attachid>274145</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-15 15:30:21 -0700</bug_when>
    <thetext>Created attachment 274145
Patch v6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175155</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-15 15:32:50 -0700</bug_when>
    <thetext>Attachment 274145 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:55:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1175204</commentid>
    <comment_count>18</comment_count>
      <attachid>274156</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-15 17:06:53 -0700</bug_when>
    <thetext>Created attachment 274156
Patch v7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175206</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-15 17:08:07 -0700</bug_when>
    <thetext>Attachment 274156 did not pass style-queue:


ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:49:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/darwin/BSoftLinking.h:55:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/bmalloc/bmalloc/Logging.cpp:34:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
Total errors found: 4 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>1176255</commentid>
    <comment_count>20</comment_count>
      <attachid>274156</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-18 11:54:49 -0700</bug_when>
    <thetext>Comment on attachment 274156
Patch v7

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

r=me

&gt; Source/bmalloc/bmalloc/BAssert.h:66
&gt; +// FIXME: Output log message.

Is there a bugzilla opened for this? If not I think we should open one and link it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176258</commentid>
    <comment_count>21</comment_count>
      <attachid>274156</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-18 11:59:53 -0700</bug_when>
    <thetext>Comment on attachment 274156
Patch v7

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

&gt; Source/bmalloc/ChangeLog:8
&gt; +

I think a line or two of explanation here is also helpful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178849</commentid>
    <comment_count>22</comment_count>
      <attachid>274156</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-29 16:07:22 -0700</bug_when>
    <thetext>Comment on attachment 274156
Patch v7

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

&gt;&gt; Source/bmalloc/ChangeLog:8
&gt;&gt; +
&gt; 
&gt; I think a line or two of explanation here is also helpful.

Will do.

&gt;&gt; Source/bmalloc/bmalloc/BAssert.h:66
&gt;&gt; +// FIXME: Output log message.
&gt; 
&gt; Is there a bugzilla opened for this? If not I think we should open one and link it here.

Filed:  https://bugs.webkit.org/show_bug.cgi?id=155992</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178852</commentid>
    <comment_count>23</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-03-29 16:19:39 -0700</bug_when>
    <thetext>Committed r198809: &lt;http://trac.webkit.org/changeset/198809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201561</commentid>
    <comment_count>24</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2016-06-11 06:09:22 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Committed r198809: &lt;http://trac.webkit.org/changeset/198809&gt;

This caused:

Bug 158660: Crash in com.apple.WebKit.WebContent at std::__1::__call_once_proxy&lt;std::__1::tuple&lt;CrashReporterSupportLibrary()::$_0&amp;&amp;&gt; &gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273897</attachid>
            <date>2016-03-13 13:14:57 -0700</date>
            <delta_ts>2016-03-13 13:26:32 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-155409-20160313131444.patch</filename>
            <type>text/plain</type>
            <size>15083</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTZkMTgyZDZmMmFiZDJm
ZjQwOWExZDZjN2M3NDIxMjYwNGYwMDBlNy4uNjI2M2UxZmUzYmQ0Yzk2YTRiOWIzMTdmZjRlMTBl
MDM3NzAxNzAwZSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTEzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAgYW5kIG1pc3NpbmcgWm9uZS5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxv
Yy9CQXNzZXJ0Lmg6CisgICAgICAgIChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRk
IG1hY3JvLgorICAgICAgICAqIGJtYWxsb2MvQlNvZnRMaW5raW5nLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Tb2Z0TGlua2luZy5oLgorICAgICAgICAqIGJtYWxs
b2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTog
SW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgorICAg
ICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICogYm1h
bGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTogQ2Fs
bCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKwogMjAxNi0wMy0xMCAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIGJtYWxsb2M6IFJlbmFtZSBT
bWFsbFBhZ2UgdG8gU21hbGxSdW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKaW5kZXggZjZhNDkyOWVhYmM0
ZGM0ZjMyZDQ3NGFlYzc3YTNkZmI2MDFjMTY3ZC4uMWI5ZDQwZGExMjczOGQyN2JkODk5ODcwYjNk
MDQwNGE3YzFlOWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKQEAgLTksMTEgKzksMTMgQEAgc2V0
KGJtYWxsb2NfU09VUkNFUwogICAgIGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxv
Yy9GcmVlTGlzdC5jcHAKICAgICBibWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5n
LmNwcAogICAgIGJtYWxsb2MvT2JqZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRG
cmVlTGlzdC5jcHAKICAgICBibWFsbG9jL1N0YXRpY011dGV4LmNwcAogICAgIGJtYWxsb2MvVk1I
ZWFwLmNwcAogICAgIGJtYWxsb2MvWExhcmdlTWFwLmNwcAorICAgIGJtYWxsb2MvWm9uZS5jcHAK
ICAgICBibWFsbG9jL21ibWFsbG9jLmNwcAogKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTk0NmI5N2IyY2MyZjM1YzhiNmJk
MDMzYjI2NmYzZWRmZGZmODQyMy4uZmIxMWU1NDU2NWE3ZDAwMjJiMzUyZDQ3ODU0Mjg2NjIzZjk4
ZDAxNyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjQsNiArNjQsOSBAQAogCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyog
SGVhcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAgKi87IH07CiAJCTE0RjI3MUM4MThF
QTM5OTAwMDhDMTUyRiAvKiBPYmplY3RUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTA1RTgzMThFMTQzNzQwMDNBMTA2RSAvKiBPYmplY3RU
eXBlLmNwcCAqLzsgfTsKIAkJMTRGMjcxQzkxOEVBMzk5MDAwOEMxNTJGIC8qIFZNSGVhcC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRGN0JGQjE4
QkZDNTE3MDAzNTM3RjMgLyogVk1IZWFwLmNwcCAqLzsgfTsKKwkJNDQyNkUyODAxQzgzOEVFMDAw
OEVCMDQyIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovOyB9
OworCQk0NDI2RTI4MTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQy
IC8qIExvZ2dpbmcuaCAqLzsgfTsKKwkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0
TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovOyB9OwogLyogRW5k
IFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94
eSBzZWN0aW9uICovCkBAIC0xMzksNiArMTQyLDkgQEAKIAkJMTREQTMyMEUxODg3NUQ5RjAwNzI2
OUUwIC8qIEhlYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSGVh
cC5jcHA7IHBhdGggPSBibWFsbG9jL0hlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNEVCNzlFODFDN0MxQkM0MDA1RTgzNEYgLyogWExhcmdlUmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWExhcmdlUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWExh
cmdlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2
MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
bGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk0NDI2
RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNwcDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAv
KiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsg
cGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlua2luZy5oOyBwYXRoID0gYm1hbGxvYy9CU29mdExp
bmtpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJl
bmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlv
biAqLwpAQCAtMjgzLDkgKzI4OSwxMiBAQAogCQkJCTE0MTdGNjUyMThCQTg4QTAwMDc2RkEzRiAv
KiBBc3luY1Rhc2suaCAqLywKIAkJCQkxNDEzRTQ2ODE4OUVFREU0MDA1NDZENjggLyogQkFzc2Vy
dC5oICovLAogCQkJCTE0QzkxOUM4MThGQ0M1OUYwMDI4REI0MyAvKiBCUGxhdGZvcm0uaCAqLywK
KwkJCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi8sCiAJCQkJ
MTREOURCNDUxN0YyNDQ3MTAwRUFBQjc5IC8qIEZpeGVkVmVjdG9yLmggKi8sCiAJCQkJMTQxM0U0
NjAxODlEQ0UxRTAwNTQ2RDY4IC8qIElubGluZS5oICovLAogCQkJCTE0MUQ5QUZGMUM4RTUxQzAw
MDBBQkJBMCAvKiBMaXN0LmggKi8sCisJCQkJNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExv
Z2dpbmcuY3BwICovLAorCQkJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmgg
Ki8sCiAJCQkJMTQ0RENFRDYxN0E2NDlEOTAwOTNCMkYyIC8qIE11dGV4LmggKi8sCiAJCQkJMTQ0
NDZBMDcxN0E2MUZBNDAwRjlFQTFEIC8qIFBlclByb2Nlc3MuaCAqLywKIAkJCQkxNDQ0NjlGRDE3
QTYxRjFGMDBGOUVBMUQgLyogUGVyVGhyZWFkLmggKi8sCkBAIC0zMzEsNiArMzQwLDcgQEAKIAkJ
CQkxNERENzhDRDE4RjQ4RDc1MDA5NTA3MDIgLyogUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0REQ3ODlDMThGNDhENEEwMDk1MDcwMiAvKiBCdW1wQWxsb2NhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNERENzg5OTE4RjQ4RDRBMDA5NTA3MDIgLyogQ2FjaGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQ0MjZFMjgzMUM4Mzk1NDcwMDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0REQ3ODkwMThGNDhDRUIwMDk1MDcwMiAvKiBTaXplcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTRERDc4QzcxOEY0OEQ3NTAwOTUwNzAyIC8qIEJBc3NlcnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0REQ3OEQwMThGNDhENzUwMDk1MDcwMiAvKiBWTUFsbG9jYXRlLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0NSw2ICszNTUsNyBAQAogCQkJCTE0MDAyNzRBMThGODlDMjMwMDEx
NUM5NyAvKiBWTUhlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MDAyNzQ5MThGODlDMTMwMDEx
NUM5NyAvKiBIZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDBGQTAwMzE5Q0U0MjlDMDBGRkQz
QzggLyogQnVtcFJhbmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDI2RTI4MTFDODM4RUUwMDA4
RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QzUxOEY0OEQ3NTAw
OTUwNzAyIC8qIEFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QkQxOEY0OEQ2
QjAwOTUwNzAyIC8qIFNtYWxsUnVuLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg4RTE4RjQ4
Q0NEMDA5NTA3MDIgLyogQm91bmRhcnlUYWcuaCBpbiBIZWFkZXJzICovLApAQCAtNDQzLDYgKzQ1
NCw3IEBACiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMxNTJGIC8qIEFsbG9jYXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDg5NUQ5MTFBM0EzMTlDMDAwNjIzNUQgLyogRW52aXJvbm1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRUY5QUYxQTlGQUJGNjAwNEY1Qzc3IC8qIEZyZWVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MjZFMjgwMUM4MzhFRTAwMDhFQjA0MiAvKiBM
b2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM3MThFQTM5OTAwMDhDMTUyRiAv
KiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAv
KiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0QzA3RjQxQzdCNzAyNjAwNTFCQjZB
IC8qIFhMYXJnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvQkFzc2VydC5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0LmgK
aW5kZXggZmM1NjFmNmQ4ZDQ3NjE2M2JiNzI1ZTVmZmUwYjE4OWUzMGRiZjMxMS4uMTE2OTg0NTNk
YjcwNGVjMzExNmQxMGM3OTc5Njk4NDU2NzMyMzIyZSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9CQXNzZXJ0LmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNjMsNiArNjMsOSBAQAogCiAjZGVmaW5lIFJFTEVBU0VfQkFTU0VSVCh4KSBCQVNTRVJUX0lN
UEwoeCkKIAorLy8gRklYTUU6IE91dHB1dCBsb2cgbWVzc2FnZS4KKyNkZWZpbmUgUkVMRUFTRV9C
QVNTRVJUX1dJVEhfTUVTU0FHRSh4LCBmLCAuLi4pIEJBU1NFUlRfSU1QTCh4KQorCiAjZGVmaW5l
IFVOVVNFRCh4KSAodm9pZCl4CiAKIC8vID09PT09IFJlbGVhc2UgYnVpbGQgPT09PT0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlNvZnRMaW5raW5nLmggYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0JTb2Z0TGlua2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzZTQ4ZGRjOTAyZTI2OTFh
MWQ0MTVlODI3YzdjYTFiNDIyZGQ1YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0JTb2Z0TGlua2luZy5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJTb2Z0TGlua2luZ19oCisjZGVmaW5lIEJTb2Z0TGlu
a2luZ19oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKworI2Rl
ZmluZSBCU09GVF9MSU5LX0ZSQU1FV09SSyhmcmFtZXdvcmspIFwKKyAgICBzdGF0aWMgdm9pZCog
ZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMgdm9pZCogZnJh
bWV3b3JrTGlicmFyeSA9IF57IFwKKyAgICAgICAgICAgIHZvaWQqIHJlc3VsdCA9IGRsb3Blbigi
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIgI2Zy
YW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lUSF9N
RVNTQUdFKHJlc3VsdCwgIiVzIiwgZGxlcnJvcigpKTsgXAorICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsgXAorICAgICAgICB9KCk7IFwKKyAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xpYnJhcnk7
IFwKKyAgICB9CisKKyNkZWZpbmUgQlNPRlRfTElOS19GVU5DVElPTihmcmFtZXdvcmssIGZ1bmN0
aW9uTmFtZSwgcmVzdWx0VHlwZSwgcGFyYW1ldGVyRGVjbGFyYXRpb25zLCBwYXJhbWV0ZXJOYW1l
cykgXAorICAgIGV4dGVybiAiQyIgeyBcCisgICAgcmVzdWx0VHlwZSBmdW5jdGlvbk5hbWUgcGFy
YW1ldGVyRGVjbGFyYXRpb25zOyBcCisgICAgfSBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgaW5p
dCMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9uczsgXAorICAgIHN0YXRpYyByZXN1
bHRUeXBlICgqc29mdExpbmsjI2Z1bmN0aW9uTmFtZSkgcGFyYW1ldGVyRGVjbGFyYXRpb25zID0g
aW5pdCMjZnVuY3Rpb25OYW1lOyBcCisgICAgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlIGluaXQj
I2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgXAorICAgIHsgXAorICAgICAgICBz
dGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2U7IFwKKyAgICAgICAgZGlzcGF0Y2hfb25jZSgmb25j
ZSwgXnsgXAorICAgICAgICAgICAgc29mdExpbmsjI2Z1bmN0aW9uTmFtZSA9IChyZXN1bHRUeXBl
ICgqKSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMpIGRsc3ltKGZyYW1ld29yayMjTGlicmFyeSgpLCAj
ZnVuY3Rpb25OYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FH
RShzb2Z0TGluayMjZnVuY3Rpb25OYW1lLCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAgICAgIH0p
OyBcCisgICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlck5hbWVz
OyBcCisgICAgfSBcCisgICAgXAorICAgIGlubGluZSByZXN1bHRUeXBlIGZ1bmN0aW9uTmFtZSBw
YXJhbWV0ZXJEZWNsYXJhdGlvbnMgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gc29mdExpbmsj
I2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJOYW1lczsgXAorICAgIH0KKworI2VuZGlmIC8vIEJTb2Z0
TGlua2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3Bw
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjdjZDc2
M2E2OTZmMDFiMDQwNjI2OTJiNmQwMDk4MTI0ZGM3ZDVjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJCUGxhdGZvcm0uaCIKKworI2lmIEJQTEFURk9STShJT1MpCisjaW5jbHVk
ZSA8b2JqYy9vYmpjLmg+CisKKyNpbmNsdWRlICJCU29mdExpbmtpbmcuaCIKK0JTT0ZUX0xJTktf
RlJBTUVXT1JLKENyYXNoUmVwb3J0ZXJTdXBwb3J0KTsKK0JTT0ZUX0xJTktfRlVOQ1RJT04oQ3Jh
c2hSZXBvcnRlclN1cHBvcnQsIFNpbXVsYXRlQ3Jhc2gsIEJPT0wsIChwaWRfdCBwaWQsIG1hY2hf
ZXhjZXB0aW9uX2RhdGFfdHlwZV90IGV4Y2VwdGlvbkNvZGUsIGlkIGRlc2NyaXB0aW9uKSwgKHBp
ZCwgZXhjZXB0aW9uQ29kZSwgZGVzY3JpcHRpb24pKTsKKyNlbmRpZgorCituYW1lc3BhY2UgYm1h
bGxvYyB7CisKK3ZvaWQgbG9nVk1GYWlsdXJlKCkKK3sKKyNpZiBCUExBVEZPUk0oSU9TKQorICAg
IGNvbnN0IG1hY2hfZXhjZXB0aW9uX2RhdGFfdHlwZV90IGtFeGNlcHRpb25Db2RlID0gMHhjMTA1
Y2ExMTsKKyAgICBTaW11bGF0ZUNyYXNoKGdldHBpZCgpLCBrRXhjZXB0aW9uQ29kZSwgbnVsbHB0
cik7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwpkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xv
Z2dpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZjlmM2UxYTgwYzZhNmQ0MjE5NzA0MmEzODBiZjU0NDIxNGQ0
YmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTG9nZ2luZ19oCisjZGVmaW5lIExvZ2dpbmdfaAorCituYW1lc3BhY2Ug
Ym1hbGxvYyB7CisKK3ZvaWQgbG9nVk1GYWlsdXJlKCk7CisKK30gLy8gbmFtZXNwYWNlIGJtYWxs
b2MKKworI2VuZGlmIC8vIExvZ2dpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9WTUFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaApp
bmRleCAzNGFjMzk1NTFlOTJlYzIxMzAzNjY5ZmJiMjMwNmI5MjcyNjY0MDBlLi40Y2E0ZDg5MzI2
MzcyMDUwZWMwNDMwNjQwYzFhYjczOWY0NTRiZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxs
b2NhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFZNQWxsb2NhdGVfaAogCiAjaW5jbHVkZSAi
QkFzc2VydC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlNpemVzLmgiCiAjaW5jbHVkZSAiU3lzY2FsbC5oIgpAQCAtNzcsOCArNzgsMTAgQEAg
aW5saW5lIHZvaWQqIHRyeVZNQWxsb2NhdGUoc2l6ZV90IHZtU2l6ZSkKIHsKICAgICB2bVZhbGlk
YXRlKHZtU2l6ZSk7CiAgICAgdm9pZCogcmVzdWx0ID0gbW1hcCgwLCB2bVNpemUsIFBST1RfUkVB
RCB8IFBST1RfV1JJVEUsIE1BUF9QUklWQVRFIHwgTUFQX0FOT04sIEJNQUxMT0NfVk1fVEFHLCAw
KTsKLSAgICBpZiAocmVzdWx0ID09IE1BUF9GQUlMRUQpCisgICAgaWYgKHJlc3VsdCA9PSBNQVBf
RkFJTEVEKSB7CisgICAgICAgIGxvZ1ZNRmFpbHVyZSgpOwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273898</attachid>
            <date>2016-03-13 13:26:35 -0700</date>
            <delta_ts>2016-03-13 13:36:21 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-155409-20160313132623.patch</filename>
            <type>text/plain</type>
            <size>15180</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTZkMTgyZDZmMmFiZDJm
ZjQwOWExZDZjN2M3NDIxMjYwNGYwMDBlNy4uNjI2M2UxZmUzYmQ0Yzk2YTRiOWIzMTdmZjRlMTBl
MDM3NzAxNzAwZSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTEzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAgYW5kIG1pc3NpbmcgWm9uZS5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxv
Yy9CQXNzZXJ0Lmg6CisgICAgICAgIChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRk
IG1hY3JvLgorICAgICAgICAqIGJtYWxsb2MvQlNvZnRMaW5raW5nLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Tb2Z0TGlua2luZy5oLgorICAgICAgICAqIGJtYWxs
b2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTog
SW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgorICAg
ICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICogYm1h
bGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTogQ2Fs
bCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKwogMjAxNi0wMy0xMCAgR2VvZmZy
ZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIGJtYWxsb2M6IFJlbmFtZSBT
bWFsbFBhZ2UgdG8gU21hbGxSdW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKaW5kZXggZjZhNDkyOWVhYmM0
ZGM0ZjMyZDQ3NGFlYzc3YTNkZmI2MDFjMTY3ZC4uMWI5ZDQwZGExMjczOGQyN2JkODk5ODcwYjNk
MDQwNGE3YzFlOWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKQEAgLTksMTEgKzksMTMgQEAgc2V0
KGJtYWxsb2NfU09VUkNFUwogICAgIGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxv
Yy9GcmVlTGlzdC5jcHAKICAgICBibWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5n
LmNwcAogICAgIGJtYWxsb2MvT2JqZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRG
cmVlTGlzdC5jcHAKICAgICBibWFsbG9jL1N0YXRpY011dGV4LmNwcAogICAgIGJtYWxsb2MvVk1I
ZWFwLmNwcAogICAgIGJtYWxsb2MvWExhcmdlTWFwLmNwcAorICAgIGJtYWxsb2MvWm9uZS5jcHAK
ICAgICBibWFsbG9jL21ibWFsbG9jLmNwcAogKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTk0NmI5N2IyY2MyZjM1YzhiNmJk
MDMzYjI2NmYzZWRmZGZmODQyMy4uZDI3ODg0OTJhYTI5YzczN2VlZDI1MTYyYzBhOTRjNzc2MTA0
Y2M3MiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjQsNiArNjQsOSBAQAogCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyog
SGVhcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAgKi87IH07CiAJCTE0RjI3MUM4MThF
QTM5OTAwMDhDMTUyRiAvKiBPYmplY3RUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTA1RTgzMThFMTQzNzQwMDNBMTA2RSAvKiBPYmplY3RU
eXBlLmNwcCAqLzsgfTsKIAkJMTRGMjcxQzkxOEVBMzk5MDAwOEMxNTJGIC8qIFZNSGVhcC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDRGN0JGQjE4
QkZDNTE3MDAzNTM3RjMgLyogVk1IZWFwLmNwcCAqLzsgfTsKKwkJNDQyNkUyODAxQzgzOEVFMDAw
OEVCMDQyIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwICovOyB9
OworCQk0NDI2RTI4MTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQy
IC8qIExvZ2dpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk0NDI2RTI4MzFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI4MjFDODM5NTQ3
MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNl
Y3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KQEAg
LTEzOSw2ICsxNDIsOSBAQAogCQkxNERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIZWFwLmNwcDsgcGF0aCA9IGJt
YWxsb2MvSGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0RUI3OUU4MUM3
QzFCQzQwMDVFODM0RiAvKiBYTGFyZ2VSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBYTGFyZ2VSYW5nZS5oOyBwYXRoID0gYm1hbGxvYy9YTGFyZ2VSYW5nZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYyNzFCRTE4RUEzOTYzMDA4QzE1MkYgLyogbGli
Ym1hbGxvYy5hICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSBhcmNoaXZlLmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJibWFsbG9jLmE7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTQ0MjZFMjdFMUM4MzhFRTAwMDhF
QjA0MiAvKiBMb2dnaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExvZ2dpbmcuY3BwOyBwYXRoID0gYm1hbGxvYy9Mb2dnaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9nZ2luZy5oOyBwYXRoID0gYm1hbGxvYy9M
b2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MjZFMjgyMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQlNvZnRMaW5raW5nLmg7IHBhdGggPSBibWFsbG9jL0JTb2Z0TGlua2luZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0yODMsOSAr
Mjg5LDEyIEBACiAJCQkJMTQxN0Y2NTIxOEJBODhBMDAwNzZGQTNGIC8qIEFzeW5jVGFzay5oICov
LAogCQkJCTE0MTNFNDY4MTg5RUVERTQwMDU0NkQ2OCAvKiBCQXNzZXJ0LmggKi8sCiAJCQkJMTRD
OTE5QzgxOEZDQzU5RjAwMjhEQjQzIC8qIEJQbGF0Zm9ybS5oICovLAorCQkJCTQ0MjZFMjgyMUM4
Mzk1NDcwMDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLywKIAkJCQkxNEQ5REI0NTE3RjI0NDcx
MDBFQUFCNzkgLyogRml4ZWRWZWN0b3IuaCAqLywKIAkJCQkxNDEzRTQ2MDE4OURDRTFFMDA1NDZE
NjggLyogSW5saW5lLmggKi8sCiAJCQkJMTQxRDlBRkYxQzhFNTFDMDAwMEFCQkEwIC8qIExpc3Qu
aCAqLywKKwkJCQk0NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi8sCisJ
CQkJNDQyNkUyN0YxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCAqLywKIAkJCQkxNDREQ0VE
NjE3QTY0OUQ5MDA5M0IyRjIgLyogTXV0ZXguaCAqLywKIAkJCQkxNDQ0NkEwNzE3QTYxRkE0MDBG
OUVBMUQgLyogUGVyUHJvY2Vzcy5oICovLAogCQkJCTE0NDQ2OUZEMTdBNjFGMUYwMEY5RUExRCAv
KiBQZXJUaHJlYWQuaCAqLywKQEAgLTMzMSw2ICszNDAsNyBAQAogCQkJCTE0REQ3OENEMThGNDhE
NzUwMDk1MDcwMiAvKiBSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0
QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk5
MThGNDhENEEwMDk1MDcwMiAvKiBDYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQyNkUyODMx
QzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRE
RDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNpemVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDNzE4RjQ4RDc1MDA5NTA3MDIgLyogQkFzc2VydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRE
RDc4RDAxOEY0OEQ3NTAwOTUwNzAyIC8qIFZNQWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MzQ1LDYgKzM1NSw3IEBACiAJCQkJMTQwMDI3NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwMDI3NDkxOEY4OUMxMzAwMTE1Qzk3IC8qIEhlYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAzMTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MjZFMjgxMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3Jp
dGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21h
bGxSdW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODhFMThGNDhDQ0QwMDk1MDcwMiAvKiBC
b3VuZGFyeVRhZy5oIGluIEhlYWRlcnMgKi8sCkBAIC00NDMsNiArNDU0LDcgQEAKIAkJCQkxNEYy
NzFDMzE4RUEzOTc4MDA4QzE1MkYgLyogQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0ODk1RDkxMUEzQTMxOUMwMDA2MjM1RCAvKiBFbnZpcm9ubWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDNFRjlBRjFBOUZBQkY2MDA0RjVDNzcgLyogRnJlZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDQyNkUyODAxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTRGMjcxQzkxOEVBMzk5MDAwOEMxNTJGIC8qIFZNSGVhcC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxNDRDMDdGNDFDN0I3MDI2MDA1MUJCNkEgLyogWExhcmdlTWFwLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNz
ZXJ0LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JBc3NlcnQuaAppbmRleCBmYzU2MWY2ZDhk
NDc2MTYzYmI3MjVlNWZmZTBiMTg5ZTMwZGJmMzExLi4xMTY5ODQ1M2RiNzA0ZWMzMTE2ZDEwYzc5
Nzk2OTg0NTY3MzIzMjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JBc3Nl
cnQuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JBc3NlcnQuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw2ICs2Myw5IEBA
CiAKICNkZWZpbmUgUkVMRUFTRV9CQVNTRVJUKHgpIEJBU1NFUlRfSU1QTCh4KQogCisvLyBGSVhN
RTogT3V0cHV0IGxvZyBtZXNzYWdlLgorI2RlZmluZSBSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNT
QUdFKHgsIGYsIC4uLikgQkFTU0VSVF9JTVBMKHgpCisKICNkZWZpbmUgVU5VU0VEKHgpICh2b2lk
KXgKIAogLy8gPT09PT0gUmVsZWFzZSBidWlsZCA9PT09PQpkaWZmIC0tZ2l0IGEvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9CU29mdExpbmtpbmcuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlNv
ZnRMaW5raW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjNlNDhkZGM5MDJlMjY5MWExZDQxNWU4MjdjN2NhMWI0
MjJkZDViMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlNvZnRM
aW5raW5nLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAw
OCwgMjAxMS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgQlNvZnRMaW5raW5nX2gKKyNkZWZpbmUgQlNvZnRMaW5raW5nX2gKKworI2luY2x1
ZGUgIkJBc3NlcnQuaCIKKyNpbmNsdWRlIDxkbGZjbi5oPgorCisjZGVmaW5lIEJTT0ZUX0xJTktf
RlJBTUVXT1JLKGZyYW1ld29yaykgXAorICAgIHN0YXRpYyB2b2lkKiBmcmFtZXdvcmsjI0xpYnJh
cnkoKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyB2b2lkKiBmcmFtZXdvcmtMaWJyYXJ5ID0g
XnsgXAorICAgICAgICAgICAgdm9pZCogcmVzdWx0ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy8iICNmcmFtZXdvcmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05P
Vyk7IFwKKyAgICAgICAgICAgIFJFTEVBU0VfQkFTU0VSVF9XSVRIX01FU1NBR0UocmVzdWx0LCAi
JXMiLCBkbGVycm9yKCkpOyBcCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyBcCisgICAgICAg
IH0oKTsgXAorICAgICAgICByZXR1cm4gZnJhbWV3b3JrTGlicmFyeTsgXAorICAgIH0KKworI2Rl
ZmluZSBCU09GVF9MSU5LX0ZVTkNUSU9OKGZyYW1ld29yaywgZnVuY3Rpb25OYW1lLCByZXN1bHRU
eXBlLCBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMsIHBhcmFtZXRlck5hbWVzKSBcCisgICAgZXh0ZXJu
ICJDIiB7IFwKKyAgICByZXN1bHRUeXBlIGZ1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlv
bnM7IFwKKyAgICB9IFwKKyAgICBzdGF0aWMgcmVzdWx0VHlwZSBpbml0IyNmdW5jdGlvbk5hbWUg
cGFyYW1ldGVyRGVjbGFyYXRpb25zOyBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgKCpzb2Z0TGlu
ayMjZnVuY3Rpb25OYW1lKSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgPSBpbml0IyNmdW5jdGlvbk5h
bWU7IFwKKyAgICBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgaW5pdCMjZnVuY3Rpb25OYW1lIHBh
cmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9v
bmNlX3Qgb25jZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAg
ICAgICBzb2Z0TGluayMjZnVuY3Rpb25OYW1lID0gKHJlc3VsdFR5cGUgKCopIHBhcmFtZXRlckRl
Y2xhcmF0aW9ucykgZGxzeW0oZnJhbWV3b3JrIyNMaWJyYXJ5KCksICNmdW5jdGlvbk5hbWUpOyBc
CisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKHNvZnRMaW5rIyNmdW5j
dGlvbk5hbWUsICIlcyIsIGRsZXJyb3IoKSk7IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0
dXJuIHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9IFwKKyAg
ICBcCisgICAgaW5saW5lIHJlc3VsdFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0
aW9ucyBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBh
cmFtZXRlck5hbWVzOyBcCisgICAgfQorCisjZW5kaWYgLy8gQlNvZnRMaW5raW5nX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5jcHAgYi9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0xvZ2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWNiNmQzMTE4MjljYTkzMjU0ODQw
OWY3OTgxMTA1YWZlNmU2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIkJQ
bGF0Zm9ybS5oIgorCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDxtYWNoL2V4Y2VwdGlv
bl90eXBlcy5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgor
CisjaW5jbHVkZSAiQlNvZnRMaW5raW5nLmgiCitCU09GVF9MSU5LX0ZSQU1FV09SSyhDcmFzaFJl
cG9ydGVyU3VwcG9ydCk7CitCU09GVF9MSU5LX0ZVTkNUSU9OKENyYXNoUmVwb3J0ZXJTdXBwb3J0
LCBTaW11bGF0ZUNyYXNoLCBCT09MLCAocGlkX3QgcGlkLCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5
cGVfdCBleGNlcHRpb25Db2RlLCBpZCBkZXNjcmlwdGlvbiksIChwaWQsIGV4Y2VwdGlvbkNvZGUs
IGRlc2NyaXB0aW9uKSk7CisjZW5kaWYKKworbmFtZXNwYWNlIGJtYWxsb2MgeworCit2b2lkIGxv
Z1ZNRmFpbHVyZSgpCit7CisjaWYgQlBMQVRGT1JNKElPUykKKyAgICBjb25zdCBtYWNoX2V4Y2Vw
dGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YzEwNWNhMTE7CisgICAgU2ltdWxh
dGVDcmFzaChnZXRwaWQoKSwga0V4Y2VwdGlvbkNvZGUsIG51bGxwdHIpOworI2VuZGlmCit9CisK
K30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvTG9nZ2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGY5ZjNlMWE4MGM2YTZkNDIxOTcwNDJhMzgwYmY1NDQyMTRkNGJhYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oCkBAIC0wLDAgKzEsMzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIExv
Z2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworbmFtZXNwYWNlIGJtYWxsb2MgeworCit2b2lk
IGxvZ1ZNRmFpbHVyZSgpOworCit9IC8vIG5hbWVzcGFjZSBibWFsbG9jCisKKyNlbmRpZiAvLyBM
b2dnaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1BbGxvY2F0ZS5o
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5kZXggMzRhYzM5NTUxZTky
ZWMyMTMwMzY2OWZiYjIzMDZiOTI3MjY2NDAwZS4uNGNhNGQ4OTMyNjM3MjA1MGVjMDQzMDY0MGMx
YWI3MzlmNDU0YmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcs
NyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUgIkJBc3NlcnQuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJTaXplcy5oIgog
I2luY2x1ZGUgIlN5c2NhbGwuaCIKQEAgLTc3LDggKzc4LDEwIEBAIGlubGluZSB2b2lkKiB0cnlW
TUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm1WYWxpZGF0ZSh2bVNpemUpOwogICAg
IHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBN
QVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7Ci0gICAgaWYgKHJlc3Vs
dCA9PSBNQVBfRkFJTEVEKQorICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZBSUxFRCkgeworICAgICAg
ICBsb2dWTUZhaWx1cmUoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273899</attachid>
            <date>2016-03-13 13:36:25 -0700</date>
            <delta_ts>2016-03-15 12:49:25 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-155409-20160313133613.patch</filename>
            <type>text/plain</type>
            <size>15085</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYTZkMTgyZDZmMmFiZDJm
ZjQwOWExZDZjN2M3NDIxMjYwNGYwMDBlNy4uN2QyYmQxNzA1ZGY4ZGY5ZDNlODUxOTY2MGM2ODAx
YTc0N2NkMDA5MSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTEzICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxvYy9CQXNzZXJ0Lmg6CisgICAgICAg
IChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRkIG1hY3JvLgorICAgICAgICAqIGJt
YWxsb2MvQlNvZnRMaW5raW5nLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Tb2Z0TGlua2luZy5oLgorICAgICAgICAqIGJtYWxsb2MvTG9nZ2luZy5jcHA6IEFkZGVk
LgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogSW1wbGVtZW50YXRpb24uCisgICAg
ICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1G
YWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICogYm1hbGxvYy9WTUFsbG9jYXRlLmg6Cisg
ICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTogQ2FsbCBsb2dWTUZhaWx1cmUoKSBvbiBt
bWFwKCkgZmFpbHVyZS4KKwogMjAxNi0wMy0xMCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIGJtYWxsb2M6IFJlbmFtZSBTbWFsbFBhZ2UgdG8gU21hbGxSdW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL2JtYWxs
b2MvQ01ha2VMaXN0cy50eHQKaW5kZXggZjZhNDkyOWVhYmM0ZGM0ZjMyZDQ3NGFlYzc3YTNkZmI2
MDFjMTY3ZC4uZDBkMDBhMWZkMDA3MGE0MmQ2YWUyOGViNGNmNjZjNjI1OWZjNjgxMyAxMDA2NDQK
LS0tIGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL2JtYWxsb2Mv
Q01ha2VMaXN0cy50eHQKQEAgLTksNiArOSw3IEBAIHNldChibWFsbG9jX1NPVVJDRVMKICAgICBi
bWFsbG9jL0Vudmlyb25tZW50LmNwcAogICAgIGJtYWxsb2MvRnJlZUxpc3QuY3BwCiAgICAgYm1h
bGxvYy9IZWFwLmNwcAorICAgIGJtYWxsb2MvTG9nZ2luZy5jcHAKICAgICBibWFsbG9jL09iamVj
dFR5cGUuY3BwCiAgICAgYm1hbGxvYy9TZWdyZWdhdGVkRnJlZUxpc3QuY3BwCiAgICAgYm1hbGxv
Yy9TdGF0aWNNdXRleC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBlOTQ2Yjk3YjJjYzJmMzVjOGI2YmQwMzNiMjY2ZjNlZGZk
ZmY4NDIzLi5kMjc4ODQ5MmFhMjljNzM3ZWVkMjUxNjJjMGE5NGM3NzYxMDRjYzcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
NCw2ICs2NCw5IEBACiAJCTE0RjI3MUM3MThFQTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0REEzMjBFMTg4NzVE
OUYwMDcyNjlFMCAvKiBIZWFwLmNwcCAqLzsgfTsKIAkJMTRGMjcxQzgxOEVBMzk5MDAwOEMxNTJG
IC8qIE9iamVjdFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQxMDVFODMxOEUxNDM3NDAwM0ExMDZFIC8qIE9iamVjdFR5cGUuY3BwICovOyB9
OwogCQkxNEYyNzFDOTE4RUEzOTkwMDA4QzE1MkYgLyogVk1IZWFwLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NEY3QkZCMThCRkM1MTcwMDM1MzdG
MyAvKiBWTUhlYXAuY3BwICovOyB9OworCQk0NDI2RTI4MDFDODM4RUUwMDA4RUIwNDIgLyogTG9n
Z2luZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi87IH07CisJCTQ0MjZFMjgx
MUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQ0MjZF
MjgzMUM4Mzk1NDcwMDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjgyMUM4Mzk1NDcwMDhFQjA0MiAvKiBC
U29mdExpbmtpbmcuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtMTM5LDYgKzE0Miw5
IEBACiAJCTE0REEzMjBFMTg4NzVEOUYwMDcyNjlFMCAvKiBIZWFwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhlYXAuY3BwOyBwYXRoID0gYm1hbGxvYy9IZWFwLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRFQjc5RTgxQzdDMUJDNDAwNUU4MzRG
IC8qIFhMYXJnZVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFhMYXJn
ZVJhbmdlLmg7IHBhdGggPSBibWFsbG9jL1hMYXJnZVJhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0RjI3MUJFMThFQTM5NjMwMDhDMTUyRiAvKiBsaWJibWFsbG9jLmEgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYmJtYWxsb2MuYTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dp
bmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9nZ2luZy5jcHA7
IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8qIEJT
b2Z0TGlua2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCU29mdExpbmtp
bmcuaDsgcGF0aCA9IGJtYWxsb2MvQlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBC
WEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI4Myw5ICsyODksMTIgQEAKIAkJ
CQkxNDE3RjY1MjE4QkE4OEEwMDA3NkZBM0YgLyogQXN5bmNUYXNrLmggKi8sCiAJCQkJMTQxM0U0
NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLywKIAkJCQkxNEM5MTlDODE4RkNDNTlG
MDAyOERCNDMgLyogQlBsYXRmb3JtLmggKi8sCisJCQkJNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQy
IC8qIEJTb2Z0TGlua2luZy5oICovLAogCQkJCTE0RDlEQjQ1MTdGMjQ0NzEwMEVBQUI3OSAvKiBG
aXhlZFZlY3Rvci5oICovLAogCQkJCTE0MTNFNDYwMTg5RENFMUUwMDU0NkQ2OCAvKiBJbmxpbmUu
aCAqLywKIAkJCQkxNDFEOUFGRjFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oICovLAorCQkJCTQ0
MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk0NDI2RTI3RjFD
ODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovLAogCQkJCTE0NERDRUQ2MTdBNjQ5RDkwMDkz
QjJGMiAvKiBNdXRleC5oICovLAogCQkJCTE0NDQ2QTA3MTdBNjFGQTQwMEY5RUExRCAvKiBQZXJQ
cm9jZXNzLmggKi8sCiAJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBlclRocmVhZC5o
ICovLApAQCAtMzMxLDYgKzM0MCw3IEBACiAJCQkJMTRERDc4Q0QxOEY0OEQ3NTAwOTUwNzAyIC8q
IFJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5QzE4RjQ4RDRBMDA5NTA3MDIgLyog
QnVtcEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTkxOEY0OEQ0QTAwOTUw
NzAyIC8qIENhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDI2RTI4MzFDODM5NTQ3MDA4RUIw
NDIgLyogQlNvZnRMaW5raW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5MDE4RjQ4Q0VC
MDA5NTA3MDIgLyogU2l6ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OEM3MThGNDhENzUw
MDk1MDcwMiAvKiBCQXNzZXJ0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhEMDE4RjQ4RDc1
MDA5NTA3MDIgLyogVk1BbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDUsNiArMzU1LDcg
QEAKIAkJCQkxNDAwMjc0QTE4Rjg5QzIzMDAxMTVDOTcgLyogVk1IZWFwLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNDAwMjc0OTE4Rjg5QzEzMDAxMTVDOTcgLyogSGVhcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMTQwRkEwMDMxOUNFNDI5QzAwRkZEM0M4IC8qIEJ1bXBSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE0REQ3OEM1MThGNDhENzUwMDk1MDcwMiAvKiBBbGdvcml0aG0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0REQ3OEJEMThGNDhENkIwMDk1MDcwMiAvKiBTbWFsbFJ1bi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OEUxOEY0OENDRDAwOTUwNzAyIC8qIEJvdW5kYXJ5VGFnLmgg
aW4gSGVhZGVycyAqLywKQEAgLTQ0Myw2ICs0NTQsNyBAQAogCQkJCTE0RjI3MUMzMThFQTM5Nzgw
MDhDMTUyRiAvKiBBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4OTVEOTExQTNB
MzE5QzAwMDYyMzVEIC8qIEVudmlyb25tZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0M0VG
OUFGMUE5RkFCRjYwMDRGNUM3NyAvKiBGcmVlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0
NDI2RTI4MDFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNEYyNzFDOTE4RUEzOTkwMDA4QzE1MkYgLyogVk1IZWFwLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTE0NEMwN0Y0MUM3QjcwMjYwMDUxQkI2QSAvKiBYTGFyZ2VNYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JBc3NlcnQuaCBiL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oCmluZGV4IGZjNTYxZjZkOGQ0NzYxNjNiYjcyNWU1
ZmZlMGIxODllMzBkYmYzMTEuLjExNjk4NDUzZGI3MDRlYzMxMTZkMTBjNzk3OTY5ODQ1NjczMjMy
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTYzLDYgKzYzLDkgQEAKIAogI2RlZmluZSBS
RUxFQVNFX0JBU1NFUlQoeCkgQkFTU0VSVF9JTVBMKHgpCiAKKy8vIEZJWE1FOiBPdXRwdXQgbG9n
IG1lc3NhZ2UuCisjZGVmaW5lIFJFTEVBU0VfQkFTU0VSVF9XSVRIX01FU1NBR0UoeCwgZiwgLi4u
KSBCQVNTRVJUX0lNUEwoeCkKKwogI2RlZmluZSBVTlVTRUQoeCkgKHZvaWQpeAogCiAvLyA9PT09
PSBSZWxlYXNlIGJ1aWxkID09PT09CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0JTb2Z0TGlua2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CU29mdExpbmtpbmcuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMDNlNjEwY2NjYzM4NjQyYjYyZmNmN2YyMTMwNjBjZGJmMjAyZWFmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CU29mdExpbmtpbmcuaApAQCAt
MCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDExLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCU29m
dExpbmtpbmdfaAorI2RlZmluZSBCU29mdExpbmtpbmdfaAorCisjaW5jbHVkZSAiQkFzc2VydC5o
IgorI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CisjaW5jbHVkZSA8ZGxmY24uaD4KKwor
I2RlZmluZSBCU09GVF9MSU5LX0ZSQU1FV09SSyhmcmFtZXdvcmspIFwKKyAgICBzdGF0aWMgdm9p
ZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMgdm9pZCog
ZnJhbWV3b3JrTGlicmFyeSA9IF57IFwKKyAgICAgICAgICAgIHZvaWQqIHJlc3VsdCA9IGRsb3Bl
bigiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIg
I2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lU
SF9NRVNTQUdFKHJlc3VsdCwgIiVzIiwgZGxlcnJvcigpKTsgXAorICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsgXAorICAgICAgICB9KCk7IFwKKyAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xpYnJh
cnk7IFwKKyAgICB9CisKKyNkZWZpbmUgQlNPRlRfTElOS19GVU5DVElPTihmcmFtZXdvcmssIGZ1
bmN0aW9uTmFtZSwgcmVzdWx0VHlwZSwgcGFyYW1ldGVyRGVjbGFyYXRpb25zLCBwYXJhbWV0ZXJO
YW1lcykgXAorICAgIGV4dGVybiAiQyIgeyBcCisgICAgcmVzdWx0VHlwZSBmdW5jdGlvbk5hbWUg
cGFyYW1ldGVyRGVjbGFyYXRpb25zOyBcCisgICAgfSBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUg
aW5pdCMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9uczsgXAorICAgIHN0YXRpYyBy
ZXN1bHRUeXBlICgqc29mdExpbmsjI2Z1bmN0aW9uTmFtZSkgcGFyYW1ldGVyRGVjbGFyYXRpb25z
ID0gaW5pdCMjZnVuY3Rpb25OYW1lOyBcCisgICAgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlIGlu
aXQjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgXAorICAgIHsgXAorICAgICAg
ICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2U7IFwKKyAgICAgICAgZGlzcGF0Y2hfb25jZSgm
b25jZSwgXnsgXAorICAgICAgICAgICAgc29mdExpbmsjI2Z1bmN0aW9uTmFtZSA9IChyZXN1bHRU
eXBlICgqKSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMpIGRsc3ltKGZyYW1ld29yayMjTGlicmFyeSgp
LCAjZnVuY3Rpb25OYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVT
U0FHRShzb2Z0TGluayMjZnVuY3Rpb25OYW1lLCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAgICAg
IH0pOyBcCisgICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlck5h
bWVzOyBcCisgICAgfSBcCisgICAgXAorICAgIGlubGluZSByZXN1bHRUeXBlIGZ1bmN0aW9uTmFt
ZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gc29mdExp
bmsjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJOYW1lczsgXAorICAgIH0KKworI2VuZGlmIC8vIEJT
b2Z0TGlua2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcu
Y3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2Vj
YjZkMzExODI5Y2E5MzI1NDg0MDlmNzk4MTEwNWFmZTZlNjc5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dnaW5nLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJCUGxhdGZvcm0uaCIKKworI2lmIEJQTEFURk9STShJT1MpCisjaW5j
bHVkZSA8bWFjaC9leGNlcHRpb25fdHlwZXMuaD4KKyNpbmNsdWRlIDxvYmpjL29iamMuaD4KKyNp
bmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgIkJTb2Z0TGlua2luZy5oIgorQlNPRlRfTElO
S19GUkFNRVdPUksoQ3Jhc2hSZXBvcnRlclN1cHBvcnQpOworQlNPRlRfTElOS19GVU5DVElPTihD
cmFzaFJlcG9ydGVyU3VwcG9ydCwgU2ltdWxhdGVDcmFzaCwgQk9PTCwgKHBpZF90IHBpZCwgbWFj
aF9leGNlcHRpb25fZGF0YV90eXBlX3QgZXhjZXB0aW9uQ29kZSwgaWQgZGVzY3JpcHRpb24pLCAo
cGlkLCBleGNlcHRpb25Db2RlLCBkZXNjcmlwdGlvbikpOworI2VuZGlmCisKK25hbWVzcGFjZSBi
bWFsbG9jIHsKKwordm9pZCBsb2dWTUZhaWx1cmUoKQoreworI2lmIEJQTEFURk9STShJT1MpCisg
ICAgY29uc3QgbWFjaF9leGNlcHRpb25fZGF0YV90eXBlX3Qga0V4Y2VwdGlvbkNvZGUgPSAweGMx
MDVjYTExOworICAgIFNpbXVsYXRlQ3Jhc2goZ2V0cGlkKCksIGtFeGNlcHRpb25Db2RlLCBudWxs
cHRyKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBibWFsbG9jCmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
TG9nZ2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOWYzZTFhODBjNmE2ZDQyMTk3MDQyYTM4MGJmNTQ0MjE0
ZDRiYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcu
aApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBMb2dnaW5nX2gKKyNkZWZpbmUgTG9nZ2luZ19oCisKK25hbWVzcGFj
ZSBibWFsbG9jIHsKKwordm9pZCBsb2dWTUZhaWx1cmUoKTsKKworfSAvLyBuYW1lc3BhY2UgYm1h
bGxvYworCisjZW5kaWYgLy8gTG9nZ2luZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL1ZNQWxsb2NhdGUuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1BbGxvY2F0ZS5o
CmluZGV4IDM0YWMzOTU1MWU5MmVjMjEzMDM2NjlmYmIyMzA2YjkyNzI2NjQwMGUuLjRjYTRkODkz
MjYzNzIwNTBlYzA0MzA2NDBjMWFiNzM5ZjQ1NGJlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvVk1BbGxvY2F0ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1B
bGxvY2F0ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgVk1BbGxvY2F0ZV9oCiAKICNpbmNsdWRl
ICJCQXNzZXJ0LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAj
aW5jbHVkZSAiU2l6ZXMuaCIKICNpbmNsdWRlICJTeXNjYWxsLmgiCkBAIC03Nyw4ICs3OCwxMCBA
QCBpbmxpbmUgdm9pZCogdHJ5Vk1BbGxvY2F0ZShzaXplX3Qgdm1TaXplKQogewogICAgIHZtVmFs
aWRhdGUodm1TaXplKTsKICAgICB2b2lkKiByZXN1bHQgPSBtbWFwKDAsIHZtU2l6ZSwgUFJPVF9S
RUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiwgQk1BTExPQ19WTV9UQUcs
IDApOwotICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZBSUxFRCkKKyAgICBpZiAocmVzdWx0ID09IE1B
UF9GQUlMRUQpIHsKKyAgICAgICAgbG9nVk1GYWlsdXJlKCk7CiAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274113</attachid>
            <date>2016-03-15 12:49:27 -0700</date>
            <delta_ts>2016-03-15 12:55:22 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-155409-20160315124916.patch</filename>
            <type>text/plain</type>
            <size>15594</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYThkZDUxMGI4YTBhNDE5
Njg2ODU5M2MxM2M0OTI1ZmE4M2NlMGNkMi4uM2IyM2M2MTIyYzNkNGRkYmI4Y2EwM2VjODZhMTRk
YmEwM2ExM2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxvYy9CQXNzZXJ0Lmg6CisgICAgICAg
IChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRkIG1hY3JvLgorICAgICAgICAqIGJt
YWxsb2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJl
KTogSW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgor
ICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICog
Ym1hbGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTog
Q2FsbCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKyAgICAgICAgKiBibWFsbG9j
L2Rhcndpbi9CU29mdExpbmtpbmcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NvZnRMaW5raW5nLmguCisKIDIwMTYtMDMtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk3OTU1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvYm1h
bGxvYy9DTWFrZUxpc3RzLnR4dAppbmRleCBmNmE0OTI5ZWFiYzRkYzRmMzJkNDc0YWVjNzdhM2Rm
YjYwMWMxNjdkLi5kMGQwMGExZmQwMDcwYTQyZDZhZTI4ZWI0Y2Y2NmM2MjU5ZmM2ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9DTWFrZUxpc3RzLnR4dApAQCAtOSw2ICs5LDcgQEAgc2V0KGJtYWxsb2NfU09VUkNFUwogICAg
IGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxvYy9GcmVlTGlzdC5jcHAKICAgICBi
bWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5nLmNwcAogICAgIGJtYWxsb2MvT2Jq
ZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRGcmVlTGlzdC5jcHAKICAgICBibWFs
bG9jL1N0YXRpY011dGV4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxZmY3NGM0ZmY0OGYwMjZhNjE3MWVjMDNiNDdhYzVl
NTVkNTc4MzUuLjdkNWU2MjZhOWVlMDFhN2U2MmJkOTJmZDVmOWQ2NjNlNTJhY2EzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTY0LDYgKzY0LDkgQEAKIAkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREQTMyMEUxODg3
NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9OwogCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1
MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi87
IH07CiAJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RjdCRkIxOEJGQzUxNzAwMzUz
N0YzIC8qIFZNSGVhcC5jcHAgKi87IH07CisJCTQ0MjZFMjgwMUM4MzhFRTAwMDhFQjA0MiAvKiBM
b2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKKwkJNDQyNkUy
ODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDQy
NkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8q
IEJTb2Z0TGlua2luZy5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMzksNiArMTQy
LDkgQEAKIAkJMTREQTMyMEUxODg3NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSGVhcC5jcHA7IHBhdGggPSBibWFsbG9jL0hlYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEVCNzlFODFDN0MxQkM0MDA1RTgz
NEYgLyogWExhcmdlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWExh
cmdlUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWExhcmdlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5h
cjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk0NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9n
Z2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNw
cDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlu
a2luZy5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vQlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI3OSw2ICsyODUs
NyBAQAogCQkxNEQ5REI0RjE3RjI4Njg5MDBFQUFCNzkgLyogc3RkbGliICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVD
NjQgLyogZGFyd2luICovLAogCQkJCTE0MjFBODc3MThFRTQ2MkEwMEI0REQ2OCAvKiBBbGdvcml0
aG0uaCAqLywKIAkJCQkxNDE3RjY1MjE4QkE4OEEwMDA3NkZBM0YgLyogQXN5bmNUYXNrLmggKi8s
CiAJCQkJMTQxM0U0NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLywKQEAgLTI4Niw2
ICsyOTMsOCBAQAogCQkJCTE0RDlEQjQ1MTdGMjQ0NzEwMEVBQUI3OSAvKiBGaXhlZFZlY3Rvci5o
ICovLAogCQkJCTE0MTNFNDYwMTg5RENFMUUwMDU0NkQ2OCAvKiBJbmxpbmUuaCAqLywKIAkJCQkx
NDFEOUFGRjFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oICovLAorCQkJCTQ0MjZFMjdFMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIw
NDIgLyogTG9nZ2luZy5oICovLAogCQkJCTE0NERDRUQ2MTdBNjQ5RDkwMDkzQjJGMiAvKiBNdXRl
eC5oICovLAogCQkJCTE0NDQ2QTA3MTdBNjFGQTQwMEY5RUExRCAvKiBQZXJQcm9jZXNzLmggKi8s
CiAJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBlclRocmVhZC5oICovLApAQCAtMzAw
LDYgKzMwOSwxNCBAQAogCQkJbmFtZSA9IHN0ZGxpYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ0MjZFMjgyMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLywKKwkJCSk7CisJCQluYW1lID0gZGFyd2luOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTMzMSw2
ICszNDgsNyBAQAogCQkJCTE0REQ3OENEMThGNDhENzUwMDk1MDcwMiAvKiBSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk5MThGNDhENEEwMDk1MDcwMiAvKiBDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlu
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNp
emVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDNzE4RjQ4RDc1MDA5NTA3MDIgLyogQkFz
c2VydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4RDAxOEY0OEQ3NTAwOTUwNzAyIC8qIFZN
QWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1LDYgKzM2Myw3IEBACiAJCQkJMTQwMDI3
NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwMDI3
NDkxOEY4OUMxMzAwMTE1Qzk3IC8qIEhlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAz
MTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MjZF
MjgxMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNERENzg4RTE4RjQ4Q0NEMDA5NTA3MDIgLyogQm91bmRhcnlUYWcuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQzLDYgKzQ2Miw3IEBACiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMxNTJGIC8qIEFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg5NUQ5MTFBM0EzMTlDMDAwNjIzNUQg
LyogRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRUY5QUYxQTlGQUJGNjAw
NEY1Qzc3IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MjZFMjgwMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM3MThF
QTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThF
QTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0QzA3RjQx
QzdCNzAyNjAwNTFCQjZBIC8qIFhMYXJnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oIGIvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9CQXNzZXJ0LmgKaW5kZXggZmM1NjFmNmQ4ZDQ3NjE2M2JiNzI1ZTVmZmUwYjE4OWUzMGRi
ZjMxMS4uMTE2OTg0NTNkYjcwNGVjMzExNmQxMGM3OTc5Njk4NDU2NzMyMzIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0LmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9CQXNzZXJ0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjMsNiArNjMsOSBAQAogCiAjZGVmaW5lIFJFTEVBU0VfQkFTU0VS
VCh4KSBCQVNTRVJUX0lNUEwoeCkKIAorLy8gRklYTUU6IE91dHB1dCBsb2cgbWVzc2FnZS4KKyNk
ZWZpbmUgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FHRSh4LCBmLCAuLi4pIEJBU1NFUlRfSU1Q
TCh4KQorCiAjZGVmaW5lIFVOVVNFRCh4KSAodm9pZCl4CiAKIC8vID09PT09IFJlbGVhc2UgYnVp
bGQgPT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWNiNmQz
MTE4MjljYTkzMjU0ODQwOWY3OTgxMTA1YWZlNmU2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgorCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRl
IDxtYWNoL2V4Y2VwdGlvbl90eXBlcy5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2luY2x1
ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiQlNvZnRMaW5raW5nLmgiCitCU09GVF9MSU5LX0ZS
QU1FV09SSyhDcmFzaFJlcG9ydGVyU3VwcG9ydCk7CitCU09GVF9MSU5LX0ZVTkNUSU9OKENyYXNo
UmVwb3J0ZXJTdXBwb3J0LCBTaW11bGF0ZUNyYXNoLCBCT09MLCAocGlkX3QgcGlkLCBtYWNoX2V4
Y2VwdGlvbl9kYXRhX3R5cGVfdCBleGNlcHRpb25Db2RlLCBpZCBkZXNjcmlwdGlvbiksIChwaWQs
IGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSk7CisjZW5kaWYKKworbmFtZXNwYWNlIGJtYWxs
b2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpCit7CisjaWYgQlBMQVRGT1JNKElPUykKKyAgICBj
b25zdCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YzEwNWNh
MTE7CisgICAgU2ltdWxhdGVDcmFzaChnZXRwaWQoKSwga0V4Y2VwdGlvbkNvZGUsIG51bGxwdHIp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dn
aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGY5ZjNlMWE4MGM2YTZkNDIxOTcwNDJhMzgwYmY1NDQyMTRkNGJh
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIExvZ2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworbmFtZXNwYWNlIGJt
YWxsb2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpOworCit9IC8vIG5hbWVzcGFjZSBibWFsbG9j
CisKKyNlbmRpZiAvLyBMb2dnaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvVk1BbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5k
ZXggMzRhYzM5NTUxZTkyZWMyMTMwMzY2OWZiYjIzMDZiOTI3MjY2NDAwZS4uNGNhNGQ4OTMyNjM3
MjA1MGVjMDQzMDY0MGMxYWI3MzlmNDU0YmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUFsbG9jYXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUgIkJB
c3NlcnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJTaXplcy5oIgogI2luY2x1ZGUgIlN5c2NhbGwuaCIKQEAgLTc3LDggKzc4LDEwIEBAIGlu
bGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm1WYWxpZGF0
ZSh2bVNpemUpOwogICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQg
fCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQorICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZB
SUxFRCkgeworICAgICAgICBsb2dWTUZhaWx1cmUoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9kYXJ3aW4vQlNvZnRMaW5raW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY1MmE1MmYwNjc1MTExMTIxYTUz
NjJmYWZlZDg5N2FlNmViMWU4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJTb2Z0TGlua2luZ19oCisjZGVmaW5lIEJTb2Z0
TGlua2luZ19oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKwor
I2lmIEJPUyhEQVJXSU4pCisKKyNkZWZpbmUgQlNPRlRfTElOS19GUkFNRVdPUksoZnJhbWV3b3Jr
KSBcCisgICAgc3RhdGljIHZvaWQqIGZyYW1ld29yayMjTGlicmFyeSgpIFwKKyAgICB7IFwKKyAg
ICAgICAgc3RhdGljIHZvaWQqIGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICAgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2U7IFwKKyAgICAgICAgc3RkOjpjYWxsX29uY2UoJm9uY2UsIFtdIHsg
XAorICAgICAgICAgICAgZnJhbWV3b3JrTGlicmFyeSA9IGRsb3BlbigiL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIgI2ZyYW1ld29yaywgUlRMRF9O
T1cpOyBcCisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKGZyYW1ld29y
a0xpYnJhcnksICIlcyIsIGRsZXJyb3IoKSk7IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0
dXJuIGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICB9CisKKyNkZWZpbmUgQlNPRlRfTElOS19GVU5D
VElPTihmcmFtZXdvcmssIGZ1bmN0aW9uTmFtZSwgcmVzdWx0VHlwZSwgcGFyYW1ldGVyRGVjbGFy
YXRpb25zLCBwYXJhbWV0ZXJOYW1lcykgXAorICAgIGV4dGVybiAiQyIgeyBcCisgICAgcmVzdWx0
VHlwZSBmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25zOyBcCisgICAgfSBcCisgICAg
c3RhdGljIHJlc3VsdFR5cGUgaW5pdCMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9u
czsgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlICgqc29mdExpbmsjI2Z1bmN0aW9uTmFtZSkgcGFy
YW1ldGVyRGVjbGFyYXRpb25zID0gaW5pdCMjZnVuY3Rpb25OYW1lOyBcCisgICAgXAorICAgIHN0
YXRpYyByZXN1bHRUeXBlIGluaXQjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMg
XAorICAgIHsgXAorICAgICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZTsgXAorICAgICAg
ICBzdGQ6OmNhbGxfb25jZSgmb25jZSwgW10geyBcCisgICAgICAgICAgICBzb2Z0TGluayMjZnVu
Y3Rpb25OYW1lID0gKHJlc3VsdFR5cGUgKCopIHBhcmFtZXRlckRlY2xhcmF0aW9ucykgZGxzeW0o
ZnJhbWV3b3JrIyNMaWJyYXJ5KCksICNmdW5jdGlvbk5hbWUpOyBcCisgICAgICAgICAgICBSRUxF
QVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUsICIlcyIsIGRs
ZXJyb3IoKSk7IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0dXJuIHNvZnRMaW5rIyNmdW5j
dGlvbk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9IFwKKyAgICBcCisgICAgaW5saW5lIHJl
c3VsdFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBcCisg
ICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlck5hbWVzOyBcCisg
ICAgfQorCisjZW5kaWYgLy8gQlNvZnRMaW5raW5nX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274114</attachid>
            <date>2016-03-15 12:55:25 -0700</date>
            <delta_ts>2016-03-15 15:30:17 -0700</delta_ts>
            <desc>Patch v5</desc>
            <filename>bug-155409-20160315125514.patch</filename>
            <type>text/plain</type>
            <size>15612</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYThkZDUxMGI4YTBhNDE5
Njg2ODU5M2MxM2M0OTI1ZmE4M2NlMGNkMi4uM2IyM2M2MTIyYzNkNGRkYmI4Y2EwM2VjODZhMTRk
YmEwM2ExM2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxvYy9CQXNzZXJ0Lmg6CisgICAgICAg
IChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRkIG1hY3JvLgorICAgICAgICAqIGJt
YWxsb2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJl
KTogSW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgor
ICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICog
Ym1hbGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTog
Q2FsbCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKyAgICAgICAgKiBibWFsbG9j
L2Rhcndpbi9CU29mdExpbmtpbmcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NvZnRMaW5raW5nLmguCisKIDIwMTYtMDMtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk3OTU1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvYm1h
bGxvYy9DTWFrZUxpc3RzLnR4dAppbmRleCBmNmE0OTI5ZWFiYzRkYzRmMzJkNDc0YWVjNzdhM2Rm
YjYwMWMxNjdkLi5kMGQwMGExZmQwMDcwYTQyZDZhZTI4ZWI0Y2Y2NmM2MjU5ZmM2ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9DTWFrZUxpc3RzLnR4dApAQCAtOSw2ICs5LDcgQEAgc2V0KGJtYWxsb2NfU09VUkNFUwogICAg
IGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxvYy9GcmVlTGlzdC5jcHAKICAgICBi
bWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5nLmNwcAogICAgIGJtYWxsb2MvT2Jq
ZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRGcmVlTGlzdC5jcHAKICAgICBibWFs
bG9jL1N0YXRpY011dGV4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxZmY3NGM0ZmY0OGYwMjZhNjE3MWVjMDNiNDdhYzVl
NTVkNTc4MzUuLjdkNWU2MjZhOWVlMDFhN2U2MmJkOTJmZDVmOWQ2NjNlNTJhY2EzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTY0LDYgKzY0LDkgQEAKIAkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREQTMyMEUxODg3
NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9OwogCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1
MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi87
IH07CiAJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RjdCRkIxOEJGQzUxNzAwMzUz
N0YzIC8qIFZNSGVhcC5jcHAgKi87IH07CisJCTQ0MjZFMjgwMUM4MzhFRTAwMDhFQjA0MiAvKiBM
b2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKKwkJNDQyNkUy
ODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDQy
NkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8q
IEJTb2Z0TGlua2luZy5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMzksNiArMTQy
LDkgQEAKIAkJMTREQTMyMEUxODg3NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSGVhcC5jcHA7IHBhdGggPSBibWFsbG9jL0hlYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEVCNzlFODFDN0MxQkM0MDA1RTgz
NEYgLyogWExhcmdlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWExh
cmdlUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWExhcmdlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5h
cjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk0NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9n
Z2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNw
cDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlu
a2luZy5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vQlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI3OSw2ICsyODUs
NyBAQAogCQkxNEQ5REI0RjE3RjI4Njg5MDBFQUFCNzkgLyogc3RkbGliICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVD
NjQgLyogZGFyd2luICovLAogCQkJCTE0MjFBODc3MThFRTQ2MkEwMEI0REQ2OCAvKiBBbGdvcml0
aG0uaCAqLywKIAkJCQkxNDE3RjY1MjE4QkE4OEEwMDA3NkZBM0YgLyogQXN5bmNUYXNrLmggKi8s
CiAJCQkJMTQxM0U0NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLywKQEAgLTI4Niw2
ICsyOTMsOCBAQAogCQkJCTE0RDlEQjQ1MTdGMjQ0NzEwMEVBQUI3OSAvKiBGaXhlZFZlY3Rvci5o
ICovLAogCQkJCTE0MTNFNDYwMTg5RENFMUUwMDU0NkQ2OCAvKiBJbmxpbmUuaCAqLywKIAkJCQkx
NDFEOUFGRjFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oICovLAorCQkJCTQ0MjZFMjdFMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIw
NDIgLyogTG9nZ2luZy5oICovLAogCQkJCTE0NERDRUQ2MTdBNjQ5RDkwMDkzQjJGMiAvKiBNdXRl
eC5oICovLAogCQkJCTE0NDQ2QTA3MTdBNjFGQTQwMEY5RUExRCAvKiBQZXJQcm9jZXNzLmggKi8s
CiAJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBlclRocmVhZC5oICovLApAQCAtMzAw
LDYgKzMwOSwxNCBAQAogCQkJbmFtZSA9IHN0ZGxpYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ0MjZFMjgyMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLywKKwkJCSk7CisJCQluYW1lID0gZGFyd2luOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTMzMSw2
ICszNDgsNyBAQAogCQkJCTE0REQ3OENEMThGNDhENzUwMDk1MDcwMiAvKiBSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk5MThGNDhENEEwMDk1MDcwMiAvKiBDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlu
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNp
emVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDNzE4RjQ4RDc1MDA5NTA3MDIgLyogQkFz
c2VydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4RDAxOEY0OEQ3NTAwOTUwNzAyIC8qIFZN
QWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1LDYgKzM2Myw3IEBACiAJCQkJMTQwMDI3
NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwMDI3
NDkxOEY4OUMxMzAwMTE1Qzk3IC8qIEhlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAz
MTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MjZF
MjgxMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNERENzg4RTE4RjQ4Q0NEMDA5NTA3MDIgLyogQm91bmRhcnlUYWcuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQzLDYgKzQ2Miw3IEBACiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMxNTJGIC8qIEFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg5NUQ5MTFBM0EzMTlDMDAwNjIzNUQg
LyogRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRUY5QUYxQTlGQUJGNjAw
NEY1Qzc3IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MjZFMjgwMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM3MThF
QTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThF
QTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0QzA3RjQx
QzdCNzAyNjAwNTFCQjZBIC8qIFhMYXJnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oIGIvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9CQXNzZXJ0LmgKaW5kZXggZmM1NjFmNmQ4ZDQ3NjE2M2JiNzI1ZTVmZmUwYjE4OWUzMGRi
ZjMxMS4uMTE2OTg0NTNkYjcwNGVjMzExNmQxMGM3OTc5Njk4NDU2NzMyMzIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0LmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9CQXNzZXJ0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjMsNiArNjMsOSBAQAogCiAjZGVmaW5lIFJFTEVBU0VfQkFTU0VS
VCh4KSBCQVNTRVJUX0lNUEwoeCkKIAorLy8gRklYTUU6IE91dHB1dCBsb2cgbWVzc2FnZS4KKyNk
ZWZpbmUgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FHRSh4LCBmLCAuLi4pIEJBU1NFUlRfSU1Q
TCh4KQorCiAjZGVmaW5lIFVOVVNFRCh4KSAodm9pZCl4CiAKIC8vID09PT09IFJlbGVhc2UgYnVp
bGQgPT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWNiNmQz
MTE4MjljYTkzMjU0ODQwOWY3OTgxMTA1YWZlNmU2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgorCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRl
IDxtYWNoL2V4Y2VwdGlvbl90eXBlcy5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2luY2x1
ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiQlNvZnRMaW5raW5nLmgiCitCU09GVF9MSU5LX0ZS
QU1FV09SSyhDcmFzaFJlcG9ydGVyU3VwcG9ydCk7CitCU09GVF9MSU5LX0ZVTkNUSU9OKENyYXNo
UmVwb3J0ZXJTdXBwb3J0LCBTaW11bGF0ZUNyYXNoLCBCT09MLCAocGlkX3QgcGlkLCBtYWNoX2V4
Y2VwdGlvbl9kYXRhX3R5cGVfdCBleGNlcHRpb25Db2RlLCBpZCBkZXNjcmlwdGlvbiksIChwaWQs
IGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSk7CisjZW5kaWYKKworbmFtZXNwYWNlIGJtYWxs
b2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpCit7CisjaWYgQlBMQVRGT1JNKElPUykKKyAgICBj
b25zdCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YzEwNWNh
MTE7CisgICAgU2ltdWxhdGVDcmFzaChnZXRwaWQoKSwga0V4Y2VwdGlvbkNvZGUsIG51bGxwdHIp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dn
aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGY5ZjNlMWE4MGM2YTZkNDIxOTcwNDJhMzgwYmY1NDQyMTRkNGJh
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIExvZ2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworbmFtZXNwYWNlIGJt
YWxsb2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpOworCit9IC8vIG5hbWVzcGFjZSBibWFsbG9j
CisKKyNlbmRpZiAvLyBMb2dnaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvVk1BbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5k
ZXggMzRhYzM5NTUxZTkyZWMyMTMwMzY2OWZiYjIzMDZiOTI3MjY2NDAwZS4uNGNhNGQ4OTMyNjM3
MjA1MGVjMDQzMDY0MGMxYWI3MzlmNDU0YmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUFsbG9jYXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUgIkJB
c3NlcnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJTaXplcy5oIgogI2luY2x1ZGUgIlN5c2NhbGwuaCIKQEAgLTc3LDggKzc4LDEwIEBAIGlu
bGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm1WYWxpZGF0
ZSh2bVNpemUpOwogICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQg
fCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQorICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZB
SUxFRCkgeworICAgICAgICBsb2dWTUZhaWx1cmUoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9kYXJ3aW4vQlNvZnRMaW5raW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2NjgyNWViMDY5ZDNlOWZjNjYz
MTllNjZhZTVhN2RlZTRlYzljYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJTb2Z0TGlua2luZ19oCisjZGVmaW5lIEJTb2Z0
TGlua2luZ19oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNp
bmNsdWRlIDxtdXRleD4KKworI2lmIEJPUyhEQVJXSU4pCisKKyNkZWZpbmUgQlNPRlRfTElOS19G
UkFNRVdPUksoZnJhbWV3b3JrKSBcCisgICAgc3RhdGljIHZvaWQqIGZyYW1ld29yayMjTGlicmFy
eSgpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIHZvaWQqIGZyYW1ld29ya0xpYnJhcnk7IFwK
KyAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7IFwKKyAgICAgICAgc3RkOjpjYWxs
X29uY2UoJm9uY2UsIFtdIHsgXAorICAgICAgICAgICAgZnJhbWV3b3JrTGlicmFyeSA9IGRsb3Bl
bigiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvIiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIg
I2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lU
SF9NRVNTQUdFKGZyYW1ld29ya0xpYnJhcnksICIlcyIsIGRsZXJyb3IoKSk7IFwKKyAgICAgICAg
fSk7IFwKKyAgICAgICAgcmV0dXJuIGZyYW1ld29ya0xpYnJhcnk7IFwKKyAgICB9CisKKyNkZWZp
bmUgQlNPRlRfTElOS19GVU5DVElPTihmcmFtZXdvcmssIGZ1bmN0aW9uTmFtZSwgcmVzdWx0VHlw
ZSwgcGFyYW1ldGVyRGVjbGFyYXRpb25zLCBwYXJhbWV0ZXJOYW1lcykgXAorICAgIGV4dGVybiAi
QyIgeyBcCisgICAgcmVzdWx0VHlwZSBmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25z
OyBcCisgICAgfSBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgaW5pdCMjZnVuY3Rpb25OYW1lIHBh
cmFtZXRlckRlY2xhcmF0aW9uczsgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlICgqc29mdExpbmsj
I2Z1bmN0aW9uTmFtZSkgcGFyYW1ldGVyRGVjbGFyYXRpb25zID0gaW5pdCMjZnVuY3Rpb25OYW1l
OyBcCisgICAgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlIGluaXQjI2Z1bmN0aW9uTmFtZSBwYXJh
bWV0ZXJEZWNsYXJhdGlvbnMgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMgc3RkOjpvbmNlX2Zs
YWcgb25jZTsgXAorICAgICAgICBzdGQ6OmNhbGxfb25jZSgmb25jZSwgW10geyBcCisgICAgICAg
ICAgICBzb2Z0TGluayMjZnVuY3Rpb25OYW1lID0gKHJlc3VsdFR5cGUgKCopIHBhcmFtZXRlckRl
Y2xhcmF0aW9ucykgZGxzeW0oZnJhbWV3b3JrIyNMaWJyYXJ5KCksICNmdW5jdGlvbk5hbWUpOyBc
CisgICAgICAgICAgICBSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKHNvZnRMaW5rIyNmdW5j
dGlvbk5hbWUsICIlcyIsIGRsZXJyb3IoKSk7IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0
dXJuIHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9IFwKKyAg
ICBcCisgICAgaW5saW5lIHJlc3VsdFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0
aW9ucyBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBh
cmFtZXRlck5hbWVzOyBcCisgICAgfQorCisjZW5kaWYgLy8gQlNvZnRMaW5raW5nX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274145</attachid>
            <date>2016-03-15 15:30:21 -0700</date>
            <delta_ts>2016-03-15 17:06:49 -0700</delta_ts>
            <desc>Patch v6</desc>
            <filename>bug-155409-20160315153009.patch</filename>
            <type>text/plain</type>
            <size>15593</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYThkZDUxMGI4YTBhNDE5
Njg2ODU5M2MxM2M0OTI1ZmE4M2NlMGNkMi4uM2IyM2M2MTIyYzNkNGRkYmI4Y2EwM2VjODZhMTRk
YmEwM2ExM2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxvYy9CQXNzZXJ0Lmg6CisgICAgICAg
IChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRkIG1hY3JvLgorICAgICAgICAqIGJt
YWxsb2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJl
KTogSW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgor
ICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICog
Ym1hbGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTog
Q2FsbCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKyAgICAgICAgKiBibWFsbG9j
L2Rhcndpbi9CU29mdExpbmtpbmcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NvZnRMaW5raW5nLmguCisKIDIwMTYtMDMtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk3OTU1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvYm1h
bGxvYy9DTWFrZUxpc3RzLnR4dAppbmRleCBmNmE0OTI5ZWFiYzRkYzRmMzJkNDc0YWVjNzdhM2Rm
YjYwMWMxNjdkLi5kMGQwMGExZmQwMDcwYTQyZDZhZTI4ZWI0Y2Y2NmM2MjU5ZmM2ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9DTWFrZUxpc3RzLnR4dApAQCAtOSw2ICs5LDcgQEAgc2V0KGJtYWxsb2NfU09VUkNFUwogICAg
IGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxvYy9GcmVlTGlzdC5jcHAKICAgICBi
bWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5nLmNwcAogICAgIGJtYWxsb2MvT2Jq
ZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRGcmVlTGlzdC5jcHAKICAgICBibWFs
bG9jL1N0YXRpY011dGV4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxZmY3NGM0ZmY0OGYwMjZhNjE3MWVjMDNiNDdhYzVl
NTVkNTc4MzUuLjdkNWU2MjZhOWVlMDFhN2U2MmJkOTJmZDVmOWQ2NjNlNTJhY2EzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTY0LDYgKzY0LDkgQEAKIAkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREQTMyMEUxODg3
NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9OwogCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1
MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi87
IH07CiAJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RjdCRkIxOEJGQzUxNzAwMzUz
N0YzIC8qIFZNSGVhcC5jcHAgKi87IH07CisJCTQ0MjZFMjgwMUM4MzhFRTAwMDhFQjA0MiAvKiBM
b2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKKwkJNDQyNkUy
ODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDQy
NkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8q
IEJTb2Z0TGlua2luZy5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMzksNiArMTQy
LDkgQEAKIAkJMTREQTMyMEUxODg3NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSGVhcC5jcHA7IHBhdGggPSBibWFsbG9jL0hlYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEVCNzlFODFDN0MxQkM0MDA1RTgz
NEYgLyogWExhcmdlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWExh
cmdlUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWExhcmdlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5h
cjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk0NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9n
Z2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNw
cDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlu
a2luZy5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vQlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI3OSw2ICsyODUs
NyBAQAogCQkxNEQ5REI0RjE3RjI4Njg5MDBFQUFCNzkgLyogc3RkbGliICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVD
NjQgLyogZGFyd2luICovLAogCQkJCTE0MjFBODc3MThFRTQ2MkEwMEI0REQ2OCAvKiBBbGdvcml0
aG0uaCAqLywKIAkJCQkxNDE3RjY1MjE4QkE4OEEwMDA3NkZBM0YgLyogQXN5bmNUYXNrLmggKi8s
CiAJCQkJMTQxM0U0NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLywKQEAgLTI4Niw2
ICsyOTMsOCBAQAogCQkJCTE0RDlEQjQ1MTdGMjQ0NzEwMEVBQUI3OSAvKiBGaXhlZFZlY3Rvci5o
ICovLAogCQkJCTE0MTNFNDYwMTg5RENFMUUwMDU0NkQ2OCAvKiBJbmxpbmUuaCAqLywKIAkJCQkx
NDFEOUFGRjFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oICovLAorCQkJCTQ0MjZFMjdFMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIw
NDIgLyogTG9nZ2luZy5oICovLAogCQkJCTE0NERDRUQ2MTdBNjQ5RDkwMDkzQjJGMiAvKiBNdXRl
eC5oICovLAogCQkJCTE0NDQ2QTA3MTdBNjFGQTQwMEY5RUExRCAvKiBQZXJQcm9jZXNzLmggKi8s
CiAJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBlclRocmVhZC5oICovLApAQCAtMzAw
LDYgKzMwOSwxNCBAQAogCQkJbmFtZSA9IHN0ZGxpYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ0MjZFMjgyMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLywKKwkJCSk7CisJCQluYW1lID0gZGFyd2luOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTMzMSw2
ICszNDgsNyBAQAogCQkJCTE0REQ3OENEMThGNDhENzUwMDk1MDcwMiAvKiBSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk5MThGNDhENEEwMDk1MDcwMiAvKiBDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlu
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNp
emVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDNzE4RjQ4RDc1MDA5NTA3MDIgLyogQkFz
c2VydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4RDAxOEY0OEQ3NTAwOTUwNzAyIC8qIFZN
QWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1LDYgKzM2Myw3IEBACiAJCQkJMTQwMDI3
NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwMDI3
NDkxOEY4OUMxMzAwMTE1Qzk3IC8qIEhlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAz
MTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MjZF
MjgxMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNERENzg4RTE4RjQ4Q0NEMDA5NTA3MDIgLyogQm91bmRhcnlUYWcuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQzLDYgKzQ2Miw3IEBACiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMxNTJGIC8qIEFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg5NUQ5MTFBM0EzMTlDMDAwNjIzNUQg
LyogRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRUY5QUYxQTlGQUJGNjAw
NEY1Qzc3IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MjZFMjgwMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM3MThF
QTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThF
QTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0QzA3RjQx
QzdCNzAyNjAwNTFCQjZBIC8qIFhMYXJnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oIGIvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9CQXNzZXJ0LmgKaW5kZXggZmM1NjFmNmQ4ZDQ3NjE2M2JiNzI1ZTVmZmUwYjE4OWUzMGRi
ZjMxMS4uMTE2OTg0NTNkYjcwNGVjMzExNmQxMGM3OTc5Njk4NDU2NzMyMzIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0LmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9CQXNzZXJ0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjMsNiArNjMsOSBAQAogCiAjZGVmaW5lIFJFTEVBU0VfQkFTU0VS
VCh4KSBCQVNTRVJUX0lNUEwoeCkKIAorLy8gRklYTUU6IE91dHB1dCBsb2cgbWVzc2FnZS4KKyNk
ZWZpbmUgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FHRSh4LCBmLCAuLi4pIEJBU1NFUlRfSU1Q
TCh4KQorCiAjZGVmaW5lIFVOVVNFRCh4KSAodm9pZCl4CiAKIC8vID09PT09IFJlbGVhc2UgYnVp
bGQgPT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWNiNmQz
MTE4MjljYTkzMjU0ODQwOWY3OTgxMTA1YWZlNmU2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgorCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRl
IDxtYWNoL2V4Y2VwdGlvbl90eXBlcy5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2luY2x1
ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiQlNvZnRMaW5raW5nLmgiCitCU09GVF9MSU5LX0ZS
QU1FV09SSyhDcmFzaFJlcG9ydGVyU3VwcG9ydCk7CitCU09GVF9MSU5LX0ZVTkNUSU9OKENyYXNo
UmVwb3J0ZXJTdXBwb3J0LCBTaW11bGF0ZUNyYXNoLCBCT09MLCAocGlkX3QgcGlkLCBtYWNoX2V4
Y2VwdGlvbl9kYXRhX3R5cGVfdCBleGNlcHRpb25Db2RlLCBpZCBkZXNjcmlwdGlvbiksIChwaWQs
IGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSk7CisjZW5kaWYKKworbmFtZXNwYWNlIGJtYWxs
b2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpCit7CisjaWYgQlBMQVRGT1JNKElPUykKKyAgICBj
b25zdCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YzEwNWNh
MTE7CisgICAgU2ltdWxhdGVDcmFzaChnZXRwaWQoKSwga0V4Y2VwdGlvbkNvZGUsIG51bGxwdHIp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dn
aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGY5ZjNlMWE4MGM2YTZkNDIxOTcwNDJhMzgwYmY1NDQyMTRkNGJh
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIExvZ2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworbmFtZXNwYWNlIGJt
YWxsb2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpOworCit9IC8vIG5hbWVzcGFjZSBibWFsbG9j
CisKKyNlbmRpZiAvLyBMb2dnaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvVk1BbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5k
ZXggMzRhYzM5NTUxZTkyZWMyMTMwMzY2OWZiYjIzMDZiOTI3MjY2NDAwZS4uNGNhNGQ4OTMyNjM3
MjA1MGVjMDQzMDY0MGMxYWI3MzlmNDU0YmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUFsbG9jYXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUgIkJB
c3NlcnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJTaXplcy5oIgogI2luY2x1ZGUgIlN5c2NhbGwuaCIKQEAgLTc3LDggKzc4LDEwIEBAIGlu
bGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm1WYWxpZGF0
ZSh2bVNpemUpOwogICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQg
fCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQorICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZB
SUxFRCkgeworICAgICAgICBsb2dWTUZhaWx1cmUoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9kYXJ3aW4vQlNvZnRMaW5raW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk2MjEzYWQwYTBiOGE2MTRlZDE2
YTNjYWFhZmJlYTFjMzZlMjk1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJTb2Z0TGlua2luZ19oCisjZGVmaW5lIEJTb2Z0
TGlua2luZ19oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNp
bmNsdWRlIDxtdXRleD4KKworI2RlZmluZSBCU09GVF9MSU5LX0ZSQU1FV09SSyhmcmFtZXdvcmsp
IFwKKyAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAg
ICAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeTsgXAorICAgICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZTsgXAorICAgICAgICBzdGQ6OmNhbGxfb25jZSgmb25jZSwgW10geyBc
CisgICAgICAgICAgICBmcmFtZXdvcmtMaWJyYXJ5ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy8iICNmcmFtZXdvcmsgIi5mcmFtZXdvcmsvIiAjZnJhbWV3b3JrLCBSVExEX05P
Vyk7IFwKKyAgICAgICAgICAgIFJFTEVBU0VfQkFTU0VSVF9XSVRIX01FU1NBR0UoZnJhbWV3b3Jr
TGlicmFyeSwgIiVzIiwgZGxlcnJvcigpKTsgXAorICAgICAgICB9KTsgXAorICAgICAgICByZXR1
cm4gZnJhbWV3b3JrTGlicmFyeTsgXAorICAgIH0KKworI2RlZmluZSBCU09GVF9MSU5LX0ZVTkNU
SU9OKGZyYW1ld29yaywgZnVuY3Rpb25OYW1lLCByZXN1bHRUeXBlLCBwYXJhbWV0ZXJEZWNsYXJh
dGlvbnMsIHBhcmFtZXRlck5hbWVzKSBcCisgICAgZXh0ZXJuICJDIiB7IFwKKyAgICByZXN1bHRU
eXBlIGZ1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnM7IFwKKyAgICB9IFwKKyAgICBz
dGF0aWMgcmVzdWx0VHlwZSBpbml0IyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25z
OyBcCisgICAgc3RhdGljIHJlc3VsdFR5cGUgKCpzb2Z0TGluayMjZnVuY3Rpb25OYW1lKSBwYXJh
bWV0ZXJEZWNsYXJhdGlvbnMgPSBpbml0IyNmdW5jdGlvbk5hbWU7IFwKKyAgICBcCisgICAgc3Rh
dGljIHJlc3VsdFR5cGUgaW5pdCMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBc
CisgICAgeyBcCisgICAgICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlOyBcCisgICAgICAg
IHN0ZDo6Y2FsbF9vbmNlKCZvbmNlLCBbXSB7IFwKKyAgICAgICAgICAgIHNvZnRMaW5rIyNmdW5j
dGlvbk5hbWUgPSAocmVzdWx0VHlwZSAoKikgcGFyYW1ldGVyRGVjbGFyYXRpb25zKSBkbHN5bShm
cmFtZXdvcmsjI0xpYnJhcnkoKSwgI2Z1bmN0aW9uTmFtZSk7IFwKKyAgICAgICAgICAgIFJFTEVB
U0VfQkFTU0VSVF9XSVRIX01FU1NBR0Uoc29mdExpbmsjI2Z1bmN0aW9uTmFtZSwgIiVzIiwgZGxl
cnJvcigpKTsgXAorICAgICAgICB9KTsgXAorICAgICAgICByZXR1cm4gc29mdExpbmsjI2Z1bmN0
aW9uTmFtZSBwYXJhbWV0ZXJOYW1lczsgXAorICAgIH0gXAorICAgIFwKKyAgICBpbmxpbmUgcmVz
dWx0VHlwZSBmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25zIFwKKyAgICB7IFwKKyAg
ICAgICAgcmV0dXJuIHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAg
ICB9CisKKyNlbmRpZiAvLyBCU29mdExpbmtpbmdfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274156</attachid>
            <date>2016-03-15 17:06:53 -0700</date>
            <delta_ts>2016-03-29 16:07:22 -0700</delta_ts>
            <desc>Patch v7</desc>
            <filename>bug-155409-20160315170641.patch</filename>
            <type>text/plain</type>
            <size>15591</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKaW5kZXggYThkZDUxMGI4YTBhNDE5
Njg2ODU5M2MxM2M0OTI1ZmE4M2NlMGNkMi4uM2IyM2M2MTIyYzNkNGRkYmI4Y2EwM2VjODZhMTRk
YmEwM2ExM2UyYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE2LTAzLTE1ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgYm1hbGxvYzogYWRkIGxv
Z2dpbmcgZm9yIG1tYXAoKSBmYWlsdXJlcworICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8x
NTU0MDk+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNDU2ODUxNT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQg
TG9nZ2luZy5jcHAuCisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogYm1hbGxvYy9CQXNzZXJ0Lmg6CisgICAgICAg
IChSRUxFQVNFX0JBU1NFUlRfV0lUSF9NRVNTQUdFKTogQWRkIG1hY3JvLgorICAgICAgICAqIGJt
YWxsb2MvTG9nZ2luZy5jcHA6IEFkZGVkLgorICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJl
KTogSW1wbGVtZW50YXRpb24uCisgICAgICAgICogYm1hbGxvYy9Mb2dnaW5nLmg6IEFkZGVkLgor
ICAgICAgICAoYm1hbGxvYzo6bG9nVk1GYWlsdXJlKTogRGVjbGFyYXRpb24uCisgICAgICAgICog
Ym1hbGxvYy9WTUFsbG9jYXRlLmg6CisgICAgICAgIChibWFsbG9jOjp0cnlWTUFsbG9jYXRlKTog
Q2FsbCBsb2dWTUZhaWx1cmUoKSBvbiBtbWFwKCkgZmFpbHVyZS4KKyAgICAgICAgKiBibWFsbG9j
L2Rhcndpbi9CU29mdExpbmtpbmcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NvZnRMaW5raW5nLmguCisKIDIwMTYtMDMtMTQgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTk3OTU1
LgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvYm1h
bGxvYy9DTWFrZUxpc3RzLnR4dAppbmRleCBmNmE0OTI5ZWFiYzRkYzRmMzJkNDc0YWVjNzdhM2Rm
YjYwMWMxNjdkLi5kMGQwMGExZmQwMDcwYTQyZDZhZTI4ZWI0Y2Y2NmM2MjU5ZmM2ODEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9DTWFrZUxpc3RzLnR4dApAQCAtOSw2ICs5LDcgQEAgc2V0KGJtYWxsb2NfU09VUkNFUwogICAg
IGJtYWxsb2MvRW52aXJvbm1lbnQuY3BwCiAgICAgYm1hbGxvYy9GcmVlTGlzdC5jcHAKICAgICBi
bWFsbG9jL0hlYXAuY3BwCisgICAgYm1hbGxvYy9Mb2dnaW5nLmNwcAogICAgIGJtYWxsb2MvT2Jq
ZWN0VHlwZS5jcHAKICAgICBibWFsbG9jL1NlZ3JlZ2F0ZWRGcmVlTGlzdC5jcHAKICAgICBibWFs
bG9jL1N0YXRpY011dGV4LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxZmY3NGM0ZmY0OGYwMjZhNjE3MWVjMDNiNDdhYzVl
NTVkNTc4MzUuLjdkNWU2MjZhOWVlMDFhN2U2MmJkOTJmZDVmOWQ2NjNlNTJhY2EzNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTY0LDYgKzY0LDkgQEAKIAkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREQTMyMEUxODg3
NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9OwogCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1
MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi87
IH07CiAJCTE0RjI3MUM5MThFQTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0RjdCRkIxOEJGQzUxNzAwMzUz
N0YzIC8qIFZNSGVhcC5jcHAgKi87IH07CisJCTQ0MjZFMjgwMUM4MzhFRTAwMDhFQjA0MiAvKiBM
b2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKKwkJNDQyNkUy
ODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDQy
NkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQyIC8q
IEJTb2Z0TGlua2luZy5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
IC8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC0xMzksNiArMTQy
LDkgQEAKIAkJMTREQTMyMEUxODg3NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSGVhcC5jcHA7IHBhdGggPSBibWFsbG9jL0hlYXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEVCNzlFODFDN0MxQkM0MDA1RTgz
NEYgLyogWExhcmdlUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gWExh
cmdlUmFuZ2UuaDsgcGF0aCA9IGJtYWxsb2MvWExhcmdlUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5h
cjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk0NDI2RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9n
Z2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNw
cDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyog
QlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlu
a2luZy5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4vQlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTI3OSw2ICsyODUs
NyBAQAogCQkxNEQ5REI0RjE3RjI4Njg5MDBFQUFCNzkgLyogc3RkbGliICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0NDA4RjI5NjFDOTg5NkM0MDAxMkVD
NjQgLyogZGFyd2luICovLAogCQkJCTE0MjFBODc3MThFRTQ2MkEwMEI0REQ2OCAvKiBBbGdvcml0
aG0uaCAqLywKIAkJCQkxNDE3RjY1MjE4QkE4OEEwMDA3NkZBM0YgLyogQXN5bmNUYXNrLmggKi8s
CiAJCQkJMTQxM0U0NjgxODlFRURFNDAwNTQ2RDY4IC8qIEJBc3NlcnQuaCAqLywKQEAgLTI4Niw2
ICsyOTMsOCBAQAogCQkJCTE0RDlEQjQ1MTdGMjQ0NzEwMEVBQUI3OSAvKiBGaXhlZFZlY3Rvci5o
ICovLAogCQkJCTE0MTNFNDYwMTg5RENFMUUwMDU0NkQ2OCAvKiBJbmxpbmUuaCAqLywKIAkJCQkx
NDFEOUFGRjFDOEU1MUMwMDAwQUJCQTAgLyogTGlzdC5oICovLAorCQkJCTQ0MjZFMjdFMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIw
NDIgLyogTG9nZ2luZy5oICovLAogCQkJCTE0NERDRUQ2MTdBNjQ5RDkwMDkzQjJGMiAvKiBNdXRl
eC5oICovLAogCQkJCTE0NDQ2QTA3MTdBNjFGQTQwMEY5RUExRCAvKiBQZXJQcm9jZXNzLmggKi8s
CiAJCQkJMTQ0NDY5RkQxN0E2MUYxRjAwRjlFQTFEIC8qIFBlclRocmVhZC5oICovLApAQCAtMzAw
LDYgKzMwOSwxNCBAQAogCQkJbmFtZSA9IHN0ZGxpYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CiAJCX07CisJCTQ0MDhGMjk2MUM5ODk2QzQwMDEyRUM2NCAvKiBkYXJ3aW4gKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQ0MjZFMjgyMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCAqLywKKwkJCSk7CisJCQluYW1lID0gZGFyd2luOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIC8qIEVuZCBQQlhHcm91cCBzZWN0aW9u
ICovCiAKIC8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTMzMSw2
ICszNDgsNyBAQAogCQkJCTE0REQ3OENEMThGNDhENzUwMDk1MDcwMiAvKiBSYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk5MThGNDhENEEwMDk1MDcwMiAvKiBDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlu
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNp
emVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzhDNzE4RjQ4RDc1MDA5NTA3MDIgLyogQkFz
c2VydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4RDAxOEY0OEQ3NTAwOTUwNzAyIC8qIFZN
QWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzQ1LDYgKzM2Myw3IEBACiAJCQkJMTQwMDI3
NEExOEY4OUMyMzAwMTE1Qzk3IC8qIFZNSGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQwMDI3
NDkxOEY4OUMxMzAwMTE1Qzk3IC8qIEhlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MEZBMDAz
MTlDRTQyOUMwMEZGRDNDOCAvKiBCdW1wUmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MjZF
MjgxMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERE
NzhDNTE4RjQ4RDc1MDA5NTA3MDIgLyogQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNERENzg4RTE4RjQ4Q0NEMDA5NTA3MDIgLyogQm91bmRhcnlUYWcuaCBpbiBIZWFkZXJzICov
LApAQCAtNDQzLDYgKzQ2Miw3IEBACiAJCQkJMTRGMjcxQzMxOEVBMzk3ODAwOEMxNTJGIC8qIEFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDg5NUQ5MTFBM0EzMTlDMDAwNjIzNUQg
LyogRW52aXJvbm1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQzRUY5QUYxQTlGQUJGNjAw
NEY1Qzc3IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ0MjZFMjgwMUM4MzhF
RTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM3MThF
QTM5OTAwMDhDMTUyRiAvKiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RjI3MUM5MThF
QTM5OTAwMDhDMTUyRiAvKiBWTUhlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0QzA3RjQx
QzdCNzAyNjAwNTFCQjZBIC8qIFhMYXJnZU1hcC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkFzc2VydC5oIGIvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9CQXNzZXJ0LmgKaW5kZXggZmM1NjFmNmQ4ZDQ3NjE2M2JiNzI1ZTVmZmUwYjE4OWUzMGRi
ZjMxMS4uMTE2OTg0NTNkYjcwNGVjMzExNmQxMGM3OTc5Njk4NDU2NzMyMzIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQXNzZXJ0LmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9CQXNzZXJ0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNjMsNiArNjMsOSBAQAogCiAjZGVmaW5lIFJFTEVBU0VfQkFTU0VS
VCh4KSBCQVNTRVJUX0lNUEwoeCkKIAorLy8gRklYTUU6IE91dHB1dCBsb2cgbWVzc2FnZS4KKyNk
ZWZpbmUgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FHRSh4LCBmLCAuLi4pIEJBU1NFUlRfSU1Q
TCh4KQorCiAjZGVmaW5lIFVOVVNFRCh4KSAodm9pZCl4CiAKIC8vID09PT09IFJlbGVhc2UgYnVp
bGQgPT09PT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5jcHAg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZWNiNmQz
MTE4MjljYTkzMjU0ODQwOWY3OTgxMTA1YWZlNmU2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgorCisjaWYgQlBMQVRGT1JNKElPUykKKyNpbmNsdWRl
IDxtYWNoL2V4Y2VwdGlvbl90eXBlcy5oPgorI2luY2x1ZGUgPG9iamMvb2JqYy5oPgorI2luY2x1
ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSAiQlNvZnRMaW5raW5nLmgiCitCU09GVF9MSU5LX0ZS
QU1FV09SSyhDcmFzaFJlcG9ydGVyU3VwcG9ydCk7CitCU09GVF9MSU5LX0ZVTkNUSU9OKENyYXNo
UmVwb3J0ZXJTdXBwb3J0LCBTaW11bGF0ZUNyYXNoLCBCT09MLCAocGlkX3QgcGlkLCBtYWNoX2V4
Y2VwdGlvbl9kYXRhX3R5cGVfdCBleGNlcHRpb25Db2RlLCBpZCBkZXNjcmlwdGlvbiksIChwaWQs
IGV4Y2VwdGlvbkNvZGUsIGRlc2NyaXB0aW9uKSk7CisjZW5kaWYKKworbmFtZXNwYWNlIGJtYWxs
b2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpCit7CisjaWYgQlBMQVRGT1JNKElPUykKKyAgICBj
b25zdCBtYWNoX2V4Y2VwdGlvbl9kYXRhX3R5cGVfdCBrRXhjZXB0aW9uQ29kZSA9IDB4YzEwNWNh
MTE7CisgICAgU2ltdWxhdGVDcmFzaChnZXRwaWQoKSwga0V4Y2VwdGlvbkNvZGUsIG51bGxwdHIp
OworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIGJtYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Mb2dn
aW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGY5ZjNlMWE4MGM2YTZkNDIxOTcwNDJhMzgwYmY1NDQyMTRkNGJh
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTG9nZ2luZy5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIExvZ2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworbmFtZXNwYWNlIGJt
YWxsb2MgeworCit2b2lkIGxvZ1ZNRmFpbHVyZSgpOworCit9IC8vIG5hbWVzcGFjZSBibWFsbG9j
CisKKyNlbmRpZiAvLyBMb2dnaW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvVk1BbGxvY2F0ZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKaW5k
ZXggMzRhYzM5NTUxZTkyZWMyMTMwMzY2OWZiYjIzMDZiOTI3MjY2NDAwZS4uNGNhNGQ4OTMyNjM3
MjA1MGVjMDQzMDY0MGMxYWI3MzlmNDU0YmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9WTUFsbG9jYXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBWTUFsbG9jYXRlX2gKIAogI2luY2x1ZGUgIkJB
c3NlcnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJTaXplcy5oIgogI2luY2x1ZGUgIlN5c2NhbGwuaCIKQEAgLTc3LDggKzc4LDEwIEBAIGlu
bGluZSB2b2lkKiB0cnlWTUFsbG9jYXRlKHNpemVfdCB2bVNpemUpCiB7CiAgICAgdm1WYWxpZGF0
ZSh2bVNpemUpOwogICAgIHZvaWQqIHJlc3VsdCA9IG1tYXAoMCwgdm1TaXplLCBQUk9UX1JFQUQg
fCBQUk9UX1dSSVRFLCBNQVBfUFJJVkFURSB8IE1BUF9BTk9OLCBCTUFMTE9DX1ZNX1RBRywgMCk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBNQVBfRkFJTEVEKQorICAgIGlmIChyZXN1bHQgPT0gTUFQX0ZB
SUxFRCkgeworICAgICAgICBsb2dWTUZhaWx1cmUoKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy9kYXJ3aW4vQlNvZnRMaW5raW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY1NmYwYzZiZDgwN2MwN2UwMmRh
YWUzZDJiNWM0MzQ5ZTg0ODhjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTEtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJTb2Z0TGlua2luZ19oCisjZGVmaW5lIEJTb2Z0
TGlua2luZ19oCisKKyNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSA8ZGxmY24uaD4KKyNp
bmNsdWRlIDxtdXRleD4KKworI2RlZmluZSBCU09GVF9MSU5LX0ZSQU1FV09SSyhmcmFtZXdvcmsp
IFwKKyAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrIyNMaWJyYXJ5KCkgXAorICAgIHsgXAorICAg
ICAgICBzdGF0aWMgdm9pZCogZnJhbWV3b3JrTGlicmFyeTsgXAorICAgICAgICBzdGF0aWMgc3Rk
OjpvbmNlX2ZsYWcgb25jZTsgXAorICAgICAgICBzdGQ6OmNhbGxfb25jZShvbmNlLCBbXSB7IFwK
KyAgICAgICAgICAgIGZyYW1ld29ya0xpYnJhcnkgPSBkbG9wZW4oIi9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzLyIgI2ZyYW1ld29yayAiLmZyYW1ld29yay8iICNmcmFtZXdvcmssIFJUTERfTk9X
KTsgXAorICAgICAgICAgICAgUkVMRUFTRV9CQVNTRVJUX1dJVEhfTUVTU0FHRShmcmFtZXdvcmtM
aWJyYXJ5LCAiJXMiLCBkbGVycm9yKCkpOyBcCisgICAgICAgIH0pOyBcCisgICAgICAgIHJldHVy
biBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgfQorCisjZGVmaW5lIEJTT0ZUX0xJTktfRlVOQ1RJ
T04oZnJhbWV3b3JrLCBmdW5jdGlvbk5hbWUsIHJlc3VsdFR5cGUsIHBhcmFtZXRlckRlY2xhcmF0
aW9ucywgcGFyYW1ldGVyTmFtZXMpIFwKKyAgICBleHRlcm4gIkMiIHsgXAorICAgIHJlc3VsdFR5
cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9uczsgXAorICAgIH0gXAorICAgIHN0
YXRpYyByZXN1bHRUeXBlIGluaXQjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnM7
IFwKKyAgICBzdGF0aWMgcmVzdWx0VHlwZSAoKnNvZnRMaW5rIyNmdW5jdGlvbk5hbWUpIHBhcmFt
ZXRlckRlY2xhcmF0aW9ucyA9IGluaXQjI2Z1bmN0aW9uTmFtZTsgXAorICAgIFwKKyAgICBzdGF0
aWMgcmVzdWx0VHlwZSBpbml0IyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25zIFwK
KyAgICB7IFwKKyAgICAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2U7IFwKKyAgICAgICAg
c3RkOjpjYWxsX29uY2Uob25jZSwgW10geyBcCisgICAgICAgICAgICBzb2Z0TGluayMjZnVuY3Rp
b25OYW1lID0gKHJlc3VsdFR5cGUgKCopIHBhcmFtZXRlckRlY2xhcmF0aW9ucykgZGxzeW0oZnJh
bWV3b3JrIyNMaWJyYXJ5KCksICNmdW5jdGlvbk5hbWUpOyBcCisgICAgICAgICAgICBSRUxFQVNF
X0JBU1NFUlRfV0lUSF9NRVNTQUdFKHNvZnRMaW5rIyNmdW5jdGlvbk5hbWUsICIlcyIsIGRsZXJy
b3IoKSk7IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0dXJuIHNvZnRMaW5rIyNmdW5jdGlv
bk5hbWUgcGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9IFwKKyAgICBcCisgICAgaW5saW5lIHJlc3Vs
dFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBcCisgICAg
ICAgIHJldHVybiBzb2Z0TGluayMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlck5hbWVzOyBcCisgICAg
fQorCisjZW5kaWYgLy8gQlNvZnRMaW5raW5nX2gK
</data>
<flag name="review"
          id="298664"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="298665"
          type_id="3"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>