<?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>144362</bug_id>
          
          <creation_ts>2015-04-28 16:31:04 -0700</creation_ts>
          <short_desc>Switch QuickLook soft-linking to use QuickLookSoftLink.{h,mm}</short_desc>
          <delta_ts>2015-04-29 18:20:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144406</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1089786</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 16:31:04 -0700</bug_when>
    <thetext>Switch soft-linking of QuickLook.framework to use QuickLookSoftLink.{mm,h}.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089787</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 16:31:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/20625299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089804</commentid>
    <comment_count>2</comment_count>
      <attachid>251903</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 17:50:42 -0700</bug_when>
    <thetext>Created attachment 251903
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089824</commentid>
    <comment_count>3</comment_count>
      <attachid>251903</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 18:18:54 -0700</bug_when>
    <thetext>Comment on attachment 251903
Patch v1

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        * platform/ios/QuickLookSoftLink.h: Added.
&gt; +        * platform/ios/QuickLookSoftLink.mm: Added.

I slightly prefer QuickLookSoftLinking.* to QuickLookSoftLink.* (same for the other soft linking files), but I don&apos;t object to the current name.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:18851
&gt; +				443917FD1A91B2F8006E04F2 /* QuickLookSoftLink.mm */,
&gt; +				443917FE1A91B2F8006E04F2 /* QuickLookSoftLink.h */,

This isn&apos;t sorted properly.

&gt; Source/WebCore/platform/ios/QuickLookSoftLink.h:26
&gt; +#ifndef QuickLookSoftLink_h
&gt; +#define QuickLookSoftLink_h

Since this header can only be included by Objective-C files, there&apos;s no need for this.

&gt; Source/WebCore/platform/ios/QuickLookSoftLink.mm:30
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#if USE(QUICK_LOOK)
&gt; +
&gt; +#include &quot;QuickLookSPI.h&quot;
&gt; +#include &quot;SoftLinking.h&quot;

#include =&gt; #import

&gt; Source/WebCore/platform/network/ios/QuickLook.mm:151
&gt; -        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
&gt; +        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverter alloc] initWithData:data name:nil uti:uti.get() options:nil]);

RetainPtr&lt;id&gt; =&gt; RetainPtr&lt;QLPreviewConverter&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089827</commentid>
    <comment_count>4</comment_count>
      <attachid>251903</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 18:24:25 -0700</bug_when>
    <thetext>Comment on attachment 251903
Patch v1

Oh, and you need semicolons at the end of all the SOFT_LINK_*()s. This is why iOS EWS is red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089851</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 19:33:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 251903 [details]
&gt; Patch v1
&gt; 
&gt; Oh, and you need semicolons at the end of all the SOFT_LINK_*()s. This is
&gt; why iOS EWS is red.

Actually, it&apos;s because I misspelled the macro in SoftLinking.h:

SOFT_LINK_CLASS_FOR_SORUCE

Should be:

SOFT_LINK_CLASS_FOR_SOURCE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089852</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 19:39:43 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; Oh, and you need semicolons at the end of all the SOFT_LINK_*()s. This is
&gt; &gt; why iOS EWS is red.
&gt; 
&gt; Actually, it&apos;s because I misspelled the macro in SoftLinking.h:
&gt; 
&gt; SOFT_LINK_CLASS_FOR_SORUCE
&gt; 
&gt; Should be:
&gt; 
&gt; SOFT_LINK_CLASS_FOR_SOURCE

Oh! Well I think you should still add the semicolons so that these look like other statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089853</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 19:44:35 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 251903 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251903&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:18
&gt; &gt; +        * platform/ios/QuickLookSoftLink.h: Added.
&gt; &gt; +        * platform/ios/QuickLookSoftLink.mm: Added.
&gt; 
&gt; I slightly prefer QuickLookSoftLinking.* to QuickLookSoftLink.* (same for
&gt; the other soft linking files), but I don&apos;t object to the current name.

I do, too, but this made it easier to write rules for check-webkit-style since there weren&apos;t any other files that ended in &quot;*SoftLink.h&quot;.

I&apos;ll consider this for a future change as CoreMediaSoftLink.{cpp,h} and one other class now exists.

&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:18851
&gt; &gt; +				443917FD1A91B2F8006E04F2 /* QuickLookSoftLink.mm */,
&gt; &gt; +				443917FE1A91B2F8006E04F2 /* QuickLookSoftLink.h */,
&gt; 
&gt; This isn&apos;t sorted properly.

Fixed!

&gt; &gt; Source/WebCore/platform/ios/QuickLookSoftLink.h:26
&gt; &gt; +#ifndef QuickLookSoftLink_h
&gt; &gt; +#define QuickLookSoftLink_h
&gt; 
&gt; Since this header can only be included by Objective-C files, there&apos;s no need
&gt; for this.

Fixed!

&gt; &gt; Source/WebCore/platform/ios/QuickLookSoftLink.mm:30
&gt; &gt; +#include &quot;config.h&quot;
&gt; &gt; +
&gt; &gt; +#if USE(QUICK_LOOK)
&gt; &gt; +
&gt; &gt; +#include &quot;QuickLookSPI.h&quot;
&gt; &gt; +#include &quot;SoftLinking.h&quot;
&gt; 
&gt; #include =&gt; #import

Fixed!

&gt; &gt; Source/WebCore/platform/network/ios/QuickLook.mm:151
&gt; &gt; -        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; +        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverter alloc] initWithData:data name:nil uti:uti.get() options:nil]);
&gt; 
&gt; RetainPtr&lt;id&gt; =&gt; RetainPtr&lt;QLPreviewConverter&gt;

I don&apos;t think this will work with this macro definition will it?:

#define QLPreviewConverter get_QuickLook_QLPreviewConverterClass()

Is it too non-obvious that this happens in the rest of the code?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089855</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 19:50:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; &gt; Patch v1
&gt; &gt; &gt; 
&gt; &gt; &gt; Oh, and you need semicolons at the end of all the SOFT_LINK_*()s. This is
&gt; &gt; &gt; why iOS EWS is red.
&gt; &gt; 
&gt; &gt; Actually, it&apos;s because I misspelled the macro in SoftLinking.h:
&gt; &gt; 
&gt; &gt; SOFT_LINK_CLASS_FOR_SORUCE
&gt; &gt; 
&gt; &gt; Should be:
&gt; &gt; 
&gt; &gt; SOFT_LINK_CLASS_FOR_SOURCE
&gt; 
&gt; Oh! Well I think you should still add the semicolons so that these look like
&gt; other statements.

In the name of consistency, I&apos;m going to leave them off for now:

$ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | grep &apos;;$&apos; | wc -l
      69
$ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | grep &apos;[^;]$&apos; | wc -l
     851
$ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | wc -l
     920

Maybe we need a rule about this, though.  (Macros that don&apos;t require a semi-colon should have one regardless?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089856</commentid>
    <comment_count>9</comment_count>
      <attachid>251917</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 19:54:57 -0700</bug_when>
    <thetext>Created attachment 251917
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089857</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 19:55:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; &gt; &gt; Patch v1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Oh, and you need semicolons at the end of all the SOFT_LINK_*()s. This is
&gt; &gt; &gt; &gt; why iOS EWS is red.
&gt; &gt; &gt; 
&gt; &gt; &gt; Actually, it&apos;s because I misspelled the macro in SoftLinking.h:
&gt; &gt; &gt; 
&gt; &gt; &gt; SOFT_LINK_CLASS_FOR_SORUCE
&gt; &gt; &gt; 
&gt; &gt; &gt; Should be:
&gt; &gt; &gt; 
&gt; &gt; &gt; SOFT_LINK_CLASS_FOR_SOURCE
&gt; &gt; 
&gt; &gt; Oh! Well I think you should still add the semicolons so that these look like
&gt; &gt; other statements.
&gt; 
&gt; In the name of consistency, I&apos;m going to leave them off for now:
&gt; 
&gt; $ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | grep &apos;;$&apos; | wc -l
&gt;       69
&gt; $ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | grep &apos;[^;]$&apos; | wc -l
&gt;      851
&gt; $ grep -r &apos;SOFT_LINK_&apos; Source/WebCore | wc -l
&gt;      920
&gt; 
&gt; Maybe we need a rule about this, though.  (Macros that don&apos;t require a
&gt; semi-colon should have one regardless?)

That&apos;s fine. I was just expressing a personal preference for preprocessor macro invocations to look like regular C++ statements, but it&apos;s not a style guideline or requirement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089858</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 20:12:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=251903&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/network/ios/QuickLook.mm:151
&gt; &gt; &gt; -        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; &gt; +        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverter alloc] initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; 
&gt; &gt; RetainPtr&lt;id&gt; =&gt; RetainPtr&lt;QLPreviewConverter&gt;
&gt; 
&gt; I don&apos;t think this will work with this macro definition will it?:
&gt; 
&gt; #define QLPreviewConverter get_QuickLook_QLPreviewConverterClass()
&gt; 
&gt; Is it too non-obvious that this happens in the rest of the code?

Oh, I missed that this was a #define, sorry! We seem to not be doing ourselves any favors by using this #define, though. Using id instead of the real type means we lose some compile-time type safety, and we have the information we need to use the real type even when soft-linking (by importing QuickLookSPI.h).

We should look to improve this in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089870</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-28 20:34:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; &gt; Patch v1
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=251903&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/network/ios/QuickLook.mm:151
&gt; &gt; &gt; &gt; -        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; &gt; &gt; +        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverter alloc] initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; &gt; 
&gt; &gt; &gt; RetainPtr&lt;id&gt; =&gt; RetainPtr&lt;QLPreviewConverter&gt;
&gt; &gt; 
&gt; &gt; I don&apos;t think this will work with this macro definition will it?:
&gt; &gt; 
&gt; &gt; #define QLPreviewConverter get_QuickLook_QLPreviewConverterClass()
&gt; &gt; 
&gt; &gt; Is it too non-obvious that this happens in the rest of the code?
&gt; 
&gt; Oh, I missed that this was a #define, sorry! We seem to not be doing
&gt; ourselves any favors by using this #define, though. Using id instead of the
&gt; real type means we lose some compile-time type safety, and we have the
&gt; information we need to use the real type even when soft-linking (by
&gt; importing QuickLookSPI.h).
&gt; 
&gt; We should look to improve this in a follow-up.

Just to clarify, I&apos;m not saying we have no need for get_QuickLook_QLPreviewConverterClass(). I&apos;m just saying that for the purposes of RetainPtr&lt;&gt;&apos;s type parameter, we can use the real class name and get the compile-time benefits of importing its @interface even if we aren&apos;t linking against the framework.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089872</commentid>
    <comment_count>13</comment_count>
      <attachid>251917</attachid>
    <who name="">mitz</who>
    <bug_when>2015-04-28 20:39:01 -0700</bug_when>
    <thetext>Comment on attachment 251917
Patch for EWS

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

&gt; Source/WebCore/platform/network/ios/QuickLook.mm:398
&gt; -    , m_converter(adoptNS([allocQLPreviewConverterInstance() initWithConnection:connection delegate:delegate response:nsResponse options:nil]))
&gt; +    , m_converter(adoptNS([[QLPreviewConverter alloc] initWithConnection:connection delegate:delegate response:nsResponse options:nil]))

We have specifically introduced the alloc…Instance() macros to avoid compiler errors when multiple methods with the same signature but different types exist. This seems like taking a step backwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089879</commentid>
    <comment_count>14</comment_count>
      <attachid>251921</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-28 21:09:45 -0700</bug_when>
    <thetext>Created attachment 251921
Patch for EWS v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089992</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 08:28:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #7)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; Comment on attachment 251903 [details]
&gt; &gt; &gt; &gt; Patch v1
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=251903&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebCore/platform/network/ios/QuickLook.mm:151
&gt; &gt; &gt; &gt; &gt; -        RetainPtr&lt;id&gt; converter = adoptNS([allocQLPreviewConverterInstance() initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; &gt; &gt; &gt; +        RetainPtr&lt;id&gt; converter = adoptNS([[QLPreviewConverter alloc] initWithData:data name:nil uti:uti.get() options:nil]);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; RetainPtr&lt;id&gt; =&gt; RetainPtr&lt;QLPreviewConverter&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think this will work with this macro definition will it?:
&gt; &gt; &gt; 
&gt; &gt; &gt; #define QLPreviewConverter get_QuickLook_QLPreviewConverterClass()
&gt; &gt; &gt; 
&gt; &gt; &gt; Is it too non-obvious that this happens in the rest of the code?
&gt; &gt; 
&gt; &gt; Oh, I missed that this was a #define, sorry! We seem to not be doing
&gt; &gt; ourselves any favors by using this #define, though. Using id instead of the
&gt; &gt; real type means we lose some compile-time type safety, and we have the
&gt; &gt; information we need to use the real type even when soft-linking (by
&gt; &gt; importing QuickLookSPI.h).
&gt; &gt; 
&gt; &gt; We should look to improve this in a follow-up.
&gt; 
&gt; Just to clarify, I&apos;m not saying we have no need for
&gt; get_QuickLook_QLPreviewConverterClass(). I&apos;m just saying that for the
&gt; purposes of RetainPtr&lt;&gt;&apos;s type parameter, we can use the real class name and
&gt; get the compile-time benefits of importing its @interface even if we aren&apos;t
&gt; linking against the framework.

Okay, will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089993</commentid>
    <comment_count>16</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 08:29:00 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 251917 [details]
&gt; Patch for EWS
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=251917&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/ios/QuickLook.mm:398
&gt; &gt; -    , m_converter(adoptNS([allocQLPreviewConverterInstance() initWithConnection:connection delegate:delegate response:nsResponse options:nil]))
&gt; &gt; +    , m_converter(adoptNS([[QLPreviewConverter alloc] initWithConnection:connection delegate:delegate response:nsResponse options:nil]))
&gt; 
&gt; We have specifically introduced the alloc…Instance() macros to avoid
&gt; compiler errors when multiple methods with the same signature but different
&gt; types exist. This seems like taking a step backwards.

I will re-instate the alloc...Instance() method before landing.

Thanks for the background; I was not aware this was done for a specific reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089999</commentid>
    <comment_count>17</comment_count>
      <attachid>251952</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 08:48:05 -0700</bug_when>
    <thetext>Created attachment 251952
Patch for EWS v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090004</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-29 08:50:47 -0700</bug_when>
    <thetext>Attachment 251952 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/SoftLinking.h:326:  Extra space before [  [whitespace/braces] [5]
Total errors found: 1 in 7 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>1090011</commentid>
    <comment_count>19</comment_count>
      <attachid>251952</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 09:06:32 -0700</bug_when>
    <thetext>Comment on attachment 251952
Patch for EWS v3

Forgot to remove the #define!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090013</commentid>
    <comment_count>20</comment_count>
      <attachid>251955</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 09:07:50 -0700</bug_when>
    <thetext>Created attachment 251955
Patch for EWS v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090016</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-29 09:10:53 -0700</bug_when>
    <thetext>Attachment 251955 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/SoftLinking.h:326:  Extra space before [  [whitespace/braces] [5]
Total errors found: 1 in 7 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>1090024</commentid>
    <comment_count>22</comment_count>
      <attachid>251957</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 09:25:58 -0700</bug_when>
    <thetext>Created attachment 251957
Patch for EWS v5 / Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090025</commentid>
    <comment_count>23</comment_count>
      <attachid>251955</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 09:27:02 -0700</bug_when>
    <thetext>Comment on attachment 251955
Patch for EWS v4

Need to declare function pointer get_##framework##_##className##Class() as extern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090026</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-29 09:29:23 -0700</bug_when>
    <thetext>Attachment 251957 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/SoftLinking.h:327:  Extra space before [  [whitespace/braces] [5]
Total errors found: 1 in 7 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>1090034</commentid>
    <comment_count>25</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 09:40:52 -0700</bug_when>
    <thetext>Committed r183553: &lt;http://trac.webkit.org/changeset/183553&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090121</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-29 12:38:11 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 144406</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090135</commentid>
    <comment_count>27</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-29 12:58:02 -0700</bug_when>
    <thetext>Here was the iOS build error:

/Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/platform/ios/QuickLookSoftLink.mm:41:51: error: redefinition of &apos;QLPreviewScheme&apos; with a different type: &apos;const NSString *&apos; vs &apos;NSString *const&apos;
SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, QuickLook, QLPreviewScheme, NSString *)
In file included from /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/platform/ios/QuickLookSoftLink.mm:30:
/Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/platform/mac/SoftLinking.h:366:31: note: expanded from macro &apos;SOFT_LINK_CONSTANT_FOR_SOURCE&apos;
In file included from /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/platform/ios/QuickLookSoftLink.mm:29:
In file included from /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/platform/spi/ios/QuickLookSPI.h:30:
/Applications/Monarch/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.Internal.sdk/System/Library/Frameworks/QuickLook.framework/PrivateHeaders/QuickLookPrivate.h:17:27: note: previous definition is here
QL_EXPORT NSString* const QLPreviewScheme;
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090136</commentid>
    <comment_count>28</comment_count>
    <who name="">mitz</who>
    <bug_when>2015-04-29 12:59:45 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Here was the iOS build error:
&gt; 
&gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; platform/ios/QuickLookSoftLink.mm:41:51: error: redefinition of
&gt; &apos;QLPreviewScheme&apos; with a different type: &apos;const NSString *&apos; vs &apos;NSString
&gt; *const&apos;
&gt; SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, QuickLook, QLPreviewScheme, NSString
&gt; *)
&gt; In file included from
&gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; platform/ios/QuickLookSoftLink.mm:30:
&gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; platform/mac/SoftLinking.h:366:31: note: expanded from macro
&gt; &apos;SOFT_LINK_CONSTANT_FOR_SOURCE&apos;
&gt; In file included from
&gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; platform/ios/QuickLookSoftLink.mm:29:
&gt; In file included from
&gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; platform/spi/ios/QuickLookSPI.h:30:
&gt; /Applications/Monarch/Xcode.app/Contents/Developer/Platforms/iPhoneOS.
&gt; platform/Developer/SDKs/iPhoneOS9.0.Internal.sdk/System/Library/Frameworks/
&gt; QuickLook.framework/PrivateHeaders/QuickLookPrivate.h:17:27: note: previous
&gt; definition is here
&gt; QL_EXPORT NSString* const QLPreviewScheme;
&gt; 1 error generated.

Didn’t http://trac.webkit.org/r183561 fix that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090137</commentid>
    <comment_count>29</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-04-29 13:06:56 -0700</bug_when>
    <thetext>&gt; (In reply to comment #27)
&gt; &gt; Here was the iOS build error:
&gt; &gt; 
&gt; &gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; &gt; platform/ios/QuickLookSoftLink.mm:41:51: error: redefinition of
&gt; &gt; &apos;QLPreviewScheme&apos; with a different type: &apos;const NSString *&apos; vs &apos;NSString
&gt; &gt; *const&apos;
&gt; &gt; SOFT_LINK_CONSTANT_FOR_SOURCE(WebCore, QuickLook, QLPreviewScheme, NSString
&gt; &gt; *)
&gt; &gt; In file included from
&gt; &gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; &gt; platform/ios/QuickLookSoftLink.mm:30:
&gt; &gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; &gt; platform/mac/SoftLinking.h:366:31: note: expanded from macro
&gt; &gt; &apos;SOFT_LINK_CONSTANT_FOR_SOURCE&apos;
&gt; &gt; In file included from
&gt; &gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; &gt; platform/ios/QuickLookSoftLink.mm:29:
&gt; &gt; In file included from
&gt; &gt; /Volumes/Data/BuildSlave/Monarch-WebKit/build/OpenSource/Source/WebCore/
&gt; &gt; platform/spi/ios/QuickLookSPI.h:30:
&gt; &gt; /Applications/Monarch/Xcode.app/Contents/Developer/Platforms/iPhoneOS.
&gt; &gt; platform/Developer/SDKs/iPhoneOS9.0.Internal.sdk/System/Library/Frameworks/
&gt; &gt; QuickLook.framework/PrivateHeaders/QuickLookPrivate.h:17:27: note: previous
&gt; &gt; definition is here
&gt; &gt; QL_EXPORT NSString* const QLPreviewScheme;
&gt; &gt; 1 error generated.
&gt; 
&gt; Didn’t http://trac.webkit.org/r183561 fix that?

That revision just turned the error into:

error: redefinition of &apos;QLPreviewScheme&apos; with a different type: &apos;const NSString *const&apos; vs &apos;NSString *const&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090152</commentid>
    <comment_count>30</comment_count>
      <attachid>251987</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 14:18:01 -0700</bug_when>
    <thetext>Created attachment 251987
Patch for EWS v6 / Landing #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090153</commentid>
    <comment_count>31</comment_count>
      <attachid>251957</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 14:19:33 -0700</bug_when>
    <thetext>Comment on attachment 251957
Patch for EWS v5 / Landing

For the &apos;NSString *&apos; extern variable, we needed SOFT_LINK_POINTER_FOR_{HEADER,SOURCE} macros to be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1090273</commentid>
    <comment_count>32</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-04-29 18:20:10 -0700</bug_when>
    <thetext>Committed r183598: &lt;http://trac.webkit.org/changeset/183598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251903</attachid>
            <date>2015-04-28 17:50:42 -0700</date>
            <delta_ts>2015-04-28 18:18:54 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-144362-20150428174933.patch</filename>
            <type>text/plain</type>
            <size>23513</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIzZjVkNjk2N2U4NTg1
YTdkZDliOTZkNTk2ZDZjZGRkNjJlZTZjZS4uYjM4MWRjZjIwOGY2NzY4ODQxMmUwOGQwMGQwMWMx
N2ZiZDIxNGM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBzd2l0Y2hlcyBzb2Z0LWxpbmtpbmcgb2Yg
UXVpY2tMb29rLmZyYW1ld29yayB0bworICAgICAgICBRdWlja0xvb2tTb2Z0TGluay57aCxtbX0g
c28gdGhhdCB3ZSBzdG9wIGV4cG9ydGluZyB1bmludGVuZGVkCisgICAgICAgIHN5bWJvbHMuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBBZGQg
UXVpY2tMb29rU29mdExpbmtpbmcue2gsbW19IHRvIHRoZSBwcm9qZWN0LgorCisgICAgICAgICog
cGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5tbTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjL1NvZnRMaW5raW5nLmg6CisgICAgICAgIChTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURFUik6
IEFkZCBtYWNyby4KKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKTogQWRkIG1h
Y3JvLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmg6CisgICAg
ICAgIC0gUmVtb3ZlIHVudXNlZCBkZWNsYXJhdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2lvcy9RdWlja0xvb2subW06CisgICAgICAgIChXZWJDb3JlOjpRTFByZXZpZXdDb252
ZXJ0ZXJDbGFzcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpRTFR5cGVDb3B5QmVzdE1p
bWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKTogRGVsZXRlZC4K
KyAgICAgICAgLSBSZW1vdmUgU09GVF9MSU5LIG1hY3JvcyBhbmQgdW51c2VkIG1ldGhvZHMgYWZ0
ZXIgc3dpdGNoaW5nIHRvCisgICAgICAgICAgbmV3IFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfS4K
KyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCk6Cisg
ICAgICAgIC0gU3dpdGNoIHRvIHVzZSBOZXZlckRlc3Ryb3llZDw+LgorICAgICAgICAoV2ViQ29y
ZTo6cmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZCk6CisgICAgICAgIChjcmVhdGVR
TFByZXZpZXdQcm90b2NvbCk6CisgICAgICAgIChXZWJDb3JlOjpRTFByZXZpZXdQcm90b2NvbCk6
CisgICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OlF1aWNrTG9va0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpRdWlja0xvb2tIYW5kbGU6OnNob3VsZENyZWF0ZUZvck1JTUVUeXBlKToKKyAgICAgICAg
LSBTaW1wbGlmeSBjb2RlIHdoZW4gdXNpbmcgUXVpY2tMb29rU29mdExpbmsuaC4KKworICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbToKKyAgICAg
ICAgLSBJbmNsdWRlIFF1aWNrTG9va1NvZnRMaW5rLmggaGVhZGVyLgorCiAyMDE1LTA0LTI4ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uLmZhYmxldEBjcmYuY2Fub24uZnI+CiAKICAgICAgICAgU2hh
cmVkQnVmZmVyOjpjb3B5IGlzIG5vdCBjb21wdXRpbmcgdGhlIGJ1ZmZlciBzaXplIGNvcnJlY3Rs
eSB3aGVuIGhhdmluZyBtX2RhdGFBcnJheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJmMTg0MzI5MzA1Y2FkY2NkY2Q4MmFlY2E5
ZWVjZjM4YTZkMTI5ODkuLmM5ODZjMTBjM2NiYjEwOWRjZWYwNjZlYjMzOGYzNGM0MWFiYWRjY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTE1OTksNyArMTU5OSw5IEBACiAJCTQ0MzExQ0Q5MTJFNEUyNTcwMDBBOEQxOSAvKiBE
T01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzMTFDRDQxMkU0RTIyRDAwMEE4RDE5
IC8qIERPTURvY3VtZW50RnJhZ21lbnRQcml2YXRlLmggKi87IH07CiAJCTQ0MzExRjgyMTJFNEU2
NkMwMDBBOEQxOSAvKiBET01Eb2N1bWVudEZyYWdtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RTcxMTQ1MEFDNUQ1MzQwMDUzMjcw
RiAvKiBET01Eb2N1bWVudEZyYWdtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJNDQzODE3RkYxQTkx
QjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzgxN0ZEMUE5MUIyRjgwMDZFMDRGMiAvKiBD
b3JlTWVkaWFTb2Z0TGluay5jcHAgKi87IH07CisJCTQ0MzkxN0ZGMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ0MzkxN0ZEMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGlu
ay5tbSAqLzsgfTsKIAkJNDQzODE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRM
aW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM4
MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsuaCAqLzsgfTsKKwkJNDQz
OTE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM5MTdGRTFBOTFCMkY4MDA2RTA0
RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLzsgfTsKIAkJNDQzRjA0MjcwRTc1QzhGQjAwN0U1
NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdv
cmtTdGF0ZU5vdGlmaWVySU9TLm1tICovOyB9OwogCQk0NDQ5QTQwNTFBOTY0QjAwMDBCNjRBRDUg
LyogQ29yZU1lZGlhU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDQ5QTQwNDFBOTY0QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi87IH07
CiAJCTQ0NEQ0RTIzMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDRENEUyMTBG
NzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovOyB9OwpAQCAtODc2
MSw3ICs4NzYzLDkgQEAKIAkJNDQzMTFDRDQxMkU0RTIyRDAwMEE4RDE5IC8qIERPTURvY3VtZW50
RnJhZ21lbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURv
Y3VtZW50RnJhZ21lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
MzExQ0Q1MTJFNEUyMkQwMDBBOEQxOSAvKiBET01Eb2N1bWVudFByaXZhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1lbnRQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0MzgxN0ZEMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFT
b2Z0TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb3JlTWVk
aWFTb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MzkxN0ZEMUE5
MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IGlvcy9RdWlja0xvb2tTb2Z0TGluay5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzODE3RkUxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRp
YVNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVNZWRpYVNv
ZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0MzkxN0ZFMUE5MUIyRjgw
MDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBpb3MvUXVpY2tMb29rU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVySU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1N0YXRl
Tm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NDlBNDA0MUE5
NjRCMDAwMEI2NEFENSAvKiBDb3JlTWVkaWFTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29yZU1lZGlhU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0
NEQ0RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg0Myw2ICsxODg0Nyw4IEBACiAJ
CQkJQzUyNzhCMEIxN0YyMTJFQTAwM0EyOTk4IC8qIFBsYXRmb3JtUGFzdGVib2FyZElPUy5tbSAq
LywKIAkJCQlFNDUzOTAzMjBFQUZENjM3MDAzNjk1QzggLyogUGxhdGZvcm1TY3JlZW5JT1MubW0g
Ki8sCiAJCQkJQUFFMzc1NUQxNzQyOUJDQzAwNjIwMEMyIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2l6ZXJJT1MubW0gKi8sCisJCQkJNDQzOTE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9v
a1NvZnRMaW5rLm1tICovLAorCQkJCTQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xv
b2tTb2Z0TGluay5oICovLAogCQkJCUNERkMzNjAxMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaCAqLywKIAkJCQlDREZDMzYwMjE4Q0E2MTYzMDAyNkU1NkYgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICovLAogCQkJCTQ0QzM2M0VFMEZBQTdCQjMwMDk3
RjhDQyAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaCAqLywKQEAgLTI2MDQxLDYgKzI2
MDQ3LDcgQEAKIAkJCQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyM0QxQTE2NzZDRDAwODY0NDgwIC8qIFF1YXJ0ekNv
cmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MkFGN0E5MTAyQ0RERUEwMDhGRDREMyAvKiBR
dWlja0xvb2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0MzkxODAwMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0OTc4NkYxQUJBRjMz
ODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTI1MjM5
MUExNjZGQTAwMDg2NDQ4MCAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
MERCRjQ3MThGOTIzMTcwMDBENzBDNiAvKiBRdWlja0xvb2tIYW5kbGVDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjk1NDAsNiArMjk1NDcsNyBAQAogCQkJCUNERUUzOTM3MTc5NzQyNTkwMDFE
NzU4MCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU1MEEwQkM5
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ0MkFGN0FBMTAyQ0RERUEwMDhGRDREMyAvKiBRdWlja0xvb2subW0gaW4gU291cmNlcyAqLywK
KwkJCQk0NDM5MTdGRjFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gaW4g
U291cmNlcyAqLywKIAkJCQkwNzJBRTFFNjE4M0MwNzQxMDAwQTU5ODggLyogUXVpY2tUaW1lUGx1
Z2luUmVwbGFjZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzlFMzcxNjEzNzM2QTY2MDBC
OUU5MTkgLyogUXVvdGVkUHJpbnRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVBNTc0RjI4
MTMxREI5NkQwMDQ3MUI4OCAvKiBRdW90ZXNEYXRhLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzAyMmE3NWE4OWYzNDM4ZTdjZDRlZGZmZjA1ZTRhZmE1ZDk3OGZkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmgKQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFF1aWNrTG9va1NvZnRMaW5rX2gK
KyNkZWZpbmUgUXVpY2tMb29rU29mdExpbmtfaAorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKyNp
bmNsdWRlICJRdWlja0xvb2tTUEkuaCIKKyNpbmNsdWRlICJTb2Z0TGlua2luZy5oIgorCitTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rKQorCitTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0NvbnZlcnRl
cikKKyNkZWZpbmUgUUxQcmV2aWV3Q29udmVydGVyIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3Q29u
dmVydGVyQ2xhc3MoKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3JlLCBR
dWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgp
KQorI2RlZmluZSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMgc29mdExpbmtfUXVpY2tM
b29rX1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJp
bmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCisjZGVmaW5lIFFMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5
cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZQorU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBl
Rm9yVVJMQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWlt
ZVR5cGUpLCAodXJsLCBtaW1lVHlwZSkpCisjZGVmaW5lIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVG
b3JVUkxBbmRNaW1lVHlwZSBzb2Z0TGlua19RdWlja0xvb2tfUUxUeXBlQ29weUJlc3RNaW1lVHlw
ZUZvclVSTEFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBRdWlja0xvb2ssIFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwg
KE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmwsIG1pbWVUeXBlKSkKKyNkZWZp
bmUgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUKKworU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFE
RVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdTY2hlbWUsIE5TU3RyaW5nICopCisjZGVm
aW5lIFFMUHJldmlld1NjaGVtZSBnZXRfUXVpY2tMb29rX1FMUHJldmlld1NjaGVtZSgpCisKKyNl
bmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKKworI2VuZGlmIC8vIFF1aWNrTG9va1NvZnRMaW5rX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGlu
ay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYzg2MDJkMmQ4NjkzZmUzZGFiYmMzNzU0OGE0MDFlMDI2YTVkZTc5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRM
aW5rLm1tCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKyNpbmNsdWRlICJRdWlja0xvb2tTUEkuaCIKKyNp
bmNsdWRlICJTb2Z0TGlua2luZy5oIgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgUXVpY2tMb29rKQorCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRShXZWJDb3Jl
LCBRdWlja0xvb2ssIFFMUHJldmlld0NvbnZlcnRlcikKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlw
ZXMsIE5TU2V0ICosICgpLCAoKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIFF1aWNrTG9vaywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5
cGUsIE5TU3RyaW5nICosIChOU1N0cmluZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1lVHlwZSks
IChmaWxlTmFtZSwgbWltZVR5cGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUs
IE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1l
VHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ss
IFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmws
IE5TU3RyaW5nICptaW1lVHlwZSksICh1cmwsIG1pbWVUeXBlKSkKKworU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdTY2hlbWUsIE5TU3Ry
aW5nICopCisKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9Tb2Z0TGlua2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NvZnRMaW5raW5nLmgKaW5kZXggOGE5YjlhNWI1MjU1NDA0MjFhMjk1YjlmNzRkMWMy
Yjc5OGY3MWI1YS4uNzQ3NjEwODdhZDQxMWI3OWFjYzk0NTRkZTUxZDYyNDIxMDkwNmFkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmgKQEAgLTMxNyw2ICszMTcs
MzcgQEAKICAgICB9IFwKICAgICB9CiAKKyNkZWZpbmUgU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgY2xhc3NOYW1lKSBcCisgICAgQGNsYXNz
IGNsYXNzTmFtZTsgXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAgICBD
bGFzcyAoKmdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcykoKTsgXAorICAgIH0K
KworI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPUlVDRShmdW5jdGlvbk5hbWVzcGFjZSwg
ZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKKyAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFt
ZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAorICAgIHN0YXRpYyBDbGFzcyBpbml0IyNjbGFz
c05hbWUoKTsgXAorICAgIENsYXNzICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0Ns
YXNzKSgpID0gaW5pdCMjY2xhc3NOYW1lOyBcCisgICAgc3RhdGljIENsYXNzIGNsYXNzIyNjbGFz
c05hbWU7IFwKKyAgICBcCisgICAgc3RhdGljIENsYXNzIGNsYXNzTmFtZSMjRnVuY3Rpb24oKSBc
CisgICAgeyBcCisgICAgICAgIHJldHVybiBjbGFzcyMjY2xhc3NOYW1lOyBcCisgICAgfSBcCisg
ICAgXAorICAgIHN0YXRpYyBDbGFzcyBpbml0IyNjbGFzc05hbWUoKSBcCisgICAgeyBcCisgICAg
ICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNl
KCZvbmNlLCBeeyBcCisgICAgICAgICAgICBmcmFtZXdvcmsjI0xpYnJhcnkoKTsgXAorICAgICAg
ICAgICAgY2xhc3MjI2NsYXNzTmFtZSA9IG9iamNfZ2V0Q2xhc3MoI2NsYXNzTmFtZSk7IFwKKyAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNsYXNzIyNjbGFzc05hbWUpOyBcCisgICAgICAgICAg
ICBnZXRfIyNmcmFtZXdvcmsjI18jI2NsYXNzTmFtZSMjQ2xhc3MgPSBjbGFzc05hbWUjI0Z1bmN0
aW9uOyBcCisgICAgICAgIH0pOyBcCisgICAgICAgIHJldHVybiBjbGFzcyMjY2xhc3NOYW1lOyBc
CisgICAgfSBcCisgICAgfQorCiAjZGVmaW5lIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVS
KGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIHZhcmlhYmxlTmFtZSwgdmFyaWFibGVUeXBl
KSBcCiAgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwKICAgICBleHRlcm4gY29uc3QgdmFyaWFibGVU
eXBlIHZhcmlhYmxlTmFtZTsgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2suaAppbmRleCBkZTI0ZjEzMmQ0OGZkODM2YjhkZDZiZGU4YzlkMWEwYmI0
M2QwM2M2Li45ZDVhZTJhY2JlZTYxZmNkZjcxZGE5OWUyZDJhM2I1YTRlN2UyNTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaApAQCAtNTcs
MTAgKzU3LDYgQEAgY2xhc3MgUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OwogY2xhc3MgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
OwogCi1DbGFzcyBRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpOwotTlNTdHJpbmcgKlFMVHlwZUNv
cHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwg
TlNTdHJpbmcgKm1pbWVUeXBlKTsKLU5TU3RyaW5nICpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9y
VVJMQW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKLQogV0VCQ09SRV9F
WFBPUlQgTlNTZXQgKlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpOwogCiAvLyBV
c2VkIGZvciBzZXR0aW5nIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgc2F2ZWQgUUwgY29udGVudApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29r
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCmlu
ZGV4IGE5YWRmMzYxNjk3MzgyNTU0YmZhZTZiMWNlYTUyZjRkYThmNjNiZWIuLjM5ODllYTM3Y2Y4
OTA3ODI4MzMzNDVmNmYzMGNiNWJhNWMwZjlmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KQEAgLTMyLDEyICszMiwxMSBAQAogI2lt
cG9ydCAiRmlsZVN5c3RlbUlPUy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTlNG
aWxlTWFuYWdlclNQSS5oIgotI2ltcG9ydCAiUXVpY2tMb29rU1BJLmgiCisjaW1wb3J0ICJRdWlj
a0xvb2tTb2Z0TGluay5oIgogI2ltcG9ydCAiUmVzb3VyY2VFcnJvci5oIgogI2ltcG9ydCAiUmVz
b3VyY2VIYW5kbGUuaCIKICNpbXBvcnQgIlJlc291cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJSdW50
aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaCIKLSNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1w
b3J0ICJTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaCIK
ICNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZUlPUy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CkBAIC01Niw2MCArNTUsMTQgQEAKIEBlbmQKICNlbmRpZgogCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLX09QVElPTkFMKFF1aWNrTG9vaykKLVNPRlRfTElOS19DTEFTUyhRdWlja0xv
b2ssIFFMUHJldmlld0NvbnZlcnRlcikKLVNPRlRfTElOS19NQVlfRkFJTChRdWlja0xvb2ssIFFM
UHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQotU09GVF9MSU5L
X01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5k
TWltZVR5cGUsIE5TU3RyaW5nICosIChOU1N0cmluZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1l
VHlwZSksIChmaWxlTmFtZSwgbWltZVR5cGUpKQotU09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9v
aywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAo
TlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQotU09GVF9M
SU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBO
U1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5
cGUpKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKFF1aWNrTG9vaywgUUxQcmV2aWV3U2No
ZW1lLCBOU1N0cmluZyAqKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgTlNTdHJpbmcgKlFM
VHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5
cGUpOwotfQotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotQ2xhc3MgV2ViQ29yZTo6UUxQ
cmV2aWV3Q29udmVydGVyQ2xhc3MoKQotewotI2RlZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0
UUxQcmV2aWV3Q29udmVydGVyQ2xhc3MoKQotICAgIHJldHVybiBRTFByZXZpZXdDb252ZXJ0ZXI7
Ci0jdW5kZWYgUUxQcmV2aWV3Q29udmVydGVyCi19Ci0KLU5TU3RyaW5nICpXZWJDb3JlOjpRTFR5
cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZShOU1N0cmluZyAqZmlsZU5h
bWUsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5QmVz
dE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSgpKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgcmV0dXJuIDo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5
cGUoZmlsZU5hbWUsIG1pbWVUeXBlKTsKLX0KLQotTlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNv
cHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWlt
ZVR5cGUpCi17Ci0gICAgaWYgKCFjYW5Mb2FkUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFu
ZE1pbWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVD
b3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUodXJsLCBtaW1lVHlwZSk7Ci19Ci0KIE5T
U2V0ICpXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKQogewotICAg
IGlmICghY2FuTG9hZFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcygpKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgc3RhdGljIE5TU2V0ICpzZXQgPSBhZG9wdE5TKDo6UUxQcmV2aWV3
R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCkpLmxlYWtSZWYoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UmV0YWluUHRyPE5TU2V0Pj4gc2V0ID0gUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5
cGVzKCk7CiAgICAgcmV0dXJuIHNldDsKIH0KIAotTlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNv
cHlVVElGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpCi17
Ci0gICAgaWYgKCFjYW5Mb2FkUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKCkpCi0gICAg
ICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWlt
ZVR5cGUodXJsLCBtaW1lVHlwZSk7Ci19Ci0KIE5TRGljdGlvbmFyeSAqV2ViQ29yZTo6UUxGaWxl
QXR0cmlidXRlcygpCiB7CiAgICAgLy8gU2V0IGZpbGUgcGVybXMgdG8gb3duZXIgcmVhZC93cml0
ZSBvbmx5CkBAIC0xOTAsMTIgKzE0MywxMiBAQCB2b2lkIFdlYkNvcmU6OnJlbW92ZVFMUHJldmll
d0NvbnZlcnRlckZvclVSTChOU1VSTCAqdXJsKQogCiBSZXRhaW5QdHI8TlNVUkxSZXF1ZXN0PiBX
ZWJDb3JlOjpyZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKE5TVVJMICp1cmwsIE5T
U3RyaW5nICptaW1lVHlwZSwgTlNEYXRhICpkYXRhKQogewotICAgIFJldGFpblB0cjxOU1N0cmlu
Zz4gdXBkYXRlZE1JTUVUeXBlID0gYWRvcHROUyhXZWJDb3JlOjpRTFR5cGVDb3B5QmVzdE1pbWVU
eXBlRm9yVVJMQW5kTWltZVR5cGUodXJsLCBtaW1lVHlwZSkpOworICAgIFJldGFpblB0cjxOU1N0
cmluZz4gdXBkYXRlZE1JTUVUeXBlID0gYWRvcHROUyhRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9y
VVJMQW5kTWltZVR5cGUodXJsLCBtaW1lVHlwZSkpOwogCi0gICAgaWYgKFtXZWJDb3JlOjpRTFBy
ZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDp1cGRhdGVkTUlN
RVR5cGUuZ2V0KCldKSB7Ci0gICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gdXRpID0gYWRvcHRO
UyhXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUodXJsLCB1cGRhdGVkTUlN
RVR5cGUuZ2V0KCkpKTsKKyAgICBpZiAoW1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1Nl
dCgpIGNvbnRhaW5zT2JqZWN0OnVwZGF0ZWRNSU1FVHlwZS5nZXQoKV0pIHsKKyAgICAgICAgUmV0
YWluUHRyPE5TU3RyaW5nPiB1dGkgPSBhZG9wdE5TKFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1l
VHlwZSh1cmwsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSkpOwogCi0gICAgICAgIFJldGFpblB0cjxp
ZD4gY29udmVydGVyID0gYWRvcHROUyhbYWxsb2NRTFByZXZpZXdDb252ZXJ0ZXJJbnN0YW5jZSgp
IGluaXRXaXRoRGF0YTpkYXRhIG5hbWU6bmlsIHV0aTp1dGkuZ2V0KCkgb3B0aW9uczpuaWxdKTsK
KyAgICAgICAgUmV0YWluUHRyPGlkPiBjb252ZXJ0ZXIgPSBhZG9wdE5TKFtbUUxQcmV2aWV3Q29u
dmVydGVyIGFsbG9jXSBpbml0V2l0aERhdGE6ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9w
dGlvbnM6bmlsXSk7CiAgICAgICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtjb252ZXJ0ZXIg
cHJldmlld1JlcXVlc3RdOwogCiAgICAgICAgIC8vIFdlIHVzZSBbcmVxdWVzdCBVUkxdIGhlcmUg
aW5zdGVhZCBvZiB1cmwgc2luY2UgaXQgd2lsbCBiZQpAQCAtMjI4LDE4ICsxODEsMTMgQEAgY29u
c3QgVVJMIFdlYkNvcmU6OnNhZmVRTFVSTEZvckRvY3VtZW50VVJMQW5kUmVzb3VyY2VVUkwoY29u
c3QgVVJMJiBkb2N1bWVudFVSTCwKIHN0YXRpYyBWZWN0b3I8Y2hhcj4gY3JlYXRlUUxQcmV2aWV3
UHJvdG9jb2woKQogewogICAgIFZlY3RvcjxjaGFyPiBwcmV2aWV3UHJvdG9jb2w7Ci0jZGVmaW5l
IFFMUHJldmlld1NjaGVtZSBnZXRRTFByZXZpZXdTY2hlbWUoKQogICAgIGNvbnN0IGNoYXIqIHFs
UHJldmlld1NjaGVtZSA9IFtRTFByZXZpZXdTY2hlbWUgVVRGOFN0cmluZ107Ci0jdW5kZWYgUUxQ
cmV2aWV3U2NoZW1lCiAgICAgcHJldmlld1Byb3RvY29sLmFwcGVuZChxbFByZXZpZXdTY2hlbWUs
IHN0cmxlbihxbFByZXZpZXdTY2hlbWUpICsgMSk7CiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2Nv
bDsKIH0KIAogY29uc3QgY2hhciogV2ViQ29yZTo6UUxQcmV2aWV3UHJvdG9jb2woKQogewotICAg
IGlmICghY2FuTG9hZFFMUHJldmlld1NjaGVtZSgpKQotICAgICAgICByZXR1cm4gIiI7Ci0KICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPGNoYXI+PiBwcmV2aWV3UHJvdG9jb2woY3Jl
YXRlUUxQcmV2aWV3UHJvdG9jb2woKSk7CiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbC5nZXQo
KS5kYXRhKCk7CiB9CkBAIC00NDcsNyArMzk1LDcgQEAgc3RhdGljIGlubGluZSBRdWlja0xvb2tI
YW5kbGVDbGllbnQqIGVtcHR5Q2xpZW50KCkKIAogUXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tI
YW5kbGUoTlNVUkwgKmZpcnN0UmVxdWVzdFVSTCwgTlNVUkxDb25uZWN0aW9uICpjb25uZWN0aW9u
LCBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlLCBpZCBkZWxlZ2F0ZSkKICAgICA6IG1fZmlyc3RS
ZXF1ZXN0VVJMKGZpcnN0UmVxdWVzdFVSTCkKLSAgICAsIG1fY29udmVydGVyKGFkb3B0TlMoW2Fs
bG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0V2l0aENvbm5lY3Rpb246Y29ubmVj
dGlvbiBkZWxlZ2F0ZTpkZWxlZ2F0ZSByZXNwb25zZTpuc1Jlc3BvbnNlIG9wdGlvbnM6bmlsXSkp
CisgICAgLCBtX2NvbnZlcnRlcihhZG9wdE5TKFtbUUxQcmV2aWV3Q29udmVydGVyIGFsbG9jXSBp
bml0V2l0aENvbm5lY3Rpb246Y29ubmVjdGlvbiBkZWxlZ2F0ZTpkZWxlZ2F0ZSByZXNwb25zZTpu
c1Jlc3BvbnNlIG9wdGlvbnM6bmlsXSkpCiAgICAgLCBtX2RlbGVnYXRlKGRlbGVnYXRlKQogICAg
ICwgbV9maW5pc2hlZExvYWRpbmdEYXRhSW50b0NvbnZlcnRlcihmYWxzZSkKICAgICAsIG1fbnNS
ZXNwb25zZShbbV9jb252ZXJ0ZXIgcHJldmlld1Jlc3BvbnNlXSkKQEAgLTQ1OSw3ICs0MDcsNyBA
QCBRdWlja0xvb2tIYW5kbGU6OlF1aWNrTG9va0hhbmRsZShOU1VSTCAqZmlyc3RSZXF1ZXN0VVJM
LCBOU1VSTENvbm5lY3Rpb24gKmNvbm5lYwogc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRs
ZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgTlNVUkxD
b25uZWN0aW9uICpjb25uZWN0aW9uLCBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlLCBpZCBkZWxl
Z2F0ZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlKTsKLSAgICBpZiAoaGFuZGxl
LT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rl
cjo6TWFpbiB8fCAhW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgp
IGNvbnRhaW5zT2JqZWN0Oltuc1Jlc3BvbnNlIE1JTUVUeXBlXV0pCisgICAgaWYgKGhhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6
Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09i
amVjdDpbbnNSZXNwb25zZSBNSU1FVHlwZV1dKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IHF1aWNrTG9va0hhbmRsZShuZXcg
UXVpY2tMb29rSGFuZGxlKFtoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdChEb05v
dFVwZGF0ZUhUVFBCb2R5KSBVUkxdLCBjb25uZWN0aW9uLCBuc1Jlc3BvbnNlLCBkZWxlZ2F0ZSkp
OwpAQCAtNDcxLDcgKzQxOSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsCiBzdGQ6OnVuaXF1
ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhh
bmRsZSogaGFuZGxlLCBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVs
ZWdhdGUqIGNvbm5lY3Rpb25EZWxlZ2F0ZSwgQ0ZVUkxSZXNwb25zZVJlZiBjZlJlc3BvbnNlKQog
ewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUpOwotICAgIGlmIChoYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWlu
IHx8ICFbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFp
bnNPYmplY3Q6KE5TU3RyaW5nICopQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2Up
XSkKKyAgICBpZiAoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJj
ZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbiB8fCAhW1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVU
eXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OihOU1N0cmluZyAqKUNGVVJMUmVzcG9uc2VHZXRNSU1F
VHlwZShjZlJlc3BvbnNlKV0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgTlNVUkxS
ZXNwb25zZSAqbnNSZXNwb25zZSA9IFtOU1VSTFJlc3BvbnNlIF9yZXNwb25zZVdpdGhDRlVSTFJl
c3BvbnNlOmNmUmVzcG9uc2VdOwpAQCAtNDg5LDcgKzQzNyw3IEBAIENGVVJMUmVzcG9uc2VSZWYg
UXVpY2tMb29rSGFuZGxlOjpjZlJlc3BvbnNlKCkKIAogYm9vbCBRdWlja0xvb2tIYW5kbGU6OnNo
b3VsZENyZWF0ZUZvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0
dXJuIFtXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWlu
c09iamVjdDptaW1lVHlwZV07CisgICAgcmV0dXJuIFtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1F
VHlwZXNTZXQoKSBjb250YWluc09iamVjdDptaW1lVHlwZV07CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlTG9hZGVy
JiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9T
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3Bv
bnNlSU9TLm1tCmluZGV4IGI4ZmU1NjhhNDA5YWUxZGNkNTkzZmFmM2NiZjU4MTFmZGZiYzVlNjIu
LmE2MmQxYjcyOWUxMTg0ZWVkMDA0MmMzOTA1NDJkYjczZjk1OThiMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVz
cG9uc2VJT1MubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRl
cmZhY2UuaCIKIAogI2ltcG9ydCAiUXVpY2tMb29rLmgiCisjaW1wb3J0ICJRdWlja0xvb2tTb2Z0
TGluay5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2
aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KIAo=
</data>
<flag name="review"
          id="276709"
          type_id="1"
          status="+"
          setter="aestes"
    />
    <flag name="commit-queue"
          id="276710"
          type_id="3"
          status="-"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251917</attachid>
            <date>2015-04-28 19:54:57 -0700</date>
            <delta_ts>2015-04-28 21:09:58 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-144362-20150428195347.patch</filename>
            <type>text/plain</type>
            <size>23413</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIzZjVkNjk2N2U4NTg1
YTdkZDliOTZkNTk2ZDZjZGRkNjJlZTZjZS4uMmIzYmNlMmM0NzZkMjY0YmQwMjBkODRhZjNiZjU4
NTRkYzg3MDRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBF
c3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlua2luZyBvZiBRdWlj
a0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfSBzbyB0
aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3ltYm9scy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIEFkZCBRdWlj
a0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UpOiBBZGQgbWFjcm8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAgICAgICAg
LSBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFM
VHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAtIFJlbW92ZSBTT0ZUX0xJTksgbWFjcm9zIGFuZCB1bnVzZWQgbWV0aG9kcyBhZnRlciBz
d2l0Y2hpbmcgdG8KKyAgICAgICAgICBuZXcgUXVpY2tMb29rU29mdExpbmsue2gsbW19LgorICAg
ICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KToKKyAgICAg
ICAgLSBTd2l0Y2ggdG8gdXNlIE5ldmVyRGVzdHJveWVkPD4uCisgICAgICAgIChXZWJDb3JlOjpy
ZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKToKKyAgICAgICAgKGNyZWF0ZVFMUHJl
dmlld1Byb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUpOgorICAgICAgICAtIFNp
bXBsaWZ5IGNvZGUgd2hlbiB1c2luZyBRdWlja0xvb2tTb2Z0TGluay5oLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAt
IEluY2x1ZGUgUXVpY2tMb29rU29mdExpbmsuaCBoZWFkZXIuCisKIDIwMTUtMDQtMjggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBTaGFyZWRC
dWZmZXI6OmNvcHkgaXMgbm90IGNvbXB1dGluZyB0aGUgYnVmZmVyIHNpemUgY29ycmVjdGx5IHdo
ZW4gaGF2aW5nIG1fZGF0YUFycmF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmYxODQzMjkzMDVjYWRjY2RjZDgyYWVjYTllZWNm
MzhhNmQxMjk4OS4uMTFkN2Y4MTNmODczMDYzZGU3YzViOGJmZDNhYTg1NDRmZTUwZWMwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTU5OSw3ICsxNTk5LDkgQEAKIAkJNDQzMTFDRDkxMkU0RTI1NzAwMEE4RDE5IC8qIERPTURv
Y3VtZW50RnJhZ21lbnRQcml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyog
RE9NRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCAqLzsgfTsKIAkJNDQzMTFGODIxMkU0RTY2QzAw
MEE4RDE5IC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oICovOyB9OwogCQk0NDM4MTdGRjFBOTFCMkY4
MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVN
ZWRpYVNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQzOTE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1t
ICovOyB9OwogCQk0NDM4MTgwMDFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzgxN0ZF
MUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5oICovOyB9OworCQk0NDM5MTgw
MDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OwogCQk0NDNGMDQyNzBFNzVDOEZCMDA3RTU0MDcg
LyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0
YXRlTm90aWZpZXJJT1MubW0gKi87IH07CiAJCTQ0NDlBNDA1MUE5NjRCMDAwMEI2NEFENSAvKiBD
b3JlTWVkaWFTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0NDlBNDA0MUE5NjRCMDAwMEI2NEFENSAvKiBDb3JlTWVkaWFTUEkuaCAqLzsgfTsKIAkJ
NDQ0RDRFMjMwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NEQ0RTIxMEY3MDhC
MkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi87IH07CkBAIC04NzYxLDcg
Kzg3NjMsOSBAQAogCQk0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFn
bWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1l
bnRGcmFnbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzMTFD
RDUxMkU0RTIyRDAwMEE4RDE5IC8qIERPTURvY3VtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01Eb2N1bWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRM
aW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvcmVNZWRpYVNv
ZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkQxQTkxQjJG
ODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDM4MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29m
dExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZU1lZGlhU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkUxQTkxQjJGODAwNkUw
NEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGlvcy9RdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0OUE0MDQxQTk2NEIw
MDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb3JlTWVkaWFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRF
MjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODQzLDYgKzE4ODQ3LDggQEAKIAkJCQlD
NTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyogUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAog
CQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywK
IAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbSAqLywKKwkJCQk0NDM5MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsuaCAqLywKKwkJCQk0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsubW0gKi8sCiAJCQkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUy5oICovLAogCQkJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8sCiAJCQkJNDRDMzYzRUUwRkFBN0JCMzAwOTdGOEND
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oICovLApAQCAtMjYwNDEsNiArMjYwNDcs
NyBAQAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRTEyNTIzRDFBMTY3NkNEMDA4NjQ0ODAgLyogUXVhcnR6Q29yZVNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQyQUY3QTkxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNr
TG9vay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzOTE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ5Nzg2RjFBQkFGMzM4MDBD
RUY3RTQgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyMzkxQTE2
NkZBMDAwODY0NDgwIC8qIFF1aWNrTG9va1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwREJG
NDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yOTU0MCw2ICsyOTU0Nyw3IEBACiAJCQkJQ0RFRTM5MzcxNzk3NDI1OTAwMUQ3NTgw
IC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTUwQTBCQzkwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQy
QUY3QUExMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTQ0MzkxN0ZGMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MkFFMUU2MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUUzNzE2MTM3MzZBNjYwMEI5RTkx
OSAvKiBRdW90ZWRQcmludGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRGMjgxMzFE
Qjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
YWE0MTk3NDViODU0ZmQ5YTU3YTRiOTZhYjI2Y2I0ZjY0NjM1NjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworI2luY2x1ZGUg
IlF1aWNrTG9va1NQSS5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19G
UkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorI2Rl
ZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0X1F1aWNrTG9va19RTFByZXZpZXdDb252ZXJ0ZXJD
bGFzcygpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9v
aywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisjZGVm
aW5lIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tfUUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFu
ZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWlt
ZVR5cGUpLCAoZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1l
VHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxB
bmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSks
ICh1cmwsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFu
ZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJM
QW5kTWltZVR5cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwg
KnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBRTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlV
VElGb3JVUkxBbmRNaW1lVHlwZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJD
b3JlLCBRdWlja0xvb2ssIFFMUHJldmlld1NjaGVtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgUUxQ
cmV2aWV3U2NoZW1lIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3U2NoZW1lKCkKKworI2VuZGlmIC8v
IFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1F1aWNrTG9va1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNr
TG9va1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjODIwMjAyOTI2MTdhMmE3OGM4Njk1Y2IyOTM5
ZGMyODk1ODAwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUXVpY2tMb29rU29mdExpbmsubW0KQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW1wb3J0ICJRdWlj
a0xvb2tTUEkuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1
cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJp
bmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JV
UkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlw
ZSksICh1cmwsIG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIFF1aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAq
LCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmll
d1NjaGVtZSwgTlNTdHJpbmcgKikKKworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAppbmRleCA4YTliOWE1YjUyNTU0MDQy
MWEyOTViOWY3NGQxYzJiNzk4ZjcxYjVhLi4yNzI2YzI4Y2FmNGZiN2I1YWVjN2MyMzMwMTVkMGUy
MzYxMWI2Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExp
bmtpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaApA
QCAtMzE3LDYgKzMxNywzNyBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUp
IFwKKyAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNw
YWNlIHsgXAorICAgIENsYXNzICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNz
KSgpOyBcCisgICAgfQorCisjZGVmaW5lIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKGZ1bmN0
aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIGNsYXNzTmFtZSkgXAorICAgIEBjbGFzcyBjbGFzc05h
bWU7IFwKKyAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgc3RhdGljIENs
YXNzIGluaXQjI2NsYXNzTmFtZSgpOyBcCisgICAgQ2xhc3MgKCpnZXRfIyNmcmFtZXdvcmsjI18j
I2NsYXNzTmFtZSMjQ2xhc3MpKCkgPSBpbml0IyNjbGFzc05hbWU7IFwKKyAgICBzdGF0aWMgQ2xh
c3MgY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIFwKKyAgICBzdGF0aWMgQ2xhc3MgY2xhc3NOYW1l
IyNGdW5jdGlvbigpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIGNsYXNzIyNjbGFzc05hbWU7
IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIENsYXNzIGluaXQjI2NsYXNzTmFtZSgpIFwK
KyAgICB7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOyBcCisgICAgICAg
IGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZyYW1ld29yayMjTGlicmFy
eSgpOyBcCisgICAgICAgICAgICBjbGFzcyMjY2xhc3NOYW1lID0gb2JqY19nZXRDbGFzcygjY2xh
c3NOYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xhc3MjI2NsYXNzTmFtZSk7
IFwKKyAgICAgICAgICAgIGdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcyA9IGNs
YXNzTmFtZSMjRnVuY3Rpb247IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0dXJuIGNsYXNz
IyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICB9CisKICNkZWZpbmUgU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgdmFyaWFibGVOYW1l
LCB2YXJpYWJsZVR5cGUpIFwKICAgICBXVEZfRVhURVJOX0NfQkVHSU4gXAogICAgIGV4dGVybiBj
b25zdCB2YXJpYWJsZVR5cGUgdmFyaWFibGVOYW1lOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IGRlMjRmMTMyZDQ4ZmQ4MzZiOGRk
NmJkZThjOWQxYTBiYjQzZDAzYzYuLjlkNWFlMmFjYmVlNjFmY2RmNzFkYTk5ZTJkMmEzYjVhNGU3
ZTI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1
aWNrTG9vay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNr
TG9vay5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGU7CiAKLUNsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7Ci1OU1N0
cmluZyAqUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUoTlNTdHJp
bmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpOwotTlNTdHJpbmcgKlFMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqLCBOU1N0cmluZyAqbWltZVR5cGUp
OwotCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
U2V0KCk7CiAKIC8vIFVzZWQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb25zIG9uIHRoZSBzYXZl
ZCBRTCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9R
dWlja0xvb2subW0KaW5kZXggYTlhZGYzNjE2OTczODI1NTRiZmFlNmIxY2VhNTJmNGRhOGY2M2Jl
Yi4uMzk4OWVhMzdjZjg5MDc4MjgzMzM0NWY2ZjMwY2I1YmE1YzBmOWY5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQpAQCAtMzIsMTIg
KzMyLDExIEBACiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCi0jaW1wb3J0ICJRdWlja0xvb2tTUEkuaCIK
KyNpbXBvcnQgIlF1aWNrTG9va1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgi
CiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oIgotI2ltcG9ydCAiU29mdExp
bmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlSU9TLmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KQEAgLTU2LDYwICs1NSwxNCBAQAogQGVuZAogI2Vu
ZGlmCiAKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoUXVpY2tMb29rKQotU09GVF9MSU5L
X0NMQVNTKFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQotU09GVF9MSU5LX01BWV9GQUlM
KFF1aWNrTG9vaywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwg
KCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBl
Rm9yRmlsZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwg
TlNTdHJpbmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfTUFZ
X0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUs
IE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1l
VHlwZSkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5VVRJRm9yVVJM
QW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUp
LCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoUXVpY2tMb29r
LCBRTFByZXZpZXdTY2hlbWUsIE5TU3RyaW5nICopCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICBOU1N0cmluZyAqUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5T
U3RyaW5nICptaW1lVHlwZSk7Ci19Ci0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1DbGFz
cyBXZWJDb3JlOjpRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi17Ci0jZGVmaW5lIFFMUHJldmll
d0NvbnZlcnRlciBnZXRRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi0gICAgcmV0dXJuIFFMUHJl
dmlld0NvbnZlcnRlcjsKLSN1bmRlZiBRTFByZXZpZXdDb252ZXJ0ZXIKLX0KLQotTlNTdHJpbmcg
KldlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5T
U3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKQotewotICAgIGlmICghY2FuTG9h
ZFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKCkpCi0gICAgICAg
IHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZShmaWxlTmFtZSwgbWltZVR5cGUpOwotfQotCi1OU1N0cmluZyAqV2Vi
Q29yZTo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmws
IE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5QmVzdE1p
bWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJl
dHVybiA6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVU
eXBlKTsKLX0KLQogTlNTZXQgKldlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBl
c1NldCgpCiB7Ci0gICAgaWYgKCFjYW5Mb2FkUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
KCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBzdGF0aWMgTlNTZXQgKnNldCA9IGFkb3B0
TlMoOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKSkubGVha1JlZigpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTZXQ+PiBzZXQgPSBRTFByZXZpZXdHZXRT
dXBwb3J0ZWRNSU1FVHlwZXMoKTsKICAgICByZXR1cm4gc2V0OwogfQogCi1OU1N0cmluZyAqV2Vi
Q29yZTo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5TU3RyaW5n
ICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWlt
ZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVybiA6OlFMVHlwZUNvcHlV
VElGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKTsKLX0KLQogTlNEaWN0aW9uYXJ5ICpX
ZWJDb3JlOjpRTEZpbGVBdHRyaWJ1dGVzKCkKIHsKICAgICAvLyBTZXQgZmlsZSBwZXJtcyB0byBv
d25lciByZWFkL3dyaXRlIG9ubHkKQEAgLTE5MCwxMiArMTQzLDEyIEBAIHZvaWQgV2ViQ29yZTo6
cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwpCiAKIFJldGFpblB0cjxO
U1VSTFJlcXVlc3Q+IFdlYkNvcmU6OnJlZ2lzdGVyUUxQcmV2aWV3Q29udmVydGVySWZOZWVkZWQo
TlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlLCBOU0RhdGEgKmRhdGEpCiB7Ci0gICAgUmV0
YWluUHRyPE5TU3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUgPSBhZG9wdE5TKFdlYkNvcmU6OlFMVHlw
ZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKSk7CisgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUgPSBhZG9wdE5TKFFMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKSk7CiAKLSAgICBpZiAo
W1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2Jq
ZWN0OnVwZGF0ZWRNSU1FVHlwZS5nZXQoKV0pIHsKLSAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5n
PiB1dGkgPSBhZG9wdE5TKFdlYkNvcmU6OlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSh1
cmwsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSkpOworICAgIGlmIChbUUxQcmV2aWV3R2V0U3VwcG9y
dGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdldCgpXSkg
eworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9IGFkb3B0TlMoUUxUeXBlQ29weVVU
SUZvclVSTEFuZE1pbWVUeXBlKHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7CiAKLSAgICAg
ICAgUmV0YWluUHRyPGlkPiBjb252ZXJ0ZXIgPSBhZG9wdE5TKFthbGxvY1FMUHJldmlld0NvbnZl
cnRlckluc3RhbmNlKCkgaW5pdFdpdGhEYXRhOmRhdGEgbmFtZTpuaWwgdXRpOnV0aS5nZXQoKSBv
cHRpb25zOm5pbF0pOworICAgICAgICBSZXRhaW5QdHI8aWQ+IGNvbnZlcnRlciA9IGFkb3B0TlMo
W1tRTFByZXZpZXdDb252ZXJ0ZXIgYWxsb2NdIGluaXRXaXRoRGF0YTpkYXRhIG5hbWU6bmlsIHV0
aTp1dGkuZ2V0KCkgb3B0aW9uczpuaWxdKTsKICAgICAgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0
ID0gW2NvbnZlcnRlciBwcmV2aWV3UmVxdWVzdF07CiAKICAgICAgICAgLy8gV2UgdXNlIFtyZXF1
ZXN0IFVSTF0gaGVyZSBpbnN0ZWFkIG9mIHVybCBzaW5jZSBpdCB3aWxsIGJlCkBAIC0yMjgsMTgg
KzE4MSwxMyBAQCBjb25zdCBVUkwgV2ViQ29yZTo6c2FmZVFMVVJMRm9yRG9jdW1lbnRVUkxBbmRS
ZXNvdXJjZVVSTChjb25zdCBVUkwmIGRvY3VtZW50VVJMLAogc3RhdGljIFZlY3RvcjxjaGFyPiBj
cmVhdGVRTFByZXZpZXdQcm90b2NvbCgpCiB7CiAgICAgVmVjdG9yPGNoYXI+IHByZXZpZXdQcm90
b2NvbDsKLSNkZWZpbmUgUUxQcmV2aWV3U2NoZW1lIGdldFFMUHJldmlld1NjaGVtZSgpCiAgICAg
Y29uc3QgY2hhciogcWxQcmV2aWV3U2NoZW1lID0gW1FMUHJldmlld1NjaGVtZSBVVEY4U3RyaW5n
XTsKLSN1bmRlZiBRTFByZXZpZXdTY2hlbWUKICAgICBwcmV2aWV3UHJvdG9jb2wuYXBwZW5kKHFs
UHJldmlld1NjaGVtZSwgc3RybGVuKHFsUHJldmlld1NjaGVtZSkgKyAxKTsKICAgICByZXR1cm4g
cHJldmlld1Byb3RvY29sOwogfQogCiBjb25zdCBjaGFyKiBXZWJDb3JlOjpRTFByZXZpZXdQcm90
b2NvbCgpCiB7Ci0gICAgaWYgKCFjYW5Mb2FkUUxQcmV2aWV3U2NoZW1lKCkpCi0gICAgICAgIHJl
dHVybiAiIjsKLQogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Y2hhcj4+IHByZXZp
ZXdQcm90b2NvbChjcmVhdGVRTFByZXZpZXdQcm90b2NvbCgpKTsKICAgICByZXR1cm4gcHJldmll
d1Byb3RvY29sLmdldCgpLmRhdGEoKTsKIH0KQEAgLTQ0Nyw3ICszOTUsNyBAQCBzdGF0aWMgaW5s
aW5lIFF1aWNrTG9va0hhbmRsZUNsaWVudCogZW1wdHlDbGllbnQoKQogCiBRdWlja0xvb2tIYW5k
bGU6OlF1aWNrTG9va0hhbmRsZShOU1VSTCAqZmlyc3RSZXF1ZXN0VVJMLCBOU1VSTENvbm5lY3Rp
b24gKmNvbm5lY3Rpb24sIE5TVVJMUmVzcG9uc2UgKm5zUmVzcG9uc2UsIGlkIGRlbGVnYXRlKQog
ICAgIDogbV9maXJzdFJlcXVlc3RVUkwoZmlyc3RSZXF1ZXN0VVJMKQotICAgICwgbV9jb252ZXJ0
ZXIoYWRvcHROUyhbYWxsb2NRTFByZXZpZXdDb252ZXJ0ZXJJbnN0YW5jZSgpIGluaXRXaXRoQ29u
bmVjdGlvbjpjb25uZWN0aW9uIGRlbGVnYXRlOmRlbGVnYXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ug
b3B0aW9uczpuaWxdKSkKKyAgICAsIG1fY29udmVydGVyKGFkb3B0TlMoW1tRTFByZXZpZXdDb252
ZXJ0ZXIgYWxsb2NdIGluaXRXaXRoQ29ubmVjdGlvbjpjb25uZWN0aW9uIGRlbGVnYXRlOmRlbGVn
YXRlIHJlc3BvbnNlOm5zUmVzcG9uc2Ugb3B0aW9uczpuaWxdKSkKICAgICAsIG1fZGVsZWdhdGUo
ZGVsZWdhdGUpCiAgICAgLCBtX2ZpbmlzaGVkTG9hZGluZ0RhdGFJbnRvQ29udmVydGVyKGZhbHNl
KQogICAgICwgbV9uc1Jlc3BvbnNlKFttX2NvbnZlcnRlciBwcmV2aWV3UmVzcG9uc2VdKQpAQCAt
NDU5LDcgKzQwNyw3IEBAIFF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKE5TVVJMICpm
aXJzdFJlcXVlc3RVUkwsIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjCiBzdGQ6OnVuaXF1ZV9wdHI8
UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSog
aGFuZGxlLCBOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIE5TVVJMUmVzcG9uc2UgKm5zUmVz
cG9uc2UsIGlkIGRlbGVnYXRlKQogewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUpOwot
ICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVx
dWVzdDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVk
TUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6W25zUmVzcG9uc2UgTUlNRVR5cGVdXSkKKyAg
ICBpZiAoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVl
c3Q6OlJlcXVlc3Rlcjo6TWFpbiB8fCAhW1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1Nl
dCgpIGNvbnRhaW5zT2JqZWN0Oltuc1Jlc3BvbnNlIE1JTUVUeXBlXV0pCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gcXVpY2tM
b29rSGFuZGxlKG5ldyBRdWlja0xvb2tIYW5kbGUoW2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNV
UkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIGNvbm5lY3Rpb24sIG5zUmVzcG9u
c2UsIGRlbGVnYXRlKSk7CkBAIC00NzEsNyArNDE5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFF1aWNr
TG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSwKIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3Jl
YXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZSogY29ubmVjdGlvbkRlbGVnYXRlLCBDRlVSTFJlc3BvbnNlUmVm
IGNmUmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYg
KGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpS
ZXF1ZXN0ZXI6Ok1haW4gfHwgIVtXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlw
ZXNTZXQoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0TUlNRVR5
cGUoY2ZSZXNwb25zZSldKQorICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3Rl
cigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6KE5TU3RyaW5nICopQ0ZVUkxS
ZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2UpXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlID0gW05TVVJMUmVzcG9uc2UgX3Jlc3Bv
bnNlV2l0aENGVVJMUmVzcG9uc2U6Y2ZSZXNwb25zZV07CkBAIC00ODksNyArNDM3LDcgQEAgQ0ZV
UkxSZXNwb25zZVJlZiBRdWlja0xvb2tIYW5kbGU6OmNmUmVzcG9uc2UoKQogCiBib29sIFF1aWNr
TG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkKIHsKLSAgICByZXR1cm4gW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBl
c1NldCgpIGNvbnRhaW5zT2JqZWN0Om1pbWVUeXBlXTsKKyAgICByZXR1cm4gW1FMUHJldmlld0dl
dFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0Om1pbWVUeXBlXTsKIH0KIAog
c3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUo
UmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3Jl
VVJMUmVzcG9uc2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9X
ZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KaW5kZXggYjhmZTU2OGE0MDlhZTFkY2Q1OTNmYWYzY2Jm
NTgxMWZkZmJjNWU2Mi4uYTYyZDFiNzI5ZTExODRlZWQwMDQyYzM5MDU0MmRiNzNmOTU5OGIxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVS
TFJlc3BvbnNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9z
L1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2Vi
Q29yZVN5c3RlbUludGVyZmFjZS5oIgogCiAjaW1wb3J0ICJRdWlja0xvb2suaCIKKyNpbXBvcnQg
IlF1aWNrTG9va1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCA8
TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251921</attachid>
            <date>2015-04-28 21:09:45 -0700</date>
            <delta_ts>2015-04-29 08:48:14 -0700</delta_ts>
            <desc>Patch for EWS v2</desc>
            <filename>bug-144362-20150428210834.patch</filename>
            <type>text/plain</type>
            <size>23385</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIzZjVkNjk2N2U4NTg1
YTdkZDliOTZkNTk2ZDZjZGRkNjJlZTZjZS4uMmIzYmNlMmM0NzZkMjY0YmQwMjBkODRhZjNiZjU4
NTRkYzg3MDRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBF
c3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlua2luZyBvZiBRdWlj
a0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfSBzbyB0
aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3ltYm9scy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIEFkZCBRdWlj
a0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UpOiBBZGQgbWFjcm8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAgICAgICAg
LSBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFM
VHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAtIFJlbW92ZSBTT0ZUX0xJTksgbWFjcm9zIGFuZCB1bnVzZWQgbWV0aG9kcyBhZnRlciBz
d2l0Y2hpbmcgdG8KKyAgICAgICAgICBuZXcgUXVpY2tMb29rU29mdExpbmsue2gsbW19LgorICAg
ICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KToKKyAgICAg
ICAgLSBTd2l0Y2ggdG8gdXNlIE5ldmVyRGVzdHJveWVkPD4uCisgICAgICAgIChXZWJDb3JlOjpy
ZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKToKKyAgICAgICAgKGNyZWF0ZVFMUHJl
dmlld1Byb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUpOgorICAgICAgICAtIFNp
bXBsaWZ5IGNvZGUgd2hlbiB1c2luZyBRdWlja0xvb2tTb2Z0TGluay5oLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAt
IEluY2x1ZGUgUXVpY2tMb29rU29mdExpbmsuaCBoZWFkZXIuCisKIDIwMTUtMDQtMjggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBTaGFyZWRC
dWZmZXI6OmNvcHkgaXMgbm90IGNvbXB1dGluZyB0aGUgYnVmZmVyIHNpemUgY29ycmVjdGx5IHdo
ZW4gaGF2aW5nIG1fZGF0YUFycmF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmYxODQzMjkzMDVjYWRjY2RjZDgyYWVjYTllZWNm
MzhhNmQxMjk4OS4uMTFkN2Y4MTNmODczMDYzZGU3YzViOGJmZDNhYTg1NDRmZTUwZWMwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTU5OSw3ICsxNTk5LDkgQEAKIAkJNDQzMTFDRDkxMkU0RTI1NzAwMEE4RDE5IC8qIERPTURv
Y3VtZW50RnJhZ21lbnRQcml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyog
RE9NRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCAqLzsgfTsKIAkJNDQzMTFGODIxMkU0RTY2QzAw
MEE4RDE5IC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oICovOyB9OwogCQk0NDM4MTdGRjFBOTFCMkY4
MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVN
ZWRpYVNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQzOTE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1t
ICovOyB9OwogCQk0NDM4MTgwMDFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzgxN0ZF
MUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5oICovOyB9OworCQk0NDM5MTgw
MDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OwogCQk0NDNGMDQyNzBFNzVDOEZCMDA3RTU0MDcg
LyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0
YXRlTm90aWZpZXJJT1MubW0gKi87IH07CiAJCTQ0NDlBNDA1MUE5NjRCMDAwMEI2NEFENSAvKiBD
b3JlTWVkaWFTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0NDlBNDA0MUE5NjRCMDAwMEI2NEFENSAvKiBDb3JlTWVkaWFTUEkuaCAqLzsgfTsKIAkJ
NDQ0RDRFMjMwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NEQ0RTIxMEY3MDhC
MkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi87IH07CkBAIC04NzYxLDcg
Kzg3NjMsOSBAQAogCQk0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFn
bWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1l
bnRGcmFnbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzMTFD
RDUxMkU0RTIyRDAwMEE4RDE5IC8qIERPTURvY3VtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01Eb2N1bWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRM
aW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvcmVNZWRpYVNv
ZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkQxQTkxQjJG
ODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDM4MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29m
dExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZU1lZGlhU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkUxQTkxQjJGODAwNkUw
NEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGlvcy9RdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0OUE0MDQxQTk2NEIw
MDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb3JlTWVkaWFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRF
MjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODQzLDYgKzE4ODQ3LDggQEAKIAkJCQlD
NTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyogUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAog
CQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywK
IAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbSAqLywKKwkJCQk0NDM5MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsuaCAqLywKKwkJCQk0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsubW0gKi8sCiAJCQkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUy5oICovLAogCQkJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8sCiAJCQkJNDRDMzYzRUUwRkFBN0JCMzAwOTdGOEND
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oICovLApAQCAtMjYwNDEsNiArMjYwNDcs
NyBAQAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRTEyNTIzRDFBMTY3NkNEMDA4NjQ0ODAgLyogUXVhcnR6Q29yZVNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQyQUY3QTkxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNr
TG9vay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzOTE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ5Nzg2RjFBQkFGMzM4MDBD
RUY3RTQgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyMzkxQTE2
NkZBMDAwODY0NDgwIC8qIFF1aWNrTG9va1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwREJG
NDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yOTU0MCw2ICsyOTU0Nyw3IEBACiAJCQkJQ0RFRTM5MzcxNzk3NDI1OTAwMUQ3NTgw
IC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTUwQTBCQzkwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQy
QUY3QUExMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTQ0MzkxN0ZGMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MkFFMUU2MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUUzNzE2MTM3MzZBNjYwMEI5RTkx
OSAvKiBRdW90ZWRQcmludGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRGMjgxMzFE
Qjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
YWE0MTk3NDViODU0ZmQ5YTU3YTRiOTZhYjI2Y2I0ZjY0NjM1NjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworI2luY2x1ZGUg
IlF1aWNrTG9va1NQSS5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19G
UkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorI2Rl
ZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0X1F1aWNrTG9va19RTFByZXZpZXdDb252ZXJ0ZXJD
bGFzcygpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9v
aywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisjZGVm
aW5lIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tfUUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFu
ZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWlt
ZVR5cGUpLCAoZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1l
VHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxB
bmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSks
ICh1cmwsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFu
ZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJM
QW5kTWltZVR5cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwg
KnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBRTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlV
VElGb3JVUkxBbmRNaW1lVHlwZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJD
b3JlLCBRdWlja0xvb2ssIFFMUHJldmlld1NjaGVtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgUUxQ
cmV2aWV3U2NoZW1lIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3U2NoZW1lKCkKKworI2VuZGlmIC8v
IFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1F1aWNrTG9va1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNr
TG9va1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjODIwMjAyOTI2MTdhMmE3OGM4Njk1Y2IyOTM5
ZGMyODk1ODAwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUXVpY2tMb29rU29mdExpbmsubW0KQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW1wb3J0ICJRdWlj
a0xvb2tTUEkuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1
cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJp
bmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JV
UkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlw
ZSksICh1cmwsIG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIFF1aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAq
LCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmll
d1NjaGVtZSwgTlNTdHJpbmcgKikKKworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAppbmRleCA4YTliOWE1YjUyNTU0MDQy
MWEyOTViOWY3NGQxYzJiNzk4ZjcxYjVhLi4yNzI2YzI4Y2FmNGZiN2I1YWVjN2MyMzMwMTVkMGUy
MzYxMWI2Mjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExp
bmtpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaApA
QCAtMzE3LDYgKzMxNywzNyBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUp
IFwKKyAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNw
YWNlIHsgXAorICAgIENsYXNzICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNz
KSgpOyBcCisgICAgfQorCisjZGVmaW5lIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKGZ1bmN0
aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIGNsYXNzTmFtZSkgXAorICAgIEBjbGFzcyBjbGFzc05h
bWU7IFwKKyAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBcCisgICAgc3RhdGljIENs
YXNzIGluaXQjI2NsYXNzTmFtZSgpOyBcCisgICAgQ2xhc3MgKCpnZXRfIyNmcmFtZXdvcmsjI18j
I2NsYXNzTmFtZSMjQ2xhc3MpKCkgPSBpbml0IyNjbGFzc05hbWU7IFwKKyAgICBzdGF0aWMgQ2xh
c3MgY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIFwKKyAgICBzdGF0aWMgQ2xhc3MgY2xhc3NOYW1l
IyNGdW5jdGlvbigpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIGNsYXNzIyNjbGFzc05hbWU7
IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIENsYXNzIGluaXQjI2NsYXNzTmFtZSgpIFwK
KyAgICB7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlOyBcCisgICAgICAg
IGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZyYW1ld29yayMjTGlicmFy
eSgpOyBcCisgICAgICAgICAgICBjbGFzcyMjY2xhc3NOYW1lID0gb2JqY19nZXRDbGFzcygjY2xh
c3NOYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xhc3MjI2NsYXNzTmFtZSk7
IFwKKyAgICAgICAgICAgIGdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcyA9IGNs
YXNzTmFtZSMjRnVuY3Rpb247IFwKKyAgICAgICAgfSk7IFwKKyAgICAgICAgcmV0dXJuIGNsYXNz
IyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICB9CisKICNkZWZpbmUgU09GVF9MSU5LX0NPTlNU
QU5UX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgdmFyaWFibGVOYW1l
LCB2YXJpYWJsZVR5cGUpIFwKICAgICBXVEZfRVhURVJOX0NfQkVHSU4gXAogICAgIGV4dGVybiBj
b25zdCB2YXJpYWJsZVR5cGUgdmFyaWFibGVOYW1lOyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IGRlMjRmMTMyZDQ4ZmQ4MzZiOGRk
NmJkZThjOWQxYTBiYjQzZDAzYzYuLjlkNWFlMmFjYmVlNjFmY2RmNzFkYTk5ZTJkMmEzYjVhNGU3
ZTI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1
aWNrTG9vay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNr
TG9vay5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJl
c291cmNlUmVzcG9uc2U7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGU7CiAKLUNsYXNzIFFMUHJldmlld0NvbnZlcnRlckNsYXNzKCk7Ci1OU1N0
cmluZyAqUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUoTlNTdHJp
bmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpOwotTlNTdHJpbmcgKlFMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqLCBOU1N0cmluZyAqbWltZVR5cGUp
OwotCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
U2V0KCk7CiAKIC8vIFVzZWQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb25zIG9uIHRoZSBzYXZl
ZCBRTCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9R
dWlja0xvb2subW0KaW5kZXggYTlhZGYzNjE2OTczODI1NTRiZmFlNmIxY2VhNTJmNGRhOGY2M2Jl
Yi4uNmU0ZjI4NTA4YWU3MDdlOTBhNGM3OGNlZGEzYzc2Y2ZkMzJjMTlkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbQpAQCAtMzIsMTIg
KzMyLDExIEBACiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCi0jaW1wb3J0ICJRdWlja0xvb2tTUEkuaCIK
KyNpbXBvcnQgIlF1aWNrTG9va1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUVycm9yLmgi
CiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oIgotI2ltcG9ydCAiU29mdExp
bmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rp
b25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNlSU9TLmgiCiAjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KQEAgLTU2LDU4ICs1NSwxMiBAQAogQGVuZAogI2Vu
ZGlmCiAKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoUXVpY2tMb29rKQotU09GVF9MSU5L
X0NMQVNTKFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQotU09GVF9MSU5LX01BWV9GQUlM
KFF1aWNrTG9vaywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwg
KCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBl
Rm9yRmlsZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwg
TlNTdHJpbmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfTUFZ
X0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUs
IE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1l
VHlwZSkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5VVRJRm9yVVJM
QW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUp
LCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoUXVpY2tMb29r
LCBRTFByZXZpZXdTY2hlbWUsIE5TU3RyaW5nICopCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICBOU1N0cmluZyAqUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5T
U3RyaW5nICptaW1lVHlwZSk7Ci19Ci0KIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1DbGFz
cyBXZWJDb3JlOjpRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi17Ci0jZGVmaW5lIFFMUHJldmll
d0NvbnZlcnRlciBnZXRRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi0gICAgcmV0dXJuIFFMUHJl
dmlld0NvbnZlcnRlcjsKLSN1bmRlZiBRTFByZXZpZXdDb252ZXJ0ZXIKLX0KLQotTlNTdHJpbmcg
KldlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5T
U3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKQotewotICAgIGlmICghY2FuTG9h
ZFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKCkpCi0gICAgICAg
IHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZShmaWxlTmFtZSwgbWltZVR5cGUpOwotfQotCi1OU1N0cmluZyAqV2Vi
Q29yZTo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmws
IE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5QmVzdE1p
bWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJl
dHVybiA6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVU
eXBlKTsKLX0KLQogTlNTZXQgKldlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBl
c1NldCgpCiB7Ci0gICAgaWYgKCFjYW5Mb2FkUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
KCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBzdGF0aWMgTlNTZXQgKnNldCA9IGFkb3B0
TlMoOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKSkubGVha1JlZigpOwotICAgIHJl
dHVybiBzZXQ7Ci19Ci0KLU5TU3RyaW5nICpXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5k
TWltZVR5cGUoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKQotewotICAgIGlmICghY2Fu
TG9hZFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSgpKQotICAgICAgICByZXR1cm4gbmls
OwotCi0gICAgcmV0dXJuIDo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWlt
ZVR5cGUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5QdHI8TlNTZXQ+PiBzZXQg
PSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKTsKKyAgICByZXR1cm4gc2V0LmdldCgp
OwogfQogCiBOU0RpY3Rpb25hcnkgKldlYkNvcmU6OlFMRmlsZUF0dHJpYnV0ZXMoKQpAQCAtMTkw
LDEyICsxNDMsMTIgQEAgdm9pZCBXZWJDb3JlOjpyZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JV
UkwoTlNVUkwgKnVybCkKIAogUmV0YWluUHRyPE5TVVJMUmVxdWVzdD4gV2ViQ29yZTo6cmVnaXN0
ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5
cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1F
VHlwZSA9IGFkb3B0TlMoV2ViQ29yZTo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1p
bWVUeXBlKHVybCwgbWltZVR5cGUpKTsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRN
SU1FVHlwZSA9IGFkb3B0TlMoUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBl
KHVybCwgbWltZVR5cGUpKTsKIAotICAgIGlmIChbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9y
dGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdldCgpXSkg
ewotICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9IGFkb3B0TlMoV2ViQ29yZTo6UUxU
eXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7
CisgICAgaWYgKFtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09i
amVjdDp1cGRhdGVkTUlNRVR5cGUuZ2V0KCldKSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmlu
Zz4gdXRpID0gYWRvcHROUyhRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUodXJsLCB1cGRh
dGVkTUlNRVR5cGUuZ2V0KCkpKTsKIAotICAgICAgICBSZXRhaW5QdHI8aWQ+IGNvbnZlcnRlciA9
IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0V2l0aERhdGE6
ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9wdGlvbnM6bmlsXSk7CisgICAgICAgIFJldGFp
blB0cjxpZD4gY29udmVydGVyID0gYWRvcHROUyhbW1FMUHJldmlld0NvbnZlcnRlciBhbGxvY10g
aW5pdFdpdGhEYXRhOmRhdGEgbmFtZTpuaWwgdXRpOnV0aS5nZXQoKSBvcHRpb25zOm5pbF0pOwog
ICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbY29udmVydGVyIHByZXZpZXdSZXF1ZXN0
XTsKIAogICAgICAgICAvLyBXZSB1c2UgW3JlcXVlc3QgVVJMXSBoZXJlIGluc3RlYWQgb2YgdXJs
IHNpbmNlIGl0IHdpbGwgYmUKQEAgLTIyOCwxOCArMTgxLDEzIEBAIGNvbnN0IFVSTCBXZWJDb3Jl
OjpzYWZlUUxVUkxGb3JEb2N1bWVudFVSTEFuZFJlc291cmNlVVJMKGNvbnN0IFVSTCYgZG9jdW1l
bnRVUkwsCiBzdGF0aWMgVmVjdG9yPGNoYXI+IGNyZWF0ZVFMUHJldmlld1Byb3RvY29sKCkKIHsK
ICAgICBWZWN0b3I8Y2hhcj4gcHJldmlld1Byb3RvY29sOwotI2RlZmluZSBRTFByZXZpZXdTY2hl
bWUgZ2V0UUxQcmV2aWV3U2NoZW1lKCkKICAgICBjb25zdCBjaGFyKiBxbFByZXZpZXdTY2hlbWUg
PSBbUUxQcmV2aWV3U2NoZW1lIFVURjhTdHJpbmddOwotI3VuZGVmIFFMUHJldmlld1NjaGVtZQog
ICAgIHByZXZpZXdQcm90b2NvbC5hcHBlbmQocWxQcmV2aWV3U2NoZW1lLCBzdHJsZW4ocWxQcmV2
aWV3U2NoZW1lKSArIDEpOwogICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2w7CiB9CiAKIGNvbnN0
IGNoYXIqIFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKCkKIHsKLSAgICBpZiAoIWNhbkxvYWRR
TFByZXZpZXdTY2hlbWUoKSkKLSAgICAgICAgcmV0dXJuICIiOwotCiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFZlY3RvcjxjaGFyPj4gcHJldmlld1Byb3RvY29sKGNyZWF0ZVFMUHJldmlld1By
b3RvY29sKCkpOwogICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2wuZ2V0KCkuZGF0YSgpOwogfQpA
QCAtNDQ3LDcgKzM5NSw3IEBAIHN0YXRpYyBpbmxpbmUgUXVpY2tMb29rSGFuZGxlQ2xpZW50KiBl
bXB0eUNsaWVudCgpCiAKIFF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKE5TVVJMICpm
aXJzdFJlcXVlc3RVUkwsIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTlNVUkxSZXNwb25z
ZSAqbnNSZXNwb25zZSwgaWQgZGVsZWdhdGUpCiAgICAgOiBtX2ZpcnN0UmVxdWVzdFVSTChmaXJz
dFJlcXVlc3RVUkwpCi0gICAgLCBtX2NvbnZlcnRlcihhZG9wdE5TKFthbGxvY1FMUHJldmlld0Nv
bnZlcnRlckluc3RhbmNlKCkgaW5pdFdpdGhDb25uZWN0aW9uOmNvbm5lY3Rpb24gZGVsZWdhdGU6
ZGVsZWdhdGUgcmVzcG9uc2U6bnNSZXNwb25zZSBvcHRpb25zOm5pbF0pKQorICAgICwgbV9jb252
ZXJ0ZXIoYWRvcHROUyhbW1FMUHJldmlld0NvbnZlcnRlciBhbGxvY10gaW5pdFdpdGhDb25uZWN0
aW9uOmNvbm5lY3Rpb24gZGVsZWdhdGU6ZGVsZWdhdGUgcmVzcG9uc2U6bnNSZXNwb25zZSBvcHRp
b25zOm5pbF0pKQogICAgICwgbV9kZWxlZ2F0ZShkZWxlZ2F0ZSkKICAgICAsIG1fZmluaXNoZWRM
b2FkaW5nRGF0YUludG9Db252ZXJ0ZXIoZmFsc2UpCiAgICAgLCBtX25zUmVzcG9uc2UoW21fY29u
dmVydGVyIHByZXZpZXdSZXNwb25zZV0pCkBAIC00NTksNyArNDA3LDcgQEAgUXVpY2tMb29rSGFu
ZGxlOjpRdWlja0xvb2tIYW5kbGUoTlNVUkwgKmZpcnN0UmVxdWVzdFVSTCwgTlNVUkxDb25uZWN0
aW9uICpjb25uZWMKIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hh
bmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TVVJMQ29ubmVjdGlvbiAqY29u
bmVjdGlvbiwgTlNVUkxSZXNwb25zZSAqbnNSZXNwb25zZSwgaWQgZGVsZWdhdGUpCiB7CiAgICAg
QVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0
KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtX
ZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVj
dDpbbnNSZXNwb25zZSBNSU1FVHlwZV1dKQorICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgp
LnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbUUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6W25zUmVzcG9u
c2UgTUlNRVR5cGVdXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUobmV3IFF1aWNrTG9va0hhbmRs
ZShbaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9k
eSkgVVJMXSwgY29ubmVjdGlvbiwgbnNSZXNwb25zZSwgZGVsZWdhdGUpKTsKQEAgLTQ3MSw3ICs0
MTksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6
OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLAogc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9v
a0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
U3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlKiBjb25uZWN0
aW9uRGVsZWdhdGUsIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25zZSkKIHsKICAgICBBU1NFUlRf
QVJHKGhhbmRsZSwgaGFuZGxlKTsKLSAgICBpZiAoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1
ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbiB8fCAhW1dlYkNvcmU6
OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OihOU1N0
cmluZyAqKUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3BvbnNlKV0pCisgICAgaWYgKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1
ZXN0ZXI6Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250
YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25z
ZSldKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE5TVVJMUmVzcG9uc2UgKm5zUmVz
cG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZVUkxSZXNwb25zZTpjZlJlc3Bv
bnNlXTsKQEAgLTQ4OSw3ICs0MzcsNyBAQCBDRlVSTFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRs
ZTo6Y2ZSZXNwb25zZSgpCiAKIGJvb2wgUXVpY2tMb29rSGFuZGxlOjpzaG91bGRDcmVhdGVGb3JN
SU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewotICAgIHJldHVybiBbV2ViQ29yZTo6
UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6bWltZVR5
cGVdOworICAgIHJldHVybiBbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29u
dGFpbnNPYmplY3Q6bWltZVR5cGVdOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFu
ZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQppbmRl
eCBiOGZlNTY4YTQwOWFlMWRjZDU5M2ZhZjNjYmY1ODExZmRmYmM1ZTYyLi5hNjJkMWI3MjllMTE4
NGVlZDAwNDJjMzkwNTQyZGI3M2Y5NTk4YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAKICNp
bXBvcnQgIlF1aWNrTG9vay5oIgorI2ltcG9ydCAiUXVpY2tMb29rU29mdExpbmsuaCIKICNpbXBv
cnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29y
ZVNlcnZpY2VzLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251952</attachid>
            <date>2015-04-29 08:48:05 -0700</date>
            <delta_ts>2015-04-29 09:06:32 -0700</delta_ts>
            <desc>Patch for EWS v3</desc>
            <filename>bug-144362-20150429084655.patch</filename>
            <type>text/plain</type>
            <size>22899</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjIzZjVkNjk2N2U4NTg1
YTdkZDliOTZkNTk2ZDZjZGRkNjJlZTZjZS4uMmIzYmNlMmM0NzZkMjY0YmQwMjBkODRhZjNiZjU4
NTRkYzg3MDRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBF
c3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlua2luZyBvZiBRdWlj
a0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfSBzbyB0
aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3ltYm9scy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIEFkZCBRdWlj
a0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UpOiBBZGQgbWFjcm8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAgICAgICAg
LSBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFM
VHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAtIFJlbW92ZSBTT0ZUX0xJTksgbWFjcm9zIGFuZCB1bnVzZWQgbWV0aG9kcyBhZnRlciBz
d2l0Y2hpbmcgdG8KKyAgICAgICAgICBuZXcgUXVpY2tMb29rU29mdExpbmsue2gsbW19LgorICAg
ICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KToKKyAgICAg
ICAgLSBTd2l0Y2ggdG8gdXNlIE5ldmVyRGVzdHJveWVkPD4uCisgICAgICAgIChXZWJDb3JlOjpy
ZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKToKKyAgICAgICAgKGNyZWF0ZVFMUHJl
dmlld1Byb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUpOgorICAgICAgICAtIFNp
bXBsaWZ5IGNvZGUgd2hlbiB1c2luZyBRdWlja0xvb2tTb2Z0TGluay5oLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAt
IEluY2x1ZGUgUXVpY2tMb29rU29mdExpbmsuaCBoZWFkZXIuCisKIDIwMTUtMDQtMjggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBTaGFyZWRC
dWZmZXI6OmNvcHkgaXMgbm90IGNvbXB1dGluZyB0aGUgYnVmZmVyIHNpemUgY29ycmVjdGx5IHdo
ZW4gaGF2aW5nIG1fZGF0YUFycmF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmYxODQzMjkzMDVjYWRjY2RjZDgyYWVjYTllZWNm
MzhhNmQxMjk4OS4uMTFkN2Y4MTNmODczMDYzZGU3YzViOGJmZDNhYTg1NDRmZTUwZWMwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTU5OSw3ICsxNTk5LDkgQEAKIAkJNDQzMTFDRDkxMkU0RTI1NzAwMEE4RDE5IC8qIERPTURv
Y3VtZW50RnJhZ21lbnRQcml2YXRlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyog
RE9NRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCAqLzsgfTsKIAkJNDQzMTFGODIxMkU0RTY2QzAw
MEE4RDE5IC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTURvY3VtZW50RnJhZ21lbnRJbnRlcm5hbC5oICovOyB9OwogCQk0NDM4MTdGRjFBOTFCMkY4
MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVN
ZWRpYVNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDQzOTE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1t
ICovOyB9OwogCQk0NDM4MTgwMDFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzgxN0ZF
MUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5oICovOyB9OworCQk0NDM5MTgw
MDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OwogCQk0NDNGMDQyNzBFNzVDOEZCMDA3RTU0MDcg
LyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0
YXRlTm90aWZpZXJJT1MubW0gKi87IH07CiAJCTQ0NDlBNDA1MUE5NjRCMDAwMEI2NEFENSAvKiBD
b3JlTWVkaWFTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ0NDlBNDA0MUE5NjRCMDAwMEI2NEFENSAvKiBDb3JlTWVkaWFTUEkuaCAqLzsgfTsKIAkJ
NDQ0RDRFMjMwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NEQ0RTIxMEY3MDhC
MkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi87IH07CkBAIC04NzYxLDcg
Kzg3NjMsOSBAQAogCQk0NDMxMUNENDEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFn
bWVudFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1l
bnRGcmFnbWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzMTFD
RDUxMkU0RTIyRDAwMEE4RDE5IC8qIERPTURvY3VtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01Eb2N1bWVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDQzODE3RkQxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRM
aW5rLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvcmVNZWRpYVNv
ZnRMaW5rLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkQxQTkxQjJG
ODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDM4MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29m
dExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29yZU1lZGlhU29mdExp
bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDQzOTE3RkUxQTkxQjJGODAwNkUw
NEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGlvcy9RdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDNGMDQyNjBFNzVDOEZCMDA3RTU0MDcgLyogTmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrU3RhdGVOb3Rp
ZmllcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0OUE0MDQxQTk2NEIw
MDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb3JlTWVkaWFTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ0RDRF
MjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODQzLDYgKzE4ODQ3LDggQEAKIAkJCQlD
NTI3OEIwQjE3RjIxMkVBMDAzQTI5OTggLyogUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tICovLAog
CQkJCUU0NTM5MDMyMEVBRkQ2MzcwMDM2OTVDOCAvKiBQbGF0Zm9ybVNjcmVlbklPUy5tbSAqLywK
IAkJCQlBQUUzNzU1RDE3NDI5QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
cklPUy5tbSAqLywKKwkJCQk0NDM5MTdGRTFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsuaCAqLywKKwkJCQk0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29m
dExpbmsubW0gKi8sCiAJCQkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklPUy5oICovLAogCQkJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8sCiAJCQkJNDRDMzYzRUUwRkFBN0JCMzAwOTdGOEND
IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oICovLApAQCAtMjYwNDEsNiArMjYwNDcs
NyBAQAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRTEyNTIzRDFBMTY3NkNEMDA4NjQ0ODAgLyogUXVhcnR6Q29yZVNQ
SS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQyQUY3QTkxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNr
TG9vay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDQzOTE4MDAxQTkxQjJGODAwNkUwNEYyIC8qIFF1
aWNrTG9va1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTQ5Nzg2RjFBQkFGMzM4MDBD
RUY3RTQgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyMzkxQTE2
NkZBMDAwODY0NDgwIC8qIFF1aWNrTG9va1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwREJG
NDcxOEY5MjMxNzAwMEQ3MEM2IC8qIFF1aWNrTG9va0hhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yOTU0MCw2ICsyOTU0Nyw3IEBACiAJCQkJQ0RFRTM5MzcxNzk3NDI1OTAwMUQ3NTgw
IC8qIFB1YmxpY1VSTE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTUwQTBCQzkwODVG
NjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDQy
QUY3QUExMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTQ0MzkxN0ZGMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MkFFMUU2MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlja1RpbWVQbHVnaW5S
ZXBsYWNlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3OUUzNzE2MTM3MzZBNjYwMEI5RTkx
OSAvKiBRdW90ZWRQcmludGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUE1NzRGMjgxMzFE
Qjk2RDAwNDcxQjg4IC8qIFF1b3Rlc0RhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMw
YWE0MTk3NDViODU0ZmQ5YTU3YTRiOTZhYjI2Y2I0ZjY0NjM1NjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaApAQCAtMCww
ICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoUVVJQ0tfTE9PSykKKworI2luY2x1ZGUg
IlF1aWNrTG9va1NQSS5oIgorI2luY2x1ZGUgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19G
UkFNRVdPUktfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorI2Rl
ZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0X1F1aWNrTG9va19RTFByZXZpZXdDb252ZXJ0ZXJD
bGFzcygpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9v
aywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisjZGVm
aW5lIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tfUUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURF
UihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFu
ZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWlt
ZVR5cGUpLCAoZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1l
VHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlC
ZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxB
bmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSks
ICh1cmwsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFu
ZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJM
QW5kTWltZVR5cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwg
KnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBRTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlV
VElGb3JVUkxBbmRNaW1lVHlwZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJD
b3JlLCBRdWlja0xvb2ssIFFMUHJldmlld1NjaGVtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgUUxQ
cmV2aWV3U2NoZW1lIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3U2NoZW1lKCkKKworI2VuZGlmIC8v
IFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1F1aWNrTG9va1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNr
TG9va1NvZnRMaW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjODIwMjAyOTI2MTdhMmE3OGM4Njk1Y2IyOTM5
ZGMyODk1ODAwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUXVpY2tMb29rU29mdExpbmsubW0KQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW1wb3J0ICJRdWlj
a0xvb2tTUEkuaCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19GUkFNRVdP
UktfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFTU19GT1Jf
U09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1
cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmls
ZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJp
bmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JV
UkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlw
ZSksICh1cmwsIG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNv
cmUsIFF1aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAq
LCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmll
d1NjaGVtZSwgTlNTdHJpbmcgKikKKworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAppbmRleCA4YTliOWE1YjUyNTU0MDQy
MWEyOTViOWY3NGQxYzJiNzk4ZjcxYjVhLi5kZjQ4ZTNiYmY1YmZjMWZiYWJlMDk0Y2VhZTA2ZTQ4
ZjU1ZmQzNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExp
bmtpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaApA
QCAtMzE3LDYgKzMxNyw0MSBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktf
Q0xBU1NfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUp
IFwKKyAgICBAY2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNw
YWNlIHsgXAorICAgIENsYXNzICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNz
KSgpOyBcCisgICAgaW5saW5lIGNsYXNzTmFtZSAqYWxsb2MjI2NsYXNzTmFtZSMjSW5zdGFuY2Uo
KSBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBbZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05h
bWUjI0NsYXNzKCkgYWxsb2NdOyBcCisgICAgfSBcCisgICAgfQorCisjZGVmaW5lIFNPRlRfTElO
S19DTEFTU19GT1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIGNsYXNzTmFt
ZSkgXAorICAgIEBjbGFzcyBjbGFzc05hbWU7IFwKKyAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1l
c3BhY2UgeyBcCisgICAgc3RhdGljIENsYXNzIGluaXQjI2NsYXNzTmFtZSgpOyBcCisgICAgQ2xh
c3MgKCpnZXRfIyNmcmFtZXdvcmsjI18jI2NsYXNzTmFtZSMjQ2xhc3MpKCkgPSBpbml0IyNjbGFz
c05hbWU7IFwKKyAgICBzdGF0aWMgQ2xhc3MgY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIFwKKyAg
ICBzdGF0aWMgQ2xhc3MgY2xhc3NOYW1lIyNGdW5jdGlvbigpIFwKKyAgICB7IFwKKyAgICAgICAg
cmV0dXJuIGNsYXNzIyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIENs
YXNzIGluaXQjI2NsYXNzTmFtZSgpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNo
X29uY2VfdCBvbmNlOyBcCisgICAgICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAg
ICAgICAgIGZyYW1ld29yayMjTGlicmFyeSgpOyBcCisgICAgICAgICAgICBjbGFzcyMjY2xhc3NO
YW1lID0gb2JqY19nZXRDbGFzcygjY2xhc3NOYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQoY2xhc3MjI2NsYXNzTmFtZSk7IFwKKyAgICAgICAgICAgIGdldF8jI2ZyYW1ld29yayMj
XyMjY2xhc3NOYW1lIyNDbGFzcyA9IGNsYXNzTmFtZSMjRnVuY3Rpb247IFwKKyAgICAgICAgfSk7
IFwKKyAgICAgICAgcmV0dXJuIGNsYXNzIyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICB9CisK
ICNkZWZpbmUgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2Us
IGZyYW1ld29yaywgdmFyaWFibGVOYW1lLCB2YXJpYWJsZVR5cGUpIFwKICAgICBXVEZfRVhURVJO
X0NfQkVHSU4gXAogICAgIGV4dGVybiBjb25zdCB2YXJpYWJsZVR5cGUgdmFyaWFibGVOYW1lOyBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xv
b2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCmlu
ZGV4IGRlMjRmMTMyZDQ4ZmQ4MzZiOGRkNmJkZThjOWQxYTBiYjQzZDAzYzYuLjlkNWFlMmFjYmVl
NjFmY2RmNzFkYTk5ZTJkMmEzYjVhNGU3ZTI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBS
ZXNvdXJjZUxvYWRlcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTeW5jaHJvbm91
c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU7CiAKLUNsYXNzIFFMUHJldmll
d0NvbnZlcnRlckNsYXNzKCk7Ci1OU1N0cmluZyAqUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZp
bGVOYW1lQW5kTWltZVR5cGUoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUp
OwotTlNTdHJpbmcgKlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VS
TCAqLCBOU1N0cmluZyAqbWltZVR5cGUpOwotCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2
aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCk7CiAKIC8vIFVzZWQgZm9yIHNldHRpbmcgdGhl
IHBlcm1pc3Npb25zIG9uIHRoZSBzYXZlZCBRTCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KaW5kZXggYTlhZGYzNjE2OTczODI1
NTRiZmFlNmIxY2VhNTJmNGRhOGY2M2JlYi4uZmNmZDkwOTIyNTRmOGM0YTI2ODdkNjdhNjZkNzA3
NTczYWZmMWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9p
b3MvUXVpY2tMb29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9z
L1F1aWNrTG9vay5tbQpAQCAtMzIsMTIgKzMyLDExIEBACiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9T
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCi0j
aW1wb3J0ICJRdWlja0xvb2tTUEkuaCIKKyNpbXBvcnQgIlF1aWNrTG9va1NvZnRMaW5rLmgiCiAj
aW1wb3J0ICJSZXNvdXJjZUVycm9yLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgogI2lt
cG9ydCAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
c0lPUy5oIgotI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQ29yZVVS
TFJlc3BvbnNlSU9TLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KQEAgLTU2
LDU4ICs1NSwxMiBAQAogQGVuZAogI2VuZGlmCiAKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9O
QUwoUXVpY2tMb29rKQotU09GVF9MSU5LX0NMQVNTKFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVy
dGVyKQotU09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxQcmV2aWV3R2V0U3VwcG9ydGVk
TUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29r
LCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcg
KiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBt
aW1lVHlwZSkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1p
bWVUeXBlRm9yVVJMQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmlu
ZyAqbWltZVR5cGUpLCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tM
b29rLCBRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAq
dXJsLCBOU1N0cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFByZXZpZXdTY2hlbWUsIE5TU3RyaW5nICopCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBOU1N0cmluZyAqUUxUeXBlQ29weVVUSUZvclVSTEFu
ZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSk7Ci19Ci0KIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1DbGFzcyBXZWJDb3JlOjpRTFByZXZpZXdDb252ZXJ0ZXJDbGFz
cygpCi17Ci0jZGVmaW5lIFFMUHJldmlld0NvbnZlcnRlciBnZXRRTFByZXZpZXdDb252ZXJ0ZXJD
bGFzcygpCi0gICAgcmV0dXJuIFFMUHJldmlld0NvbnZlcnRlcjsKLSN1bmRlZiBRTFByZXZpZXdD
b252ZXJ0ZXIKLX0KLQotTlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVG
b3JGaWxlTmFtZUFuZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVU
eXBlKQotewotICAgIGlmICghY2FuTG9hZFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFt
ZUFuZE1pbWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5
cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZShmaWxlTmFtZSwgbWltZVR5
cGUpOwotfQotCi1OU1N0cmluZyAqV2ViQ29yZTo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVS
TEFuZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAo
IWNhbkxvYWRRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVybiA6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JV
UkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKTsKLX0KLQogTlNTZXQgKldlYkNvcmU6OlFMUHJl
dmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpCiB7Ci0gICAgaWYgKCFjYW5Mb2FkUUxQcmV2
aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBz
dGF0aWMgTlNTZXQgKnNldCA9IGFkb3B0TlMoOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlw
ZXMoKSkubGVha1JlZigpOwotICAgIHJldHVybiBzZXQ7Ci19Ci0KLU5TU3RyaW5nICpXZWJDb3Jl
OjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1p
bWVUeXBlKQotewotICAgIGlmICghY2FuTG9hZFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlw
ZSgpKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJuIDo6UUxUeXBlQ29weVVUSUZv
clVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxSZXRhaW5QdHI8TlNTZXQ+PiBzZXQgPSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMo
KTsKKyAgICByZXR1cm4gc2V0LmdldCgpLmdldCgpOwogfQogCiBOU0RpY3Rpb25hcnkgKldlYkNv
cmU6OlFMRmlsZUF0dHJpYnV0ZXMoKQpAQCAtMTkwLDEyICsxNDMsMTIgQEAgdm9pZCBXZWJDb3Jl
OjpyZW1vdmVRTFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwoTlNVUkwgKnVybCkKIAogUmV0YWluUHRy
PE5TVVJMUmVxdWVzdD4gV2ViQ29yZTo6cmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRl
ZChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBS
ZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoV2ViQ29yZTo6UUxU
eXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKKyAg
ICBSZXRhaW5QdHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoUUxUeXBlQ29w
eUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKIAotICAgIGlm
IChbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNP
YmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdldCgpXSkgewotICAgICAgICBSZXRhaW5QdHI8TlNTdHJp
bmc+IHV0aSA9IGFkb3B0TlMoV2ViQ29yZTo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBl
KHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7CisgICAgaWYgKFtRTFByZXZpZXdHZXRTdXBw
b3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDp1cGRhdGVkTUlNRVR5cGUuZ2V0KCld
KSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gdXRpID0gYWRvcHROUyhRTFR5cGVDb3B5
VVRJRm9yVVJMQW5kTWltZVR5cGUodXJsLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCkpKTsKIAotICAg
ICAgICBSZXRhaW5QdHI8aWQ+IGNvbnZlcnRlciA9IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29u
dmVydGVySW5zdGFuY2UoKSBpbml0V2l0aERhdGE6ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgp
IG9wdGlvbnM6bmlsXSk7CisgICAgICAgIFJldGFpblB0cjxRTFByZXZpZXdDb252ZXJ0ZXI+IGNv
bnZlcnRlciA9IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0
V2l0aERhdGE6ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9wdGlvbnM6bmlsXSk7CiAgICAg
ICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtjb252ZXJ0ZXIgcHJldmlld1JlcXVlc3RdOwog
CiAgICAgICAgIC8vIFdlIHVzZSBbcmVxdWVzdCBVUkxdIGhlcmUgaW5zdGVhZCBvZiB1cmwgc2lu
Y2UgaXQgd2lsbCBiZQpAQCAtMjI4LDE4ICsxODEsMTMgQEAgY29uc3QgVVJMIFdlYkNvcmU6OnNh
ZmVRTFVSTEZvckRvY3VtZW50VVJMQW5kUmVzb3VyY2VVUkwoY29uc3QgVVJMJiBkb2N1bWVudFVS
TCwKIHN0YXRpYyBWZWN0b3I8Y2hhcj4gY3JlYXRlUUxQcmV2aWV3UHJvdG9jb2woKQogewogICAg
IFZlY3RvcjxjaGFyPiBwcmV2aWV3UHJvdG9jb2w7Ci0jZGVmaW5lIFFMUHJldmlld1NjaGVtZSBn
ZXRRTFByZXZpZXdTY2hlbWUoKQogICAgIGNvbnN0IGNoYXIqIHFsUHJldmlld1NjaGVtZSA9IFtR
TFByZXZpZXdTY2hlbWUgVVRGOFN0cmluZ107Ci0jdW5kZWYgUUxQcmV2aWV3U2NoZW1lCiAgICAg
cHJldmlld1Byb3RvY29sLmFwcGVuZChxbFByZXZpZXdTY2hlbWUsIHN0cmxlbihxbFByZXZpZXdT
Y2hlbWUpICsgMSk7CiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbDsKIH0KIAogY29uc3QgY2hh
ciogV2ViQ29yZTo6UUxQcmV2aWV3UHJvdG9jb2woKQogewotICAgIGlmICghY2FuTG9hZFFMUHJl
dmlld1NjaGVtZSgpKQotICAgICAgICByZXR1cm4gIiI7Ci0KICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VmVjdG9yPGNoYXI+PiBwcmV2aWV3UHJvdG9jb2woY3JlYXRlUUxQcmV2aWV3UHJvdG9j
b2woKSk7CiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbC5nZXQoKS5kYXRhKCk7CiB9CkBAIC00
NTksNyArNDA3LDcgQEAgUXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tIYW5kbGUoTlNVUkwgKmZp
cnN0UmVxdWVzdFVSTCwgTlNVUkxDb25uZWN0aW9uICpjb25uZWMKIHN0ZDo6dW5pcXVlX3B0cjxR
dWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBo
YW5kbGUsIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTlNVUkxSZXNwb25zZSAqbnNSZXNw
b25zZSwgaWQgZGVsZWdhdGUpCiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0g
ICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1
ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRN
SU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDpbbnNSZXNwb25zZSBNSU1FVHlwZV1dKQorICAg
IGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVz
dDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0
KCkgY29udGFpbnNPYmplY3Q6W25zUmVzcG9uc2UgTUlNRVR5cGVdXSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xv
b2tIYW5kbGUobmV3IFF1aWNrTG9va0hhbmRsZShbaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VS
TFJlcXVlc3QoRG9Ob3RVcGRhdGVIVFRQQm9keSkgVVJMXSwgY29ubmVjdGlvbiwgbnNSZXNwb25z
ZSwgZGVsZWdhdGUpKTsKQEAgLTQ3MSw3ICs0MTksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tM
b29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LAogc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVh
dGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlKiBjb25uZWN0aW9uRGVsZWdhdGUsIENGVVJMUmVzcG9uc2VSZWYg
Y2ZSZXNwb25zZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlKTsKLSAgICBpZiAo
aGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJl
cXVlc3Rlcjo6TWFpbiB8fCAhW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBl
c1NldCgpIGNvbnRhaW5zT2JqZWN0OihOU1N0cmluZyAqKUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlw
ZShjZlJlc3BvbnNlKV0pCisgICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVy
KCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRT
dXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJl
c3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25zZSldKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIE5TVVJMUmVzcG9uc2UgKm5zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9u
c2VXaXRoQ0ZVUkxSZXNwb25zZTpjZlJlc3BvbnNlXTsKQEAgLTQ4OSw3ICs0MzcsNyBAQCBDRlVS
TFJlc3BvbnNlUmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSgpCiAKIGJvb2wgUXVpY2tM
b29rSGFuZGxlOjpzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQogewotICAgIHJldHVybiBbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
U2V0KCkgY29udGFpbnNPYmplY3Q6bWltZVR5cGVdOworICAgIHJldHVybiBbUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6bWltZVR5cGVdOwogfQogCiBz
dGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShS
ZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVV
UkxSZXNwb25zZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dl
YkNvcmVVUkxSZXNwb25zZUlPUy5tbQppbmRleCBiOGZlNTY4YTQwOWFlMWRjZDU5M2ZhZjNjYmY1
ODExZmRmYmM1ZTYyLi5hNjJkMWI3MjllMTE4NGVlZDAwNDJjMzkwNTQyZGI3M2Y5NTk4YjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJM
UmVzcG9uc2VJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3Mv
V2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXZWJD
b3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAKICNpbXBvcnQgIlF1aWNrTG9vay5oIgorI2ltcG9ydCAi
UXVpY2tMb29rU29mdExpbmsuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0IDxN
b2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251955</attachid>
            <date>2015-04-29 09:07:50 -0700</date>
            <delta_ts>2015-04-29 09:27:02 -0700</delta_ts>
            <desc>Patch for EWS v4</desc>
            <filename>bug-144362-20150429090640.patch</filename>
            <type>text/plain</type>
            <size>22833</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNjNmMxYTQ1Y2ZhYWQ5
Zjk5MDJmZDBjMjBmNjMxOTFmOTMyOGYwMy4uNDI4YjdjYzMwZGYyZTQwZGRjNGE4ZTQ3M2MyNzFi
Nzc0NzNlZDIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBF
c3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlua2luZyBvZiBRdWlj
a0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfSBzbyB0
aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3ltYm9scy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIEFkZCBRdWlj
a0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UpOiBBZGQgbWFjcm8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAgICAgICAg
LSBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFM
VHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAtIFJlbW92ZSBTT0ZUX0xJTksgbWFjcm9zIGFuZCB1bnVzZWQgbWV0aG9kcyBhZnRlciBz
d2l0Y2hpbmcgdG8KKyAgICAgICAgICBuZXcgUXVpY2tMb29rU29mdExpbmsue2gsbW19LgorICAg
ICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KToKKyAgICAg
ICAgLSBTd2l0Y2ggdG8gdXNlIE5ldmVyRGVzdHJveWVkPD4uCisgICAgICAgIChXZWJDb3JlOjpy
ZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKToKKyAgICAgICAgKGNyZWF0ZVFMUHJl
dmlld1Byb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUpOgorICAgICAgICAtIFNp
bXBsaWZ5IGNvZGUgd2hlbiB1c2luZyBRdWlja0xvb2tTb2Z0TGluay5oLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAt
IEluY2x1ZGUgUXVpY2tMb29rU29mdExpbmsuaCBoZWFkZXIuCisKIDIwMTUtMDQtMjkgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjE4MjU3Myk6IFtHVEtdIFRoZSBkZWZhdWx0IGNvbnRleHQgbWVudSBjb250YWlucyBhbiBl
bXB0eSBpdGVtIHNpbmNlIHIxODI1NzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjE4NDMyOTMwNWNhZGNjZGNkODJhZWNhOWVl
Y2YzOGE2ZDEyOTg5Li4xMWQ3ZjgxM2Y4NzMwNjNkZTdjNWI4YmZkM2FhODU0NGZlNTBlYzAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTk5LDcgKzE1OTksOSBAQAogCQk0NDMxMUNEOTEyRTRFMjU3MDAwQThEMTkgLyogRE9N
RG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzExQ0Q0MTJFNEUyMkQwMDBBOEQxOSAv
KiBET01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oICovOyB9OwogCQk0NDMxMUY4MjEyRTRFNjZD
MDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0NTBBQzVENTM0MDA1MzI3MEYg
LyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggKi87IH07CiAJCTQ0MzgxN0ZGMUE5MUIy
RjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM4MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogQ29y
ZU1lZGlhU29mdExpbmsuY3BwICovOyB9OworCQk0NDM5MTdGRjFBOTFCMkY4MDA2RTA0RjIgLyog
UXVpY2tMb29rU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsu
bW0gKi87IH07CiAJCTQ0MzgxODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzODE3
RkUxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRMaW5rLmggKi87IH07CisJCTQ0Mzkx
ODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzOTE3RkUxQTkxQjJGODAwNkUwNEYy
IC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi87IH07CiAJCTQ0M0YwNDI3MEU3NUM4RkIwMDdFNTQw
NyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3Jr
U3RhdGVOb3RpZmllcklPUy5tbSAqLzsgfTsKIAkJNDQ0OUE0MDUxQTk2NEIwMDAwQjY0QUQ1IC8q
IENvcmVNZWRpYVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQ0OUE0MDQxQTk2NEIwMDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovOyB9Owog
CQk0NDRENEUyMzBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ0RDRFMjEwRjcw
OEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLzsgfTsKQEAgLTg3NjEs
NyArODc2Myw5IEBACiAJCTQ0MzExQ0Q0MTJFNEUyMkQwMDBBOEQxOSAvKiBET01Eb2N1bWVudEZy
YWdtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Eb2N1
bWVudEZyYWdtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDMx
MUNENTEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3VtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDM4MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29m
dExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29yZU1lZGlh
U29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDM5MTdGRDFBOTFC
MkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBpb3MvUXVpY2tMb29rU29mdExpbmsubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0MzgxN0ZFMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFT
b2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlTWVkaWFTb2Z0
TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDM5MTdGRTFBOTFCMkY4MDA2
RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTdGF0ZU5v
dGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDQ5QTQwNDFBOTY0
QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvcmVNZWRpYVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NDMsNiArMTg4NDcsOCBAQAogCQkJ
CUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8s
CiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1tICov
LAogCQkJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVySU9TLm1tICovLAorCQkJCTQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tT
b2Z0TGluay5oICovLAorCQkJCTQ0MzkxN0ZEMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tT
b2Z0TGluay5tbSAqLywKIAkJCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TLmggKi8sCiAJCQkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywKIAkJCQk0NEMzNjNFRTBGQUE3QkIzMDA5N0Y4
Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmggKi8sCkBAIC0yNjA0MSw2ICsyNjA0
Nyw3IEBACiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNFMTI1MjNEMUExNjc2Q0QwMDg2NDQ4MCAvKiBRdWFydHpDb3Jl
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDJBRjdBOTEwMkNEREVBMDA4RkQ0RDMgLyogUXVp
Y2tMb29rLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDM5MTgwMDFBOTFCMkY4MDA2RTA0RjIgLyog
UXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDk3ODZGMUFCQUYzMzgw
MENFRjdFNCAvKiBDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTIzOTFB
MTY2RkEwMDA4NjQ0ODAgLyogUXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBE
QkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5NTQwLDYgKzI5NTQ3LDcgQEAKIAkJCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NTBBMEJDOTA4
NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDJBRjdBQTEwMkNEREVBMDA4RkQ0RDMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDcyQUUxRTYxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5RTM3MTYxMzczNkE2NjAwQjlF
OTE5IC8qIFF1b3RlZFByaW50YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyODEz
MURCOTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzU3OWZkZTZjZjc3MGIyMWMwY2ZjMzdjYzE0MGQ5ZGQ2NWQ0YTZlZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW5jbHVk
ZSAiUXVpY2tMb29rU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5L
X0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaykKKworU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdDb252ZXJ0ZXIpCisK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2
aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisjZGVmaW5lIFFMUHJl
dmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tfUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBl
LCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpLCAo
ZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZp
bGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihX
ZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlw
ZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmwsIG1p
bWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBl
IHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5
cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxU
eXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNT
dHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBRTFR5cGVDb3B5VVRJ
Rm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlVVElGb3JVUkxB
bmRNaW1lVHlwZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlj
a0xvb2ssIFFMUHJldmlld1NjaGVtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgUUxQcmV2aWV3U2No
ZW1lIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3U2NoZW1lKCkKKworI2VuZGlmIC8vIFVTRShRVUlD
S19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9v
a1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRM
aW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhjODIwMjAyOTI2MTdhMmE3OGM4Njk1Y2IyOTM5ZGMyODk1ODAw
N2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tM
b29rU29mdExpbmsubW0KQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW1wb3J0ICJRdWlja0xvb2tTUEku
aCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdl
YkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1J
TUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRN
aW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVU
eXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1l
VHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmws
IG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwg
KnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld1NjaGVtZSwg
TlNTdHJpbmcgKikKKworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAppbmRleCA4YTliOWE1YjUyNTU0MDQyMWEyOTViOWY3
NGQxYzJiNzk4ZjcxYjVhLi5kZjQ4ZTNiYmY1YmZjMWZiYWJlMDk0Y2VhZTA2ZTQ4ZjU1ZmQzNDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaApAQCAtMzE3LDYg
KzMxNyw0MSBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKKyAgICBA
Y2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAor
ICAgIENsYXNzICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNzKSgpOyBcCisg
ICAgaW5saW5lIGNsYXNzTmFtZSAqYWxsb2MjI2NsYXNzTmFtZSMjSW5zdGFuY2UoKSBcCisgICAg
eyBcCisgICAgICAgIHJldHVybiBbZ2V0XyMjZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNz
KCkgYWxsb2NdOyBcCisgICAgfSBcCisgICAgfQorCisjZGVmaW5lIFNPRlRfTElOS19DTEFTU19G
T1JfU09VUkNFKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmssIGNsYXNzTmFtZSkgXAorICAg
IEBjbGFzcyBjbGFzc05hbWU7IFwKKyAgICBuYW1lc3BhY2UgZnVuY3Rpb25OYW1lc3BhY2UgeyBc
CisgICAgc3RhdGljIENsYXNzIGluaXQjI2NsYXNzTmFtZSgpOyBcCisgICAgQ2xhc3MgKCpnZXRf
IyNmcmFtZXdvcmsjI18jI2NsYXNzTmFtZSMjQ2xhc3MpKCkgPSBpbml0IyNjbGFzc05hbWU7IFwK
KyAgICBzdGF0aWMgQ2xhc3MgY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIFwKKyAgICBzdGF0aWMg
Q2xhc3MgY2xhc3NOYW1lIyNGdW5jdGlvbigpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIGNs
YXNzIyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIENsYXNzIGluaXQj
I2NsYXNzTmFtZSgpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBv
bmNlOyBcCisgICAgICAgIGRpc3BhdGNoX29uY2UoJm9uY2UsIF57IFwKKyAgICAgICAgICAgIGZy
YW1ld29yayMjTGlicmFyeSgpOyBcCisgICAgICAgICAgICBjbGFzcyMjY2xhc3NOYW1lID0gb2Jq
Y19nZXRDbGFzcygjY2xhc3NOYW1lKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2xh
c3MjI2NsYXNzTmFtZSk7IFwKKyAgICAgICAgICAgIGdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NO
YW1lIyNDbGFzcyA9IGNsYXNzTmFtZSMjRnVuY3Rpb247IFwKKyAgICAgICAgfSk7IFwKKyAgICAg
ICAgcmV0dXJuIGNsYXNzIyNjbGFzc05hbWU7IFwKKyAgICB9IFwKKyAgICB9CisKICNkZWZpbmUg
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29y
aywgdmFyaWFibGVOYW1lLCB2YXJpYWJsZVR5cGUpIFwKICAgICBXVEZfRVhURVJOX0NfQkVHSU4g
XAogICAgIGV4dGVybiBjb25zdCB2YXJpYWJsZVR5cGUgdmFyaWFibGVOYW1lOyBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCmluZGV4IGRlMjRm
MTMyZDQ4ZmQ4MzZiOGRkNmJkZThjOWQxYTBiYjQzZDAzYzYuLjlkNWFlMmFjYmVlNjFmY2RmNzFk
YTk5ZTJkMmEzYjVhNGU3ZTI1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvaW9zL1F1aWNrTG9vay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvaW9zL1F1aWNrTG9vay5oCkBAIC01NywxMCArNTcsNiBAQCBjbGFzcyBSZXNvdXJjZUxv
YWRlcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBTeW5jaHJvbm91c1Jlc291cmNl
SGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGU7CiAKLUNsYXNzIFFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKCk7Ci1OU1N0cmluZyAqUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5k
TWltZVR5cGUoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpOwotTlNTdHJp
bmcgKlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqLCBOU1N0
cmluZyAqbWltZVR5cGUpOwotCiBXRUJDT1JFX0VYUE9SVCBOU1NldCAqUUxQcmV2aWV3R2V0U3Vw
cG9ydGVkTUlNRVR5cGVzU2V0KCk7CiAKIC8vIFVzZWQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Np
b25zIG9uIHRoZSBzYXZlZCBRTCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0KaW5kZXggYTlhZGYzNjE2OTczODI1NTRiZmFlNmIx
Y2VhNTJmNGRhOGY2M2JlYi4uZmNmZDkwOTIyNTRmOGM0YTI2ODdkNjdhNjZkNzA3NTczYWZmMWM4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tM
b29rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbQpAQCAtMzIsMTIgKzMyLDExIEBACiAjaW1wb3J0ICJGaWxlU3lzdGVtSU9TLmgiCiAjaW1w
b3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOU0ZpbGVNYW5hZ2VyU1BJLmgiCi0jaW1wb3J0ICJR
dWlja0xvb2tTUEkuaCIKKyNpbXBvcnQgIlF1aWNrTG9va1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUhhbmRsZS5oIgogI2ltcG9ydCAiUmVz
b3VyY2VMb2FkZXIuaCIKICNpbXBvcnQgIlJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0lPUy5oIgot
I2ltcG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgIlN5bmNocm9ub3VzUmVzb3VyY2VIYW5k
bGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiV2ViQ29yZVVSTFJlc3BvbnNl
SU9TLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KQEAgLTU2LDU4ICs1NSwx
MiBAQAogQGVuZAogI2VuZGlmCiAKLVNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoUXVpY2tM
b29rKQotU09GVF9MSU5LX0NMQVNTKFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQotU09G
VF9MSU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVz
LCBOU1NldCAqLCAoKSwgKCkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVD
b3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3Ry
aW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkp
Ci1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9y
VVJMQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5
cGUpLCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfTUFZX0ZBSUwoUXVpY2tMb29rLCBRTFR5
cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1VSTCAqdXJsLCBOU1N0
cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1lVHlwZSkpCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUwoUXVpY2tMb29rLCBRTFByZXZpZXdTY2hlbWUsIE5TU3RyaW5nICopCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICBOU1N0cmluZyAqUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBl
KE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSk7Ci19Ci0KIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1DbGFzcyBXZWJDb3JlOjpRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi17Ci0j
ZGVmaW5lIFFMUHJldmlld0NvbnZlcnRlciBnZXRRTFByZXZpZXdDb252ZXJ0ZXJDbGFzcygpCi0g
ICAgcmV0dXJuIFFMUHJldmlld0NvbnZlcnRlcjsKLSN1bmRlZiBRTFByZXZpZXdDb252ZXJ0ZXIK
LX0KLQotTlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFt
ZUFuZE1pbWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKQotewot
ICAgIGlmICghY2FuTG9hZFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVU
eXBlKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVDb3B5QmVz
dE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZShmaWxlTmFtZSwgbWltZVR5cGUpOwotfQot
Ci1OU1N0cmluZyAqV2ViQ29yZTo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVU
eXBlKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRR
TFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAgICAgcmV0dXJu
IG5pbDsKLQotICAgIHJldHVybiA6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1l
VHlwZSh1cmwsIG1pbWVUeXBlKTsKLX0KLQogTlNTZXQgKldlYkNvcmU6OlFMUHJldmlld0dldFN1
cHBvcnRlZE1JTUVUeXBlc1NldCgpCiB7Ci0gICAgaWYgKCFjYW5Mb2FkUUxQcmV2aWV3R2V0U3Vw
cG9ydGVkTUlNRVR5cGVzKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBzdGF0aWMgTlNT
ZXQgKnNldCA9IGFkb3B0TlMoOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKSkubGVh
a1JlZigpOwotICAgIHJldHVybiBzZXQ7Ci19Ci0KLU5TU3RyaW5nICpXZWJDb3JlOjpRTFR5cGVD
b3B5VVRJRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKQot
ewotICAgIGlmICghY2FuTG9hZFFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSgpKQotICAg
ICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJuIDo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1p
bWVUeXBlKHVybCwgbWltZVR5cGUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXRhaW5Q
dHI8TlNTZXQ+PiBzZXQgPSBRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXMoKTsKKyAgICBy
ZXR1cm4gc2V0LmdldCgpLmdldCgpOwogfQogCiBOU0RpY3Rpb25hcnkgKldlYkNvcmU6OlFMRmls
ZUF0dHJpYnV0ZXMoKQpAQCAtMTkwLDEyICsxNDMsMTIgQEAgdm9pZCBXZWJDb3JlOjpyZW1vdmVR
TFByZXZpZXdDb252ZXJ0ZXJGb3JVUkwoTlNVUkwgKnVybCkKIAogUmV0YWluUHRyPE5TVVJMUmVx
dWVzdD4gV2ViQ29yZTo6cmVnaXN0ZXJRTFByZXZpZXdDb252ZXJ0ZXJJZk5lZWRlZChOU1VSTCAq
dXJsLCBOU1N0cmluZyAqbWltZVR5cGUsIE5TRGF0YSAqZGF0YSkKIHsKLSAgICBSZXRhaW5QdHI8
TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoV2ViQ29yZTo6UUxUeXBlQ29weUJl
c3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKKyAgICBSZXRhaW5Q
dHI8TlNTdHJpbmc+IHVwZGF0ZWRNSU1FVHlwZSA9IGFkb3B0TlMoUUxUeXBlQ29weUJlc3RNaW1l
VHlwZUZvclVSTEFuZE1pbWVUeXBlKHVybCwgbWltZVR5cGUpKTsKIAotICAgIGlmIChbV2ViQ29y
ZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBk
YXRlZE1JTUVUeXBlLmdldCgpXSkgewotICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9
IGFkb3B0TlMoV2ViQ29yZTo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKHVybCwgdXBk
YXRlZE1JTUVUeXBlLmdldCgpKSk7CisgICAgaWYgKFtRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1F
VHlwZXNTZXQoKSBjb250YWluc09iamVjdDp1cGRhdGVkTUlNRVR5cGUuZ2V0KCldKSB7CisgICAg
ICAgIFJldGFpblB0cjxOU1N0cmluZz4gdXRpID0gYWRvcHROUyhRTFR5cGVDb3B5VVRJRm9yVVJM
QW5kTWltZVR5cGUodXJsLCB1cGRhdGVkTUlNRVR5cGUuZ2V0KCkpKTsKIAotICAgICAgICBSZXRh
aW5QdHI8aWQ+IGNvbnZlcnRlciA9IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5z
dGFuY2UoKSBpbml0V2l0aERhdGE6ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9wdGlvbnM6
bmlsXSk7CisgICAgICAgIFJldGFpblB0cjxRTFByZXZpZXdDb252ZXJ0ZXI+IGNvbnZlcnRlciA9
IGFkb3B0TlMoW2FsbG9jUUxQcmV2aWV3Q29udmVydGVySW5zdGFuY2UoKSBpbml0V2l0aERhdGE6
ZGF0YSBuYW1lOm5pbCB1dGk6dXRpLmdldCgpIG9wdGlvbnM6bmlsXSk7CiAgICAgICAgIE5TVVJM
UmVxdWVzdCAqcmVxdWVzdCA9IFtjb252ZXJ0ZXIgcHJldmlld1JlcXVlc3RdOwogCiAgICAgICAg
IC8vIFdlIHVzZSBbcmVxdWVzdCBVUkxdIGhlcmUgaW5zdGVhZCBvZiB1cmwgc2luY2UgaXQgd2ls
bCBiZQpAQCAtMjI4LDE4ICsxODEsMTMgQEAgY29uc3QgVVJMIFdlYkNvcmU6OnNhZmVRTFVSTEZv
ckRvY3VtZW50VVJMQW5kUmVzb3VyY2VVUkwoY29uc3QgVVJMJiBkb2N1bWVudFVSTCwKIHN0YXRp
YyBWZWN0b3I8Y2hhcj4gY3JlYXRlUUxQcmV2aWV3UHJvdG9jb2woKQogewogICAgIFZlY3Rvcjxj
aGFyPiBwcmV2aWV3UHJvdG9jb2w7Ci0jZGVmaW5lIFFMUHJldmlld1NjaGVtZSBnZXRRTFByZXZp
ZXdTY2hlbWUoKQogICAgIGNvbnN0IGNoYXIqIHFsUHJldmlld1NjaGVtZSA9IFtRTFByZXZpZXdT
Y2hlbWUgVVRGOFN0cmluZ107Ci0jdW5kZWYgUUxQcmV2aWV3U2NoZW1lCiAgICAgcHJldmlld1By
b3RvY29sLmFwcGVuZChxbFByZXZpZXdTY2hlbWUsIHN0cmxlbihxbFByZXZpZXdTY2hlbWUpICsg
MSk7CiAgICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbDsKIH0KIAogY29uc3QgY2hhciogV2ViQ29y
ZTo6UUxQcmV2aWV3UHJvdG9jb2woKQogewotICAgIGlmICghY2FuTG9hZFFMUHJldmlld1NjaGVt
ZSgpKQotICAgICAgICByZXR1cm4gIiI7Ci0KICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVj
dG9yPGNoYXI+PiBwcmV2aWV3UHJvdG9jb2woY3JlYXRlUUxQcmV2aWV3UHJvdG9jb2woKSk7CiAg
ICAgcmV0dXJuIHByZXZpZXdQcm90b2NvbC5nZXQoKS5kYXRhKCk7CiB9CkBAIC00NTksNyArNDA3
LDcgQEAgUXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tIYW5kbGUoTlNVUkwgKmZpcnN0UmVxdWVz
dFVSTCwgTlNVUkxDb25uZWN0aW9uICpjb25uZWMKIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tI
YW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5T
VVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTlNVUkxSZXNwb25zZSAqbnNSZXNwb25zZSwgaWQg
ZGVsZWdhdGUpCiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYgKGhh
bmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1
ZXN0ZXI6Ok1haW4gfHwgIVtXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNT
ZXQoKSBjb250YWluc09iamVjdDpbbnNSZXNwb25zZSBNSU1FVHlwZV1dKQorICAgIGlmIChoYW5k
bGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVz
dGVyOjpNYWluIHx8ICFbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFp
bnNPYmplY3Q6W25zUmVzcG9uc2UgTUlNRVR5cGVdXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBxdWlja0xvb2tIYW5kbGUo
bmV3IFF1aWNrTG9va0hhbmRsZShbaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5uc1VSTFJlcXVlc3Qo
RG9Ob3RVcGRhdGVIVFRQQm9keSkgVVJMXSwgY29ubmVjdGlvbiwgbnNSZXNwb25zZSwgZGVsZWdh
dGUpKTsKQEAgLTQ3MSw3ICs0MTksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxl
PiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLAogc3RkOjp1
bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3Vy
Y2VIYW5kbGUqIGhhbmRsZSwgU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlv
bkRlbGVnYXRlKiBjb25uZWN0aW9uRGVsZWdhdGUsIENGVVJMUmVzcG9uc2VSZWYgY2ZSZXNwb25z
ZSkKIHsKICAgICBBU1NFUlRfQVJHKGhhbmRsZSwgaGFuZGxlKTsKLSAgICBpZiAoaGFuZGxlLT5m
aXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6
TWFpbiB8fCAhW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNv
bnRhaW5zT2JqZWN0OihOU1N0cmluZyAqKUNGVVJMUmVzcG9uc2VHZXRNSU1FVHlwZShjZlJlc3Bv
bnNlKV0pCisgICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVz
b3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtRTFByZXZpZXdHZXRTdXBwb3J0ZWRN
SU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0
TUlNRVR5cGUoY2ZSZXNwb25zZSldKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE5T
VVJMUmVzcG9uc2UgKm5zUmVzcG9uc2UgPSBbTlNVUkxSZXNwb25zZSBfcmVzcG9uc2VXaXRoQ0ZV
UkxSZXNwb25zZTpjZlJlc3BvbnNlXTsKQEAgLTQ4OSw3ICs0MzcsNyBAQCBDRlVSTFJlc3BvbnNl
UmVmIFF1aWNrTG9va0hhbmRsZTo6Y2ZSZXNwb25zZSgpCiAKIGJvb2wgUXVpY2tMb29rSGFuZGxl
OjpzaG91bGRDcmVhdGVGb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewotICAg
IHJldHVybiBbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29u
dGFpbnNPYmplY3Q6bWltZVR5cGVdOworICAgIHJldHVybiBbUUxQcmV2aWV3R2V0U3VwcG9ydGVk
TUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6bWltZVR5cGVdOwogfQogCiBzdGQ6OnVuaXF1
ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUxv
YWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25z
ZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxS
ZXNwb25zZUlPUy5tbQppbmRleCBiOGZlNTY4YTQwOWFlMWRjZDU5M2ZhZjNjYmY1ODExZmRmYmM1
ZTYyLi5hNjJkMWI3MjllMTE4NGVlZDAwNDJjMzkwNTQyZGI3M2Y5NTk4YjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVS
TFJlc3BvbnNlSU9TLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXZWJDb3JlU3lzdGVt
SW50ZXJmYWNlLmgiCiAKICNpbXBvcnQgIlF1aWNrTG9vay5oIgorI2ltcG9ydCAiUXVpY2tMb29r
U29mdExpbmsuaCIKICNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0IDxNb2JpbGVDb3Jl
U2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251957</attachid>
            <date>2015-04-29 09:25:58 -0700</date>
            <delta_ts>2015-04-29 14:19:33 -0700</delta_ts>
            <desc>Patch for EWS v5 / Landing</desc>
            <filename>bug-144362-20150429092449.patch</filename>
            <type>text/plain</type>
            <size>22888</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNjNmMxYTQ1Y2ZhYWQ5
Zjk5MDJmZDBjMjBmNjMxOTFmOTMyOGYwMy4uNDI4YjdjYzMwZGYyZTQwZGRjNGE4ZTQ3M2MyNzFi
Nzc0NzNlZDIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTA0LTI4ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3dpdGNoIFF1aWNrTG9v
ayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfQorICAgICAgICA8
aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBF
c3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlua2luZyBvZiBRdWlj
a0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5rLntoLG1tfSBzbyB0
aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3ltYm9scy4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAtIEFkZCBRdWlj
a0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0UpOiBBZGQgbWFjcm8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaDoKKyAgICAgICAg
LSBSZW1vdmUgdW51c2VkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld0NvbnZlcnRl
ckNsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlFM
VHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAtIFJlbW92ZSBTT0ZUX0xJTksgbWFjcm9zIGFuZCB1bnVzZWQgbWV0aG9kcyBhZnRlciBz
d2l0Y2hpbmcgdG8KKyAgICAgICAgICBuZXcgUXVpY2tMb29rU29mdExpbmsue2gsbW19LgorICAg
ICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KToKKyAgICAg
ICAgLSBTd2l0Y2ggdG8gdXNlIE5ldmVyRGVzdHJveWVkPD4uCisgICAgICAgIChXZWJDb3JlOjpy
ZWdpc3RlclFMUHJldmlld0NvbnZlcnRlcklmTmVlZGVkKToKKyAgICAgICAgKGNyZWF0ZVFMUHJl
dmlld1Byb3RvY29sKToKKyAgICAgICAgKFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKToKKyAg
ICAgICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUpOgorICAgICAgICAtIFNp
bXBsaWZ5IGNvZGUgd2hlbiB1c2luZyBRdWlja0xvb2tTb2Z0TGluay5oLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tOgorICAgICAgICAt
IEluY2x1ZGUgUXVpY2tMb29rU29mdExpbmsuaCBoZWFkZXIuCisKIDIwMTUtMDQtMjkgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjE4MjU3Myk6IFtHVEtdIFRoZSBkZWZhdWx0IGNvbnRleHQgbWVudSBjb250YWlucyBhbiBl
bXB0eSBpdGVtIHNpbmNlIHIxODI1NzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjE4NDMyOTMwNWNhZGNjZGNkODJhZWNhOWVl
Y2YzOGE2ZDEyOTg5Li4xMWQ3ZjgxM2Y4NzMwNjNkZTdjNWI4YmZkM2FhODU0NGZlNTBlYzAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTk5LDcgKzE1OTksOSBAQAogCQk0NDMxMUNEOTEyRTRFMjU3MDAwQThEMTkgLyogRE9N
RG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzExQ0Q0MTJFNEUyMkQwMDBBOEQxOSAv
KiBET01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oICovOyB9OwogCQk0NDMxMUY4MjEyRTRFNjZD
MDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0NTBBQzVENTM0MDA1MzI3MEYg
LyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggKi87IH07CiAJCTQ0MzgxN0ZGMUE5MUIy
RjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM4MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogQ29y
ZU1lZGlhU29mdExpbmsuY3BwICovOyB9OworCQk0NDM5MTdGRjFBOTFCMkY4MDA2RTA0RjIgLyog
UXVpY2tMb29rU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsu
bW0gKi87IH07CiAJCTQ0MzgxODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGlu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzODE3
RkUxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRMaW5rLmggKi87IH07CisJCTQ0Mzkx
ODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzOTE3RkUxQTkxQjJGODAwNkUwNEYy
IC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi87IH07CiAJCTQ0M0YwNDI3MEU3NUM4RkIwMDdFNTQw
NyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3Jr
U3RhdGVOb3RpZmllcklPUy5tbSAqLzsgfTsKIAkJNDQ0OUE0MDUxQTk2NEIwMDAwQjY0QUQ1IC8q
IENvcmVNZWRpYVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQ0OUE0MDQxQTk2NEIwMDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oICovOyB9Owog
CQk0NDRENEUyMzBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQ0RDRFMjEwRjcw
OEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLzsgfTsKQEAgLTg3NjEs
NyArODc2Myw5IEBACiAJCTQ0MzExQ0Q0MTJFNEUyMkQwMDBBOEQxOSAvKiBET01Eb2N1bWVudEZy
YWdtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Eb2N1
bWVudEZyYWdtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDMx
MUNENTEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3VtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0NDM4MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogQ29yZU1lZGlhU29m
dExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29yZU1lZGlh
U29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDM5MTdGRDFBOTFC
MkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBpb3MvUXVpY2tMb29rU29mdExpbmsubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ0MzgxN0ZFMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFT
b2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JlTWVkaWFTb2Z0
TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDM5MTdGRTFBOTFCMkY4MDA2
RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtTdGF0ZU5v
dGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDQ5QTQwNDFBOTY0
QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvcmVNZWRpYVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDRE
NEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NDMsNiArMTg4NDcsOCBAQAogCQkJ
CUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gKi8s
CiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2NyZWVuSU9TLm1tICov
LAogCQkJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVySU9TLm1tICovLAorCQkJCTQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tT
b2Z0TGluay5oICovLAorCQkJCTQ0MzkxN0ZEMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tT
b2Z0TGluay5tbSAqLywKIAkJCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29t
bWFuZExpc3RlbmVySU9TLmggKi8sCiAJCQkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywKIAkJCQk0NEMzNjNFRTBGQUE3QkIzMDA5N0Y4
Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmggKi8sCkBAIC0yNjA0MSw2ICsyNjA0
Nyw3IEBACiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUNFMTI1MjNEMUExNjc2Q0QwMDg2NDQ4MCAvKiBRdWFydHpDb3Jl
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDJBRjdBOTEwMkNEREVBMDA4RkQ0RDMgLyogUXVp
Y2tMb29rLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDM5MTgwMDFBOTFCMkY4MDA2RTA0RjIgLyog
UXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDk3ODZGMUFCQUYzMzgw
MENFRjdFNCAvKiBDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTIzOTFB
MTY2RkEwMDA4NjQ0ODAgLyogUXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTBE
QkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI5NTQwLDYgKzI5NTQ3LDcgQEAKIAkJCQlDREVFMzkzNzE3OTc0MjU5MDAxRDc1
ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NTBBMEJDOTA4
NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
NDJBRjdBQTEwMkNEREVBMDA4RkQ0RDMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDcyQUUxRTYxODNDMDc0MTAwMEE1OTg4IC8qIFF1aWNrVGltZVBsdWdp
blJlcGxhY2VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5RTM3MTYxMzczNkE2NjAwQjlF
OTE5IC8qIFF1b3RlZFByaW50YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyODEz
MURCOTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzU3OWZkZTZjZjc3MGIyMWMwY2ZjMzdjYzE0MGQ5ZGQ2NWQ0YTZlZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0TGluay5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW5jbHVk
ZSAiUXVpY2tMb29rU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5L
X0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaykKKworU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdDb252ZXJ0ZXIpCisK
K1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2
aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisjZGVmaW5lIFFMUHJl
dmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tfUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihXZWJDb3Jl
LCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBl
LCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAqbWltZVR5cGUpLCAo
ZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZp
bGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihX
ZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlw
ZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmwsIG1p
bWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBl
IHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5
cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxU
eXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNT
dHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBRTFR5cGVDb3B5VVRJ
Rm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNvcHlVVElGb3JVUkxB
bmRNaW1lVHlwZQorCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihXZWJDb3JlLCBRdWlj
a0xvb2ssIFFMUHJldmlld1NjaGVtZSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgUUxQcmV2aWV3U2No
ZW1lIGdldF9RdWlja0xvb2tfUUxQcmV2aWV3U2NoZW1lKCkKKworI2VuZGlmIC8vIFVTRShRVUlD
S19MT09LKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9v
a1NvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRM
aW5rLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhjODIwMjAyOTI2MTdhMmE3OGM4Njk1Y2IyOTM5ZGMyODk1ODAw
N2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVpY2tM
b29rU29mdExpbmsubW0KQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKworI2lmIFVTRShRVUlDS19MT09LKQorCisjaW1wb3J0ICJRdWlja0xvb2tTUEku
aCIKKyNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX1NP
VVJDRShXZWJDb3JlLCBRdWlja0xvb2spCisKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFKFdl
YkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3Q29udmVydGVyKQorCitTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1J
TUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
V2ViQ29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRN
aW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVU
eXBlKSwgKGZpbGVOYW1lLCBtaW1lVHlwZSkpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJD
RShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1l
VHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSksICh1cmws
IG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwg
KnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMUHJldmlld1NjaGVtZSwg
TlNTdHJpbmcgKikKKworI2VuZGlmIC8vIFVTRShRVUlDS19MT09LKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAppbmRleCA4YTliOWE1YjUyNTU0MDQyMWEyOTViOWY3
NGQxYzJiNzk4ZjcxYjVhLi5hMTJlNWE4MzYxMDQ1ZTQ5MjhmOWZlNmE4NzQ2OTQ3Nzk2NTE5MWU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaApAQCAtMzE3LDYg
KzMxNyw0MiBAQAogICAgIH0gXAogICAgIH0KIAorI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKKyAgICBA
Y2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAor
ICAgIGV4dGVybiBDbGFzcyAoKmdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcyko
KTsgXAorICAgIGNsYXNzTmFtZSAqYWxsb2MjI2NsYXNzTmFtZSMjSW5zdGFuY2UoKTsgXAorICAg
IGlubGluZSBjbGFzc05hbWUgKmFsbG9jIyNjbGFzc05hbWUjI0luc3RhbmNlKCkgXAorICAgIHsg
XAorICAgICAgICByZXR1cm4gW2dldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcygp
IGFsbG9jXTsgXAorICAgIH0gXAorICAgIH0KKworI2RlZmluZSBTT0ZUX0xJTktfQ0xBU1NfRk9S
X1NPVVJDRShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBjbGFzc05hbWUpIFwKKyAgICBA
Y2xhc3MgY2xhc3NOYW1lOyBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAor
ICAgIHN0YXRpYyBDbGFzcyBpbml0IyNjbGFzc05hbWUoKTsgXAorICAgIENsYXNzICgqZ2V0XyMj
ZnJhbWV3b3JrIyNfIyNjbGFzc05hbWUjI0NsYXNzKSgpID0gaW5pdCMjY2xhc3NOYW1lOyBcCisg
ICAgc3RhdGljIENsYXNzIGNsYXNzIyNjbGFzc05hbWU7IFwKKyAgICBcCisgICAgc3RhdGljIENs
YXNzIGNsYXNzTmFtZSMjRnVuY3Rpb24oKSBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBjbGFz
cyMjY2xhc3NOYW1lOyBcCisgICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBDbGFzcyBpbml0IyNj
bGFzc05hbWUoKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICBmcmFt
ZXdvcmsjI0xpYnJhcnkoKTsgXAorICAgICAgICAgICAgY2xhc3MjI2NsYXNzTmFtZSA9IG9iamNf
Z2V0Q2xhc3MoI2NsYXNzTmFtZSk7IFwKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGNsYXNz
IyNjbGFzc05hbWUpOyBcCisgICAgICAgICAgICBnZXRfIyNmcmFtZXdvcmsjI18jI2NsYXNzTmFt
ZSMjQ2xhc3MgPSBjbGFzc05hbWUjI0Z1bmN0aW9uOyBcCisgICAgICAgIH0pOyBcCisgICAgICAg
IHJldHVybiBjbGFzcyMjY2xhc3NOYW1lOyBcCisgICAgfSBcCisgICAgfQorCiAjZGVmaW5lIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKGZ1bmN0aW9uTmFtZXNwYWNlLCBmcmFtZXdvcmss
IHZhcmlhYmxlTmFtZSwgdmFyaWFibGVUeXBlKSBcCiAgICAgV1RGX0VYVEVSTl9DX0JFR0lOIFwK
ICAgICBleHRlcm4gY29uc3QgdmFyaWFibGVUeXBlIHZhcmlhYmxlTmFtZTsgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2suaAppbmRleCBkZTI0ZjEz
MmQ0OGZkODM2YjhkZDZiZGU4YzlkMWEwYmI0M2QwM2M2Li45ZDVhZTJhY2JlZTYxZmNkZjcxZGE5
OWUyZDJhM2I1YTRlN2UyNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2lvcy9RdWlja0xvb2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2lvcy9RdWlja0xvb2suaApAQCAtNTcsMTAgKzU3LDYgQEAgY2xhc3MgUmVzb3VyY2VMb2Fk
ZXI7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU3luY2hyb25vdXNSZXNvdXJjZUhh
bmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlOwogCi1DbGFzcyBRTFByZXZpZXdDb252ZXJ0ZXJD
bGFzcygpOwotTlNTdHJpbmcgKlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1p
bWVUeXBlKE5TU3RyaW5nICpmaWxlTmFtZSwgTlNTdHJpbmcgKm1pbWVUeXBlKTsKLU5TU3RyaW5n
ICpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUoTlNVUkwgKiwgTlNTdHJp
bmcgKm1pbWVUeXBlKTsKLQogV0VCQ09SRV9FWFBPUlQgTlNTZXQgKlFMUHJldmlld0dldFN1cHBv
cnRlZE1JTUVUeXBlc1NldCgpOwogCiAvLyBVc2VkIGZvciBzZXR0aW5nIHRoZSBwZXJtaXNzaW9u
cyBvbiB0aGUgc2F2ZWQgUUwgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9pb3MvUXVpY2tMb29rLm1tCmluZGV4IGE5YWRmMzYxNjk3MzgyNTU0YmZhZTZiMWNl
YTUyZjRkYThmNjNiZWIuLmZjZmQ5MDkyMjU0ZjhjNGEyNjg3ZDY3YTY2ZDcwNzU3M2FmZjFjODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9v
ay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2su
bW0KQEAgLTMyLDEyICszMiwxMSBAQAogI2ltcG9ydCAiRmlsZVN5c3RlbUlPUy5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTlNGaWxlTWFuYWdlclNQSS5oIgotI2ltcG9ydCAiUXVp
Y2tMb29rU1BJLmgiCisjaW1wb3J0ICJRdWlja0xvb2tTb2Z0TGluay5oIgogI2ltcG9ydCAiUmVz
b3VyY2VFcnJvci5oIgogI2ltcG9ydCAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbXBvcnQgIlJlc291
cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3NJT1MuaCIKLSNp
bXBvcnQgIlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxl
Q0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIldlYkNvcmVVUkxSZXNwb25zZUlP
Uy5oIgogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CkBAIC01Niw1OCArNTUsMTIg
QEAKIEBlbmQKICNlbmRpZgogCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKFF1aWNrTG9v
aykKLVNPRlRfTElOS19DTEFTUyhRdWlja0xvb2ssIFFMUHJldmlld0NvbnZlcnRlcikKLVNPRlRf
TElOS19NQVlfRkFJTChRdWlja0xvb2ssIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcywg
TlNTZXQgKiwgKCksICgpKQotU09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29w
eUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUsIE5TU3RyaW5nICosIChOU1N0cmlu
ZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1lVHlwZSksIChmaWxlTmFtZSwgbWltZVR5cGUpKQot
U09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVS
TEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBl
KSwgKHVybCwgbWltZVR5cGUpKQotU09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBl
Q29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNTdHJp
bmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMKFF1aWNrTG9vaywgUUxQcmV2aWV3U2NoZW1lLCBOU1N0cmluZyAqKQotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0gICAgTlNTdHJpbmcgKlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZShO
U1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpOwotfQotCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotQ2xhc3MgV2ViQ29yZTo6UUxQcmV2aWV3Q29udmVydGVyQ2xhc3MoKQotewotI2Rl
ZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0UUxQcmV2aWV3Q29udmVydGVyQ2xhc3MoKQotICAg
IHJldHVybiBRTFByZXZpZXdDb252ZXJ0ZXI7Ci0jdW5kZWYgUUxQcmV2aWV3Q29udmVydGVyCi19
Ci0KLU5TU3RyaW5nICpXZWJDb3JlOjpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVB
bmRNaW1lVHlwZShOU1N0cmluZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAg
ICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlw
ZSgpKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJuIDo6UUxUeXBlQ29weUJlc3RN
aW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUoZmlsZU5hbWUsIG1pbWVUeXBlKTsKLX0KLQot
TlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlw
ZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpCi17Ci0gICAgaWYgKCFjYW5Mb2FkUUxU
eXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBu
aWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5
cGUodXJsLCBtaW1lVHlwZSk7Ci19Ci0KIE5TU2V0ICpXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBw
b3J0ZWRNSU1FVHlwZXNTZXQoKQogewotICAgIGlmICghY2FuTG9hZFFMUHJldmlld0dldFN1cHBv
cnRlZE1JTUVUeXBlcygpKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgc3RhdGljIE5TU2V0
ICpzZXQgPSBhZG9wdE5TKDo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCkpLmxlYWtS
ZWYoKTsKLSAgICByZXR1cm4gc2V0OwotfQotCi1OU1N0cmluZyAqV2ViQ29yZTo6UUxUeXBlQ29w
eVVUSUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsK
LSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVybiA6OlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1l
VHlwZSh1cmwsIG1pbWVUeXBlKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRy
PE5TU2V0Pj4gc2V0ID0gUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCk7CisgICAgcmV0
dXJuIHNldC5nZXQoKS5nZXQoKTsKIH0KIAogTlNEaWN0aW9uYXJ5ICpXZWJDb3JlOjpRTEZpbGVB
dHRyaWJ1dGVzKCkKQEAgLTE5MCwxMiArMTQzLDEyIEBAIHZvaWQgV2ViQ29yZTo6cmVtb3ZlUUxQ
cmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJMICp1cmwpCiAKIFJldGFpblB0cjxOU1VSTFJlcXVl
c3Q+IFdlYkNvcmU6OnJlZ2lzdGVyUUxQcmV2aWV3Q29udmVydGVySWZOZWVkZWQoTlNVUkwgKnVy
bCwgTlNTdHJpbmcgKm1pbWVUeXBlLCBOU0RhdGEgKmRhdGEpCiB7Ci0gICAgUmV0YWluUHRyPE5T
U3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUgPSBhZG9wdE5TKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0
TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKSk7CisgICAgUmV0YWluUHRy
PE5TU3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUgPSBhZG9wdE5TKFFMVHlwZUNvcHlCZXN0TWltZVR5
cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKSk7CiAKLSAgICBpZiAoW1dlYkNvcmU6
OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OnVwZGF0
ZWRNSU1FVHlwZS5nZXQoKV0pIHsKLSAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1dGkgPSBh
ZG9wdE5TKFdlYkNvcmU6OlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIHVwZGF0
ZWRNSU1FVHlwZS5nZXQoKSkpOworICAgIGlmIChbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5
cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBkYXRlZE1JTUVUeXBlLmdldCgpXSkgeworICAgICAg
ICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9IGFkb3B0TlMoUUxUeXBlQ29weVVUSUZvclVSTEFu
ZE1pbWVUeXBlKHVybCwgdXBkYXRlZE1JTUVUeXBlLmdldCgpKSk7CiAKLSAgICAgICAgUmV0YWlu
UHRyPGlkPiBjb252ZXJ0ZXIgPSBhZG9wdE5TKFthbGxvY1FMUHJldmlld0NvbnZlcnRlckluc3Rh
bmNlKCkgaW5pdFdpdGhEYXRhOmRhdGEgbmFtZTpuaWwgdXRpOnV0aS5nZXQoKSBvcHRpb25zOm5p
bF0pOworICAgICAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29udmVydGVyPiBjb252ZXJ0ZXIgPSBh
ZG9wdE5TKFthbGxvY1FMUHJldmlld0NvbnZlcnRlckluc3RhbmNlKCkgaW5pdFdpdGhEYXRhOmRh
dGEgbmFtZTpuaWwgdXRpOnV0aS5nZXQoKSBvcHRpb25zOm5pbF0pOwogICAgICAgICBOU1VSTFJl
cXVlc3QgKnJlcXVlc3QgPSBbY29udmVydGVyIHByZXZpZXdSZXF1ZXN0XTsKIAogICAgICAgICAv
LyBXZSB1c2UgW3JlcXVlc3QgVVJMXSBoZXJlIGluc3RlYWQgb2YgdXJsIHNpbmNlIGl0IHdpbGwg
YmUKQEAgLTIyOCwxOCArMTgxLDEzIEBAIGNvbnN0IFVSTCBXZWJDb3JlOjpzYWZlUUxVUkxGb3JE
b2N1bWVudFVSTEFuZFJlc291cmNlVVJMKGNvbnN0IFVSTCYgZG9jdW1lbnRVUkwsCiBzdGF0aWMg
VmVjdG9yPGNoYXI+IGNyZWF0ZVFMUHJldmlld1Byb3RvY29sKCkKIHsKICAgICBWZWN0b3I8Y2hh
cj4gcHJldmlld1Byb3RvY29sOwotI2RlZmluZSBRTFByZXZpZXdTY2hlbWUgZ2V0UUxQcmV2aWV3
U2NoZW1lKCkKICAgICBjb25zdCBjaGFyKiBxbFByZXZpZXdTY2hlbWUgPSBbUUxQcmV2aWV3U2No
ZW1lIFVURjhTdHJpbmddOwotI3VuZGVmIFFMUHJldmlld1NjaGVtZQogICAgIHByZXZpZXdQcm90
b2NvbC5hcHBlbmQocWxQcmV2aWV3U2NoZW1lLCBzdHJsZW4ocWxQcmV2aWV3U2NoZW1lKSArIDEp
OwogICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2w7CiB9CiAKIGNvbnN0IGNoYXIqIFdlYkNvcmU6
OlFMUHJldmlld1Byb3RvY29sKCkKIHsKLSAgICBpZiAoIWNhbkxvYWRRTFByZXZpZXdTY2hlbWUo
KSkKLSAgICAgICAgcmV0dXJuICIiOwotCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3Rv
cjxjaGFyPj4gcHJldmlld1Byb3RvY29sKGNyZWF0ZVFMUHJldmlld1Byb3RvY29sKCkpOwogICAg
IHJldHVybiBwcmV2aWV3UHJvdG9jb2wuZ2V0KCkuZGF0YSgpOwogfQpAQCAtNDU5LDcgKzQwNyw3
IEBAIFF1aWNrTG9va0hhbmRsZTo6UXVpY2tMb29rSGFuZGxlKE5TVVJMICpmaXJzdFJlcXVlc3RV
UkwsIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjCiBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFu
ZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU1VS
TENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIE5TVVJMUmVzcG9uc2UgKm5zUmVzcG9uc2UsIGlkIGRl
bGVnYXRlKQogewogICAgIEFTU0VSVF9BUkcoaGFuZGxlLCBoYW5kbGUpOwotICAgIGlmIChoYW5k
bGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVz
dGVyOjpNYWluIHx8ICFbV2ViQ29yZTo6UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0
KCkgY29udGFpbnNPYmplY3Q6W25zUmVzcG9uc2UgTUlNRVR5cGVdXSkKKyAgICBpZiAoaGFuZGxl
LT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIoKSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rl
cjo6TWFpbiB8fCAhW1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5z
T2JqZWN0Oltuc1Jlc3BvbnNlIE1JTUVUeXBlXV0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gcXVpY2tMb29rSGFuZGxlKG5l
dyBRdWlja0xvb2tIYW5kbGUoW2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERv
Tm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIGNvbm5lY3Rpb24sIG5zUmVzcG9uc2UsIGRlbGVnYXRl
KSk7CkBAIC00NzEsNyArNDE5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4g
UXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwKIHN0ZDo6dW5p
cXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUsIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZSogY29ubmVjdGlvbkRlbGVnYXRlLCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2Up
CiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUsIGhhbmRsZSk7Ci0gICAgaWYgKGhhbmRsZS0+Zmly
c3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1h
aW4gfHwgIVtXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250
YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVSTFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25z
ZSldKQorICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291
cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlN
RVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6KE5TU3RyaW5nICopQ0ZVUkxSZXNwb25zZUdldE1J
TUVUeXBlKGNmUmVzcG9uc2UpXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBOU1VS
TFJlc3BvbnNlICpuc1Jlc3BvbnNlID0gW05TVVJMUmVzcG9uc2UgX3Jlc3BvbnNlV2l0aENGVVJM
UmVzcG9uc2U6Y2ZSZXNwb25zZV07CkBAIC00ODksNyArNDM3LDcgQEAgQ0ZVUkxSZXNwb25zZVJl
ZiBRdWlja0xvb2tIYW5kbGU6OmNmUmVzcG9uc2UoKQogCiBib29sIFF1aWNrTG9va0hhbmRsZTo6
c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICBy
ZXR1cm4gW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRh
aW5zT2JqZWN0Om1pbWVUeXBlXTsKKyAgICByZXR1cm4gW1FMUHJldmlld0dldFN1cHBvcnRlZE1J
TUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0Om1pbWVUeXBlXTsKIH0KIAogc3RkOjp1bmlxdWVf
cHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2Fk
ZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVz
cG9uc2VJT1MubW0KaW5kZXggYjhmZTU2OGE0MDlhZTFkY2Q1OTNmYWYzY2JmNTgxMWZkZmJjNWU2
Mi4uYTYyZDFiNzI5ZTExODRlZWQwMDQyYzM5MDU0MmRiNzNmOTU5OGIxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxS
ZXNwb25zZUlPUy5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUlu
dGVyZmFjZS5oIgogCiAjaW1wb3J0ICJRdWlja0xvb2suaCIKKyNpbXBvcnQgIlF1aWNrTG9va1Nv
ZnRMaW5rLmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCA8TW9iaWxlQ29yZVNl
cnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251987</attachid>
            <date>2015-04-29 14:18:01 -0700</date>
            <delta_ts>2015-04-29 18:20:46 -0700</delta_ts>
            <desc>Patch for EWS v6 / Landing #2</desc>
            <filename>bug-144362-20150429141651.patch</filename>
            <type>text/plain</type>
            <size>24343</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzNTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFmZTQ5NjdmZTU5ZGZk
Y2IyMTQyNWI3NzEyM2I5ZTFjZDA4YjA2ZC4uNGQyNmUyOGU3MDM3YzhjNzc2NDU4ZGE1N2QyYjcz
ZjdmOWNjYTE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE1LTA0LTI5ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgQXR0ZW1wdCAjMjogU3dp
dGNoIFF1aWNrTG9vayBzb2Z0LWxpbmtpbmcgdG8gdXNlIFF1aWNrTG9va1NvZnRMaW5rLntoLG1t
fQorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xNDQzNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHN3aXRjaGVzIHNvZnQtbGlu
a2luZyBvZiBRdWlja0xvb2suZnJhbWV3b3JrIHRvCisgICAgICAgIFF1aWNrTG9va1NvZnRMaW5r
LntoLG1tfSBzbyB0aGF0IHdlIHN0b3AgZXhwb3J0aW5nIHVuaW50ZW5kZWQKKyAgICAgICAgc3lt
Ym9scy4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gY2hhbmdlIGluIGJlaGF2aW9y
LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAtIEFkZCBRdWlja0xvb2tTb2Z0TGlua2luZy57aCxtbX0gdG8gdGhlIHByb2plY3QuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvUXVpY2tMb29rU29mdExpbmsuaDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLm1tOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvU29mdExpbmtpbmcuaDoKKyAgICAgICAgKFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKTogQWRkIG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0Up
OiBBZGQgbWFjcm8uCisgICAgICAgIChTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKTogQWRk
IG1hY3JvLgorICAgICAgICAoU09GVF9MSU5LX1BPSU5URVJfRk9SX1NPVVJDRSk6IEFkZCBtYWNy
by4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oOgorICAgICAg
ICAtIFJlbW92ZSB1bnVzZWQgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9pb3MvUXVpY2tMb29rLm1tOgorICAgICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3Q29udmVy
dGVyQ2xhc3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UUxUeXBlQ29weUJlc3RNaW1l
VHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSk6IERlbGV0ZWQuCisg
ICAgICAgIC0gUmVtb3ZlIFNPRlRfTElOSyBtYWNyb3MgYW5kIHVudXNlZCBtZXRob2RzIGFmdGVy
IHN3aXRjaGluZyB0bworICAgICAgICAgIG5ldyBRdWlja0xvb2tTb2Z0TGluay57aCxtbX0uCisg
ICAgICAgIChXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQpOgorICAg
ICAgICAtIFN3aXRjaCB0byB1c2UgTmV2ZXJEZXN0cm95ZWQ8Pi4KKyAgICAgICAgKFdlYkNvcmU6
OnJlZ2lzdGVyUUxQcmV2aWV3Q29udmVydGVySWZOZWVkZWQpOgorICAgICAgICAoY3JlYXRlUUxQ
cmV2aWV3UHJvdG9jb2wpOgorICAgICAgICAoV2ViQ29yZTo6UUxQcmV2aWV3UHJvdG9jb2wpOgor
ICAgICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpRdWlja0xvb2tIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6UXVpY2tMb29rSGFuZGxlOjpzaG91bGRDcmVhdGVGb3JNSU1FVHlwZSk6CisgICAgICAgIC0g
U2ltcGxpZnkgY29kZSB3aGVuIHVzaW5nIFF1aWNrTG9va1NvZnRMaW5rLmguCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW06CisgICAgICAg
IC0gSW5jbHVkZSBRdWlja0xvb2tTb2Z0TGluay5oIGhlYWRlci4KKwogMjAxNS0wNC0yOSAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE4MzU1MyBhbmQgcjE4MzU2MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNmRmMDQyMTEwZTA3M2Fi
MzQ1Yzg3NTM1NzY1MzNlYjYzMDZlOGUzLi45NDg2ZTdjMTgwYzhlYzUzMGY1ZWE2MTE0NjRiODI4
OWNmMjVmNjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNTk5LDcgKzE1OTksOSBAQAogCQk0NDMxMUNEOTEyRTRFMjU3MDAw
QThEMTkgLyogRE9NRG9jdW1lbnRGcmFnbWVudFByaXZhdGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzExQ0Q0MTJFNEUy
MkQwMDBBOEQxOSAvKiBET01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oICovOyB9OwogCQk0NDMx
MUY4MjEyRTRFNjZDMDAwQThEMTkgLyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUU3MTE0NTBBQzVE
NTM0MDA1MzI3MEYgLyogRE9NRG9jdW1lbnRGcmFnbWVudEludGVybmFsLmggKi87IH07CiAJCTQ0
MzgxN0ZGMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3JlTWVkaWFTb2Z0TGluay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM4MTdGRDFBOTFCMkY4MDA2
RTA0RjIgLyogQ29yZU1lZGlhU29mdExpbmsuY3BwICovOyB9OworCQk0NDM5MTdGRjFBOTFCMkY4
MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tM
b29rU29mdExpbmsubW0gKi87IH07CiAJCTQ0MzgxODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBDb3Jl
TWVkaWFTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDQzODE3RkUxQTkxQjJGODAwNkUwNEYyIC8qIENvcmVNZWRpYVNvZnRMaW5rLmggKi87
IH07CisJCTQ0MzkxODAwMUE5MUIyRjgwMDZFMDRGMiAvKiBRdWlja0xvb2tTb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQzOTE3RkUxQTkx
QjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRMaW5rLmggKi87IH07CiAJCTQ0M0YwNDI3MEU3
NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQw
NyAvKiBOZXR3b3JrU3RhdGVOb3RpZmllcklPUy5tbSAqLzsgfTsKIAkJNDQ0OUE0MDUxQTk2NEIw
MDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDQ0OUE0MDQxQTk2NEIwMDAwQjY0QUQ1IC8qIENvcmVNZWRpYVNQ
SS5oICovOyB9OwogCQk0NDRENEUyMzBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3Bv
bnNlSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQ0RDRFMjEwRjcwOEIyRTAwMzE1OEUwIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5tbSAqLzsg
fTsKQEAgLTg3NjMsNyArODc2NSw5IEBACiAJCTQ0MzExQ0Q0MTJFNEUyMkQwMDBBOEQxOSAvKiBE
T01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NDMxMUNENTEyRTRFMjJEMDAwQThEMTkgLyogRE9NRG9jdW1lbnRQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3VtZW50UHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDM4MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyog
Q29yZU1lZGlhU29mdExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29yZU1lZGlhU29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NDM5MTdGRDFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBpb3MvUXVpY2tMb29rU29mdExpbmsubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MzgxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBDb3JlTWVkaWFTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b3JlTWVkaWFTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDM5MTdG
RTFBOTFCMkY4MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gaW9zL1F1aWNrTG9va1NvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ0M0YwNDI2MEU3NUM4RkIwMDdFNTQwNyAvKiBOZXR3b3JrU3RhdGVO
b3RpZmllcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5l
dHdvcmtTdGF0ZU5vdGlmaWVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NDQ5QTQwNDFBOTY0QjAwMDBCNjRBRDUgLyogQ29yZU1lZGlhU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvcmVNZWRpYVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NDRENEUyMTBGNzA4QjJFMDAzMTU4RTAgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVVSTFJl
c3BvbnNlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NDcsNiArMTg4
NTEsOCBAQAogCQkJCUM1Mjc4QjBCMTdGMjEyRUEwMDNBMjk5OCAvKiBQbGF0Zm9ybVBhc3RlYm9h
cmRJT1MubW0gKi8sCiAJCQkJRTQ1MzkwMzIwRUFGRDYzNzAwMzY5NUM4IC8qIFBsYXRmb3JtU2Ny
ZWVuSU9TLm1tICovLAogCQkJCUFBRTM3NTVEMTc0MjlCQ0MwMDYyMDBDMiAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpemVySU9TLm1tICovLAorCQkJCTQ0MzkxN0ZFMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5oICovLAorCQkJCTQ0MzkxN0ZEMUE5MUIyRjgwMDZFMDRGMiAv
KiBRdWlja0xvb2tTb2Z0TGluay5tbSAqLywKIAkJCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYg
LyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8sCiAJCQkJQ0RGQzM2MDIxOENBNjE2MzAw
MjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLywKIAkJCQk0NEMzNjNFRTBG
QUE3QkIzMDA5N0Y4Q0MgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmggKi8sCkBAIC0y
NjA0OCw2ICsyNjA1NCw3IEBACiAJCQkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxp
ZmllZE5hbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTI1MjNEMUExNjc2Q0QwMDg2NDQ4MCAv
KiBRdWFydHpDb3JlU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDJBRjdBOTEwMkNEREVBMDA4
RkQ0RDMgLyogUXVpY2tMb29rLmggaW4gSGVhZGVycyAqLywKKwkJCQk0NDM5MTgwMDFBOTFCMkY4
MDA2RTA0RjIgLyogUXVpY2tMb29rU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNDk3
ODZGMUFCQUYzMzgwMENFRjdFNCAvKiBDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRTEyNTIzOTFBMTY2RkEwMDA4NjQ0ODAgLyogUXVpY2tMb29rU1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTBEQkY0NzE4RjkyMzE3MDAwRDcwQzYgLyogUXVpY2tMb29rSGFuZGxlQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKQEAgLTI5NTQ3LDYgKzI5NTU0LDcgQEAKIAkJCQlDREVFMzkzNzE3
OTc0MjU5MDAxRDc1ODAgLyogUHVibGljVVJMTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0NDJBRjdBQTEwMkNEREVBMDA4RkQ0RDMgLyogUXVpY2tMb29rLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDQzOTE3RkYxQTkxQjJGODAwNkUwNEYyIC8qIFF1aWNrTG9va1NvZnRM
aW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQUUxRTYxODNDMDc0MTAwMEE1OTg4IC8qIFF1
aWNrVGltZVBsdWdpblJlcGxhY2VtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc5RTM3MTYx
MzczNkE2NjAwQjlFOTE5IC8qIFF1b3RlZFByaW50YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1QTU3NEYyODEzMURCOTZEMDA0NzFCODggLyogUXVvdGVzRGF0YS5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0
TGluay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1F1aWNrTG9va1NvZnRMaW5rLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGRkM2U4MWJlMzYzZjk5NzY0YjgyODkyNzgxOWJjMDljOWYzYTNkYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9RdWlja0xvb2tTb2Z0
TGluay5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShRVUlDS19MT09L
KQorCisjaW5jbHVkZSAiUXVpY2tMb29rU1BJLmgiCisjaW5jbHVkZSAiU29mdExpbmtpbmcuaCIK
KworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNrTG9vaykKKwor
U09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdD
b252ZXJ0ZXIpCisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1aWNr
TG9vaywgUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCisj
ZGVmaW5lIFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcyBzb2Z0TGlua19RdWlja0xvb2tf
UUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hF
QURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JGaWxlTmFt
ZUFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0cmluZyAq
bWltZVR5cGUpLCAoZmlsZU5hbWUsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RN
aW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNv
cHlCZXN0TWltZVR5cGVGb3JGaWxlTmFtZUFuZE1pbWVUeXBlCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX0hFQURFUihXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JV
UkxBbmRNaW1lVHlwZSwgTlNTdHJpbmcgKiwgKE5TVVJMICp1cmwsIE5TU3RyaW5nICptaW1lVHlw
ZSksICh1cmwsIG1pbWVUeXBlKSkKKyNkZWZpbmUgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVS
TEFuZE1pbWVUeXBlIHNvZnRMaW5rX1F1aWNrTG9va19RTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9y
VVJMQW5kTWltZVR5cGUKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFdlYkNvcmUsIFF1
aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNV
UkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQorI2RlZmluZSBR
TFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUgc29mdExpbmtfUXVpY2tMb29rX1FMVHlwZUNv
cHlVVElGb3JVUkxBbmRNaW1lVHlwZQorCitTT0ZUX0xJTktfUE9JTlRFUl9GT1JfSEVBREVSKFdl
YkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3U2NoZW1lLCBOU1N0cmluZyAqKQorI2RlZmluZSBR
TFByZXZpZXdTY2hlbWUgZ2V0X1F1aWNrTG9va19RTFByZXZpZXdTY2hlbWUoKQorCisjZW5kaWYg
Ly8gVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvUXVpY2tMb29rU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUXVp
Y2tMb29rU29mdExpbmsubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZkMzYyMjM0YzRjYmVlOWQyMGFhZWI5YzYx
ZDkwN2NhZjg0NWI4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9RdWlja0xvb2tTb2Z0TGluay5tbQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgVVNFKFFVSUNLX0xPT0spCisKKyNpbXBvcnQgIlF1
aWNrTG9va1NQSS5oIgorI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKworU09GVF9MSU5LX0ZSQU1F
V09SS19GT1JfU09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaykKKworU09GVF9MSU5LX0NMQVNTX0ZP
Ul9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZpZXdDb252ZXJ0ZXIpCisKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzLCBOU1NldCAqLCAoKSwgKCkpCitTT0ZUX0xJTktfRlVOQ1RJT05f
Rk9SX1NPVVJDRShXZWJDb3JlLCBRdWlja0xvb2ssIFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JG
aWxlTmFtZUFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNTdHJpbmcgKmZpbGVOYW1lLCBOU1N0
cmluZyAqbWltZVR5cGUpLCAoZmlsZU5hbWUsIG1pbWVUeXBlKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKFdlYkNvcmUsIFF1aWNrTG9vaywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZv
clVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVU
eXBlKSwgKHVybCwgbWltZVR5cGUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0UoV2Vi
Q29yZSwgUXVpY2tMb29rLCBRTFR5cGVDb3B5VVRJRm9yVVJMQW5kTWltZVR5cGUsIE5TU3RyaW5n
ICosIChOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5cGUpLCAodXJsLCBtaW1lVHlwZSkpCisK
K1NPRlRfTElOS19QT0lOVEVSX0ZPUl9TT1VSQ0UoV2ViQ29yZSwgUXVpY2tMb29rLCBRTFByZXZp
ZXdTY2hlbWUsIE5TU3RyaW5nICopCisKKyNlbmRpZiAvLyBVU0UoUVVJQ0tfTE9PSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Tb2Z0TGlua2luZy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmgKaW5kZXggOGE5YjlhNWI1MjU1NDA0
MjFhMjk1YjlmNzRkMWMyYjc5OGY3MWI1YS4uY2NlNTkzZGQ2ZjM5ZDQ4M2Y4ODhkNDdkNTk5Njdk
NTVjM2MzZTM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRM
aW5raW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NvZnRMaW5raW5nLmgK
QEAgLTMxNyw2ICszMTcsNDIgQEAKICAgICB9IFwKICAgICB9CiAKKyNkZWZpbmUgU09GVF9MSU5L
X0NMQVNTX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgY2xhc3NOYW1l
KSBcCisgICAgQGNsYXNzIGNsYXNzTmFtZTsgXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVz
cGFjZSB7IFwKKyAgICBleHRlcm4gQ2xhc3MgKCpnZXRfIyNmcmFtZXdvcmsjI18jI2NsYXNzTmFt
ZSMjQ2xhc3MpKCk7IFwKKyAgICBjbGFzc05hbWUgKmFsbG9jIyNjbGFzc05hbWUjI0luc3RhbmNl
KCk7IFwKKyAgICBpbmxpbmUgY2xhc3NOYW1lICphbGxvYyMjY2xhc3NOYW1lIyNJbnN0YW5jZSgp
IFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIFtnZXRfIyNmcmFtZXdvcmsjI18jI2NsYXNzTmFt
ZSMjQ2xhc3MoKSBhbGxvY107IFwKKyAgICB9IFwKKyAgICB9CisKKyNkZWZpbmUgU09GVF9MSU5L
X0NMQVNTX0ZPUl9TT1VSQ0UoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaywgY2xhc3NOYW1l
KSBcCisgICAgQGNsYXNzIGNsYXNzTmFtZTsgXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVz
cGFjZSB7IFwKKyAgICBzdGF0aWMgQ2xhc3MgaW5pdCMjY2xhc3NOYW1lKCk7IFwKKyAgICBDbGFz
cyAoKmdldF8jI2ZyYW1ld29yayMjXyMjY2xhc3NOYW1lIyNDbGFzcykoKSA9IGluaXQjI2NsYXNz
TmFtZTsgXAorICAgIHN0YXRpYyBDbGFzcyBjbGFzcyMjY2xhc3NOYW1lOyBcCisgICAgXAorICAg
IHN0YXRpYyBDbGFzcyBjbGFzc05hbWUjI0Z1bmN0aW9uKCkgXAorICAgIHsgXAorICAgICAgICBy
ZXR1cm4gY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIH0gXAorICAgIFwKKyAgICBzdGF0aWMgQ2xh
c3MgaW5pdCMjY2xhc3NOYW1lKCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMgZGlzcGF0Y2hf
b25jZV90IG9uY2U7IFwKKyAgICAgICAgZGlzcGF0Y2hfb25jZSgmb25jZSwgXnsgXAorICAgICAg
ICAgICAgZnJhbWV3b3JrIyNMaWJyYXJ5KCk7IFwKKyAgICAgICAgICAgIGNsYXNzIyNjbGFzc05h
bWUgPSBvYmpjX2dldENsYXNzKCNjbGFzc05hbWUpOyBcCisgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVChjbGFzcyMjY2xhc3NOYW1lKTsgXAorICAgICAgICAgICAgZ2V0XyMjZnJhbWV3b3JrIyNf
IyNjbGFzc05hbWUjI0NsYXNzID0gY2xhc3NOYW1lIyNGdW5jdGlvbjsgXAorICAgICAgICB9KTsg
XAorICAgICAgICByZXR1cm4gY2xhc3MjI2NsYXNzTmFtZTsgXAorICAgIH0gXAorICAgIH0KKwog
I2RlZmluZSBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwg
ZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlwZSkgXAogICAgIFdURl9FWFRFUk5f
Q19CRUdJTiBcCiAgICAgZXh0ZXJuIGNvbnN0IHZhcmlhYmxlVHlwZSB2YXJpYWJsZU5hbWU7IFwK
QEAgLTM3NCw0ICs0MTAsMzMgQEAKICAgICB9IFwKICAgICB9CiAKKyNkZWZpbmUgU09GVF9MSU5L
X1BPSU5URVJfRk9SX0hFQURFUihmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJs
ZU5hbWUsIHZhcmlhYmxlVHlwZSkgXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7
IFwKKyAgICBleHRlcm4gdmFyaWFibGVUeXBlICgqZ2V0XyMjZnJhbWV3b3JrIyNfIyN2YXJpYWJs
ZU5hbWUpKCk7IFwKKyAgICB9CisKKyNkZWZpbmUgU09GVF9MSU5LX1BPSU5URVJfRk9SX1NPVVJD
RShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCB2YXJpYWJsZU5hbWUsIHZhcmlhYmxlVHlw
ZSkgXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAgICBzdGF0aWMgdmFy
aWFibGVUeXBlIGluaXQjI2ZyYW1ld29yayMjdmFyaWFibGVOYW1lKCk7IFwKKyAgICB2YXJpYWJs
ZVR5cGUgKCpnZXRfIyNmcmFtZXdvcmsjI18jI3ZhcmlhYmxlTmFtZSkoKSA9IGluaXQjI2ZyYW1l
d29yayMjdmFyaWFibGVOYW1lOyBcCisgICAgc3RhdGljIHZhcmlhYmxlVHlwZSBwb2ludGVyIyNm
cmFtZXdvcmsjI3ZhcmlhYmxlTmFtZTsgXAorICAgIFwKKyAgICBzdGF0aWMgdmFyaWFibGVUeXBl
IHBvaW50ZXIjI2ZyYW1ld29yayMjdmFyaWFibGVOYW1lIyNGdW5jdGlvbigpIFwKKyAgICB7IFwK
KyAgICAgICAgcmV0dXJuIHBvaW50ZXIjI2ZyYW1ld29yayMjdmFyaWFibGVOYW1lOyBcCisgICAg
fSBcCisgICAgXAorICAgIHN0YXRpYyB2YXJpYWJsZVR5cGUgaW5pdCMjZnJhbWV3b3JrIyN2YXJp
YWJsZU5hbWUoKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICB2b2lk
KiogcG9pbnRlciA9IHN0YXRpY19jYXN0PHZvaWQqKj4oZGxzeW0oZnJhbWV3b3JrIyNMaWJyYXJ5
KCksICN2YXJpYWJsZU5hbWUpKTsgXAorICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9N
RVNTQUdFKHBvaW50ZXIsICIlcyIsIGRsZXJyb3IoKSk7IFwKKyAgICAgICAgICAgIHBvaW50ZXIj
I2ZyYW1ld29yayMjdmFyaWFibGVOYW1lID0gc3RhdGljX2Nhc3Q8dmFyaWFibGVUeXBlPigqcG9p
bnRlcik7IFwKKyAgICAgICAgICAgIGdldF8jI2ZyYW1ld29yayMjXyMjdmFyaWFibGVOYW1lID0g
cG9pbnRlciMjZnJhbWV3b3JrIyN2YXJpYWJsZU5hbWUjI0Z1bmN0aW9uOyBcCisgICAgICAgIH0p
OyBcCisgICAgICAgIHJldHVybiBwb2ludGVyIyNmcmFtZXdvcmsjI3ZhcmlhYmxlTmFtZTsgXAor
ICAgIH0gXAorICAgIH0KKwogI2VuZGlmIC8vIFNvZnRMaW5raW5nX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvaW9zL1F1aWNrTG9vay5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLmgKaW5kZXggZGUyNGYxMzJkNDhm
ZDgzNmI4ZGQ2YmRlOGM5ZDFhMGJiNDNkMDNjNi4uOWQ1YWUyYWNiZWU2MWZjZGY3MWRhOTllMmQy
YTNiNWE0ZTdlMjUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9pb3MvUXVpY2tMb29rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9p
b3MvUXVpY2tMb29rLmgKQEAgLTU3LDEwICs1Nyw2IEBAIGNsYXNzIFJlc291cmNlTG9hZGVyOwog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNsYXNzIFN5bmNocm9ub3VzUmVzb3VyY2VIYW5kbGVD
RlVSTENvbm5lY3Rpb25EZWxlZ2F0ZTsKIAotQ2xhc3MgUUxQcmV2aWV3Q29udmVydGVyQ2xhc3Mo
KTsKLU5TU3RyaW5nICpRTFR5cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlw
ZShOU1N0cmluZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1lVHlwZSk7Ci1OU1N0cmluZyAqUUxU
eXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlKE5TVVJMICosIE5TU3RyaW5nICpt
aW1lVHlwZSk7Ci0KIFdFQkNPUkVfRVhQT1JUIE5TU2V0ICpRTFByZXZpZXdHZXRTdXBwb3J0ZWRN
SU1FVHlwZXNTZXQoKTsKIAogLy8gVXNlZCBmb3Igc2V0dGluZyB0aGUgcGVybWlzc2lvbnMgb24g
dGhlIHNhdmVkIFFMIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvaW9zL1F1aWNrTG9vay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvaW9zL1F1aWNrTG9vay5tbQppbmRleCBhOWFkZjM2MTY5NzM4MjU1NGJmYWU2YjFjZWE1MmY0
ZGE4ZjYzYmViLi5mY2ZkOTA5MjI1NGY4YzRhMjY4N2Q2N2E2NmQ3MDc1NzNhZmYxYzg0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2lvcy9RdWlja0xvb2subW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9pb3MvUXVpY2tMb29rLm1tCkBA
IC0zMiwxMiArMzIsMTEgQEAKICNpbXBvcnQgIkZpbGVTeXN0ZW1JT1MuaCIKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKICNpbXBvcnQgIk5TRmlsZU1hbmFnZXJTUEkuaCIKLSNpbXBvcnQgIlF1aWNrTG9v
a1NQSS5oIgorI2ltcG9ydCAiUXVpY2tMb29rU29mdExpbmsuaCIKICNpbXBvcnQgIlJlc291cmNl
RXJyb3IuaCIKICNpbXBvcnQgIlJlc291cmNlSGFuZGxlLmgiCiAjaW1wb3J0ICJSZXNvdXJjZUxv
YWRlci5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzSU9TLmgiCi0jaW1wb3J0
ICJTb2Z0TGlua2luZy5oIgogI2ltcG9ydCAiU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJDb3JlVVJMUmVzcG9uc2VJT1MuaCIK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgpAQCAtNTYsNTggKzU1LDEyIEBAIC0o
Q0ZVUkxSZXNwb25zZVJlZilfQ0ZVUkxSZXNwb25zZTsKIEBlbmQKICNlbmRpZgogCi1TT0ZUX0xJ
TktfRlJBTUVXT1JLX09QVElPTkFMKFF1aWNrTG9vaykKLVNPRlRfTElOS19DTEFTUyhRdWlja0xv
b2ssIFFMUHJldmlld0NvbnZlcnRlcikKLVNPRlRfTElOS19NQVlfRkFJTChRdWlja0xvb2ssIFFM
UHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcywgTlNTZXQgKiwgKCksICgpKQotU09GVF9MSU5L
X01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5k
TWltZVR5cGUsIE5TU3RyaW5nICosIChOU1N0cmluZyAqZmlsZU5hbWUsIE5TU3RyaW5nICptaW1l
VHlwZSksIChmaWxlTmFtZSwgbWltZVR5cGUpKQotU09GVF9MSU5LX01BWV9GQUlMKFF1aWNrTG9v
aywgUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFuZE1pbWVUeXBlLCBOU1N0cmluZyAqLCAo
TlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5cGUpKQotU09GVF9M
SU5LX01BWV9GQUlMKFF1aWNrTG9vaywgUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlLCBO
U1N0cmluZyAqLCAoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlKSwgKHVybCwgbWltZVR5
cGUpKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKFF1aWNrTG9vaywgUUxQcmV2aWV3U2No
ZW1lLCBOU1N0cmluZyAqKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgTlNTdHJpbmcgKlFM
VHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWltZVR5
cGUpOwotfQotCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotQ2xhc3MgV2ViQ29yZTo6UUxQ
cmV2aWV3Q29udmVydGVyQ2xhc3MoKQotewotI2RlZmluZSBRTFByZXZpZXdDb252ZXJ0ZXIgZ2V0
UUxQcmV2aWV3Q29udmVydGVyQ2xhc3MoKQotICAgIHJldHVybiBRTFByZXZpZXdDb252ZXJ0ZXI7
Ci0jdW5kZWYgUUxQcmV2aWV3Q29udmVydGVyCi19Ci0KLU5TU3RyaW5nICpXZWJDb3JlOjpRTFR5
cGVDb3B5QmVzdE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZShOU1N0cmluZyAqZmlsZU5h
bWUsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5QmVz
dE1pbWVUeXBlRm9yRmlsZU5hbWVBbmRNaW1lVHlwZSgpKQotICAgICAgICByZXR1cm4gbmlsOwot
Ci0gICAgcmV0dXJuIDo6UUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvckZpbGVOYW1lQW5kTWltZVR5
cGUoZmlsZU5hbWUsIG1pbWVUeXBlKTsKLX0KLQotTlNTdHJpbmcgKldlYkNvcmU6OlFMVHlwZUNv
cHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZShOU1VSTCAqdXJsLCBOU1N0cmluZyAqbWlt
ZVR5cGUpCi17Ci0gICAgaWYgKCFjYW5Mb2FkUUxUeXBlQ29weUJlc3RNaW1lVHlwZUZvclVSTEFu
ZE1pbWVUeXBlKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gOjpRTFR5cGVD
b3B5QmVzdE1pbWVUeXBlRm9yVVJMQW5kTWltZVR5cGUodXJsLCBtaW1lVHlwZSk7Ci19Ci0KIE5T
U2V0ICpXZWJDb3JlOjpRTFByZXZpZXdHZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKQogewotICAg
IGlmICghY2FuTG9hZFFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlcygpKQotICAgICAgICBy
ZXR1cm4gbmlsOwotCi0gICAgc3RhdGljIE5TU2V0ICpzZXQgPSBhZG9wdE5TKDo6UUxQcmV2aWV3
R2V0U3VwcG9ydGVkTUlNRVR5cGVzKCkpLmxlYWtSZWYoKTsKLSAgICByZXR1cm4gc2V0OwotfQot
Ci1OU1N0cmluZyAqV2ViQ29yZTo6UUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKE5TVVJM
ICp1cmwsIE5TU3RyaW5nICptaW1lVHlwZSkKLXsKLSAgICBpZiAoIWNhbkxvYWRRTFR5cGVDb3B5
VVRJRm9yVVJMQW5kTWltZVR5cGUoKSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVy
biA6OlFMVHlwZUNvcHlVVElGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1pbWVUeXBlKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPE5TU2V0Pj4gc2V0ID0gUUxQcmV2aWV3R2V0
U3VwcG9ydGVkTUlNRVR5cGVzKCk7CisgICAgcmV0dXJuIHNldC5nZXQoKS5nZXQoKTsKIH0KIAog
TlNEaWN0aW9uYXJ5ICpXZWJDb3JlOjpRTEZpbGVBdHRyaWJ1dGVzKCkKQEAgLTE5MCwxMiArMTQz
LDEyIEBAIHZvaWQgV2ViQ29yZTo6cmVtb3ZlUUxQcmV2aWV3Q29udmVydGVyRm9yVVJMKE5TVVJM
ICp1cmwpCiAKIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IFdlYkNvcmU6OnJlZ2lzdGVyUUxQcmV2
aWV3Q29udmVydGVySWZOZWVkZWQoTlNVUkwgKnVybCwgTlNTdHJpbmcgKm1pbWVUeXBlLCBOU0Rh
dGEgKmRhdGEpCiB7Ci0gICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUgPSBh
ZG9wdE5TKFdlYkNvcmU6OlFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1
cmwsIG1pbWVUeXBlKSk7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1cGRhdGVkTUlNRVR5cGUg
PSBhZG9wdE5TKFFMVHlwZUNvcHlCZXN0TWltZVR5cGVGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIG1p
bWVUeXBlKSk7CiAKLSAgICBpZiAoW1dlYkNvcmU6OlFMUHJldmlld0dldFN1cHBvcnRlZE1JTUVU
eXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0OnVwZGF0ZWRNSU1FVHlwZS5nZXQoKV0pIHsKLSAgICAg
ICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1dGkgPSBhZG9wdE5TKFdlYkNvcmU6OlFMVHlwZUNvcHlV
VElGb3JVUkxBbmRNaW1lVHlwZSh1cmwsIHVwZGF0ZWRNSU1FVHlwZS5nZXQoKSkpOworICAgIGlm
IChbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6dXBk
YXRlZE1JTUVUeXBlLmdldCgpXSkgeworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHV0aSA9
IGFkb3B0TlMoUUxUeXBlQ29weVVUSUZvclVSTEFuZE1pbWVUeXBlKHVybCwgdXBkYXRlZE1JTUVU
eXBlLmdldCgpKSk7CiAKLSAgICAgICAgUmV0YWluUHRyPGlkPiBjb252ZXJ0ZXIgPSBhZG9wdE5T
KFthbGxvY1FMUHJldmlld0NvbnZlcnRlckluc3RhbmNlKCkgaW5pdFdpdGhEYXRhOmRhdGEgbmFt
ZTpuaWwgdXRpOnV0aS5nZXQoKSBvcHRpb25zOm5pbF0pOworICAgICAgICBSZXRhaW5QdHI8UUxQ
cmV2aWV3Q29udmVydGVyPiBjb252ZXJ0ZXIgPSBhZG9wdE5TKFthbGxvY1FMUHJldmlld0NvbnZl
cnRlckluc3RhbmNlKCkgaW5pdFdpdGhEYXRhOmRhdGEgbmFtZTpuaWwgdXRpOnV0aS5nZXQoKSBv
cHRpb25zOm5pbF0pOwogICAgICAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbY29udmVydGVy
IHByZXZpZXdSZXF1ZXN0XTsKIAogICAgICAgICAvLyBXZSB1c2UgW3JlcXVlc3QgVVJMXSBoZXJl
IGluc3RlYWQgb2YgdXJsIHNpbmNlIGl0IHdpbGwgYmUKQEAgLTIyOCwxOCArMTgxLDEzIEBAIGNv
bnN0IFVSTCBXZWJDb3JlOjpzYWZlUUxVUkxGb3JEb2N1bWVudFVSTEFuZFJlc291cmNlVVJMKGNv
bnN0IFVSTCYgZG9jdW1lbnRVUkwsCiBzdGF0aWMgVmVjdG9yPGNoYXI+IGNyZWF0ZVFMUHJldmll
d1Byb3RvY29sKCkKIHsKICAgICBWZWN0b3I8Y2hhcj4gcHJldmlld1Byb3RvY29sOwotI2RlZmlu
ZSBRTFByZXZpZXdTY2hlbWUgZ2V0UUxQcmV2aWV3U2NoZW1lKCkKICAgICBjb25zdCBjaGFyKiBx
bFByZXZpZXdTY2hlbWUgPSBbUUxQcmV2aWV3U2NoZW1lIFVURjhTdHJpbmddOwotI3VuZGVmIFFM
UHJldmlld1NjaGVtZQogICAgIHByZXZpZXdQcm90b2NvbC5hcHBlbmQocWxQcmV2aWV3U2NoZW1l
LCBzdHJsZW4ocWxQcmV2aWV3U2NoZW1lKSArIDEpOwogICAgIHJldHVybiBwcmV2aWV3UHJvdG9j
b2w7CiB9CiAKIGNvbnN0IGNoYXIqIFdlYkNvcmU6OlFMUHJldmlld1Byb3RvY29sKCkKIHsKLSAg
ICBpZiAoIWNhbkxvYWRRTFByZXZpZXdTY2hlbWUoKSkKLSAgICAgICAgcmV0dXJuICIiOwotCiAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxjaGFyPj4gcHJldmlld1Byb3RvY29sKGNy
ZWF0ZVFMUHJldmlld1Byb3RvY29sKCkpOwogICAgIHJldHVybiBwcmV2aWV3UHJvdG9jb2wuZ2V0
KCkuZGF0YSgpOwogfQpAQCAtNDU5LDcgKzQwNyw3IEBAIFF1aWNrTG9va0hhbmRsZTo6UXVpY2tM
b29rSGFuZGxlKE5TVVJMICpmaXJzdFJlcXVlc3RVUkwsIE5TVVJMQ29ubmVjdGlvbiAqY29ubmVj
CiBzdGQ6OnVuaXF1ZV9wdHI8UXVpY2tMb29rSGFuZGxlPiBRdWlja0xvb2tIYW5kbGU6OmNyZWF0
ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU1VSTENvbm5lY3Rpb24gKmNvbm5lY3Rpb24sIE5T
VVJMUmVzcG9uc2UgKm5zUmVzcG9uc2UsIGlkIGRlbGVnYXRlKQogewogICAgIEFTU0VSVF9BUkco
aGFuZGxlLCBoYW5kbGUpOwotICAgIGlmIChoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnJlcXVlc3Rl
cigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluIHx8ICFbV2ViQ29yZTo6UUxQ
cmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6W25zUmVzcG9u
c2UgTUlNRVR5cGVdXSkKKyAgICBpZiAoaGFuZGxlLT5maXJzdFJlcXVlc3QoKS5yZXF1ZXN0ZXIo
KSAhPSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbiB8fCAhW1FMUHJldmlld0dldFN1
cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0Oltuc1Jlc3BvbnNlIE1JTUVUeXBl
XV0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNr
TG9va0hhbmRsZT4gcXVpY2tMb29rSGFuZGxlKG5ldyBRdWlja0xvb2tIYW5kbGUoW2hhbmRsZS0+
Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KERvTm90VXBkYXRlSFRUUEJvZHkpIFVSTF0sIGNv
bm5lY3Rpb24sIG5zUmVzcG9uc2UsIGRlbGVnYXRlKSk7CkBAIC00NzEsNyArNDE5LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tMb29rSGFuZGxlOjpjcmVhdGUoUmVz
b3VyY2VIYW5kbGUqIGhhbmRsZSwKIHN0ZDo6dW5pcXVlX3B0cjxRdWlja0xvb2tIYW5kbGU+IFF1
aWNrTG9va0hhbmRsZTo6Y3JlYXRlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFN5bmNocm9ub3Vz
UmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZSogY29ubmVjdGlvbkRlbGVnYXRl
LCBDRlVSTFJlc3BvbnNlUmVmIGNmUmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUX0FSRyhoYW5kbGUs
IGhhbmRsZSk7Ci0gICAgaWYgKGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkucmVxdWVzdGVyKCkgIT0g
UmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4gfHwgIVtXZWJDb3JlOjpRTFByZXZpZXdH
ZXRTdXBwb3J0ZWRNSU1FVHlwZXNTZXQoKSBjb250YWluc09iamVjdDooTlNTdHJpbmcgKilDRlVS
TFJlc3BvbnNlR2V0TUlNRVR5cGUoY2ZSZXNwb25zZSldKQorICAgIGlmIChoYW5kbGUtPmZpcnN0
UmVxdWVzdCgpLnJlcXVlc3RlcigpICE9IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWlu
IHx8ICFbUUxQcmV2aWV3R2V0U3VwcG9ydGVkTUlNRVR5cGVzU2V0KCkgY29udGFpbnNPYmplY3Q6
KE5TU3RyaW5nICopQ0ZVUkxSZXNwb25zZUdldE1JTUVUeXBlKGNmUmVzcG9uc2UpXSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBOU1VSTFJlc3BvbnNlICpuc1Jlc3BvbnNlID0gW05T
VVJMUmVzcG9uc2UgX3Jlc3BvbnNlV2l0aENGVVJMUmVzcG9uc2U6Y2ZSZXNwb25zZV07CkBAIC00
ODksNyArNDM3LDcgQEAgQ0ZVUkxSZXNwb25zZVJlZiBRdWlja0xvb2tIYW5kbGU6OmNmUmVzcG9u
c2UoKQogCiBib29sIFF1aWNrTG9va0hhbmRsZTo6c2hvdWxkQ3JlYXRlRm9yTUlNRVR5cGUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKLSAgICByZXR1cm4gW1dlYkNvcmU6OlFMUHJldmlld0dl
dFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0Om1pbWVUeXBlXTsKKyAgICBy
ZXR1cm4gW1FMUHJldmlld0dldFN1cHBvcnRlZE1JTUVUeXBlc1NldCgpIGNvbnRhaW5zT2JqZWN0
Om1pbWVUeXBlXTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFF1aWNrTG9va0hhbmRsZT4gUXVpY2tM
b29rSGFuZGxlOjpjcmVhdGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2lvcy9XZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0KaW5kZXggYjhmZTU2OGE0
MDlhZTFkY2Q1OTNmYWYzY2JmNTgxMWZkZmJjNWU2Mi4uYTYyZDFiNzI5ZTExODRlZWQwMDQyYzM5
MDU0MmRiNzNmOTU5OGIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9pb3MvV2ViQ29yZVVSTFJlc3BvbnNlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvaW9zL1dlYkNvcmVVUkxSZXNwb25zZUlPUy5tbQpAQCAtMzIsNiArMzIs
NyBAQAogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogCiAjaW1wb3J0ICJRdWlj
a0xvb2suaCIKKyNpbXBvcnQgIlF1aWNrTG9va1NvZnRMaW5rLmgiCiAjaW1wb3J0ICJTb2Z0TGlu
a2luZy5oIgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5o
PgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>